Fixed no missed call notification if app was on call history fragment when it happened

This commit is contained in:
Sylvain Berfini 2021-08-26 10:41:53 +02:00
parent 2e36f1aa86
commit 1a998f4bde
2 changed files with 8 additions and 8 deletions

View file

@ -237,14 +237,14 @@ class MasterCallLogsFragment : MasterFragment<HistoryMasterFragmentBinding, Call
binding.setMissedCallLogsToggleClickListener {
listViewModel.missedCallLogsSelected.value = true
}
coreContext.core.resetMissedCallsCount()
coreContext.notificationsManager.dismissMissedCallNotification()
}
override fun onResume() {
super.onResume()
coreContext.core.resetMissedCallsCount()
coreContext.notificationsManager.dismissMissedCallNotification()
val tabsViewModel = requireActivity().run {
ViewModelProvider(this).get(TabsViewModel::class.java)
}

View file

@ -123,7 +123,7 @@ class NotificationsManager(private val context: Context) {
Call.State.End, Call.State.Error -> dismissCallNotification(call)
Call.State.Released -> {
if (LinphoneUtils.isCallLogMissed(call.callLog)) {
displayMissedCallNotification(call)
displayMissedCallNotification(call.remoteAddress)
}
}
else -> displayCallNotification(call)
@ -435,17 +435,17 @@ class NotificationsManager(private val context: Context) {
}
}
fun displayMissedCallNotification(call: Call) {
val missedCallCount: Int = call.core.missedCallsCount
private fun displayMissedCallNotification(remoteAddress: Address) {
val missedCallCount: Int = coreContext.core.missedCallsCount
val body: String
if (missedCallCount > 1) {
body = context.getString(R.string.missed_calls_notification_body)
.format(missedCallCount)
Log.i("[Notifications Manager] Updating missed calls notification count to $missedCallCount")
} else {
val contact: Contact? = coreContext.contactsManager.findContactByAddress(call.remoteAddress)
val contact: Contact? = coreContext.contactsManager.findContactByAddress(remoteAddress)
body = context.getString(R.string.missed_call_notification_body)
.format(contact?.fullName ?: LinphoneUtils.getDisplayName(call.remoteAddress))
.format(contact?.fullName ?: LinphoneUtils.getDisplayName(remoteAddress))
Log.i("[Notifications Manager] Creating missed call notification")
}