diff --git a/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt b/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt index eaebf5cda6a53a5a8630c6127f215de2aba2d8be..fef9c04a7f18959da549cbc09a497a1ed6261c94 100644 --- a/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt +++ b/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt @@ -103,24 +103,26 @@ class UserSearchFragment : RequestsFragment() { } }.attach() - userSearchAppBarTabs.addOnTabSelectedListener( - object : OnTabSelectedListener { - override fun onTabSelected(tab: TabLayout.Tab?) { - if (searchViewModel.previousTabPosition != SEARCH_QR && tab?.position == SEARCH_QR) { - searchViewModel.previousTabPosition = SEARCH_QR - lifecycleScope.launch { - delay(500) - navigateToQrCode() + userSearchAppBarTabs.apply { + addOnTabSelectedListener( + object : OnTabSelectedListener { + override fun onTabSelected(tab: TabLayout.Tab?) { + if (searchViewModel.previousTabPosition != SEARCH_QR && tab?.position == SEARCH_QR) { + searchViewModel.previousTabPosition = SEARCH_QR + lifecycleScope.launch { + delay(500) + navigateToQrCode() + } + } else { + searchViewModel.previousTabPosition = tab?.position ?: 0 } - } else { - searchViewModel.previousTabPosition = tab?.position ?: 0 } - } - override fun onTabUnselected(tab: TabLayout.Tab?) { } - override fun onTabReselected(tab: TabLayout.Tab?) { } - } - ) + override fun onTabUnselected(tab: TabLayout.Tab?) { } + override fun onTabReselected(tab: TabLayout.Tab?) { } + } + ) + } } } @@ -164,6 +166,16 @@ class UserSearchFragment : RequestsFragment() { observeUi() } + override fun onResume() { + super.onResume() + resetTabPosition() + } + + private fun resetTabPosition() { + binding.userSearchAppBarTabs.setScrollPosition(SEARCH_USERNAME, 0f, true) + binding.userSearchViewPager.currentItem = SEARCH_USERNAME + } + private fun observeUi() { searchViewModel.udSearchUi.observe(viewLifecycleOwner) { state -> binding.ui = state