Refactor PlayerBackendEventListener to abstract class

This commit is contained in:
Niels van Velzen authored and Niels van Velzen committed 2026-03-01 18:04:16 +01:00
1 parent 22f3bafcab
commit 947ab42e33
4 files changed
+7 -10

No files matched your search

+1 -1
View File
@@ -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)