From 1153a0a0e811045f8121cb7d88ba85080ebf5256 Mon Sep 17 00:00:00 2001 From: QuentinArguillere Date: Thu, 27 May 2021 12:09:44 +0200 Subject: [PATCH] Fix onCallStateChanged callback that could use a nil address when searching for a contact name --- Classes/CallManager.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Classes/CallManager.swift b/Classes/CallManager.swift index 7b23ba796..7295d84df 100644 --- a/Classes/CallManager.swift +++ b/Classes/CallManager.swift @@ -453,8 +453,6 @@ import AVFoundation if (cstate == .PushIncomingReceived) { displayIncomingCall(call: call, handle: "Calling", hasVideo: false, callId: callId!, displayName: "Calling") } else { - let addr = call.remoteAddress; - let displayName = FastAddressBook.displayName(for: addr?.getCobject) ?? "Unknow" let video = UIApplication.shared.applicationState == .active && (core.videoActivationPolicy?.automaticallyAccept ?? false) && (call.remoteParams?.videoEnabled ?? false) // we keep the speaker auto-enabled state in this static so that we don't // force-enable it on ICE re-invite if the user disabled it. @@ -465,9 +463,10 @@ import AVFoundation CallManager.setAppData(sCall: call, appData: appData) } - switch cstate { case .IncomingReceived: + let addr = call.remoteAddress; + let displayName = FastAddressBook.displayName(for: addr?.getCobject) ?? "Unknown" if (CallManager.callKitEnabled()) { let uuid = CallManager.instance().providerDelegate.uuids["\(callId!)"] if (uuid != nil) { @@ -530,6 +529,11 @@ import AVFoundation break case .End, .Error: + var displayName = "Unknown" + if let addr = call.remoteAddress, let contactName = FastAddressBook.displayName(for: addr.getCobject) { + displayName = contactName + } + UIDevice.current.isProximityMonitoringEnabled = false CallManager.speaker_already_enabled = false if (CallManager.instance().lc!.callsNb == 0) {