diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 77e9b62..5416505 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,6 +33,14 @@ android:resource="@xml/file_paths" /> + + diff --git a/app/src/main/java/com/catlas/escapepenacony/MainActivity.kt b/app/src/main/java/com/catlas/escapepenacony/MainActivity.kt index 8f1b886..a6c7ceb 100644 --- a/app/src/main/java/com/catlas/escapepenacony/MainActivity.kt +++ b/app/src/main/java/com/catlas/escapepenacony/MainActivity.kt @@ -19,6 +19,12 @@ class MainActivity : ComponentActivity() { private var currentPersistentUri by mutableStateOf(null) private var shizukuPermissionGrantedEvent by mutableStateOf(0L) + private val binderReceivedListener = Shizuku.OnBinderReceivedListener { + if (ShizukuHelper.hasPermission()) { + shizukuPermissionGrantedEvent = System.currentTimeMillis() + } + } + private val shizukuPermissionListener = Shizuku.OnRequestPermissionResultListener { requestCode, grantResult -> if (requestCode == ShizukuHelper.REQUEST_CODE && grantResult == PackageManager.PERMISSION_GRANTED) { shizukuPermissionGrantedEvent = System.currentTimeMillis() @@ -46,6 +52,7 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) try { + Shizuku.addBinderReceivedListenerSticky(binderReceivedListener) Shizuku.addRequestPermissionResultListener(shizukuPermissionListener) } catch (_: Throwable) {} @@ -68,6 +75,7 @@ class MainActivity : ComponentActivity() { override fun onDestroy() { super.onDestroy() try { + Shizuku.removeBinderReceivedListener(binderReceivedListener) Shizuku.removeRequestPermissionResultListener(shizukuPermissionListener) } catch (_: Throwable) {} }