mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-02-21 05:50:41 +01:00
fix #174, add a quick SIM picker at the dialpad
This commit is contained in:
parent
1d1307839c
commit
fc2bfa9714
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -107,4 +107,20 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/dialpad_call_two_button"
|
||||
android:layout_width="@dimen/dialpad_button_size_small"
|
||||
android:layout_height="@dimen/dialpad_button_size_small"
|
||||
android:layout_marginBottom="@dimen/activity_margin"
|
||||
android:background="@drawable/circle_background"
|
||||
android:contentDescription="@string/call_number"
|
||||
android:elevation="@dimen/medium_margin"
|
||||
android:padding="@dimen/normal_margin"
|
||||
android:src="@drawable/ic_phone_two_vector"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/dialpad_call_button"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/dialpad_call_button" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="dialpad_button_size">60dp</dimen>
|
||||
<dimen name="dialpad_button_size_small">50dp</dimen>
|
||||
<dimen name="incoming_call_arrow_size">50dp</dimen>
|
||||
<dimen name="incoming_call_button_size">72dp</dimen>
|
||||
<dimen name="call_notification_button_size">30dp</dimen>
|
||||
|
Loading…
x
Reference in New Issue
Block a user