diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt index 176fb8079..01b69d38b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt @@ -40,7 +40,7 @@ import dagger.android.DispatchingAndroidInjector import dagger.android.HasAndroidInjector import javax.inject.Inject -class SearchActivity : BottomSheetActivity(), HasAndroidInjector, MenuProvider { +class SearchActivity : BottomSheetActivity(), HasAndroidInjector, MenuProvider, SearchView.OnQueryTextListener { @Inject lateinit var androidInjector: DispatchingAndroidInjector @@ -91,8 +91,6 @@ class SearchActivity : BottomSheetActivity(), HasAndroidInjector, MenuProvider { searchViewMenuItem.expandActionView() val searchView = searchViewMenuItem.actionView as SearchView setupSearchView(searchView) - - searchView.setQuery(viewModel.currentQuery, false) } override fun onMenuItemSelected(menuItem: MenuItem): Boolean { @@ -150,9 +148,23 @@ class SearchActivity : BottomSheetActivity(), HasAndroidInjector, MenuProvider { val pxBuffer = ((48 * 2) * resources.displayMetrics.density).toInt() searchView.maxWidth = pxScreenWidth - pxBuffer + // Keep text that was entered also when switching to a different tab (before the search is executed) + searchView.setOnQueryTextListener(this) + searchView.setQuery(viewModel.currentSearchFieldContent ?: "", false) + searchView.requestFocus() } + override fun onQueryTextSubmit(query: String?): Boolean { + return false + } + + override fun onQueryTextChange(newText: String?): Boolean { + viewModel.currentSearchFieldContent = newText + + return false + } + override fun androidInjector() = androidInjector companion object { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt index a43776ddc..0ab4d1e1c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt @@ -45,6 +45,7 @@ class SearchViewModel @Inject constructor( ) : ViewModel() { var currentQuery: String = "" + var currentSearchFieldContent: String? = null val activeAccount: AccountEntity? get() = accountManager.activeAccount