From e2b47c65993c8cb9c2c5765cba84467908dedea9 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Wed, 15 Dec 2021 13:51:52 -0500 Subject: [PATCH] Double check if Shizuku is running before attempting to silently install updates --- .../java/eu/kanade/tachiyomi/extension/ExtensionManager.kt | 7 +++++-- .../eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt | 4 ++-- .../java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt | 3 +++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt index 9bf3e770da..ce321d4e30 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt @@ -472,10 +472,13 @@ class ExtensionManager( } companion object { - fun canAutoInstallUpdates(context: Context): Boolean { + fun canAutoInstallUpdates(context: Context, checkIfShizukuIsRunning: Boolean = false): Boolean { val prefs = PreferenceManager.getDefaultSharedPreferences(context) return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S || - prefs.getBoolean(PreferenceKeys.useShizuku, false) + ( + prefs.getBoolean(PreferenceKeys.useShizuku, false) && + (!checkIfShizukuIsRunning || ShizukuInstaller.isShizukuRunning()) + ) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt index bc983ae740..587b273a61 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt @@ -69,7 +69,7 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam extensions.filter { Injekt.get().isInstalledByApp(it) } } } - if (ExtensionManager.canAutoInstallUpdates(context) && + if (ExtensionManager.canAutoInstallUpdates(context, true) && inputData.getBoolean(RUN_AUTO, true) && preferences.autoUpdateExtensions() != AutoAppUpdaterJob.NEVER && !ExtensionInstallService.isRunning() && @@ -127,7 +127,7 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam context ) ) - if (ExtensionManager.canAutoInstallUpdates(context) && + if (ExtensionManager.canAutoInstallUpdates(context, true) && extensions.size == extensionsList.size ) { val intent = ExtensionInstallService.jobIntent(context, extensions) 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 032e19b513..fecb85c916 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt @@ -217,5 +217,8 @@ class ShizukuInstaller(private val context: Context, val finishedQueue: (Shizuku const val downloadLink = "https://shizuku.rikka.app/download" private const val SHIZUKU_PERMISSION_REQUEST_CODE = 14045 private val SESSION_ID_REGEX = Regex("(?<=\\[).+?(?=])") + fun isShizukuRunning(): Boolean { + return Shizuku.pingBinder() && Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED + } } }