diff --git a/manager/src/main/java/org/lsposed/lspatch/LSPApplication.kt b/manager/src/main/java/org/lsposed/lspatch/LSPApplication.kt index 97679b1..7b368f2 100644 --- a/manager/src/main/java/org/lsposed/lspatch/LSPApplication.kt +++ b/manager/src/main/java/org/lsposed/lspatch/LSPApplication.kt @@ -12,11 +12,19 @@ const val TAG = "LSPatch Manager" class LSPApplication : Application() { companion object { - var shizukuGranted by mutableStateOf(Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED) + var shizukuAlive = false + var shizukuGranted by mutableStateOf(false) } override fun onCreate() { super.onCreate() - + Shizuku.addBinderReceivedListener { + shizukuAlive = true + shizukuGranted = Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED + } + Shizuku.addBinderDeadListener { + shizukuAlive = false + shizukuGranted = false + } } } diff --git a/manager/src/main/java/org/lsposed/lspatch/ui/page/HomePage.kt b/manager/src/main/java/org/lsposed/lspatch/ui/page/HomePage.kt index 0d59e6d..5e68cfb 100644 --- a/manager/src/main/java/org/lsposed/lspatch/ui/page/HomePage.kt +++ b/manager/src/main/java/org/lsposed/lspatch/ui/page/HomePage.kt @@ -87,7 +87,7 @@ private fun ShizukuCard() { ElevatedCard( modifier = Modifier.clickable { - if (!LSPApplication.shizukuGranted) { + if (LSPApplication.shizukuAlive && !LSPApplication.shizukuGranted) { Shizuku.requestPermission(114514) } },