diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt index 2a966aec..f721619b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt @@ -20,10 +20,7 @@ import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.adapters.ContactsAdapter -import com.simplemobiletools.dialer.extensions.addCharacter -import com.simplemobiletools.dialer.extensions.config -import com.simplemobiletools.dialer.extensions.getKeyEvent -import com.simplemobiletools.dialer.extensions.startCallIntent +import com.simplemobiletools.dialer.extensions.* import com.simplemobiletools.dialer.models.SpeedDial import kotlinx.android.synthetic.main.activity_dialpad.* import kotlinx.android.synthetic.main.activity_dialpad.dialpad_holder @@ -96,13 +93,27 @@ class DialpadActivity : SimpleActivity() { dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#', it) } dialpad_clear_char.setOnClickListener { clearChar(it) } dialpad_clear_char.setOnLongClickListener { clearInput(); true } - dialpad_call_button.setOnClickListener { initCall() } + dialpad_call_button.setOnClickListener { initCall(dialpad_input.value, 0) } dialpad_input.onTextChangeListener { dialpadValueChanged(it) } SimpleContactsHelper(this).getAvailableContacts(false) { gotContacts(it) } disableKeyboardPopping() val adjustedPrimaryColor = getAdjustedPrimaryColor() - val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_vector, adjustedPrimaryColor.getContrastColor()) + val callIconId = if (areMultipleSIMsAvailable()) { + val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_two_vector, adjustedPrimaryColor.getContrastColor()) + dialpad_call_two_button.setImageDrawable(callIcon) + dialpad_call_two_button.background.applyColorFilter(adjustedPrimaryColor) + dialpad_call_two_button.beVisible() + dialpad_call_two_button.setOnClickListener { + initCall(dialpad_input.value, 1) + } + + R.drawable.ic_phone_one_vector + } else { + R.drawable.ic_phone_vector + } + + val callIcon = resources.getColoredDrawableWithColor(callIconId, adjustedPrimaryColor.getContrastColor()) dialpad_call_button.setImageDrawable(callIcon) dialpad_call_button.background.applyColorFilter(adjustedPrimaryColor) @@ -251,9 +262,13 @@ class DialpadActivity : SimpleActivity() { } } - private fun initCall(number: String = dialpad_input.value) { + private fun initCall(number: String = dialpad_input.value, handleIndex: Int) { if (number.isNotEmpty()) { - startCallIntent(number) + if (handleIndex != -1 && areMultipleSIMsAvailable()) { + callContactWithSim(number, handleIndex == 0) + } else { + startCallIntent(number) + } } } @@ -261,7 +276,7 @@ class DialpadActivity : SimpleActivity() { if (dialpad_input.value.isEmpty()) { val speedDial = speedDialValues.firstOrNull { it.id == id } if (speedDial?.isValid() == true) { - initCall(speedDial.number) + initCall(speedDial.number, -1) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Activity.kt index 7c594a6e..1a46ca29 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Activity.kt @@ -25,9 +25,9 @@ fun SimpleActivity.startCallIntent(recipient: String) { } } -fun BaseSimpleActivity.callContactWithSim(recipient: String, useSimOne: Boolean) { +fun BaseSimpleActivity.callContactWithSim(recipient: String, useMainSIM: Boolean) { handlePermission(PERMISSION_READ_PHONE_STATE) { - val wantedSimIndex = if (useSimOne) 0 else 1 + val wantedSimIndex = if (useMainSIM) 0 else 1 val handle = getAvailableSIMCardLabels().sortedBy { it.id }[wantedSimIndex].handle launchCallIntent(recipient, handle) } diff --git a/app/src/main/res/layout/activity_dialpad.xml b/app/src/main/res/layout/activity_dialpad.xml index c987539a..86bc9a9d 100644 --- a/app/src/main/res/layout/activity_dialpad.xml +++ b/app/src/main/res/layout/activity_dialpad.xml @@ -107,4 +107,20 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 74be41d0..54eef688 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,6 +1,7 @@ 60dp + 50dp 50dp 72dp 30dp