File tree Expand file tree Collapse file tree 6 files changed +40
-6
lines changed
kotlin/com/simplemobiletools/contacts/pro Expand file tree Collapse file tree 6 files changed +40
-6
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ class SettingsActivity : SimpleActivity() {
3434 setupShowPhoneNumbers()
3535 setupShowContactsWithNumbers()
3636 setupStartNameWithSurname()
37+ setupMergeDuplicateContacts()
3738 setupShowCallConfirmation()
3839 setupShowDialpadButton()
3940 setupShowPrivateContacts()
@@ -216,4 +217,12 @@ class SettingsActivity : SimpleActivity() {
216217 config.showCallConfirmation = settings_show_call_confirmation.isChecked
217218 }
218219 }
220+
221+ private fun setupMergeDuplicateContacts () {
222+ settings_merge_duplicate_contacts.isChecked = config.mergeDuplicateContacts
223+ settings_merge_duplicate_contacts_holder.setOnClickListener {
224+ settings_merge_duplicate_contacts.toggle()
225+ config.mergeDuplicateContacts = settings_merge_duplicate_contacts.isChecked
226+ }
227+ }
219228}
Original file line number Diff line number Diff line change @@ -245,9 +245,11 @@ class ViewContactActivity : ContactActivity() {
245245 contactSources = it
246246 runOnUiThread {
247247 setupContactDetails()
248- getDuplicateContacts {
249- if (duplicateContacts.isNotEmpty()) {
250- setupContactDetails()
248+ if (config.mergeDuplicateContacts) {
249+ getDuplicateContacts {
250+ if (duplicateContacts.isNotEmpty()) {
251+ setupContactDetails()
252+ }
251253 }
252254 }
253255 }
Original file line number Diff line number Diff line change @@ -33,8 +33,10 @@ class Config(context: Context) : BaseConfig(context) {
3333 set(onContactClick) = prefs.edit().putInt(ON_CONTACT_CLICK , onContactClick).apply ()
3434
3535 var showContactFields: Int
36- get() = prefs.getInt(SHOW_CONTACT_FIELDS , SHOW_FIRST_NAME_FIELD or SHOW_SURNAME_FIELD or SHOW_PHONE_NUMBERS_FIELD or SHOW_EMAILS_FIELD or
37- SHOW_ADDRESSES_FIELD or SHOW_EVENTS_FIELD or SHOW_NOTES_FIELD or SHOW_GROUPS_FIELD or SHOW_CONTACT_SOURCE_FIELD )
36+ get() = prefs.getInt(
37+ SHOW_CONTACT_FIELDS , SHOW_FIRST_NAME_FIELD or SHOW_SURNAME_FIELD or SHOW_PHONE_NUMBERS_FIELD or SHOW_EMAILS_FIELD or
38+ SHOW_ADDRESSES_FIELD or SHOW_EVENTS_FIELD or SHOW_NOTES_FIELD or SHOW_GROUPS_FIELD or SHOW_CONTACT_SOURCE_FIELD
39+ )
3840 set(showContactFields) = prefs.edit().putInt(SHOW_CONTACT_FIELDS , showContactFields).apply ()
3941
4042 var showTabs: Int
@@ -60,4 +62,8 @@ class Config(context: Context) : BaseConfig(context) {
6062 var showPrivateContacts: Boolean
6163 get() = prefs.getBoolean(SHOW_PRIVATE_CONTACTS , true )
6264 set(showPrivateContacts) = prefs.edit().putBoolean(SHOW_PRIVATE_CONTACTS , showPrivateContacts).apply ()
65+
66+ var mergeDuplicateContacts: Boolean
67+ get() = prefs.getBoolean(MERGE_DUPLICATE_CONTACTS , true )
68+ set(mergeDuplicateContacts) = prefs.edit().putBoolean(MERGE_DUPLICATE_CONTACTS , mergeDuplicateContacts).apply ()
6369}
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ const val SPEED_DIAL = "speed_dial"
2121const val LAST_EXPORT_PATH = " last_export_path"
2222const val WAS_LOCAL_ACCOUNT_INITIALIZED = " was_local_account_initialized"
2323const val SHOW_PRIVATE_CONTACTS = " show_private_contacts"
24+ const val MERGE_DUPLICATE_CONTACTS = " merge_duplicate_contacts"
2425
2526const val SMT_PRIVATE = " smt_private" // used at the contact source of local contacts hidden from other apps
2627const val GROUP = " group"
Original file line number Diff line number Diff line change @@ -72,7 +72,7 @@ class ContactsHelper(val context: Context) {
7272 contacts.valueAt(it)
7373 }
7474
75- if (ignoredContactSources.isEmpty() && ! getAll) {
75+ if (context.config.mergeDuplicateContacts && ignoredContactSources.isEmpty() && ! getAll) {
7676 tempContacts.filter { displayContactSources.contains(it.source) }.groupBy { it.getNameToDisplay().toLowerCase() }.values.forEach { it ->
7777 if (it.size == 1 ) {
7878 resultContacts.add(it.first())
Original file line number Diff line number Diff line change 114114
115115 </RelativeLayout >
116116
117+ <RelativeLayout
118+ android : id =" @+id/settings_merge_duplicate_contacts_holder"
119+ style =" @style/SettingsHolderCheckboxStyle"
120+ android : layout_width =" match_parent"
121+ android : layout_height =" wrap_content"
122+ android : background =" @drawable/ripple_background" >
123+
124+ <com .simplemobiletools.commons.views.MyAppCompatCheckbox
125+ android : id =" @+id/settings_merge_duplicate_contacts"
126+ style =" @style/SettingsCheckboxStyle"
127+ android : layout_width =" match_parent"
128+ android : layout_height =" wrap_content"
129+ android : text =" @string/merge_duplicate_contacts" />
130+
131+ </RelativeLayout >
132+
117133 <RelativeLayout
118134 android : id =" @+id/settings_show_call_confirmation_holder"
119135 style =" @style/SettingsHolderCheckboxStyle"
You can’t perform that action at this time.
0 commit comments