From 56034b98cb0af5ac9b26478d09358bff552b4df0 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 4 Nov 2020 16:09:52 +0100 Subject: [PATCH] implementing Search at the favorites tab --- .../dialer/activities/MainActivity.kt | 10 ++++++++-- .../dialer/fragments/FavoritesFragment.kt | 8 +++++++- 2 files changed, 15 insertions(+), 3 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 9f48b7f1..c907c6c0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -153,7 +153,7 @@ class MainActivity : SimpleActivity() { override fun onQueryTextChange(newText: String): Boolean { if (isSearchOpen) { - contacts_fragment?.onSearchQueryChanged(newText) + getCurrentFragment()?.onSearchQueryChanged(newText) } return true } @@ -168,7 +168,7 @@ class MainActivity : SimpleActivity() { } override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { - contacts_fragment?.onSearchClosed() + getCurrentFragment()?.onSearchClosed() isSearchOpen = false main_dialpad_button.beVisible() return true @@ -306,6 +306,12 @@ class MainActivity : SimpleActivity() { private fun getAllFragments() = arrayListOf(contacts_fragment, favorites_fragment, recents_fragment).toMutableList() as ArrayList + private fun getCurrentFragment(): MyViewPagerFragment? = when (viewpager.currentItem) { + 0 -> contacts_fragment + 1 -> favorites_fragment + else -> recents_fragment + } + private fun getDefaultTab(): Int { return when (config.defaultTab) { TAB_LAST_USED -> config.lastUsedViewPagerPage 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 2c2ffb5a..f61cc49c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt @@ -113,10 +113,16 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa } override fun onSearchClosed() { - + (fragment_list.adapter as? ContactsAdapter)?.updateItems(allContacts) + setupLetterFastscroller(allContacts) } override fun onSearchQueryChanged(text: String) { + val contacts = allContacts.filter { + it.name.contains(text, true) || it.doesContainPhoneNumber(text) + }.toMutableList() as ArrayList + (fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text) + setupLetterFastscroller(contacts) } }