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 android.os.Bundle
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
|
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||||
import com.simplemobiletools.commons.helpers.ContactsHelper
|
import com.simplemobiletools.commons.helpers.ContactsHelper
|
||||||
import com.simplemobiletools.commons.helpers.NavigationIcon
|
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.commons.models.contacts.Contact
|
||||||
import com.simplemobiletools.dialer.R
|
import com.simplemobiletools.dialer.R
|
||||||
import com.simplemobiletools.dialer.adapters.SpeedDialAdapter
|
import com.simplemobiletools.dialer.adapters.SpeedDialAdapter
|
||||||
@ -53,11 +56,28 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SelectContactDialog(this, allContacts) { selectedContact ->
|
SelectContactDialog(this, allContacts) { selectedContact ->
|
||||||
speedDialValues.first { it.id == clickedContact.id }.apply {
|
if (selectedContact.phoneNumbers.size > 1) {
|
||||||
displayName = selectedContact.getNameToDisplay()
|
val radioItems = selectedContact.phoneNumbers.mapIndexed { index, item ->
|
||||||
number = selectedContact.phoneNumbers.first().normalizedNumber
|
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 {
|
}.apply {
|
||||||
speed_dial_list.adapter = this
|
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.interfaces.RemoveSpeedDialListener
|
||||||
import com.simplemobiletools.dialer.models.SpeedDial
|
import com.simplemobiletools.dialer.models.SpeedDial
|
||||||
import kotlinx.android.synthetic.main.item_speed_dial.view.*
|
import kotlinx.android.synthetic.main.item_speed_dial.view.*
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class SpeedDialAdapter(
|
class SpeedDialAdapter(
|
||||||
activity: SimpleActivity, var speedDialValues: ArrayList<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
|
activity: SimpleActivity, var speedDialValues: ArrayList<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
|
||||||
|
Reference in New Issue
Block a user