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 02beb4e7d823fdc168eda107d2d3b3edbaa37e69..59ef598bbaaa39d9cee5892050867dfa3e609a85 100644 --- a/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt +++ b/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt @@ -106,24 +106,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?) { } + } + ) + } } } @@ -174,6 +176,16 @@ class UserSearchFragment : RequestsFragment() { } } + 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