diff --git a/app/src/main/java/com/topjohnwu/magisk/core/model/module/LocalModule.kt b/app/src/main/java/com/topjohnwu/magisk/core/model/module/LocalModule.kt index 225830aba..33bc0b39e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/core/model/module/LocalModule.kt +++ b/app/src/main/java/com/topjohnwu/magisk/core/model/module/LocalModule.kt @@ -138,6 +138,8 @@ data class LocalModule( private val PERSIST get() = "${Const.MAGISKTMP}/mirror/persist/magisk" + fun loaded() = RootUtils.fs.getFile(Const.MAGISK_PATH).exists() + suspend fun installed() = withContext(Dispatchers.IO) { RootUtils.fs.getFile(Const.MAGISK_PATH) .listFiles() diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt b/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt index 3349ee4de..38b75b851 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt @@ -20,6 +20,7 @@ import com.topjohnwu.magisk.core.Config import com.topjohnwu.magisk.core.Const import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.isRunningAsStub +import com.topjohnwu.magisk.core.model.module.LocalModule import com.topjohnwu.magisk.databinding.ActivityMainMd2Binding import com.topjohnwu.magisk.ktx.startAnimations import com.topjohnwu.magisk.ui.home.HomeFragmentDirections @@ -84,7 +85,7 @@ class MainActivity : BaseMainActivity() { } binding.mainNavigation.menu.apply { findItem(R.id.superuserFragment)?.isEnabled = Utils.showSuperUser() - findItem(R.id.modulesFragment)?.isEnabled = Info.env.isActive + findItem(R.id.modulesFragment)?.isEnabled = Info.env.isActive && LocalModule.loaded() } val section = 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 d7b2668fc..5e687fe96 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 @@ -37,7 +37,7 @@ class ModuleViewModel : BaseViewModel() { val data get() = uri init { - if (Info.env.isActive) { + if (Info.env.isActive && LocalModule.loaded()) { items.insertItem(InstallModule) .insertList(itemsInstalled) } diff --git a/app/src/main/res/layout/fragment_module_md2.xml b/app/src/main/res/layout/fragment_module_md2.xml index 1d5548baa..92763fd82 100644 --- a/app/src/main/res/layout/fragment_module_md2.xml +++ b/app/src/main/res/layout/fragment_module_md2.xml @@ -33,7 +33,6 @@ tools:listitem="@layout/item_module_md2" /> + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fc3ae1ea9..5c177f893 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -111,6 +111,7 @@ Module suspended because %1$s is enabled Module suspended because %1$s is not enabled Zygisk module not loaded due to incompatibility + No module installed Theme Mode