forked from agzam/vyatsu-schedule
44 lines
1.3 KiB
Kotlin
44 lines
1.3 KiB
Kotlin
package agzam.vyatsu.ui.settings
|
|||
|
|
|
||
|
|
import agzam.vyatsu.domain.repository.PreferencesRepository
|
||
|
|
import agzam.vyatsu.update.AppUpdater
|
||
|
|
import agzam.vyatsu.update.UpdateState
|
||
|
|
import androidx.lifecycle.ViewModel
|
||
|
|
import androidx.lifecycle.viewModelScope
|
||
|
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||
|
|
import kotlinx.coroutines.flow.StateFlow
|
||
|
|
import kotlinx.coroutines.flow.asStateFlow
|
||
|
|
import kotlinx.coroutines.launch
|
||
|
|
|
||
|
|
class UpdateViewModel(
|
||
|
|
private val updater: AppUpdater,
|
||
|
|
private val preferencesRepository: PreferencesRepository
|
||
|
|
) : ViewModel() {
|
||
|
|
|
||
|
|
val updateState: StateFlow<UpdateState> = updater.state
|
||
|
|
|
||
|
|
private val _autoEnabled = MutableStateFlow(true)
|
||
|
|
val autoEnabled: StateFlow<Boolean> = _autoEnabled.asStateFlow()
|
||
|
|
|
||
|
|
init {
|
||
|
|
viewModelScope.launch {
|
||
|
|
_autoEnabled.value = preferencesRepository.autoUpdateEnabled()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
fun setAutoEnabled(enabled: Boolean) {
|
||
|
|
_autoEnabled.value = enabled
|
||
|
|
updater.setAutoEnabled(enabled)
|
||
|
|
}
|
||
|
|
|
||
|
|
fun checkNow() = updater.checkForUpdate()
|
||
|
|
|
||
|
|
fun downloadAndInstall() = updater.downloadAndInstall()
|
||
|
|
|
||
|
|
fun installDownloadedApk() = updater.installDownloadedApk()
|
||
|
|
|
||
|
|
fun canRequestInstalls() = updater.canRequestInstalls()
|
||
|
|
|
||
|
|
fun openUnknownSourcesSettings() = updater.openUnknownSourcesSettings()
|
||
|
|
}
|