From 67453cb0cbfcc2e5b08fde7309fe332f2e1b6b50 Mon Sep 17 00:00:00 2001 From: Giom Foret Date: Mon, 31 Oct 2022 11:42:51 +0100 Subject: [PATCH] Voice broadcast - Disable the sleep mode during the recording until we are able to handle it Currently go to "sleep mode" pauses the voice broadcast recording --- .../Service/MatrixSDK/VoiceBroadcastRecorderService.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/RiotSwiftUI/Modules/Room/VoiceBroadcastRecorder/Service/MatrixSDK/VoiceBroadcastRecorderService.swift b/RiotSwiftUI/Modules/Room/VoiceBroadcastRecorder/Service/MatrixSDK/VoiceBroadcastRecorderService.swift index 2a1ce4d1c..0ad1fa682 100644 --- a/RiotSwiftUI/Modules/Room/VoiceBroadcastRecorder/Service/MatrixSDK/VoiceBroadcastRecorderService.swift +++ b/RiotSwiftUI/Modules/Room/VoiceBroadcastRecorder/Service/MatrixSDK/VoiceBroadcastRecorderService.swift @@ -63,12 +63,16 @@ class VoiceBroadcastRecorderService: VoiceBroadcastRecorderServiceProtocol { } try? audioEngine.start() + + // Disable the sleep mode during the recording until we are able to handle it + UIApplication.shared.isIdleTimerDisabled = true } func stopRecordingVoiceBroadcast() { MXLog.debug("[VoiceBroadcastRecorderService] Stop recording voice broadcast") audioEngine.stop() audioEngine.inputNode.removeTap(onBus: audioNodeBus) + UIApplication.shared.isIdleTimerDisabled = false voiceBroadcastService?.stopVoiceBroadcast(success: { [weak self] _ in MXLog.debug("[VoiceBroadcastRecorderService] Stopped") @@ -97,6 +101,7 @@ class VoiceBroadcastRecorderService: VoiceBroadcastRecorderServiceProtocol { func pauseRecordingVoiceBroadcast() { audioEngine.pause() + UIApplication.shared.isIdleTimerDisabled = false voiceBroadcastService?.pauseVoiceBroadcast(success: { [weak self] _ in guard let self = self else { return } @@ -118,7 +123,8 @@ class VoiceBroadcastRecorderService: VoiceBroadcastRecorderServiceProtocol { guard let self = self else { return } // Update state - self.serviceDelegate?.voiceBroadcastRecorderService(self, didUpdateState: .started) + self.serviceDelegate?.voiceBroadcastRecorderService(self, didUpdateState: .resumed) + UIApplication.shared.isIdleTimerDisabled = true }, failure: { error in MXLog.error("[VoiceBroadcastRecorderService] Failed to resume voice broadcast", context: error) })