mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
fix: launch CallActivity when call is picked from notification
- add CallActivity.getStartIntent method to get the start intent for CallActivity and update in CallNotificationManager and CallService where the CallActivity is started - in CallActionReceiver, start the CallActivity before answering the call
This commit is contained in:
@ -3,6 +3,7 @@ package com.simplemobiletools.dialer.activities
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.KeyguardManager
|
import android.app.KeyguardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@ -29,6 +30,14 @@ import kotlinx.android.synthetic.main.activity_call.*
|
|||||||
import kotlinx.android.synthetic.main.dialpad.*
|
import kotlinx.android.synthetic.main.dialpad.*
|
||||||
|
|
||||||
class CallActivity : SimpleActivity() {
|
class CallActivity : SimpleActivity() {
|
||||||
|
companion object {
|
||||||
|
fun getStartIntent(context: Context): Intent {
|
||||||
|
val openAppIntent = Intent(context, CallActivity::class.java)
|
||||||
|
openAppIntent.flags = Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT or Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
|
return openAppIntent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private var isSpeakerOn = false
|
private var isSpeakerOn = false
|
||||||
private var isMicrophoneOn = true
|
private var isMicrophoneOn = true
|
||||||
private var isCallEnded = false
|
private var isCallEnded = false
|
||||||
|
@ -39,8 +39,7 @@ class CallNotificationManager(private val context: Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val openAppIntent = Intent(context, CallActivity::class.java)
|
val openAppIntent = CallActivity.getStartIntent(context)
|
||||||
openAppIntent.flags = Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
|
|
||||||
val openAppPendingIntent = PendingIntent.getActivity(context, 0, openAppIntent, 0)
|
val openAppPendingIntent = PendingIntent.getActivity(context, 0, openAppIntent, 0)
|
||||||
|
|
||||||
val acceptCallIntent = Intent(context, CallActionReceiver::class.java)
|
val acceptCallIntent = Intent(context, CallActionReceiver::class.java)
|
||||||
|
@ -3,6 +3,7 @@ package com.simplemobiletools.dialer.receivers
|
|||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import com.simplemobiletools.dialer.activities.CallActivity
|
||||||
import com.simplemobiletools.dialer.helpers.ACCEPT_CALL
|
import com.simplemobiletools.dialer.helpers.ACCEPT_CALL
|
||||||
import com.simplemobiletools.dialer.helpers.CallManager
|
import com.simplemobiletools.dialer.helpers.CallManager
|
||||||
import com.simplemobiletools.dialer.helpers.DECLINE_CALL
|
import com.simplemobiletools.dialer.helpers.DECLINE_CALL
|
||||||
@ -10,7 +11,10 @@ import com.simplemobiletools.dialer.helpers.DECLINE_CALL
|
|||||||
class CallActionReceiver : BroadcastReceiver() {
|
class CallActionReceiver : BroadcastReceiver() {
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
when (intent.action) {
|
when (intent.action) {
|
||||||
ACCEPT_CALL -> CallManager.accept()
|
ACCEPT_CALL -> {
|
||||||
|
context.startActivity(CallActivity.getStartIntent(context))
|
||||||
|
CallManager.accept()
|
||||||
|
}
|
||||||
DECLINE_CALL -> CallManager.reject()
|
DECLINE_CALL -> CallManager.reject()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.simplemobiletools.dialer.services
|
package com.simplemobiletools.dialer.services
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
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
|
||||||
@ -18,9 +17,7 @@ class CallService : InCallService() {
|
|||||||
|
|
||||||
override fun onCallAdded(call: Call) {
|
override fun onCallAdded(call: Call) {
|
||||||
super.onCallAdded(call)
|
super.onCallAdded(call)
|
||||||
val intent = Intent(this, CallActivity::class.java)
|
startActivity(CallActivity.getStartIntent(this))
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
|
||||||
startActivity(intent)
|
|
||||||
CallManager.call = call
|
CallManager.call = call
|
||||||
CallManager.inCallService = this
|
CallManager.inCallService = this
|
||||||
CallManager.registerCallback(callListener)
|
CallManager.registerCallback(callListener)
|
||||||
|
Reference in New Issue
Block a user