aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
diff options
context:
space:
mode:
authorFabian Henneke <FabianHenneke@users.noreply.github.com>2020-04-14 21:27:51 +0200
committerGitHub <noreply@github.com>2020-04-15 00:57:51 +0530
commit75a70543b3def38d3e89fce489c2c99c1bb45d5f (patch)
tree9db9c37111bcb6ee76dfb6c8cc3097f6d8bb4480 /app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
parentec8bcae8fafa638e9e2e76ee041fa2db5bd292e6 (diff)
downloadHardenedPass-75a70543b3def38d3e89fce489c2c99c1bb45d5f.tar.gz
HardenedPass-75a70543b3def38d3e89fce489c2c99c1bb45d5f.zip
Improve search logic and UI (#703)
* Don't list the current directory in search results * Scroll to top result when search term is changed * Match relative path in StrictDomain filter mode * Improve and document DirectoryStructure null handling Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt14
1 files changed, 11 insertions, 3 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
index f5d9b3ab..e4551f1c 100644
--- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
@@ -124,10 +124,18 @@ class PasswordFragment : Fragment() {
// and not on folder navigations since the latter leads to too many removal animations.
(recyclerView.itemAnimator as OnOffItemAnimator).isEnabled = result.isFiltered
recyclerAdapter.submitList(result.passwordItems) {
- recyclerViewStateToRestore?.let {
- recyclerView.layoutManager!!.onRestoreInstanceState(it)
+ if (result.isFiltered) {
+ // When the result is filtered, we always scroll to the top since that is where
+ // the best fuzzy match appears.
+ recyclerView.scrollToPosition(0)
+ } else {
+ // When the result is not filtered and there is a saved scroll position for it,
+ // we try to restore it.
+ recyclerViewStateToRestore?.let {
+ recyclerView.layoutManager!!.onRestoreInstanceState(it)
+ }
+ recyclerViewStateToRestore = null
}
- recyclerViewStateToRestore = null
}
}
}