fill clean phone numbers only if we are going to filter duplicates

This commit is contained in:
tibbi 2018-09-04 10:23:27 +02:00
parent 26c4da4f69
commit d0596df5f3
2 changed files with 11 additions and 4 deletions

View File

@ -153,6 +153,7 @@ class ContactsHelper(val activity: Activity) {
cursor?.close() cursor?.close()
} }
val filterDuplicates = activity.config.filterDuplicates
val phoneNumbers = getPhoneNumbers(null) val phoneNumbers = getPhoneNumbers(null)
var size = phoneNumbers.size() var size = phoneNumbers.size()
for (i in 0 until size) { for (i in 0 until size) {
@ -161,12 +162,14 @@ class ContactsHelper(val activity: Activity) {
val numbers = phoneNumbers.valueAt(i) val numbers = phoneNumbers.valueAt(i)
contacts[key].phoneNumbers = numbers contacts[key].phoneNumbers = numbers
if (filterDuplicates) {
// remove all spaces, dashes etc from numbers for easier comparing, used only at list views // remove all spaces, dashes etc from numbers for easier comparing, used only at list views
numbers.forEach { numbers.forEach {
numbers.mapTo(contacts[key].cleanPhoneNumbers) { PhoneNumber(it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), ""), 0, "") } numbers.mapTo(contacts[key].cleanPhoneNumbers) { PhoneNumber(it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), ""), 0, "") }
} }
} }
} }
}
val nicknames = getNicknames() val nicknames = getNicknames()
size = nicknames.size() size = nicknames.size()

View File

@ -16,6 +16,7 @@ import com.simplemobiletools.commons.extensions.getBlobValue
import com.simplemobiletools.commons.extensions.getIntValue import com.simplemobiletools.commons.extensions.getIntValue
import com.simplemobiletools.commons.extensions.getLongValue import com.simplemobiletools.commons.extensions.getLongValue
import com.simplemobiletools.commons.extensions.getStringValue import com.simplemobiletools.commons.extensions.getStringValue
import com.simplemobiletools.contacts.extensions.config
import com.simplemobiletools.contacts.extensions.getByteArray import com.simplemobiletools.contacts.extensions.getByteArray
import com.simplemobiletools.contacts.extensions.getPhotoThumbnailSize import com.simplemobiletools.contacts.extensions.getPhotoThumbnailSize
import com.simplemobiletools.contacts.models.* import com.simplemobiletools.contacts.models.*
@ -257,6 +258,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
fun getContacts(activity: Activity, selection: String? = null, selectionArgs: Array<String>? = null): ArrayList<Contact> { fun getContacts(activity: Activity, selection: String? = null, selectionArgs: Array<String>? = null): ArrayList<Contact> {
val storedGroups = ContactsHelper(activity).getStoredGroups() val storedGroups = ContactsHelper(activity).getStoredGroups()
val filterDuplicates = activity.config.filterDuplicates
val contacts = ArrayList<Contact>() val contacts = ArrayList<Contact>()
val projection = arrayOf(COL_ID, COL_PREFIX, COL_FIRST_NAME, COL_MIDDLE_NAME, COL_SURNAME, COL_SUFFIX, COL_NICKNAME, COL_PHONE_NUMBERS, val projection = arrayOf(COL_ID, COL_PREFIX, COL_FIRST_NAME, COL_MIDDLE_NAME, COL_SURNAME, COL_SUFFIX, COL_NICKNAME, COL_PHONE_NUMBERS,
COL_EMAILS, COL_EVENTS, COL_STARRED, COL_PHOTO, COL_ADDRESSES, COL_NOTES, COL_GROUPS, COL_COMPANY, COL_JOB_POSITION, COL_WEBSITES) COL_EMAILS, COL_EVENTS, COL_STARRED, COL_PHOTO, COL_ADDRESSES, COL_NOTES, COL_GROUPS, COL_COMPANY, COL_JOB_POSITION, COL_WEBSITES)
@ -336,7 +338,9 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
?: ArrayList(1) ?: ArrayList(1)
val cleanPhoneNumbers = ArrayList<PhoneNumber>() val cleanPhoneNumbers = ArrayList<PhoneNumber>()
if (filterDuplicates) {
phoneNumbers.mapTo(cleanPhoneNumbers) { PhoneNumber(it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), ""), 0, "") } phoneNumbers.mapTo(cleanPhoneNumbers) { PhoneNumber(it.value.replace(PHONE_NUMBER_PATTERN.toRegex(), ""), 0, "") }
}
val contact = Contact(id, prefix, firstName, middleName, surname, suffix, nickname, "", phoneNumbers, emails, addresses, val contact = Contact(id, prefix, firstName, middleName, surname, suffix, nickname, "", phoneNumbers, emails, addresses,
events, SMT_PRIVATE, starred, id, "", photo, notes, groups, organization, websites, cleanPhoneNumbers) events, SMT_PRIVATE, starred, id, "", photo, notes, groups, organization, websites, cleanPhoneNumbers)