fix linked device answering/ending call issues

pull/560/head
Ryan Zhao 4 years ago
parent 8443818020
commit 4658e76d46

@ -240,13 +240,17 @@ public final class SessionCall: NSObject, WebRTCSessionDelegate {
shouldMarkAsRead = true shouldMarkAsRead = true
} else { } else {
switch mode { switch mode {
case .local: shouldMarkAsRead = true case .local:
case .remote: break shouldMarkAsRead = true
case .unanswered: break fallthrough
case .answeredElsewhere: shouldMarkAsRead = true case .remote:
} fallthrough
if messageToUpdate.callState == .incoming { case .unanswered:
messageToUpdate.updateCallInfoMessage(.missed, using: transaction) if messageToUpdate.callState == .incoming {
messageToUpdate.updateCallInfoMessage(.missed, using: transaction)
}
case .answeredElsewhere:
shouldMarkAsRead = true
} }
} }
if shouldMarkAsRead { if shouldMarkAsRead {

@ -269,11 +269,12 @@ extension MessageReceiver {
public static func handleCallMessage(_ message: CallMessage, using transaction: Any) { public static func handleCallMessage(_ message: CallMessage, using transaction: Any) {
let transaction = transaction as! YapDatabaseReadWriteTransaction let transaction = transaction as! YapDatabaseReadWriteTransaction
// Ignore call messages from threads without outgoing messages
guard let sender = message.sender, let thread = TSContactThread.fetch(for: sender, using: transaction), thread.hasOutgoingInteraction(with: transaction) else { return }
switch message.kind! { switch message.kind! {
case .preOffer: case .preOffer:
print("[Calls] Received pre-offer message.") print("[Calls] Received pre-offer message.")
// It is enough just ignoring the pre offers, other call messages
// for this call would be dropped because of no Session call instance
guard let sender = message.sender, let thread = TSContactThread.fetch(for: sender, using: transaction), thread.hasOutgoingInteraction(with: transaction) else { return }
handleNewCallOfferMessageIfNeeded?(message, transaction) handleNewCallOfferMessageIfNeeded?(message, transaction)
case .offer: case .offer:
print("[Calls] Received offer message.") print("[Calls] Received offer message.")

Loading…
Cancel
Save