From 3b0ca0ccf060329dde842f66a63e8d69dfa7fe69 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 2 May 2020 21:07:55 +0200 Subject: [PATCH] require the PERMISSION_READ_PHONE_STATE before getting the SIM card to use --- .../contacts/pro/extensions/Activity.kt | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt index 432f5900..354fa41a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Activity.kt @@ -122,19 +122,19 @@ fun SimpleActivity.callContact(contact: Contact) { // used at devices with multiple SIM cards @SuppressLint("MissingPermission") fun SimpleActivity.getHandleToUse(intent: Intent?, phoneNumber: String, callback: (PhoneAccountHandle) -> Unit) { - val defaultHandle = telecomManager.getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_TEL) - when { - intent?.hasExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE) == true -> callback(intent.getParcelableExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE)!!) - 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) - } - defaultHandle != null -> callback(defaultHandle) - else -> { - handlePermission(PERMISSION_READ_PHONE_STATE) { - if (it) { + handlePermission(PERMISSION_READ_PHONE_STATE) { + if (it) { + val defaultHandle = telecomManager.getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_TEL) + when { + intent?.hasExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE) == true -> callback(intent.getParcelableExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE)!!) + 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) + } + defaultHandle != null -> callback(defaultHandle) + else -> { SelectSIMDialog(this, phoneNumber) { handle -> callback(handle) }