mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
Merge pull request #623 from Merkost/speed_dial_numbers_fix
Fixed speed dial when contact has multiple phone numbers
This commit is contained in:
@ -2,9 +2,12 @@ package com.simplemobiletools.dialer.activities
|
||||
|
||||
import android.os.Bundle
|
||||
import com.google.gson.Gson
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||
import com.simplemobiletools.commons.helpers.ContactsHelper
|
||||
import com.simplemobiletools.commons.helpers.NavigationIcon
|
||||
import com.simplemobiletools.commons.models.PhoneNumber
|
||||
import com.simplemobiletools.commons.models.RadioItem
|
||||
import com.simplemobiletools.commons.models.contacts.Contact
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.adapters.SpeedDialAdapter
|
||||
@ -53,11 +56,28 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
|
||||
}
|
||||
|
||||
SelectContactDialog(this, allContacts) { selectedContact ->
|
||||
speedDialValues.first { it.id == clickedContact.id }.apply {
|
||||
displayName = selectedContact.getNameToDisplay()
|
||||
number = selectedContact.phoneNumbers.first().normalizedNumber
|
||||
if (selectedContact.phoneNumbers.size > 1) {
|
||||
val radioItems = selectedContact.phoneNumbers.mapIndexed { index, item ->
|
||||
RadioItem(index, item.normalizedNumber, item)
|
||||
}
|
||||
val userPhoneNumbersList = selectedContact.phoneNumbers.map { it.value }
|
||||
val checkedItemId = userPhoneNumbersList.indexOf(clickedContact.number)
|
||||
RadioGroupDialog(this, ArrayList(radioItems), checkedItemId = checkedItemId) { selectedValue ->
|
||||
val selectedNumber = selectedValue as PhoneNumber
|
||||
speedDialValues.first { it.id == clickedContact.id }.apply {
|
||||
displayName = selectedContact.getNameToDisplay()
|
||||
number = selectedNumber.normalizedNumber
|
||||
}
|
||||
updateAdapter()
|
||||
}
|
||||
} else {
|
||||
speedDialValues.first { it.id == clickedContact.id }.apply {
|
||||
displayName = selectedContact.getNameToDisplay()
|
||||
number = selectedContact.phoneNumbers.first().normalizedNumber
|
||||
}
|
||||
updateAdapter()
|
||||
}
|
||||
updateAdapter()
|
||||
|
||||
}
|
||||
}.apply {
|
||||
speed_dial_list.adapter = this
|
||||
|
@ -10,7 +10,6 @@ import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.interfaces.RemoveSpeedDialListener
|
||||
import com.simplemobiletools.dialer.models.SpeedDial
|
||||
import kotlinx.android.synthetic.main.item_speed_dial.view.*
|
||||
import java.util.*
|
||||
|
||||
class SpeedDialAdapter(
|
||||
activity: SimpleActivity, var speedDialValues: ArrayList<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
|
||||
|
Reference in New Issue
Block a user