|
|
@ -98,6 +98,12 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
|
|
|
|
self.provider.setDelegate(self, queue: nil)
|
|
|
|
self.provider.setDelegate(self, queue: nil)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: Dependencies
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var audioSession: OWSAudioSession {
|
|
|
|
|
|
|
|
return Environment.shared.audioSession
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: CallUIAdaptee
|
|
|
|
// MARK: CallUIAdaptee
|
|
|
|
|
|
|
|
|
|
|
|
func startOutgoingCall(handle: String) -> SignalCall {
|
|
|
|
func startOutgoingCall(handle: String) -> SignalCall {
|
|
|
@ -107,7 +113,7 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
|
|
|
|
let call = SignalCall.outgoingCall(localId: UUID(), remotePhoneNumber: handle)
|
|
|
|
let call = SignalCall.outgoingCall(localId: UUID(), remotePhoneNumber: handle)
|
|
|
|
|
|
|
|
|
|
|
|
// make sure we don't terminate audio session during call
|
|
|
|
// make sure we don't terminate audio session during call
|
|
|
|
OWSAudioSession.shared.startAudioActivity(call.audioActivity)
|
|
|
|
self.audioSession.startAudioActivity(call.audioActivity)
|
|
|
|
|
|
|
|
|
|
|
|
// Add the new outgoing call to the app's list of calls.
|
|
|
|
// Add the new outgoing call to the app's list of calls.
|
|
|
|
// So we can find it in the provider delegate callbacks.
|
|
|
|
// So we can find it in the provider delegate callbacks.
|
|
|
@ -379,16 +385,16 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
|
|
|
|
|
|
|
|
|
|
|
|
Logger.debug("Received")
|
|
|
|
Logger.debug("Received")
|
|
|
|
|
|
|
|
|
|
|
|
OWSAudioSession.shared.startAudioActivity(self.audioActivity)
|
|
|
|
self.audioSession.startAudioActivity(self.audioActivity)
|
|
|
|
OWSAudioSession.shared.isRTCAudioEnabled = true
|
|
|
|
self.audioSession.isRTCAudioEnabled = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) {
|
|
|
|
func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) {
|
|
|
|
AssertIsOnMainThread()
|
|
|
|
AssertIsOnMainThread()
|
|
|
|
|
|
|
|
|
|
|
|
Logger.debug("Received")
|
|
|
|
Logger.debug("Received")
|
|
|
|
OWSAudioSession.shared.isRTCAudioEnabled = false
|
|
|
|
self.audioSession.isRTCAudioEnabled = false
|
|
|
|
OWSAudioSession.shared.endAudioActivity(self.audioActivity)
|
|
|
|
self.audioSession.endAudioActivity(self.audioActivity)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: - Util
|
|
|
|
// MARK: - Util
|
|
|
|