mirror of
https://github.com/jellyfin/jellyfin-androidtv.git
synced 2026-10-26 16:45:23 +00:00
Refactor PlayerBackendEventListener to abstract class
This commit is contained in:
1 parent
22f3bafcab
commit
947ab42e33
4 files changed
+7
-10
No files matched your search
@@ -84,7 +84,7 @@ class MutablePlayerState(
|
||||
get() = backendService.backend?.getPositionInfo() ?: PositionInfo.EMPTY
|
||||
|
||||
init {
|
||||
backendService.addListener(object : PlayerBackendEventListener {
|
||||
backendService.addListener(object : PlayerBackendEventListener() {
|
||||
override fun onPlayStateChange(state: PlayState) {
|
||||
_playState.value = state
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ class BackendService {
|
||||
listeners.remove(listener)
|
||||
}
|
||||
|
||||
inner class BackendEventListener : PlayerBackendEventListener {
|
||||
inner class BackendEventListener : PlayerBackendEventListener() {
|
||||
private fun <T> callListeners(
|
||||
body: PlayerBackendEventListener.() -> T
|
||||
): List<T> = listeners.map { listener -> listener.body() }
|
||||
|
||||
@@ -3,8 +3,8 @@ package org.jellyfin.playback.core.backend
|
||||
import org.jellyfin.playback.core.mediastream.PlayableMediaStream
|
||||
import org.jellyfin.playback.core.model.PlayState
|
||||
|
||||
interface PlayerBackendEventListener {
|
||||
fun onPlayStateChange(state: PlayState)
|
||||
fun onVideoSizeChange(width: Int, height: Int)
|
||||
fun onMediaStreamEnd(mediaStream: PlayableMediaStream)
|
||||
abstract class PlayerBackendEventListener {
|
||||
open fun onPlayStateChange(state: PlayState) = Unit
|
||||
open fun onVideoSizeChange(width: Int, height: Int) = Unit
|
||||
open fun onMediaStreamEnd(mediaStream: PlayableMediaStream) = Unit
|
||||
}
|
||||
@@ -9,7 +9,6 @@ import kotlinx.coroutines.launch
|
||||
import org.jellyfin.playback.core.PlaybackManager
|
||||
import org.jellyfin.playback.core.backend.PlayerBackendEventListener
|
||||
import org.jellyfin.playback.core.mediastream.PlayableMediaStream
|
||||
import org.jellyfin.playback.core.model.PlayState
|
||||
import org.jellyfin.playback.core.model.PlaybackOrder
|
||||
import org.jellyfin.playback.core.model.RepeatMode
|
||||
import org.jellyfin.playback.core.plugin.PlayerService
|
||||
@@ -53,9 +52,7 @@ class QueueService internal constructor() : PlayerService(), Queue {
|
||||
}.launchIn(coroutineScope)
|
||||
|
||||
// Automatically advance when current stream ends
|
||||
manager.backendService.addListener(object : PlayerBackendEventListener {
|
||||
override fun onPlayStateChange(state: PlayState) = Unit
|
||||
override fun onVideoSizeChange(width: Int, height: Int) = Unit
|
||||
manager.backendService.addListener(object : PlayerBackendEventListener() {
|
||||
override fun onMediaStreamEnd(mediaStream: PlayableMediaStream) {
|
||||
coroutineScope.launch {
|
||||
val nextEntry = next(usePlaybackOrder = true, useRepeatMode = true)
|
||||
|
||||
Reference in new issue
Block a user