improve contact sorting at New Conversation, prefer names starting with letters
This commit is contained in:
parent
96e78e3ddc
commit
d98c1abb96
3 changed files with 24 additions and 7 deletions
|
|
@ -1,3 +1,24 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
data class Contact(val id: Int, var name: String, var photoUri: String, var phoneNumber: String)
|
||||
import com.simplemobiletools.commons.extensions.normalizeString
|
||||
|
||||
data class Contact(val id: Int, var name: String, var photoUri: String, var phoneNumber: String) : Comparable<Contact> {
|
||||
override fun compareTo(other: Contact): Int {
|
||||
val firstString = name.normalizeString()
|
||||
val secondString = other.name.normalizeString()
|
||||
|
||||
return if (firstString.firstOrNull()?.isLetter() == true && secondString.firstOrNull()?.isLetter() == false) {
|
||||
-1
|
||||
} else if (firstString.firstOrNull()?.isLetter() == false && secondString.firstOrNull()?.isLetter() == true) {
|
||||
1
|
||||
} else {
|
||||
if (firstString.isEmpty() && secondString.isNotEmpty()) {
|
||||
1
|
||||
} else if (firstString.isNotEmpty() && secondString.isEmpty()) {
|
||||
-1
|
||||
} else {
|
||||
firstString.compareTo(secondString, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue