浏览代码

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 <dev@mhibbe.de>
Marcel Hibbe 2 年之前
父节点
当前提交
c261e526fc
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      app/src/main/java/com/nextcloud/talk/controllers/LockedController.kt

+ 1 - 1
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()
             }
         }
     }