audio: restart audio stream
Restart audio after receiving callback from CallKit.
Change-Id: Ie417735db719108f2c6da687fc010b516f130b30
diff --git a/Ring/Ring/Bridging/AudioAdapter.h b/Ring/Ring/Bridging/AudioAdapter.h
index d81d46f..8d39269 100644
--- a/Ring/Ring/Bridging/AudioAdapter.h
+++ b/Ring/Ring/Bridging/AudioAdapter.h
@@ -25,6 +25,7 @@
- (void)setAudioOutputDevice:(NSInteger)index;
- (void)setAudioInputDevice:(NSInteger)index;
- (void)setAudioRingtoneDevice:(NSInteger)index;
+- (void)startAudio;
@end
diff --git a/Ring/Ring/Bridging/AudioAdapter.mm b/Ring/Ring/Bridging/AudioAdapter.mm
index efba608..e09edae 100644
--- a/Ring/Ring/Bridging/AudioAdapter.mm
+++ b/Ring/Ring/Bridging/AudioAdapter.mm
@@ -35,5 +35,8 @@
- (void)setAudioRingtoneDevice:(NSInteger)index {
DRing::setAudioRingtoneDevice((int32_t)index);
}
+- (void)startAudio {
+ DRing::startAudio();
+}
@end
diff --git a/Ring/Ring/Calls/CallViewModel.swift b/Ring/Ring/Calls/CallViewModel.swift
index 4a3ff06..5404a9f 100644
--- a/Ring/Ring/Calls/CallViewModel.swift
+++ b/Ring/Ring/Calls/CallViewModel.swift
@@ -343,11 +343,7 @@
.filter({ serviceEvent in
serviceEvent.eventType == .audioActivated
}).subscribe(onNext: { [unowned self] _ in
- if !self.audioService.isHeadsetConnected.value {
- self.switchSpeaker()
- self.isAudioOnly ?
- self.audioService.overrideToReceiver() : self.audioService.overrideToSpeaker()
- }
+ self.audioService.startAudio()
}).disposed(by: self.disposeBag)
}
@@ -383,12 +379,9 @@
}
func answerCall() -> Completable {
- guard #available(iOS 10.0, *) else {
- if !self.audioService.isHeadsetConnected.value {
- isAudioOnly ?
- self.audioService.overrideToReceiver() : self.audioService.overrideToSpeaker()
- }
- return self.callService.accept(call: call)
+ if !self.audioService.isHeadsetConnected.value {
+ isAudioOnly ?
+ self.audioService.overrideToReceiver() : self.audioService.overrideToSpeaker()
}
return self.callService.accept(call: call)
}
diff --git a/Ring/Ring/Services/AudioService.swift b/Ring/Ring/Services/AudioService.swift
index 7cf7058..a246f53 100644
--- a/Ring/Ring/Services/AudioService.swift
+++ b/Ring/Ring/Services/AudioService.swift
@@ -64,6 +64,9 @@
} catch {
log.error("\(error)")
}
+ if #available(iOS 10.0, *) {
+ return
+ }
setToRing()
}
@@ -159,4 +162,8 @@
func setAudioRingtoneDevice(port: OutputPortType) {
self.audioAdapter.setAudioRingtoneDevice(port.rawValue)
}
+
+ func startAudio() {
+ self.audioAdapter.startAudio()
+ }
}