mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-26 19:36:08 +03:00
Handle voice broadcast deletion on listener side
This commit is contained in:
parent
2d60e49205
commit
f436de1230
1 changed files with 12 additions and 6 deletions
|
@ -145,19 +145,25 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
|
||||||
|
|
||||||
playingState = State.BUFFERING
|
playingState = State.BUFFERING
|
||||||
|
|
||||||
observeVoiceBroadcastLiveState(voiceBroadcast)
|
observeVoiceBroadcastStateEvent(voiceBroadcast)
|
||||||
fetchPlaylistAndStartPlayback(voiceBroadcast)
|
fetchPlaylistAndStartPlayback(voiceBroadcast)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun observeVoiceBroadcastLiveState(voiceBroadcast: VoiceBroadcast) {
|
private fun observeVoiceBroadcastStateEvent(voiceBroadcast: VoiceBroadcast) {
|
||||||
voiceBroadcastStateObserver = getVoiceBroadcastEventUseCase.execute(voiceBroadcast)
|
voiceBroadcastStateObserver = getVoiceBroadcastEventUseCase.execute(voiceBroadcast)
|
||||||
.onEach {
|
.onEach { onVoiceBroadcastStateEventUpdated(it.getOrNull()) }
|
||||||
currentVoiceBroadcastEvent = it.getOrNull()
|
|
||||||
updateLiveListeningMode()
|
|
||||||
}
|
|
||||||
.launchIn(sessionScope)
|
.launchIn(sessionScope)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun onVoiceBroadcastStateEventUpdated(event: VoiceBroadcastEvent?) {
|
||||||
|
if (event == null) {
|
||||||
|
stop()
|
||||||
|
} else {
|
||||||
|
currentVoiceBroadcastEvent = event
|
||||||
|
updateLiveListeningMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun fetchPlaylistAndStartPlayback(voiceBroadcast: VoiceBroadcast) {
|
private fun fetchPlaylistAndStartPlayback(voiceBroadcast: VoiceBroadcast) {
|
||||||
fetchPlaylistTask = getLiveVoiceBroadcastChunksUseCase.execute(voiceBroadcast)
|
fetchPlaylistTask = getLiveVoiceBroadcastChunksUseCase.execute(voiceBroadcast)
|
||||||
.onEach {
|
.onEach {
|
||||||
|
|
Loading…
Reference in a new issue