Double check if Shizuku is running before attempting to silently install updates

This commit is contained in:
Jays2Kings 2021-12-15 13:51:52 -05:00
parent b3ad1afd9a
commit e2b47c6599
3 changed files with 10 additions and 4 deletions

View file

@ -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())
)
}
}
}

View file

@ -69,7 +69,7 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam
extensions.filter { Injekt.get<ExtensionManager>().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)

View file

@ -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
}
}
}