Skip to content

Commit cfc1edd

Browse files
committed
show proper letters on the fastscroller, no matter the sorting
1 parent 3e78be6 commit cfc1edd

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.reddit.indicatorfastscroll.FastScrollItemIndicator
99
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
1010
import com.simplemobiletools.commons.extensions.*
1111
import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME
12+
import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME
1213
import com.simplemobiletools.commons.helpers.SORT_BY_SURNAME
1314
import com.simplemobiletools.contacts.pro.R
1415
import com.simplemobiletools.contacts.pro.activities.GroupContactsActivity
@@ -242,7 +243,24 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
242243
private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
243244
letter_fastscroller.setupWithRecyclerView(fragment_list, { position ->
244245
try {
245-
val name = contacts[position].getAvatarLetterName(context)
246+
val contact = contacts[position]
247+
var name = when {
248+
contact.isABusinessContact() -> contact.getFullCompany()
249+
context.config.sorting and SORT_BY_SURNAME != 0 && contact.surname.isNotEmpty() -> contact.surname
250+
context.config.sorting and SORT_BY_MIDDLE_NAME != 0 && contact.middleName.isNotEmpty() -> contact.middleName
251+
context.config.sorting and SORT_BY_FIRST_NAME != 0 && contact.firstName.isNotEmpty() -> contact.firstName
252+
context.config.startNameWithSurname -> contact.surname
253+
else -> contact.firstName
254+
}
255+
256+
if (name.isEmpty() && contact.emails.isNotEmpty()) {
257+
name = contact.emails.first().value
258+
}
259+
260+
if (name.isEmpty()) {
261+
name = contact.getNameToDisplay()
262+
}
263+
246264
var character = if (name.isNotEmpty()) name.substring(0, 1) else ""
247265
if (!character.areLettersOnly()) {
248266
character = "#"

app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.simplemobiletools.contacts.pro.models
22

3-
import android.content.Context
43
import android.graphics.Bitmap
54
import android.telephony.PhoneNumberUtils
65
import com.simplemobiletools.commons.extensions.normalizeString
76
import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME
87
import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME
98
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
10-
import com.simplemobiletools.contacts.pro.extensions.config
119
import com.simplemobiletools.contacts.pro.extensions.normalizeNumber
1210
import com.simplemobiletools.contacts.pro.helpers.SMT_PRIVATE
1311

@@ -142,22 +140,4 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m
142140
fun isPrivate() = source == SMT_PRIVATE
143141

144142
fun getSignatureKey() = if (photoUri.isNotEmpty()) photoUri else hashCode()
145-
146-
fun getAvatarLetterName(context: Context): String {
147-
var name = when {
148-
isABusinessContact() -> getFullCompany()
149-
context.config.startNameWithSurname -> surname
150-
else -> firstName
151-
}
152-
153-
if (name.isEmpty() && emails.isNotEmpty()) {
154-
name = emails.first().value
155-
}
156-
157-
if (name.isEmpty()) {
158-
name = getNameToDisplay()
159-
}
160-
161-
return name
162-
}
163143
}

0 commit comments

Comments
 (0)