diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt index 6f988c9030..577c144bd7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt @@ -167,7 +167,9 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l viewLifecycleOwner, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { - tabsViewModel.onChatsSelected() + if (!closeSearchIfOpen()) { + tabsViewModel.onChatsSelected() + } } } ) @@ -350,4 +352,25 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l viewModel.isTransitioningToAnotherScreen = true startActivity(intent, options) } + + private fun isSearchOpen(): Boolean { + return isSearchVisible() + } + + private fun isSearchVisible(): Boolean { + return requreSearchBinder().getSearchToolbar().resolved() && requreSearchBinder().getSearchToolbar().get().getVisibility() == View.VISIBLE + } + + private fun closeSearchIfOpen(): Boolean { + if (isSearchOpen()) { + requreSearchBinder().getSearchToolbar().get().collapse() + requreSearchBinder().onSearchClosed() + return true + } + return false + } + + private fun requreSearchBinder(): SearchBinder { + return requireListener() + } }