homeVM
This commit is contained in:
@@ -47,8 +47,9 @@ class HomeViewModel @Inject constructor(
|
||||
private val _isUpdateDialogVisible = MutableStateFlow(false)
|
||||
val isUpdateDialogVisible = _isUpdateDialogVisible.asStateFlow()
|
||||
|
||||
private val _downloadProgress = MutableStateFlow(false)
|
||||
val downloadProgress = _downloadProgress.asStateFlow()
|
||||
|
||||
private val _downloadProgress = MutableStateFlow(0f)
|
||||
val downloadProgress: StateFlow<Float> = _downloadProgress
|
||||
|
||||
private val appUpdater = AppUpdater(applicationContext)
|
||||
fun checkForUpdates(context: Context) {
|
||||
@@ -64,39 +65,38 @@ class HomeViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
// In your ViewModel, assume:
|
||||
|
||||
|
||||
fun installUpdate(url: String) {
|
||||
// Start the download
|
||||
appUpdater.downloadAndInstall(url)
|
||||
|
||||
viewModelScope.launch {
|
||||
appUpdater.updateState.collect { state ->
|
||||
when (state) {
|
||||
is AppUpdater.UpdaterState.Downloading -> {
|
||||
// Update progress UI (state.progress is between 0 and 1)
|
||||
_downloadProgress.value = true
|
||||
_downloadProgress.value = state.progress
|
||||
}
|
||||
|
||||
is AppUpdater.UpdaterState.Success -> {
|
||||
// APK downloaded and installation started
|
||||
// You might want to show a message
|
||||
_downloadProgress.value = false
|
||||
_downloadProgress.value = 1f
|
||||
}
|
||||
|
||||
is AppUpdater.UpdaterState.Error -> {
|
||||
// Handle error (show message, etc.)
|
||||
|
||||
_downloadProgress.value = 0f
|
||||
}
|
||||
|
||||
AppUpdater.UpdaterState.Idle -> {
|
||||
// Initial state
|
||||
// No op
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun dismissUpdate() {
|
||||
_isUpdateDialogVisible.value = false
|
||||
_updateInfo.value = null
|
||||
_downloadProgress.value = false
|
||||
_downloadProgress.value = 0f
|
||||
}
|
||||
|
||||
init {
|
||||
|
||||
Reference in New Issue
Block a user