From af95abe15e597161967192ba76c264d2533803ae Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Wed, 19 Oct 2022 18:11:36 +0200 Subject: [PATCH] Fix some space back navigation crashes Change-Id: I6d6058547688503a99fa7308a42e25652b00c01f --- .../im/vector/app/features/home/HomeDetailFragment.kt | 8 ++++++-- .../vector/app/features/home/NewHomeDetailFragment.kt | 10 +++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt index d9c2aa6b11..f3a7224ed6 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt @@ -946,8 +946,12 @@ class HomeDetailFragment : } override fun onBackPressed(toolbarButton: Boolean) = if (vectorPreferences.spaceBackNavigation() && spaceStateHandler.getCurrentSpace() != null) { - navigateBack() - true + try { + navigateBack() + true + } catch (e: NoSuchElementException) { + false + } } else { false } diff --git a/vector/src/main/java/im/vector/app/features/home/NewHomeDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/NewHomeDetailFragment.kt index caee2102d8..d6b45f9afb 100644 --- a/vector/src/main/java/im/vector/app/features/home/NewHomeDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/NewHomeDetailFragment.kt @@ -401,9 +401,13 @@ class NewHomeDetailFragment : override fun onBackPressed(toolbarButton: Boolean) = if (spaceStateHandler.isRoot() || !vectorPreferences.spaceBackNavigation()) { false } else { - val lastSpace = spaceStateHandler.popSpaceBackstack() - spaceStateHandler.setCurrentSpace(lastSpace, isForwardNavigation = false) - true + try { + val lastSpace = spaceStateHandler.popSpaceBackstack() + spaceStateHandler.setCurrentSpace(lastSpace, isForwardNavigation = false) + true + } catch(e: NoSuchElementException) { + false + } } private fun SpaceStateHandler.isRoot() = getSpaceBackstack().isEmpty()