mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-02-16 03:20:51 +01:00
fix #107, add a top menu item for using SIM 1 or 2
This commit is contained in:
parent
0e115c35af
commit
bc6d0d855c
@ -56,6 +56,6 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:5.32.18'
|
||||
implementation 'com.simplemobiletools:commons:5.32.19'
|
||||
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'
|
||||
}
|
||||
|
@ -25,6 +25,8 @@ import com.simplemobiletools.commons.models.SimpleContact
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.extensions.areMultipleSIMsAvailable
|
||||
import com.simplemobiletools.dialer.extensions.callContactWithSim
|
||||
import com.simplemobiletools.dialer.extensions.startContactDetailsIntent
|
||||
import com.simplemobiletools.dialer.interfaces.RefreshItemsListener
|
||||
|
||||
@ -42,7 +44,12 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList<SimpleCo
|
||||
override fun getActionMenuId() = R.menu.cab_contacts
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {
|
||||
val hasMultipleSIMs = activity.areMultipleSIMsAvailable()
|
||||
|
||||
menu.apply {
|
||||
findItem(R.id.cab_call_sim_1).isVisible = hasMultipleSIMs && isOneItemSelected()
|
||||
findItem(R.id.cab_call_sim_2).isVisible = hasMultipleSIMs && isOneItemSelected()
|
||||
|
||||
findItem(R.id.cab_delete).isVisible = showDeleteButton
|
||||
findItem(R.id.cab_create_shortcut).isVisible = isOneItemSelected() && isOreoPlus()
|
||||
findItem(R.id.cab_view_details).isVisible = isOneItemSelected()
|
||||
@ -55,6 +62,8 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList<SimpleCo
|
||||
}
|
||||
|
||||
when (id) {
|
||||
R.id.cab_call_sim_1 -> callContact(true)
|
||||
R.id.cab_call_sim_2 -> callContact(false)
|
||||
R.id.cab_delete -> askConfirmDelete()
|
||||
R.id.cab_send_sms -> sendSMS()
|
||||
R.id.cab_view_details -> viewContactDetails()
|
||||
@ -98,6 +107,12 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList<SimpleCo
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
private fun callContact(useSimOne: Boolean) {
|
||||
val contact = getSelectedItems().firstOrNull() ?: return
|
||||
activity.callContactWithSim(contact.phoneNumbers.first(), useSimOne)
|
||||
}
|
||||
|
||||
private fun sendSMS() {
|
||||
val numbers = getSelectedItems().map { it.phoneNumbers.first() }
|
||||
val recipient = TextUtils.join(";", numbers)
|
||||
|
@ -18,6 +18,7 @@ import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.extensions.areMultipleSIMsAvailable
|
||||
import com.simplemobiletools.dialer.extensions.callContactWithSim
|
||||
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||
import com.simplemobiletools.dialer.interfaces.RefreshItemsListener
|
||||
import com.simplemobiletools.dialer.models.RecentCall
|
||||
@ -43,7 +44,12 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
override fun getActionMenuId() = R.menu.cab_recent_calls
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {
|
||||
val hasMultipleSIMs = activity.areMultipleSIMsAvailable()
|
||||
|
||||
menu.apply {
|
||||
findItem(R.id.cab_call_sim_1).isVisible = hasMultipleSIMs && isOneItemSelected()
|
||||
findItem(R.id.cab_call_sim_2).isVisible = hasMultipleSIMs && isOneItemSelected()
|
||||
|
||||
findItem(R.id.cab_block_number).isVisible = isNougatPlus()
|
||||
findItem(R.id.cab_add_number).isVisible = isOneItemSelected()
|
||||
findItem(R.id.cab_copy_number).isVisible = isOneItemSelected()
|
||||
@ -56,6 +62,8 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
}
|
||||
|
||||
when (id) {
|
||||
R.id.cab_call_sim_1 -> callContact(true)
|
||||
R.id.cab_call_sim_2 -> callContact(false)
|
||||
R.id.cab_block_number -> askConfirmBlock()
|
||||
R.id.cab_add_number -> addNumberToContact()
|
||||
R.id.cab_send_sms -> sendSMS()
|
||||
@ -101,6 +109,11 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
incomingMissedCallIcon = resources.getColoredDrawableWithColor(R.drawable.ic_incoming_call_vector, redColor)
|
||||
}
|
||||
|
||||
private fun callContact(useSimOne: Boolean) {
|
||||
val recentCall = getSelectedItems().firstOrNull() ?: return
|
||||
activity.callContactWithSim(recentCall.phoneNumber, useSimOne)
|
||||
}
|
||||
|
||||
private fun askConfirmBlock() {
|
||||
val numbers = TextUtils.join(", ", getSelectedItems().distinctBy { it.phoneNumber }.map { it.phoneNumber })
|
||||
val baseString = R.string.block_confirmation
|
||||
|
@ -8,6 +8,7 @@ import android.provider.ContactsContract
|
||||
import android.telecom.PhoneAccount
|
||||
import android.telecom.PhoneAccountHandle
|
||||
import android.telecom.TelecomManager
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import com.simplemobiletools.commons.models.SimpleContact
|
||||
@ -25,6 +26,14 @@ fun SimpleActivity.startCallIntent(recipient: String) {
|
||||
}
|
||||
}
|
||||
|
||||
fun BaseSimpleActivity.callContactWithSim(recipient: String, useSimOne: Boolean) {
|
||||
handlePermission(PERMISSION_READ_PHONE_STATE) {
|
||||
val wantedSimIndex = if (useSimOne) 0 else 1
|
||||
val handle = getAvailableSIMCardLabels().sortedBy { it.id }[wantedSimIndex].handle
|
||||
launchCallIntent(recipient, handle)
|
||||
}
|
||||
}
|
||||
|
||||
// handle private contacts differently, only Simple Contacts Pro can open them
|
||||
fun Activity.startContactDetailsIntent(contact: SimpleContact) {
|
||||
val simpleContacts = "com.simplemobiletools.contacts.pro"
|
||||
@ -65,8 +74,8 @@ fun SimpleActivity.getHandleToUse(intent: Intent?, phoneNumber: String, callback
|
||||
config.getCustomSIM(phoneNumber)?.isNotEmpty() == true -> {
|
||||
val storedLabel = Uri.decode(config.getCustomSIM(phoneNumber))
|
||||
val availableSIMs = getAvailableSIMCardLabels()
|
||||
val firstornull = availableSIMs.firstOrNull { it.label == storedLabel }?.handle ?: availableSIMs.first().handle
|
||||
callback(firstornull)
|
||||
val firstOrNull = availableSIMs.firstOrNull { it.label == storedLabel }?.handle ?: availableSIMs.first().handle
|
||||
callback(firstOrNull)
|
||||
}
|
||||
defaultHandle != null -> callback(defaultHandle)
|
||||
else -> {
|
||||
|
@ -1,6 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/cab_call_sim_1"
|
||||
android:icon="@drawable/ic_phone_one_vector"
|
||||
android:title="@string/call_from_sim_1"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_call_sim_2"
|
||||
android:icon="@drawable/ic_phone_two_vector"
|
||||
android:title="@string/call_from_sim_2"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_delete"
|
||||
android:icon="@drawable/ic_delete_vector"
|
||||
@ -8,7 +18,7 @@
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_view_details"
|
||||
android:icon="@drawable/ic_view_contact_details"
|
||||
android:icon="@drawable/ic_view_contact_details_vector"
|
||||
android:title="@string/view_contact_details"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
|
@ -1,6 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/cab_call_sim_1"
|
||||
android:icon="@drawable/ic_phone_one_vector"
|
||||
android:title="@string/call_from_sim_1"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_call_sim_2"
|
||||
android:icon="@drawable/ic_phone_two_vector"
|
||||
android:title="@string/call_from_sim_2"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_add_number"
|
||||
android:icon="@drawable/ic_add_person_vector"
|
||||
|
Loading…
x
Reference in New Issue
Block a user