mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
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:
@ -22,7 +22,6 @@ import com.simplemobiletools.dialer.extensions.config
|
|||||||
import com.simplemobiletools.dialer.extensions.getHandleToUse
|
import com.simplemobiletools.dialer.extensions.getHandleToUse
|
||||||
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
||||||
import com.simplemobiletools.dialer.helpers.CallManager
|
import com.simplemobiletools.dialer.helpers.CallManager
|
||||||
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
|
||||||
import com.simplemobiletools.dialer.models.CallContact
|
import com.simplemobiletools.dialer.models.CallContact
|
||||||
import java.util.Timer
|
import java.util.Timer
|
||||||
import java.util.TimerTask
|
import java.util.TimerTask
|
||||||
@ -38,7 +37,6 @@ class CallActivity : SimpleActivity() {
|
|||||||
private var proximityWakeLock: PowerManager.WakeLock? = null
|
private var proximityWakeLock: PowerManager.WakeLock? = null
|
||||||
private var callTimer = Timer()
|
private var callTimer = Timer()
|
||||||
private val callContactAvatarHelper by lazy { CallContactAvatarHelper(this) }
|
private val callContactAvatarHelper by lazy { CallContactAvatarHelper(this) }
|
||||||
private val callNotificationManager by lazy { CallNotificationManager(this) }
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
supportActionBar?.hide()
|
supportActionBar?.hide()
|
||||||
@ -54,7 +52,6 @@ class CallActivity : SimpleActivity() {
|
|||||||
callContact = contact
|
callContact = contact
|
||||||
val avatar = callContactAvatarHelper.getCallContactAvatar(contact)
|
val avatar = callContactAvatarHelper.getCallContactAvatar(contact)
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
callNotificationManager.setupNotification()
|
|
||||||
updateOtherPersonsInfo(avatar)
|
updateOtherPersonsInfo(avatar)
|
||||||
checkCalledSIMCard()
|
checkCalledSIMCard()
|
||||||
}
|
}
|
||||||
@ -68,7 +65,6 @@ class CallActivity : SimpleActivity() {
|
|||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
callNotificationManager.cancelNotification()
|
|
||||||
CallManager.unregisterCallback(callCallback)
|
CallManager.unregisterCallback(callCallback)
|
||||||
callTimer.cancel()
|
callTimer.cancel()
|
||||||
if (proximityWakeLock?.isHeld == true) {
|
if (proximityWakeLock?.isHeld == true) {
|
||||||
|
@ -5,8 +5,17 @@ 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.helpers.CallManager
|
import com.simplemobiletools.dialer.helpers.CallManager
|
||||||
|
import com.simplemobiletools.dialer.helpers.CallNotificationManager
|
||||||
|
|
||||||
class CallService : InCallService() {
|
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) {
|
override fun onCallAdded(call: Call) {
|
||||||
super.onCallAdded(call)
|
super.onCallAdded(call)
|
||||||
val intent = Intent(this, CallActivity::class.java)
|
val intent = Intent(this, CallActivity::class.java)
|
||||||
@ -14,11 +23,20 @@ class CallService : InCallService() {
|
|||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
CallManager.call = call
|
CallManager.call = call
|
||||||
CallManager.inCallService = this
|
CallManager.inCallService = this
|
||||||
|
CallManager.registerCallback(callListener)
|
||||||
|
callNotificationManager.setupNotification()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCallRemoved(call: Call) {
|
override fun onCallRemoved(call: Call) {
|
||||||
super.onCallRemoved(call)
|
super.onCallRemoved(call)
|
||||||
CallManager.call = null
|
CallManager.call = null
|
||||||
CallManager.inCallService = null
|
CallManager.inCallService = null
|
||||||
|
callNotificationManager.cancelNotification()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
CallManager.registerCallback(callListener)
|
||||||
|
callNotificationManager.cancelNotification()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user