diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt index de12d213bb..a19fd185c4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt @@ -15,7 +15,7 @@ import yokai.util.lang.getString import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.extension.util.ExtensionInstaller.Companion.EXTRA_DOWNLOAD_ID import eu.kanade.tachiyomi.util.system.getUriSize -import eu.kanade.tachiyomi.util.system.isPackageInstalled +import eu.kanade.tachiyomi.util.system.isShizukuInstalled import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -23,7 +23,6 @@ import kotlinx.coroutines.cancel import kotlinx.coroutines.launch import rikka.shizuku.Shizuku import rikka.shizuku.ShizukuRemoteProcess -import rikka.sui.Sui import uy.kohesive.injekt.injectLazy import java.io.BufferedReader import java.io.InputStream @@ -75,7 +74,7 @@ class ShizukuInstaller(private val context: Context, val finishedQueue: (Shizuku init { Shizuku.addBinderDeadListener(shizukuDeadListener) - require(Shizuku.pingBinder() && (context.isPackageInstalled(shizukuPkgName) || Sui.isSui())) { + require(Shizuku.pingBinder() && context.isShizukuInstalled) { finishedQueue(this) context.getString(MR.strings.ext_installer_shizuku_stopped) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index 0cd311e68c..e0dfd4e2f3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -47,6 +47,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.delay import kotlinx.coroutines.withContext +import rikka.sui.Sui import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import yokai.i18n.MR @@ -207,11 +208,13 @@ fun Context.isPackageInstalled(packageName: String): Boolean { return try { packageManager.getApplicationInfoCompat(packageName, 0) true - } catch (_: Exception) { + } catch (_: PackageManager.NameNotFoundException) { false } } +val Context.isShizukuInstalled get() = isPackageInstalled("moe.shizuku.privileged.api") || Sui.isSui() + /** * Property to get the notification manager from the context. */