fixing some search related glitches

This commit is contained in:
tibbi
2022-06-24 17:56:05 +02:00
parent c0372ecbc1
commit e7c9257378

View File

@@ -190,7 +190,10 @@ class MainActivity : SimpleActivity() {
} }
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
getCurrentFragment()?.onSearchClosed() if (isSearchOpen) {
getCurrentFragment()?.onSearchClosed()
}
isSearchOpen = false isSearchOpen = false
main_dialpad_button.beVisible() main_dialpad_button.beVisible()
return true return true
@@ -259,7 +262,9 @@ class MainActivity : SimpleActivity() {
view_pager.offscreenPageLimit = 2 view_pager.offscreenPageLimit = 2
view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) { override fun onPageScrollStateChanged(state: Int) {
searchMenuItem?.collapseActionView() if (state == ViewPager.SCROLL_STATE_SETTLING) {
closeSearch()
}
} }
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
@@ -447,11 +452,13 @@ class MainActivity : SimpleActivity() {
} }
private fun launchSettings() { private fun launchSettings() {
closeSearch()
hideKeyboard() hideKeyboard()
startActivity(Intent(applicationContext, SettingsActivity::class.java)) startActivity(Intent(applicationContext, SettingsActivity::class.java))
} }
private fun launchAbout() { private fun launchAbout() {
closeSearch()
val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL
val faqItems = arrayListOf( val faqItems = arrayListOf(
@@ -474,6 +481,7 @@ class MainActivity : SimpleActivity() {
getCurrentFragment()?.onSearchQueryChanged(searchQuery) getCurrentFragment()?.onSearchQueryChanged(searchQuery)
} }
} }
contacts_fragment?.refreshItems { contacts_fragment?.refreshItems {
if (isSearchOpen) { if (isSearchOpen) {
getCurrentFragment()?.onSearchQueryChanged(searchQuery) getCurrentFragment()?.onSearchQueryChanged(searchQuery)
@@ -482,6 +490,15 @@ class MainActivity : SimpleActivity() {
} }
} }
private fun closeSearch() {
if (isSearchOpen) {
getAllFragments().forEach {
it?.onSearchQueryChanged("")
}
searchMenuItem?.collapseActionView()
}
}
fun cacheContacts(contacts: List<SimpleContact>) { fun cacheContacts(contacts: List<SimpleContact>) {
try { try {
cachedContacts.clear() cachedContacts.clear()