From 26c8b097c95e626d1f383de3c1f0a83dd307a5d0 Mon Sep 17 00:00:00 2001 From: ismailnurudeen Date: Wed, 29 Mar 2023 10:16:32 +0100 Subject: [PATCH] feat: hide private contacts from recent --- .../dialer/activities/MainActivity.kt | 8 +++++++- .../dialer/fragments/ContactsFragment.kt | 2 +- .../dialer/fragments/FavoritesFragment.kt | 2 +- .../dialer/fragments/RecentsFragment.kt | 13 +++++++++++-- 4 files changed, 20 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 90f45544..73b9a9cc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -531,7 +531,7 @@ class MainActivity : SimpleActivity() { } } } - fun showFilterDialog() { + private fun showFilterDialog() { FilterContactSourcesDialog(this) { favorites_fragment?.refreshItems { if (main_menu.isSearchOpen) { @@ -544,6 +544,12 @@ class MainActivity : SimpleActivity() { getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery()) } } + + recents_fragment.refreshItems{ + if (main_menu.isSearchOpen) { + getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery()) + } + } } } fun cacheContacts(contacts: List) { 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 d62d302c..b0509c19 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt @@ -65,7 +65,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag ContactsHelper(context).getContacts { contacts -> allContacts = contacts - if(SMT_PRIVATE !in context.baseConfig.ignoredContactSources) { + if (SMT_PRIVATE !in context.baseConfig.ignoredContactSources) { val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor) if (privateContacts.isNotEmpty()) { allContacts.addAll(privateContacts) 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 f9905b6d..0b136a8f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt @@ -53,7 +53,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa ContactsHelper(context).getContacts { contacts -> allContacts = contacts - if(SMT_PRIVATE !in context.baseConfig.ignoredContactSources) { + if (SMT_PRIVATE !in context.baseConfig.ignoredContactSources) { val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor) if (privateContacts.isNotEmpty()) { allContacts.addAll(privateContacts) 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 6cff0c97..56b599ab 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt @@ -7,6 +7,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.helpers.MyContactsContentProvider import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALL_LOG +import com.simplemobiletools.commons.helpers.SMT_PRIVATE import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.adapters.RecentCallsAdapter @@ -69,10 +70,18 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage } } } - allRecentCalls = recents + + // hide private contacts from recent calls + if (SMT_PRIVATE in context.baseConfig.ignoredContactSources) { + allRecentCalls = recents.filterNot { recent -> + val privateNumbers = privateContacts.flatMap { it.phoneNumbers }.map { it.value } + recent.phoneNumber in privateNumbers + } as ArrayList + } + activity?.runOnUiThread { - gotRecents(recents) + gotRecents(allRecentCalls) } } }