mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Correct callback
This commit is contained in:
parent
f6a70c5133
commit
d19a65f2e5
5 changed files with 15 additions and 1 deletions
|
@ -99,6 +99,10 @@ abstract class AbstractPlayerFragment(
|
||||||
throw NotImplementedError()
|
throw NotImplementedError()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun onTracksInfoChanged() {
|
||||||
|
throw NotImplementedError()
|
||||||
|
}
|
||||||
|
|
||||||
open fun exitedPipMode() {
|
open fun exitedPipMode() {
|
||||||
throw NotImplementedError()
|
throw NotImplementedError()
|
||||||
}
|
}
|
||||||
|
@ -369,6 +373,7 @@ abstract class AbstractPlayerFragment(
|
||||||
),
|
),
|
||||||
subtitlesUpdates = ::subtitlesChanged,
|
subtitlesUpdates = ::subtitlesChanged,
|
||||||
embeddedSubtitlesFetched = ::embeddedSubtitlesFetched,
|
embeddedSubtitlesFetched = ::embeddedSubtitlesFetched,
|
||||||
|
onTracksInfoChanged = ::onTracksInfoChanged
|
||||||
)
|
)
|
||||||
|
|
||||||
if (player is CS3IPlayer) {
|
if (player is CS3IPlayer) {
|
||||||
|
|
|
@ -113,6 +113,7 @@ class CS3IPlayer : IPlayer {
|
||||||
|
|
||||||
private var playerUpdated: ((Any?) -> Unit)? = null
|
private var playerUpdated: ((Any?) -> Unit)? = null
|
||||||
private var embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)? = null
|
private var embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)? = null
|
||||||
|
private var onTracksInfoChanged: (() -> Unit)? = null
|
||||||
|
|
||||||
override fun releaseCallbacks() {
|
override fun releaseCallbacks() {
|
||||||
playerUpdated = null
|
playerUpdated = null
|
||||||
|
@ -125,7 +126,7 @@ class CS3IPlayer : IPlayer {
|
||||||
nextEpisode = null
|
nextEpisode = null
|
||||||
prevEpisode = null
|
prevEpisode = null
|
||||||
subtitlesUpdates = null
|
subtitlesUpdates = null
|
||||||
embeddedSubtitlesFetched = null
|
onTracksInfoChanged = null
|
||||||
requestSubtitleUpdate = null
|
requestSubtitleUpdate = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,6 +142,7 @@ class CS3IPlayer : IPlayer {
|
||||||
prevEpisode: (() -> Unit)?,
|
prevEpisode: (() -> Unit)?,
|
||||||
subtitlesUpdates: (() -> Unit)?,
|
subtitlesUpdates: (() -> Unit)?,
|
||||||
embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)?,
|
embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)?,
|
||||||
|
onTracksInfoChanged: (() -> Unit)?,
|
||||||
) {
|
) {
|
||||||
this.playerUpdated = playerUpdated
|
this.playerUpdated = playerUpdated
|
||||||
this.updateIsPlaying = updateIsPlaying
|
this.updateIsPlaying = updateIsPlaying
|
||||||
|
@ -153,6 +155,7 @@ class CS3IPlayer : IPlayer {
|
||||||
this.prevEpisode = prevEpisode
|
this.prevEpisode = prevEpisode
|
||||||
this.subtitlesUpdates = subtitlesUpdates
|
this.subtitlesUpdates = subtitlesUpdates
|
||||||
this.embeddedSubtitlesFetched = embeddedSubtitlesFetched
|
this.embeddedSubtitlesFetched = embeddedSubtitlesFetched
|
||||||
|
this.onTracksInfoChanged = onTracksInfoChanged
|
||||||
}
|
}
|
||||||
|
|
||||||
// I know, this is not a perfect solution, however it works for fixing subs
|
// I know, this is not a perfect solution, however it works for fixing subs
|
||||||
|
@ -818,6 +821,7 @@ class CS3IPlayer : IPlayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
embeddedSubtitlesFetched?.invoke(exoPlayerReportedTracks)
|
embeddedSubtitlesFetched?.invoke(exoPlayerReportedTracks)
|
||||||
|
onTracksInfoChanged?.invoke()
|
||||||
subtitlesUpdates?.invoke()
|
subtitlesUpdates?.invoke()
|
||||||
}
|
}
|
||||||
super.onTracksInfoChanged(tracksInfo)
|
super.onTracksInfoChanged(tracksInfo)
|
||||||
|
|
|
@ -113,6 +113,9 @@ class GeneratorPlayer : FullScreenPlayer() {
|
||||||
|
|
||||||
override fun embeddedSubtitlesFetched(subtitles: List<SubtitleData>) {
|
override fun embeddedSubtitlesFetched(subtitles: List<SubtitleData>) {
|
||||||
viewModel.addSubtitles(subtitles.toSet())
|
viewModel.addSubtitles(subtitles.toSet())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTracksInfoChanged() {
|
||||||
val tracks = player.getVideoTracks()
|
val tracks = player.getVideoTracks()
|
||||||
player_tracks_btt?.isVisible = tracks.allVideoTracks.size > 1 || tracks.allAudioTracks.size > 1
|
player_tracks_btt?.isVisible = tracks.allVideoTracks.size > 1 || tracks.allAudioTracks.size > 1
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,6 +123,7 @@ interface IPlayer {
|
||||||
prevEpisode: (() -> Unit)? = null, // this is used by the player to load the previous episode
|
prevEpisode: (() -> Unit)? = null, // this is used by the player to load the previous episode
|
||||||
subtitlesUpdates: (() -> Unit)? = null, // callback from player to inform that subtitles have updated in some way
|
subtitlesUpdates: (() -> Unit)? = null, // callback from player to inform that subtitles have updated in some way
|
||||||
embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)? = null, // callback from player to give all embedded subtitles
|
embeddedSubtitlesFetched: ((List<SubtitleData>) -> Unit)? = null, // callback from player to give all embedded subtitles
|
||||||
|
onTracksInfoChanged: (() -> Unit)? = null, // Callback when tracks are changed, used for UI changes
|
||||||
)
|
)
|
||||||
|
|
||||||
fun releaseCallbacks()
|
fun releaseCallbacks()
|
||||||
|
|
|
@ -82,6 +82,7 @@ open class ResultTrailerPlayer : com.lagradost.cloudstream3.ui.player.FullScreen
|
||||||
override fun subtitlesChanged() {}
|
override fun subtitlesChanged() {}
|
||||||
|
|
||||||
override fun embeddedSubtitlesFetched(subtitles: List<SubtitleData>) {}
|
override fun embeddedSubtitlesFetched(subtitles: List<SubtitleData>) {}
|
||||||
|
override fun onTracksInfoChanged() {}
|
||||||
|
|
||||||
override fun exitedPipMode() {}
|
override fun exitedPipMode() {}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue