improve the handling of SIM picker at call start

This commit is contained in:
tibbi 2020-05-02 20:01:22 +02:00
parent b8c8837aaa
commit 964486fedc
3 changed files with 12 additions and 5 deletions

View File

@ -17,10 +17,14 @@ import android.view.WindowManager
import android.widget.RemoteViews
import androidx.core.app.NotificationCompat
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.MINUTE_SECONDS
import com.simplemobiletools.commons.helpers.isOreoMr1Plus
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.helpers.isQPlus
import com.simplemobiletools.contacts.pro.R
import com.simplemobiletools.contacts.pro.extensions.audioManager
import com.simplemobiletools.contacts.pro.extensions.config
import com.simplemobiletools.contacts.pro.extensions.startCallIntent
import com.simplemobiletools.contacts.pro.helpers.ACCEPT_CALL
import com.simplemobiletools.contacts.pro.helpers.CallManager
import com.simplemobiletools.contacts.pro.helpers.DECLINE_CALL
@ -201,8 +205,10 @@ class CallActivity : SimpleActivity() {
}
private fun showPhoneAccountPicker() {
if (!hasPermission(PERMISSION_READ_PHONE_STATE)) {
return
if (callContact == null || callContact!!.number.isEmpty()) {
toast(R.string.unknown_error_occurred)
} else {
startCallIntent(callContact!!.number)
}
}

View File

@ -46,7 +46,7 @@ class CallManager {
}
fun getCallContact(context: Context): CallContact? {
val callContact = CallContact("", "")
val callContact = CallContact("", "", "")
if (call == null) {
return callContact
}
@ -54,6 +54,7 @@ class CallManager {
val uri = Uri.decode(call!!.details.handle.toString())
if (uri.startsWith("tel:")) {
val number = uri.substringAfter("tel:")
callContact.number = number
callContact.name = context.getNameFromPhoneNumber(number)
callContact.photoUri = context.getPhotoUriFromPhoneNumber(number)
}

View File

@ -1,4 +1,4 @@
package com.simplemobiletools.contacts.pro.models
// a simpler Contact model containing just info needed at the call screen
data class CallContact(var name: String, var photoUri: String)
data class CallContact(var name: String, var photoUri: String, var number: String)