mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
properly check outgoing call status
This commit is contained in:
@ -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())
|
||||||
|
}
|
@ -3,6 +3,7 @@ package com.simplemobiletools.dialer.services
|
|||||||
import android.telecom.Call
|
import android.telecom.Call
|
||||||
import android.telecom.InCallService
|
import android.telecom.InCallService
|
||||||
import com.simplemobiletools.dialer.activities.CallActivity
|
import com.simplemobiletools.dialer.activities.CallActivity
|
||||||
|
import com.simplemobiletools.dialer.extensions.isOutgoing
|
||||||
import com.simplemobiletools.dialer.extensions.powerManager
|
import com.simplemobiletools.dialer.extensions.powerManager
|
||||||
import com.simplemobiletools.dialer.helpers.CallManager
|
import com.simplemobiletools.dialer.helpers.CallManager
|
||||||
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
||||||
@ -21,7 +22,7 @@ class CallService : InCallService() {
|
|||||||
|
|
||||||
override fun onCallAdded(call: Call) {
|
override fun onCallAdded(call: Call) {
|
||||||
super.onCallAdded(call)
|
super.onCallAdded(call)
|
||||||
if (!powerManager.isInteractive || call.state == Call.STATE_CONNECTING) {
|
if (!powerManager.isInteractive || call.isOutgoing()) {
|
||||||
startActivity(CallActivity.getStartIntent(this))
|
startActivity(CallActivity.getStartIntent(this))
|
||||||
}
|
}
|
||||||
CallManager.call = call
|
CallManager.call = call
|
||||||
|
Reference in New Issue
Block a user