From a721206c6f2c7b3ecef81b6b7176ff96cf65cd77 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Mon, 27 Feb 2023 23:00:21 -0800 Subject: [PATCH] Update items in the right thread --- .../magisk/ui/module/ModuleViewModel.kt | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt b/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt index 9aa93ba3b..10b386d4e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt @@ -10,7 +10,11 @@ import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.base.ContentResultCallback import com.topjohnwu.magisk.core.model.module.LocalModule import com.topjohnwu.magisk.core.model.module.OnlineModule -import com.topjohnwu.magisk.databinding.* +import com.topjohnwu.magisk.databinding.MergeObservableList +import com.topjohnwu.magisk.databinding.RvItem +import com.topjohnwu.magisk.databinding.bindExtra +import com.topjohnwu.magisk.databinding.diffListOf +import com.topjohnwu.magisk.databinding.set import com.topjohnwu.magisk.events.GetContentEvent import com.topjohnwu.magisk.events.SnackbarEvent import com.topjohnwu.magisk.events.dialog.ModuleInstallDialog @@ -35,19 +39,17 @@ class ModuleViewModel : AsyncLoadViewModel() { var loading = true private set(value) = set(value, field, { field = it }, BR.loading) - private suspend fun init() = withContext(Dispatchers.IO) { - if (Info.env.isActive && LocalModule.loaded()) { - items.insertItem(InstallModule) - .insertList(itemsInstalled) - } - } - override suspend fun doLoadWork() { loading = true - if (items.isEmpty()) { - init() + val moduleLoaded = Info.env.isActive && + withContext(Dispatchers.IO) { LocalModule.loaded() } + if (moduleLoaded) { + loadInstalled() + if (items.isEmpty()) { + items.insertItem(InstallModule) + .insertList(itemsInstalled) + } } - loadInstalled() loading = false loadUpdateInfo() }