commit
cd1e076c47
|
@ -1,6 +1,12 @@
|
||||||
Changelog
|
Changelog
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
Version 6.4.1 *(2019-09-16)*
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
* Made duplicate merging more aggressive, compare only by full name
|
||||||
|
* Fixed some theming and duplicate contact issues at the View details screen
|
||||||
|
|
||||||
Version 6.4.0 *(2019-09-15)*
|
Version 6.4.0 *(2019-09-15)*
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ android {
|
||||||
applicationId "com.simplemobiletools.contacts.pro"
|
applicationId "com.simplemobiletools.contacts.pro"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 47
|
versionCode 48
|
||||||
versionName "6.4.0"
|
versionName "6.4.1"
|
||||||
setProperty("archivesBaseName", "contacts")
|
setProperty("archivesBaseName", "contacts")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -572,7 +572,8 @@ class ViewContactActivity : ContactActivity() {
|
||||||
ContactsHelper(this).getDuplicatesOfContact(contact!!, false) { contacts ->
|
ContactsHelper(this).getDuplicatesOfContact(contact!!, false) { contacts ->
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
duplicateContacts.clear()
|
duplicateContacts.clear()
|
||||||
contacts.forEach {
|
val displayContactSources = getVisibleContactSources()
|
||||||
|
contacts.filter { displayContactSources.contains(it.source) }.forEach {
|
||||||
val duplicate = ContactsHelper(this).getContactWithId(it.id, it.isPrivate())
|
val duplicate = ContactsHelper(this).getContactWithId(it.id, it.isPrivate())
|
||||||
if (duplicate != null) {
|
if (duplicate != null) {
|
||||||
duplicateContacts.add(duplicate)
|
duplicateContacts.add(duplicate)
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ContactsHelper(val context: Context) {
|
||||||
|
|
||||||
val contactsSize = contacts.size()
|
val contactsSize = contacts.size()
|
||||||
val showOnlyContactsWithNumbers = context.config.showOnlyContactsWithNumbers
|
val showOnlyContactsWithNumbers = context.config.showOnlyContactsWithNumbers
|
||||||
var tempContacts = ArrayList<Contact>(contactsSize)
|
val tempContacts = ArrayList<Contact>(contactsSize)
|
||||||
val resultContacts = ArrayList<Contact>(contactsSize)
|
val resultContacts = ArrayList<Contact>(contactsSize)
|
||||||
|
|
||||||
(0 until contactsSize).filter {
|
(0 until contactsSize).filter {
|
||||||
|
@ -67,11 +67,7 @@ class ContactsHelper(val context: Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ignoredContactSources.isEmpty() && !getAll) {
|
if (ignoredContactSources.isEmpty() && !getAll) {
|
||||||
tempContacts = tempContacts.distinctBy {
|
tempContacts.filter { displayContactSources.contains(it.source) }.groupBy { it.getNameToDisplay().toLowerCase()}.values.forEach { it ->
|
||||||
it.getHashToCompare()
|
|
||||||
} as ArrayList<Contact>
|
|
||||||
|
|
||||||
tempContacts.filter { displayContactSources.contains(it.source) }.groupBy { "${it.getNameToDisplay().toLowerCase()}${it.emails}" }.values.forEach { it ->
|
|
||||||
if (it.size == 1) {
|
if (it.size == 1) {
|
||||||
resultContacts.add(it.first())
|
resultContacts.add(it.first())
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -108,11 +108,8 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getStringToCompare(): String {
|
fun getStringToCompare(): String {
|
||||||
val newEmails = ArrayList<Email>()
|
|
||||||
emails.mapTo(newEmails) { Email(it.value, 0, "") }
|
|
||||||
|
|
||||||
return copy(id = 0, prefix = "", firstName = getNameToDisplay().toLowerCase(), middleName = "", surname = "", suffix = "", nickname = "", photoUri = "",
|
return copy(id = 0, prefix = "", firstName = getNameToDisplay().toLowerCase(), middleName = "", surname = "", suffix = "", nickname = "", photoUri = "",
|
||||||
phoneNumbers = ArrayList(), events = ArrayList(), source = "", addresses = ArrayList(), emails = newEmails, starred = 0, contactId = 0,
|
phoneNumbers = ArrayList(), emails = ArrayList(), events = ArrayList(), source = "", addresses = ArrayList(), starred = 0, contactId = 0,
|
||||||
thumbnailUri = "", notes = "", groups = ArrayList(), websites = ArrayList(), organization = Organization("", ""), IMs = ArrayList()).toString()
|
thumbnailUri = "", notes = "", groups = ArrayList(), websites = ArrayList(), organization = Organization("", ""), IMs = ArrayList()).toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue