From b628a8f626e7dde128876b45e7d38458d12070e8 Mon Sep 17 00:00:00 2001 From: Pavel Poley Date: Sun, 15 May 2022 12:24:49 +0300 Subject: [PATCH] handle select sorting when search is active --- .../dialer/activities/MainActivity.kt | 13 ++++++++++++- .../dialer/fragments/ContactsFragment.kt | 3 ++- .../dialer/fragments/FavoritesFragment.kt | 3 ++- .../dialer/fragments/RecentsFragment.kt | 2 +- .../dialer/interfaces/RefreshItemsListener.kt | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt index 6de0cfd0..2b7b227f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -45,6 +45,7 @@ class MainActivity : SimpleActivity() { private var launchedDialer = false private var searchMenuItem: MenuItem? = null private var storedShowTabs = 0 + private var searchQuery = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -176,6 +177,7 @@ class MainActivity : SimpleActivity() { override fun onQueryTextChange(newText: String): Boolean { if (isSearchOpen) { + searchQuery = newText getCurrentFragment()?.onSearchQueryChanged(newText) } return true @@ -475,7 +477,16 @@ class MainActivity : SimpleActivity() { private fun showSortingDialog() { ChangeSortingDialog(this) { - refreshFragments() + favorites_fragment?.refreshItems { + if (isSearchOpen){ + getCurrentFragment()?.onSearchQueryChanged(searchQuery) + } + } + contacts_fragment?.refreshItems { + if (isSearchOpen){ + getCurrentFragment()?.onSearchQueryChanged(searchQuery) + } + } } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt index bb29e758..49bf82dc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt @@ -72,7 +72,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag ) } - override fun refreshItems() { + override fun refreshItems(callback: (() -> Unit)?) { val privateCursor = context?.getMyContactsCursor(false, true) SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> allContacts = contacts @@ -85,6 +85,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag activity?.runOnUiThread { gotContacts(contacts) + callback?.invoke() } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt index 3c7b5018..d354f2e8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt @@ -46,7 +46,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa letter_fastscroller_thumb.thumbColor = properPrimaryColor.getColorStateList() } - override fun refreshItems() { + override fun refreshItems(callback: (() -> Unit)?) { val privateCursor = context?.getMyContactsCursor(true, true) SimpleContactsHelper(context).getAvailableContacts(true) { contacts -> allContacts = contacts @@ -59,6 +59,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa activity?.runOnUiThread { gotContacts(contacts) + callback?.invoke() } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt index 73f521f6..6336ef69 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt @@ -45,7 +45,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage } } - override fun refreshItems() { + override fun refreshItems(callback: (() -> Unit)?) { val privateCursor = context?.getMyContactsCursor(false, true) val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false RecentsHelper(context).getRecentCalls(groupSubsequentCalls) { recents -> diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/interfaces/RefreshItemsListener.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/interfaces/RefreshItemsListener.kt index 1346cfb0..a56225f2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/interfaces/RefreshItemsListener.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/interfaces/RefreshItemsListener.kt @@ -1,5 +1,5 @@ package com.simplemobiletools.dialer.interfaces interface RefreshItemsListener { - fun refreshItems() + fun refreshItems(callback: (() -> Unit)? = null) }