mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
fix #288, add an option to show letters at dialpad
This commit is contained in:
@ -7,6 +7,7 @@ import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.provider.Telephony.Sms.Intents.SECRET_CODE_ACTION
|
||||
import android.telephony.PhoneNumberUtils
|
||||
import android.telephony.TelephonyManager
|
||||
import android.view.KeyEvent
|
||||
import android.view.Menu
|
||||
@ -58,6 +59,11 @@ class DialpadActivity : SimpleActivity() {
|
||||
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_huge, if (isBlackAndWhiteTheme()) Color.BLACK else Color.WHITE)
|
||||
dialpad_call_button.setImageDrawable(callIcon)
|
||||
dialpad_call_button.background.applyColorFilter(getAdjustedPrimaryColor())
|
||||
|
||||
val showLetters = config.showDialpadLetters
|
||||
arrayOf(dialpad_2_letters, dialpad_3_letters, dialpad_4_letters, dialpad_5_letters, dialpad_6_letters, dialpad_7_letters, dialpad_8_letters, dialpad_9_letters).forEach {
|
||||
it.beVisibleIf(showLetters)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@ -159,8 +165,18 @@ class DialpadActivity : SimpleActivity() {
|
||||
return
|
||||
}
|
||||
|
||||
val showLetters = config.showDialpadLetters
|
||||
(dialpad_list.adapter as? ContactsAdapter)?.finishActMode()
|
||||
val filtered = contacts.filter { it.doesContainPhoneNumber(text) } as ArrayList<Contact>
|
||||
val filtered = contacts.filter {
|
||||
val convertedName = PhoneNumberUtils.convertKeypadLettersToDigits(it.getNameToDisplay())
|
||||
it.doesContainPhoneNumber(text) || (showLetters && convertedName.contains(text, true))
|
||||
}.sortedWith(compareBy {
|
||||
if (showLetters) {
|
||||
!it.doesContainPhoneNumber(text)
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}).toMutableList() as ArrayList<Contact>
|
||||
|
||||
ContactsAdapter(this, filtered, null, LOCATION_DIALPAD, null, dialpad_list, dialpad_fastscroller, text) {
|
||||
callContact(it as Contact)
|
||||
|
@ -42,6 +42,7 @@ class SettingsActivity : SimpleActivity() {
|
||||
setupFilterDuplicates()
|
||||
setupShowCallConfirmation()
|
||||
setupShowDialpadButton()
|
||||
setupShowDialpadLetters()
|
||||
setupOnContactClick()
|
||||
updateTextColors(settings_holder)
|
||||
}
|
||||
@ -147,6 +148,14 @@ class SettingsActivity : SimpleActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupShowDialpadLetters() {
|
||||
settings_show_dialpad_letters.isChecked = config.showDialpadLetters
|
||||
settings_show_dialpad_letters_holder.setOnClickListener {
|
||||
settings_show_dialpad_letters.toggle()
|
||||
config.showDialpadLetters = settings_show_dialpad_letters.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupOnContactClick() {
|
||||
settings_on_contact_click.text = getOnContactClickText()
|
||||
settings_on_contact_click_holder.setOnClickListener {
|
||||
|
@ -64,4 +64,8 @@ class Config(context: Context) : BaseConfig(context) {
|
||||
var showDialpadButton: Boolean
|
||||
get() = prefs.getBoolean(SHOW_DIALPAD_BUTTON, true)
|
||||
set(showDialpadButton) = prefs.edit().putBoolean(SHOW_DIALPAD_BUTTON, showDialpadButton).apply()
|
||||
|
||||
var showDialpadLetters: Boolean
|
||||
get() = prefs.getBoolean(SHOW_DIALPAD_LETTERS, false)
|
||||
set(showDialpadLetters) = prefs.edit().putBoolean(SHOW_DIALPAD_LETTERS, showDialpadLetters).apply()
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ const val SHOW_TABS = "show_tabs"
|
||||
const val FILTER_DUPLICATES = "filter_duplicates"
|
||||
const val SHOW_CALL_CONFIRMATION = "show_call_confirmation"
|
||||
const val SHOW_DIALPAD_BUTTON = "show_dialpad_button"
|
||||
const val SHOW_DIALPAD_LETTERS = "show_dialpad_letters"
|
||||
|
||||
const val CONTACT_ID = "contact_id"
|
||||
const val SMT_PRIVATE = "smt_private" // used at the contact source of local contacts hidden from other apps
|
||||
|
Reference in New Issue
Block a user