handle the SIM picking before calling only if this is the default dialer app

This commit is contained in:
tibbi 2020-05-04 16:45:18 +02:00
parent 5ab75aed4b
commit 96ce1eabcd

View File

@ -21,17 +21,29 @@ import com.simplemobiletools.contacts.pro.helpers.*
import com.simplemobiletools.contacts.pro.models.Contact import com.simplemobiletools.contacts.pro.models.Contact
fun SimpleActivity.startCallIntent(recipient: String) { fun SimpleActivity.startCallIntent(recipient: String) {
if (isDefaultDialer()) {
getHandleToUse(null, recipient) { handle ->
launchCallIntent(recipient, handle)
}
} else {
launchCallIntent(recipient, null)
}
}
fun SimpleActivity.launchCallIntent(recipient: String, handle: PhoneAccountHandle?) {
handlePermission(PERMISSION_CALL_PHONE) { handlePermission(PERMISSION_CALL_PHONE) {
val action = if (it) Intent.ACTION_CALL else Intent.ACTION_DIAL val action = if (it) Intent.ACTION_CALL else Intent.ACTION_DIAL
getHandleToUse(null, recipient) { handle -> Intent(action).apply {
Intent(action).apply { data = Uri.fromParts("tel", recipient, null)
data = Uri.fromParts("tel", recipient, null)
if (handle != null) {
putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, handle) putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, handle)
if (resolveActivity(packageManager) != null) { }
startActivity(this)
} else { if (resolveActivity(packageManager) != null) {
toast(R.string.no_app_found) startActivity(this)
} } else {
toast(R.string.no_app_found)
} }
} }
} }