diff --git a/Signal/src/Calls/CallAudioService.swift b/Signal/src/Calls/CallAudioService.swift index e076089176..37aaef555f 100644 --- a/Signal/src/Calls/CallAudioService.swift +++ b/Signal/src/Calls/CallAudioService.swift @@ -120,20 +120,28 @@ class CallAudioService: NSObject, CallObserver { self.isSpeakerEnabled = isEnabled } - public func requestSpeakerphone(call: GroupCall, isEnabled: Bool) { + private func requestSpeakerphone(call: GroupCall, isEnabled: Bool) { // If toggled for an group call, save the enablement state and // update the AudioSession. self.isSpeakerEnabled = isEnabled self.ensureProperAudioSession(call: call) } - public func requestSpeakerphone(call: IndividualCall, isEnabled: Bool) { + private func requestSpeakerphone(call: IndividualCall, isEnabled: Bool) { // If toggled for an individual call, save the enablement state and // update the AudioSession. self.isSpeakerEnabled = isEnabled self.ensureProperAudioSession(call: call) } + public func requestSpeakerphone(call: SignalCall, isEnabled: Bool) { + if call.isGroupCall { + requestSpeakerphone(call: call.groupCall, isEnabled: isEnabled) + } else if call.isIndividualCall { + requestSpeakerphone(call: call.individualCall, isEnabled: isEnabled) + } + } + private func audioRouteDidChange() { guard let currentAudioSource = currentAudioSource else { Logger.warn("Switched to route without audio source") diff --git a/Signal/src/Calls/UserInterface/Group/GroupCallViewController.swift b/Signal/src/Calls/UserInterface/Group/GroupCallViewController.swift index 540c87d004..492559f843 100644 --- a/Signal/src/Calls/UserInterface/Group/GroupCallViewController.swift +++ b/Signal/src/Calls/UserInterface/Group/GroupCallViewController.swift @@ -872,7 +872,7 @@ extension GroupCallViewController: CallControlsDelegate { callService.audioService.presentRoutePicker() } else { sender.isSelected = !sender.isSelected - callService.audioService.requestSpeakerphone(call: self.call.groupCall, isEnabled: sender.isSelected) + callService.audioService.requestSpeakerphone(call: self.call, isEnabled: sender.isSelected) } } @@ -889,7 +889,7 @@ extension GroupCallViewController: CallControlsDelegate { // When turning off video, default speakerphone to on. if !sender.isSelected && !callService.audioService.hasExternalInputs { callControls.audioSourceButton.isSelected = true - callService.audioService.requestSpeakerphone(call: self.call.groupCall, isEnabled: true) + callService.audioService.requestSpeakerphone(call: self.call, isEnabled: true) } } @@ -965,7 +965,7 @@ extension GroupCallViewController: IncomingCallControlsDelegate { callService.updateIsLocalVideoMuted(isLocalVideoMuted: videoMute) // When turning off video, default speakerphone to on. if videoMute && !callService.audioService.hasExternalInputs { - callService.audioService.requestSpeakerphone(call: call.groupCall, isEnabled: true) + callService.audioService.requestSpeakerphone(call: call, isEnabled: true) } callService.callUIAdapter.answerCall(call) diff --git a/Signal/src/Calls/UserInterface/Individual/IndividualCallViewController.swift b/Signal/src/Calls/UserInterface/Individual/IndividualCallViewController.swift index 21b059a0e5..a77987c199 100644 --- a/Signal/src/Calls/UserInterface/Individual/IndividualCallViewController.swift +++ b/Signal/src/Calls/UserInterface/Individual/IndividualCallViewController.swift @@ -1106,7 +1106,7 @@ class IndividualCallViewController: OWSViewController, CallObserver, CallAudioSe Logger.info("") button.isSelected = !button.isSelected - callService.audioService.requestSpeakerphone(call: call.individualCall, isEnabled: button.isSelected) + callService.audioService.requestSpeakerphone(call: call, isEnabled: button.isSelected) } @objc