Add allowBackgroundAudioMessagePlayback build setting

This commit is contained in:
Alfonso Grillo
2022-10-13 12:53:37 +02:00
parent f1dec5c8fa
commit 3275178a7a
3 changed files with 17 additions and 0 deletions
@@ -41,6 +41,7 @@ class VoiceMessageAudioPlayer: NSObject {
private var playbackBufferEmptyObserver: NSKeyValueObservation?
private var rateObserver: NSKeyValueObservation?
private var playToEndObserver: NSObjectProtocol?
private var appBackgroundObserver: NSObjectProtocol?
private let delegateContainer = DelegateContainer()
@@ -198,6 +199,15 @@ class VoiceMessageAudioPlayer: NSObject {
(delegate as? VoiceMessageAudioPlayerDelegate)?.audioPlayerDidFinishPlaying(self)
}
}
appBackgroundObserver = NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: nil, queue: nil) { [weak self] _ in
guard let self = self, !BuildSettings.allowBackgroundAudioMessagePlayback else { return }
self.pause()
self.delegateContainer.notifyDelegatesWithBlock { delegate in
(delegate as? VoiceMessageAudioPlayerDelegate)?.audioPlayerDidPausePlaying(self)
}
}
}
private func removeObservers() {
@@ -205,6 +215,7 @@ class VoiceMessageAudioPlayer: NSObject {
playbackBufferEmptyObserver?.invalidate()
rateObserver?.invalidate()
NotificationCenter.default.removeObserver(playToEndObserver as Any)
NotificationCenter.default.removeObserver(appBackgroundObserver as Any)
}
}