Handle voice broadcast deletion on listener side

This commit is contained in:
Florian Renaud 2022-11-23 14:10:44 +01:00
parent 2d60e49205
commit f436de1230

View file

@ -145,17 +145,23 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
playingState = State.BUFFERING
observeVoiceBroadcastLiveState(voiceBroadcast)
observeVoiceBroadcastStateEvent(voiceBroadcast)
fetchPlaylistAndStartPlayback(voiceBroadcast)
}
private fun observeVoiceBroadcastLiveState(voiceBroadcast: VoiceBroadcast) {
private fun observeVoiceBroadcastStateEvent(voiceBroadcast: VoiceBroadcast) {
voiceBroadcastStateObserver = getVoiceBroadcastEventUseCase.execute(voiceBroadcast)
.onEach {
currentVoiceBroadcastEvent = it.getOrNull()
.onEach { onVoiceBroadcastStateEventUpdated(it.getOrNull()) }
.launchIn(sessionScope)
}
private fun onVoiceBroadcastStateEventUpdated(event: VoiceBroadcastEvent?) {
if (event == null) {
stop()
} else {
currentVoiceBroadcastEvent = event
updateLiveListeningMode()
}
.launchIn(sessionScope)
}
private fun fetchPlaylistAndStartPlayback(voiceBroadcast: VoiceBroadcast) {