mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-03-03 18:47:52 +01:00
adding a toggle for optional duplicate contact filtering, enabled by default
This commit is contained in:
parent
23aa17df6f
commit
28dd320b9e
@ -48,6 +48,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
private var storedShowContactThumbnails = false
|
||||
private var storedShowPhoneNumbers = false
|
||||
private var storedStartNameWithSurname = false
|
||||
private var storedFilterDuplicates = true
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -118,6 +119,10 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
favorites_fragment?.startNameWithSurnameChanged(configStartNameWithSurname)
|
||||
}
|
||||
|
||||
if (storedFilterDuplicates != config.filterDuplicates) {
|
||||
refreshContacts(ALL_TABS_MASK)
|
||||
}
|
||||
|
||||
if (werePermissionsHandled && !isFirstResume) {
|
||||
if (viewpager.adapter == null) {
|
||||
initFragments()
|
||||
@ -175,6 +180,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
storedShowContactThumbnails = showContactThumbnails
|
||||
storedShowPhoneNumbers = showPhoneNumbers
|
||||
storedStartNameWithSurname = startNameWithSurname
|
||||
storedFilterDuplicates = filterDuplicates
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,7 @@ class SettingsActivity : SimpleActivity() {
|
||||
setupShowContactThumbnails()
|
||||
setupShowPhoneNumbers()
|
||||
setupStartNameWithSurname()
|
||||
setupFilterDuplicates()
|
||||
setupOnContactClick()
|
||||
updateTextColors(settings_holder)
|
||||
}
|
||||
@ -97,6 +98,14 @@ class SettingsActivity : SimpleActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupFilterDuplicates() {
|
||||
settings_filter_duplicates.isChecked = config.filterDuplicates
|
||||
settings_filter_duplicates_holder.setOnClickListener {
|
||||
settings_filter_duplicates.toggle()
|
||||
config.filterDuplicates = settings_filter_duplicates.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupOnContactClick() {
|
||||
settings_on_contact_click.text = getOnContactClickText()
|
||||
settings_on_contact_click_holder.setOnClickListener {
|
||||
|
@ -44,4 +44,8 @@ class Config(context: Context) : BaseConfig(context) {
|
||||
get() = prefs.getInt(SHOW_CONTACT_FIELDS, SHOW_FIRST_NAME_FIELD or SHOW_SURNAME_FIELD or SHOW_PHONE_NUMBERS_FIELD or SHOW_EMAILS_FIELD or
|
||||
SHOW_ADDRESSES_FIELD or SHOW_EVENTS_FIELD or SHOW_NOTES_FIELD or SHOW_GROUPS_FIELD or SHOW_CONTACT_SOURCE_FIELD)
|
||||
set(showContactFields) = prefs.edit().putInt(SHOW_CONTACT_FIELDS, showContactFields).apply()
|
||||
|
||||
var filterDuplicates: Boolean
|
||||
get() = prefs.getBoolean(FILTER_DUPLICATES, true)
|
||||
set(filterDuplicates) = prefs.edit().putBoolean(FILTER_DUPLICATES, filterDuplicates).apply()
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ const val LOCAL_ACCOUNT_NAME = "local_account_name"
|
||||
const val LOCAL_ACCOUNT_TYPE = "local_account_type"
|
||||
const val ON_CONTACT_CLICK = "on_contact_click"
|
||||
const val SHOW_CONTACT_FIELDS = "show_contact_fields"
|
||||
const val FILTER_DUPLICATES = "filter_duplicates"
|
||||
|
||||
const val CONTACT_ID = "contact_id"
|
||||
const val SMT_PRIVATE = "smt_private" // used at the contact source of local contacts hidden from other apps
|
||||
|
@ -41,9 +41,11 @@ class ContactsHelper(val activity: BaseSimpleActivity) {
|
||||
val contactsSize = contacts.size()
|
||||
var resultContacts = ArrayList<Contact>(contactsSize)
|
||||
(0 until contactsSize).mapTo(resultContacts) { contacts.valueAt(it) }
|
||||
resultContacts = resultContacts.distinctBy {
|
||||
it.getHashToCompare()
|
||||
} as ArrayList<Contact>
|
||||
if (activity.config.filterDuplicates) {
|
||||
resultContacts = resultContacts.distinctBy {
|
||||
it.getHashToCompare()
|
||||
} as ArrayList<Contact>
|
||||
}
|
||||
|
||||
// groups are obtained with contactID, not rawID, so assign them to proper contacts like this
|
||||
val groups = getContactGroups(getStoredGroups())
|
||||
|
@ -193,6 +193,29 @@
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_filter_duplicates_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:paddingBottom="@dimen/activity_margin"
|
||||
android:paddingLeft="@dimen/normal_margin"
|
||||
android:paddingRight="@dimen/normal_margin"
|
||||
android:paddingTop="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||
android:id="@+id/settings_filter_duplicates"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:clickable="false"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingStart="@dimen/medium_margin"
|
||||
android:text="@string/filter_duplicates"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_on_contact_click_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Show favorites tab</string>
|
||||
<string name="show_groups_tab">Show groups tab</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Email</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Εμφάνιση καρτέλας αγαπημένων</string>
|
||||
<string name="show_groups_tab">Εμφάνιση καρτέλας ομάδων</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Email</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Afficher l\'onglet favoris</string>
|
||||
<string name="show_groups_tab">Afficher l\'onglet groupes</string>
|
||||
<string name="manage_shown_contact_fields">Configurer l\'affichage des champs des contacts</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-mail</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Prikaži karticu favorita</string>
|
||||
<string name="show_groups_tab">Prikaži karticu grupa</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-pošta</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Show favorites tab</string>
|
||||
<string name="show_groups_tab">Show groups tab</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">이메일</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Rodyti mėgiamiausiųjų skirtuką</string>
|
||||
<string name="show_groups_tab">Rodyti grupių skirtuką</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Elektroninis paštas</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Mostrar favoritos</string>
|
||||
<string name="show_groups_tab">Mostrar grupos</string>
|
||||
<string name="manage_shown_contact_fields">Gerir campos a exibir</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-mail</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Показывать вкладку избранного</string>
|
||||
<string name="show_groups_tab">Показывать вкладку групп</string>
|
||||
<string name="manage_shown_contact_fields">Управление отображаемыми полями контактов</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Эл. почта</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Zobraziť okno s obľúbenými</string>
|
||||
<string name="show_groups_tab">Zobraziť okno so skupinami</string>
|
||||
<string name="manage_shown_contact_fields">Spravovať zobrazené polia kontaktov</string>
|
||||
<string name="filter_out_duplicates">Pokúsiť sa vyfiltrovať duplicitné kontakty</string>
|
||||
<string name="filter_duplicates">Pokúsiť sa vyfiltrovať duplicitné kontakty</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Email</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Visa fliken Favoriter</string>
|
||||
<string name="show_groups_tab">Visa fliken Grupper</string>
|
||||
<string name="manage_shown_contact_fields">Hantera visade kontaktfält</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-post</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">顯示我的最愛頁面</string>
|
||||
<string name="show_groups_tab">顯示群組頁面</string>
|
||||
<string name="manage_shown_contact_fields">管理顯示的聯絡人欄位</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">電子信箱</string>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="show_favorites_tab">Show favorites tab</string>
|
||||
<string name="show_groups_tab">Show groups tab</string>
|
||||
<string name="manage_shown_contact_fields">Manage shown contact fields</string>
|
||||
<string name="filter_out_duplicates">Try filtering out duplicate contacts</string>
|
||||
<string name="filter_duplicates">Try filtering out duplicate contacts</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">Email</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user