diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/InstallerFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/InstallerFragment.kt index 448de5cde..073aa8083 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/InstallerFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/InstallerFragment.kt @@ -84,9 +84,11 @@ class InstallerFragment : BaseFragment() { savedInstanceState: Bundle? ): View { - Shizuku.addBinderReceivedListenerSticky(shizukuAliveListener) - Shizuku.addBinderDeadListener(shizukuDeadListener) - Shizuku.addRequestPermissionResultListener(shizukuResultListener) + if (isOAndAbove()) { + Shizuku.addBinderReceivedListenerSticky(shizukuAliveListener) + Shizuku.addBinderDeadListener(shizukuDeadListener) + Shizuku.addRequestPermissionResultListener(shizukuResultListener) + } B = FragmentOnboardingInstallerBinding.bind( inflater.inflate( @@ -112,7 +114,11 @@ class InstallerFragment : BaseFragment() { } override fun onDestroy() { - Shizuku.removeRequestPermissionResultListener(shizukuResultListener) + if (isOAndAbove()) { + Shizuku.removeBinderReceivedListener(shizukuAliveListener) + Shizuku.removeBinderDeadListener(shizukuDeadListener) + Shizuku.removeRequestPermissionResultListener(shizukuResultListener) + } super.onDestroy() } diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/InstallationPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/InstallationPreference.kt index 4f08cb436..ed328d468 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/InstallationPreference.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/InstallationPreference.kt @@ -75,9 +75,11 @@ class InstallationPreference : PreferenceFragmentCompat() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - Shizuku.addBinderReceivedListenerSticky(shizukuAliveListener) - Shizuku.addBinderDeadListener(shizukuDeadListener) - Shizuku.addRequestPermissionResultListener(shizukuResultListener) + if (isOAndAbove()) { + Shizuku.addBinderReceivedListenerSticky(shizukuAliveListener) + Shizuku.addBinderDeadListener(shizukuDeadListener) + Shizuku.addRequestPermissionResultListener(shizukuResultListener) + } val abandonPreference: Preference? = findPreference(Preferences.INSTALLATION_ABANDON_SESSION) @@ -163,6 +165,15 @@ class InstallationPreference : PreferenceFragmentCompat() { } } + override fun onDestroy() { + if (isOAndAbove()) { + Shizuku.removeBinderReceivedListener(shizukuAliveListener) + Shizuku.removeBinderDeadListener(shizukuDeadListener) + Shizuku.removeRequestPermissionResultListener(shizukuResultListener) + } + super.onDestroy() + } + private fun checkRootAvailability(): Boolean { return Shell.getShell().isRoot }