From cffd024e9e5301401d1472a3c3791d813da779e6 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Tue, 26 Apr 2022 17:44:14 +0800 Subject: [PATCH] Ignore the response until showDialog done --- .../magisk/ui/surequest/SuRequestViewModel.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt b/app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt index 56c3dbd5b..9ad5f1358 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt @@ -73,7 +73,8 @@ class SuRequestViewModel( val itemBinding = ItemBinding.of(BR.item, R.layout.item_spinner) private val handler = SuRequestHandler(AppContext.packageManager, policyDB) - private var timer: CountDownTimer? = null + private lateinit var timer: CountDownTimer + private var initialized = false fun grantPressed() { cancelTimer() @@ -122,10 +123,16 @@ class SuRequestViewModel( // Actually show the UI ShowUIEvent(if (Config.suTapjack) EmptyAccessibilityDelegate else null).publish() + initialized = true } private fun respond(action: Int) { - timer?.cancel() + if (!initialized) { + // ignore the response until showDialog done + return + } + + timer.cancel() val pos = selectedItemPosition timeoutPrefs.edit().putInt(handler.pkgInfo.packageName, pos).apply() @@ -138,7 +145,7 @@ class SuRequestViewModel( } private fun cancelTimer() { - timer?.cancel() + timer.cancel() denyText.seconds = 0 }