mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-27 14:40:22 +00:00
Fix cases where first letter is not an integer or character.
This commit is contained in:
committed by
Greyson Parrelli
parent
3ce68a7df8
commit
1a71e1a5ae
@@ -18,6 +18,7 @@ import org.thoughtcrime.securesms.badges.BadgeImageView
|
||||
import org.thoughtcrime.securesms.components.AvatarImageView
|
||||
import org.thoughtcrime.securesms.components.FromTextView
|
||||
import org.thoughtcrime.securesms.components.RecyclerViewFastScroller.FastScrollAdapter
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiUtil
|
||||
import org.thoughtcrime.securesms.components.menu.ActionItem
|
||||
import org.thoughtcrime.securesms.components.menu.SignalContextMenu
|
||||
import org.thoughtcrime.securesms.contacts.LetterHeaderDecoration
|
||||
@@ -341,18 +342,21 @@ open class ContactSearchAdapter(
|
||||
knownRecipient.recipient.getDisplayName(context)
|
||||
}
|
||||
|
||||
var letter = BreakIteratorCompat.getInstance().apply { setText(name) }.take(1)
|
||||
if (letter != null) {
|
||||
letter = letter.trim { it <= ' ' }
|
||||
if (letter.isNotEmpty()) {
|
||||
val firstChar = letter[0]
|
||||
if (Character.isLetterOrDigit(firstChar)) {
|
||||
return firstChar.uppercaseChar().toString()
|
||||
val letter: CharSequence = BreakIteratorCompat.getInstance()
|
||||
.apply { setText(name) }
|
||||
.asSequence()
|
||||
.map { charSequence -> charSequence.trim { it <= ' ' } }
|
||||
.filter { it.isNotEmpty() }
|
||||
.mapNotNull {
|
||||
when {
|
||||
EmojiUtil.isEmoji(it.toString()) -> it
|
||||
Character.isLetterOrDigit(it[0]) -> it[0].uppercaseChar().toString()
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
.firstOrNull() ?: "#"
|
||||
|
||||
return "#"
|
||||
return letter
|
||||
}
|
||||
|
||||
override fun areItemsTheSame(newItem: RecipientModel): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user