Fixed call log showed as missed in notification but not in call history list

This commit is contained in:
Sylvain Berfini 2020-10-23 20:40:34 +02:00
parent 79bad283e2
commit d4a8bdfa38
3 changed files with 10 additions and 5 deletions

View file

@ -26,6 +26,7 @@ import org.linphone.contact.ContactsUpdatedListenerStub
import org.linphone.core.* import org.linphone.core.*
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.utils.Event import org.linphone.utils.Event
import org.linphone.utils.LinphoneUtils
import org.linphone.utils.TimestampUtils import org.linphone.utils.TimestampUtils
class CallLogsListViewModel : ViewModel() { class CallLogsListViewModel : ViewModel() {
@ -113,7 +114,7 @@ class CallLogsListViewModel : ViewModel() {
previousCallLogGroup = GroupedCallLogViewModel(callLog) previousCallLogGroup = GroupedCallLogViewModel(callLog)
} }
if (callLog.status == Call.Status.Missed) { if (LinphoneUtils.isCallLogMissed(callLog)) {
if (previousMissedCallLogGroup == null) { if (previousMissedCallLogGroup == null) {
previousMissedCallLogGroup = GroupedCallLogViewModel(callLog) previousMissedCallLogGroup = GroupedCallLogViewModel(callLog)
} else if (previousMissedCallLogGroup.lastCallLog.localAddress.weakEqual(callLog.localAddress) && previousMissedCallLogGroup.lastCallLog.remoteAddress.weakEqual(callLog.remoteAddress)) { } else if (previousMissedCallLogGroup.lastCallLog.localAddress.weakEqual(callLog.localAddress) && previousMissedCallLogGroup.lastCallLog.remoteAddress.weakEqual(callLog.remoteAddress)) {

View file

@ -123,10 +123,7 @@ class NotificationsManager(private val context: Context) {
Call.State.IncomingEarlyMedia, Call.State.IncomingReceived -> displayIncomingCallNotification(call) Call.State.IncomingEarlyMedia, Call.State.IncomingReceived -> displayIncomingCallNotification(call)
Call.State.End, Call.State.Error -> dismissCallNotification(call) Call.State.End, Call.State.Error -> dismissCallNotification(call)
Call.State.Released -> { Call.State.Released -> {
if (call.dir == Call.Dir.Incoming && if (LinphoneUtils.isCallLogMissed(call.callLog)) {
(call.callLog.status == Call.Status.Missed ||
call.callLog.status == Call.Status.Aborted ||
call.callLog.status == Call.Status.EarlyAborted)) {
displayMissedCallNotification(call) displayMissedCallNotification(call)
} }
} }

View file

@ -129,5 +129,12 @@ class LinphoneUtils {
// In doubt return false // In doubt return false
return false return false
} }
fun isCallLogMissed(callLog: CallLog): Boolean{
return (callLog.dir == Call.Dir.Incoming &&
(callLog.status == Call.Status.Missed ||
callLog.status == Call.Status.Aborted ||
callLog.status == Call.Status.EarlyAborted))
}
} }
} }