2
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-08-22 10:09:39 +00:00

PlayerHolder: kotlinify getters

This commit is contained in:
Profpatsch 2025-05-13 17:41:51 +02:00 committed by Stypox
parent 9b22773070
commit fc7daa96e9
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23

View File

@ -32,25 +32,12 @@ class PlayerHolder private constructor() {
private set private set
private var playerService: PlayerService? = null private var playerService: PlayerService? = null
private val player: Optional<Player?> private val player: Player?
get() = Optional.ofNullable<PlayerService?>(playerService) get() = playerService?.player
.flatMap<Player?>(
Function { s: PlayerService? ->
Optional.ofNullable<Player?>(
s!!.player
)
}
)
private val playQueue: Optional<PlayQueue?> private val playQueue: PlayQueue?
get() = // player play queue might be null e.g. while player is starting get() = // player play queue might be null e.g. while player is starting
this.player.flatMap<PlayQueue?>( this.player?.playQueue
Function { p: Player? ->
Optional.ofNullable<PlayQueue?>(
p!!.getPlayQueue()
)
}
)
val type: PlayerType? val type: PlayerType?
/** /**
@ -59,15 +46,13 @@ class PlayerHolder private constructor() {
* *
* @return Current PlayerType * @return Current PlayerType
*/ */
get() = this.player.map<PlayerType?>(Function { obj: Player? -> obj!!.getPlayerType() }) get() = this.player?.playerType
.orElse(null)
val isPlaying: Boolean val isPlaying: Boolean
get() = this.player.map<Boolean?>(Function { obj: Player? -> obj!!.isPlaying() }) get() = this.player?.isPlaying == true
.orElse(false)
val isPlayerOpen: Boolean val isPlayerOpen: Boolean
get() = this.player.isPresent() get() = this.player != null
val isPlayQueueReady: Boolean val isPlayQueueReady: Boolean
/** /**
@ -75,13 +60,13 @@ class PlayerHolder private constructor() {
* the stream long press menu) when there actually is a play queue to manipulate. * the stream long press menu) when there actually is a play queue to manipulate.
* @return true only if the player is open and its play queue is ready (i.e. it is not null) * @return true only if the player is open and its play queue is ready (i.e. it is not null)
*/ */
get() = this.playQueue.isPresent() get() = this.playQueue != null
val queueSize: Int val queueSize: Int
get() = this.playQueue.map<Int?>(Function { obj: PlayQueue? -> obj!!.size() }).orElse(0) get() = this.playQueue?.size() ?: 0
val queuePosition: Int val queuePosition: Int
get() = this.playQueue.map<Int?>(Function { obj: PlayQueue? -> obj!!.getIndex() }).orElse(0) get() = this.playQueue?.index ?: 0
fun setListener(newListener: PlayerServiceExtendedEventListener?) { fun setListener(newListener: PlayerServiceExtendedEventListener?) {
listener = newListener listener = newListener
@ -182,16 +167,12 @@ class PlayerHolder private constructor() {
) )
} }
playerService = s playerService = s
if (listener != null) { val l = listener
listener!!.onServiceConnected(s) if (l != null) {
this@PlayerHolder.player.ifPresent( l.onServiceConnected(s)
Consumer { p: Player? -> player?.let {
listener!!.onPlayerConnected( l.onPlayerConnected(it, playAfterConnect)
p!!, }
playAfterConnect
)
}
)
} }
startPlayerListener() startPlayerListener()
@ -252,14 +233,14 @@ class PlayerHolder private constructor() {
// player in the service is (not) already active, also see playerStateListener below // player in the service is (not) already active, also see playerStateListener below
playerService!!.setPlayerListener(playerStateListener) playerService!!.setPlayerListener(playerStateListener)
} }
this.player.ifPresent(Consumer { p: Player? -> p!!.setFragmentListener(internalListener) }) this.player?.setFragmentListener(internalListener)
} }
private fun stopPlayerListener() { private fun stopPlayerListener() {
if (playerService != null) { if (playerService != null) {
playerService!!.setPlayerListener(null) playerService!!.setPlayerListener(null)
} }
this.player.ifPresent(Consumer { p: Player? -> p!!.removeFragmentListener(internalListener) }) this.player?.removeFragmentListener(internalListener)
} }
/** /**