From d66f96d38944b087c3d6d9c8c22cee8ff5a60ac1 Mon Sep 17 00:00:00 2001 From: darken Date: Wed, 6 Dec 2023 20:18:01 +0100 Subject: [PATCH] Setup: Fix changing Shizuku from OFF to ON not always reloading available data areas --- .../darken/sdmse/setup/shizuku/ShizukuSetupModule.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupModule.kt b/app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupModule.kt index 6cdf01a4b..dc78c7cac 100644 --- a/app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupModule.kt +++ b/app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupModule.kt @@ -14,10 +14,12 @@ import eu.darken.sdmse.common.flow.replayingShare import eu.darken.sdmse.common.rngString import eu.darken.sdmse.common.shizuku.ShizukuManager import eu.darken.sdmse.common.shizuku.ShizukuSettings +import eu.darken.sdmse.common.shizuku.canUseShizukuNow import eu.darken.sdmse.setup.SetupModule import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.async import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.combine @@ -74,7 +76,7 @@ class ShizukuSetupModule @Inject constructor( suspend fun toggleUseShizuku(useShizuku: Boolean?) { log(TAG) { "toggleUseShizuku(useShizuku=$useShizuku)" } - + val couldUseShizuku = shizukuManager.canUseShizukuNow() if (useShizuku == true && shizukuManager.isGranted() == false) { val grantResult = coroutineScope { val eventResult = async { @@ -95,6 +97,12 @@ class ShizukuSetupModule @Inject constructor( shizukuSettings.useShizuku.value(useShizuku) } + if (!couldUseShizuku && useShizuku == true) { + // TODO find a smarter way to do this, i.e. by waiting for a specific event. + // Small delay to allow Shizuku service to bind + delay(1500) + } + dataAreaManager.reload() }