Keep search context #1141

This commit is contained in:
J-Jamet
2022-02-05 13:33:57 +01:00
parent e259b37f74
commit 741defd31e
4 changed files with 21 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
KeePassDX(3.3.0) KeePassDX(3.3.0)
* Quick search and dynamic filters #163 #462 #521 * Quick search and dynamic filters #163 #462 #521
* Keep search context #1141
KeePassDX(3.2.0) KeePassDX(3.2.0)
* Manage data merge #840 #977 * Manage data merge #840 #977

View File

@@ -327,15 +327,17 @@ class GroupActivity : DatabaseLockActivity(),
mainGroup.touch(modified = false, touchParents = false) mainGroup.touch(modified = false, touchParents = false)
} }
// Observe group // Observe current group (main or search group visible)
mGroupViewModel.group.observe(this) { mGroupViewModel.group.observe(this) {
val currentGroup = it.group val currentGroup = it.group
mCurrentGroup = currentGroup mCurrentGroup = currentGroup
if (currentGroup.isVirtual) { if (currentGroup.isVirtual) {
mSearchState = SearchState(it.searchParameters, it.showFromPosition) val searchParameters = it.searchParameters
searchFiltersView?.searchParameters = it.searchParameters mSearchState = SearchState(searchParameters, it.showFromPosition)
addSearchParametersInView(searchParameters)
} }
// Main group in activity is managed with another variable to keep value during orientation // Main and search groups in activity are managed with another variables
// to keep values during orientation
// Expand the search view if defined in settings // Expand the search view if defined in settings
if (mRequestStartupSearch if (mRequestStartupSearch
@@ -1035,6 +1037,15 @@ class GroupActivity : DatabaseLockActivity(),
super.onPause() super.onPause()
finishNodeAction() finishNodeAction()
searchView?.setOnQueryTextListener(null)
}
private fun addSearchParametersInView(searchParameters: SearchParameters) {
searchView?.setOnQueryTextListener(null)
searchView?.setQuery(searchParameters.searchQuery, false)
searchFiltersView?.searchParameters = searchParameters
searchFiltersView?.visibility = View.VISIBLE
searchView?.setOnQueryTextListener(mOnSearchQueryTextListener)
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
@@ -1078,10 +1089,8 @@ class GroupActivity : DatabaseLockActivity(),
// already open // already open
if (searchState != null) { if (searchState != null) {
it.expandActionView() it.expandActionView()
setQuery(searchState.searchParameters.searchQuery, false) addSearchParametersInView(searchState.searchParameters)
searchFiltersView?.visibility = View.VISIBLE
} }
setOnQueryTextListener(mOnSearchQueryTextListener)
} }
mLockSearchListeners = false mLockSearchListeners = false
} }

View File

@@ -1 +1,2 @@
* Quick search and dynamic filters #163 #462 #521 * Quick search and dynamic filters #163 #462 #521
* Keep search context #1141

View File

@@ -1 +1,2 @@
* Recherche rapide et filtres dynamiques #163 #462 #521 * Recherche rapide et filtres dynamiques #163 #462 #521
* Garde le contexte de recherche #1141