From c261e526fc7483b676c3dd423419b1749922e181 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 8 Feb 2023 15:49:38 +0100 Subject: [PATCH] try to avoid IllegalStateException in LockedController this commit tries to avoid the IllegalStateException in stacktrace below. I'm not sure how this happened. It came from LockedController#unlock (--> binding?.unlockContainer?.setOnClickListener) which should only be visible when somehow it's "failed" to show the keyguard lockscreen. And somehow for this case the router backstack must have been empty. Instead to dismiss the current controller, popToRoot() should avoid trying to pop the last remaining controller. Exception java.lang.IllegalStateException: Trying to pop the current controller when there are none on the backstack. at com.bluelinelabs.conductor.Router.popCurrentController (Router.java:118) at com.nextcloud.talk.controllers.LockedController.checkIfWeAreSecure (LockedController.kt:147) at com.nextcloud.talk.controllers.LockedController.unlock (LockedController.kt:90) at com.nextcloud.talk.controllers.LockedController.onViewBound$lambda$0 (LockedController.kt:64) at com.nextcloud.talk.controllers.LockedController.$r8$lambda$sNoJ_x5yMnHnIHeqt2umoDILkpk at com.nextcloud.talk.controllers.LockedController$$ExternalSyntheticLambda0.onClick at android.view.View.performClick (View.java:7745) at android.view.View.performClickInternal (View.java:7722) at android.view.View.access$3700 (View.java:854) at android.view.View$PerformClick.run (View.java:29111) at android.os.Handler.handleCallback (Handler.java:938) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:210) at android.os.Looper.loop (Looper.java:299) at android.app.ActivityThread.main (ActivityThread.java:8319) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1038) Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/controllers/LockedController.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/LockedController.kt b/app/src/main/java/com/nextcloud/talk/controllers/LockedController.kt index 2fde68332..7519742ee 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/LockedController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/LockedController.kt @@ -144,7 +144,7 @@ class LockedController : BaseController(R.layout.controller_locked) { "popCurrentController because 'we are authenticated'. backstacksize= " + router.backstack.size ) - router.popCurrentController() + router.popToRoot() } } }