diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Call.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Call.kt new file mode 100644 index 00000000..ac1b4a49 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Call.kt @@ -0,0 +1,22 @@ +package com.simplemobiletools.dialer.extensions + +import android.os.Build +import android.telecom.Call +import android.telecom.Call.STATE_CONNECTING +import android.telecom.Call.STATE_DIALING +import android.telecom.Call.STATE_SELECT_PHONE_ACCOUNT + +private val OUTGOING_CALL_STATES = arrayOf(STATE_CONNECTING, STATE_DIALING, STATE_SELECT_PHONE_ACCOUNT) + +fun Call.getStateCompat(): Int { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + details.state + } else { + @Suppress("DEPRECATION") + state + } +} + +fun Call.isOutgoing(): Boolean { + return OUTGOING_CALL_STATES.contains(getStateCompat()) +} diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt index 09cb2ae9..67e54194 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.dialer.services import android.telecom.Call import android.telecom.InCallService import com.simplemobiletools.dialer.activities.CallActivity +import com.simplemobiletools.dialer.extensions.isOutgoing import com.simplemobiletools.dialer.extensions.powerManager import com.simplemobiletools.dialer.helpers.CallManager import com.simplemobiletools.dialer.helpers.CallNotificationManager @@ -21,7 +22,7 @@ class CallService : InCallService() { override fun onCallAdded(call: Call) { super.onCallAdded(call) - if (!powerManager.isInteractive || call.state == Call.STATE_CONNECTING) { + if (!powerManager.isInteractive || call.isOutgoing()) { startActivity(CallActivity.getStartIntent(this)) } CallManager.call = call