Fixed call log showed as missed in notification but not in call history list
This commit is contained in:
parent
79bad283e2
commit
d4a8bdfa38
3 changed files with 10 additions and 5 deletions
|
@ -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)) {
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue