ref: handle notification in CallService
- remove notification handling from CallActivity - handle notification in CallService, including adding a Call.Callback method to update notification when the call state changes
This commit is contained in:
parent
e032bdddce
commit
288b50da7f
|
@ -22,7 +22,6 @@ import com.simplemobiletools.dialer.extensions.config
|
|||
import com.simplemobiletools.dialer.extensions.getHandleToUse
|
||||
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
||||
import com.simplemobiletools.dialer.helpers.CallManager
|
||||
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
||||
import com.simplemobiletools.dialer.models.CallContact
|
||||
import java.util.Timer
|
||||
import java.util.TimerTask
|
||||
|
@ -38,7 +37,6 @@ class CallActivity : SimpleActivity() {
|
|||
private var proximityWakeLock: PowerManager.WakeLock? = null
|
||||
private var callTimer = Timer()
|
||||
private val callContactAvatarHelper by lazy { CallContactAvatarHelper(this) }
|
||||
private val callNotificationManager by lazy { CallNotificationManager(this) }
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
supportActionBar?.hide()
|
||||
|
@ -54,7 +52,6 @@ class CallActivity : SimpleActivity() {
|
|||
callContact = contact
|
||||
val avatar = callContactAvatarHelper.getCallContactAvatar(contact)
|
||||
runOnUiThread {
|
||||
callNotificationManager.setupNotification()
|
||||
updateOtherPersonsInfo(avatar)
|
||||
checkCalledSIMCard()
|
||||
}
|
||||
|
@ -68,7 +65,6 @@ class CallActivity : SimpleActivity() {
|
|||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
callNotificationManager.cancelNotification()
|
||||
CallManager.unregisterCallback(callCallback)
|
||||
callTimer.cancel()
|
||||
if (proximityWakeLock?.isHeld == true) {
|
||||
|
|
|
@ -5,8 +5,17 @@ import android.telecom.Call
|
|||
import android.telecom.InCallService
|
||||
import com.simplemobiletools.dialer.activities.CallActivity
|
||||
import com.simplemobiletools.dialer.helpers.CallManager
|
||||
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
||||
|
||||
class CallService : InCallService() {
|
||||
private val callNotificationManager by lazy { CallNotificationManager(this) }
|
||||
private val callListener = object : Call.Callback() {
|
||||
override fun onStateChanged(call: Call, state: Int) {
|
||||
super.onStateChanged(call, state)
|
||||
callNotificationManager.setupNotification()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCallAdded(call: Call) {
|
||||
super.onCallAdded(call)
|
||||
val intent = Intent(this, CallActivity::class.java)
|
||||
|
@ -14,11 +23,20 @@ class CallService : InCallService() {
|
|||
startActivity(intent)
|
||||
CallManager.call = call
|
||||
CallManager.inCallService = this
|
||||
CallManager.registerCallback(callListener)
|
||||
callNotificationManager.setupNotification()
|
||||
}
|
||||
|
||||
override fun onCallRemoved(call: Call) {
|
||||
super.onCallRemoved(call)
|
||||
CallManager.call = null
|
||||
CallManager.inCallService = null
|
||||
callNotificationManager.cancelNotification()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
CallManager.registerCallback(callListener)
|
||||
callNotificationManager.cancelNotification()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue