mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 15:30:31 +05:30
Merge pull request #2171 from Kruna1Pate1/fix/minimized-player
Fix minimized player and repeat button
This commit is contained in:
commit
085eff2041
@ -315,10 +315,9 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
||||
BackgroundHelper.stopBackgroundPlay(requireContext())
|
||||
}
|
||||
|
||||
binding.playImageView.setOnClickListener {
|
||||
val playPauseClickListner = View.OnClickListener {
|
||||
if (!exoPlayer.isPlaying) {
|
||||
// start or go on playing
|
||||
binding.playImageView.setImageResource(R.drawable.ic_pause)
|
||||
if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
||||
// restart video if finished
|
||||
exoPlayer.seekTo(0)
|
||||
@ -326,10 +325,11 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
||||
exoPlayer.play()
|
||||
} else {
|
||||
// pause the video
|
||||
binding.playImageView.setImageResource(R.drawable.ic_play)
|
||||
exoPlayer.pause()
|
||||
}
|
||||
}
|
||||
playerBinding.playPauseBTN.setOnClickListener(playPauseClickListner)
|
||||
binding.playImageView.setOnClickListener(playPauseClickListner)
|
||||
|
||||
// video description and chapters toggle
|
||||
binding.playerTitleLayout.setOnClickListener {
|
||||
@ -829,6 +829,18 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onEvents(player: Player, events: Player.Events) {
|
||||
super.onEvents(player, events)
|
||||
if (events.containsAny(
|
||||
Player.EVENT_PLAYBACK_STATE_CHANGED,
|
||||
Player.EVENT_IS_PLAYING_CHANGED,
|
||||
Player.EVENT_PLAY_WHEN_READY_CHANGED
|
||||
)
|
||||
) {
|
||||
updatePlayPauseButton()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPlaybackStateChanged(playbackState: Int) {
|
||||
exoPlayerView.keepScreenOn = !(
|
||||
playbackState == Player.STATE_IDLE ||
|
||||
@ -847,22 +859,11 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
||||
playNextVideo()
|
||||
}
|
||||
|
||||
when (playbackState) {
|
||||
Player.STATE_READY -> {
|
||||
// media actually playing
|
||||
transitioning = false
|
||||
binding.playImageView.setImageResource(R.drawable.ic_pause)
|
||||
// update the PiP params to use the correct aspect ratio
|
||||
if (usePiP()) activity?.setPictureInPictureParams(getPipParams())
|
||||
}
|
||||
Player.STATE_ENDED -> {
|
||||
// video has finished
|
||||
binding.playImageView.setImageResource(R.drawable.ic_restart)
|
||||
}
|
||||
else -> {
|
||||
// player in any other state
|
||||
binding.playImageView.setImageResource(R.drawable.ic_play)
|
||||
}
|
||||
if (playbackState == Player.STATE_READY) {
|
||||
// media actually playing
|
||||
transitioning = false
|
||||
// update the PiP params to use the correct aspect ratio
|
||||
if (usePiP()) activity?.setPictureInPictureParams(getPipParams())
|
||||
}
|
||||
|
||||
// save the watch position when paused
|
||||
@ -966,6 +967,22 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updatePlayPauseButton() {
|
||||
if (exoPlayer.isPlaying) {
|
||||
// video is playing
|
||||
binding.playImageView.setImageResource(R.drawable.ic_pause)
|
||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_pause)
|
||||
} else if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
||||
// video has finished
|
||||
binding.playImageView.setImageResource(R.drawable.ic_restart)
|
||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_restart)
|
||||
} else {
|
||||
// player in any other state
|
||||
binding.playImageView.setImageResource(R.drawable.ic_play)
|
||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_play)
|
||||
}
|
||||
}
|
||||
|
||||
private fun initializeRelatedVideos(relatedStreams: List<StreamItem>?) {
|
||||
if (!PlayerHelper.relatedStreamsEnabled) return
|
||||
|
||||
|
@ -272,7 +272,7 @@ internal class CustomExoPlayerView(
|
||||
binding.exoBottomBar.visibility = visibility
|
||||
binding.closeImageButton.visibility = visibility
|
||||
binding.exoTitle.visibility = visibility
|
||||
binding.exoPlayPause.visibility = visibility
|
||||
binding.playPauseBTN.visibility = visibility
|
||||
|
||||
// disable tap and swipe gesture if the player is locked
|
||||
playerGestureController.isEnabled = isLocked
|
||||
|
@ -277,7 +277,7 @@
|
||||
</FrameLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@id/exo_play_pause"
|
||||
android:id="@+id/playPauseBTN"
|
||||
style="@style/ExoStyledControls.Button.Center.PlayPause"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:background="?android:selectableItemBackgroundBorderless"
|
||||
|
@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Replaces the drawables of the default exoplayer controls (see https://github.com/google/ExoPlayer/blob/release-v2/library/ui/src/main/res/values/drawables.xml) -->
|
||||
<resources>
|
||||
|
||||
<drawable name="exo_styled_controls_play">@drawable/ic_play</drawable>
|
||||
<drawable name="exo_styled_controls_pause">@drawable/ic_pause</drawable>
|
||||
<drawable name="exo_notification_small_icon">@drawable/ic_launcher_lockscreen</drawable>
|
||||
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user