소스 검색

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