Selaa lähdekoodia

avoid IllegalArgumentException in ConversationInfoController#leaveConversation

instead popToRoot, which should be the ConversationsListController for most cases.

Exception java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
  at java.util.ArrayList.subListRangeCheck (ArrayList.java:1018)
  at java.util.ArrayList.subList (ArrayList.java:1008)
  at com.nextcloud.talk.controllers.ConversationInfoController.popTwoLastControllers (ConversationInfoController.kt:628)
  at com.nextcloud.talk.controllers.ConversationInfoController.leaveConversation (ConversationInfoController.kt:552)
  at com.nextcloud.talk.controllers.ConversationInfoController.onAttach$lambda$1 (ConversationInfoController.kt:181)
  at com.nextcloud.talk.controllers.ConversationInfoController.$r8$lambda$VRoZoNH5wtuepilLynILWSZOZYA
  at com.nextcloud.talk.controllers.ConversationInfoController$$ExternalSyntheticLambda8.onClick
  at com.yarolegovich.mp.util.CompositeClickListener.onClick (CompositeClickListener.java:22)
  at android.view.View.performClick (View.java:7455)
  at android.view.View.performClickInternal (View.java:7428)
  at android.view.View.access$3600 (View.java:813)
  at android.view.View$PerformClick.run (View.java:28495)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:223)
  at android.app.ActivityThread.main (ActivityThread.java:7700)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:612)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 2 vuotta sitten
vanhempi
commit
0ce5e81577

+ 2 - 8
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt

@@ -543,7 +543,7 @@ class ConversationInfoController(args: Bundle) :
                         .java
                 ).setInputData(it).build()
             )
-            popTwoLastControllers()
+            router.popToRoot()
         }
     }
 
@@ -613,16 +613,10 @@ class ConversationInfoController(args: Bundle) :
                     DeleteConversationWorker::class.java
                 ).setInputData(it).build()
             )
-            popTwoLastControllers()
+            router.popToRoot()
         }
     }
 
-    private fun popTwoLastControllers() {
-        var backstack = router.backstack
-        backstack = backstack.subList(0, backstack.size - 2)
-        router.setBackstack(backstack, HorizontalChangeHandler())
-    }
-
     private fun fetchRoomInfo() {
         var apiVersion = 1
         // FIXME Fix API checking with guests?