mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 22:30:30 +05:30
Move duplicate code of playPauseBtn to CustomExoPlayerView
This commit is contained in:
parent
363e1a9834
commit
bbd9b8546a
@ -13,7 +13,6 @@ import androidx.activity.viewModels
|
|||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.WindowInsetsControllerCompat
|
import androidx.core.view.WindowInsetsControllerCompat
|
||||||
import com.github.libretube.R
|
|
||||||
import com.github.libretube.constants.IntentData
|
import com.github.libretube.constants.IntentData
|
||||||
import com.github.libretube.databinding.ActivityOfflinePlayerBinding
|
import com.github.libretube.databinding.ActivityOfflinePlayerBinding
|
||||||
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
|
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
|
||||||
@ -24,7 +23,6 @@ import com.github.libretube.util.DownloadHelper
|
|||||||
import com.github.libretube.util.PlayerHelper
|
import com.github.libretube.util.PlayerHelper
|
||||||
import com.google.android.exoplayer2.ExoPlayer
|
import com.google.android.exoplayer2.ExoPlayer
|
||||||
import com.google.android.exoplayer2.MediaItem
|
import com.google.android.exoplayer2.MediaItem
|
||||||
import com.google.android.exoplayer2.Player
|
|
||||||
import com.google.android.exoplayer2.source.MergingMediaSource
|
import com.google.android.exoplayer2.source.MergingMediaSource
|
||||||
import com.google.android.exoplayer2.source.ProgressiveMediaSource
|
import com.google.android.exoplayer2.source.ProgressiveMediaSource
|
||||||
import com.google.android.exoplayer2.ui.StyledPlayerView
|
import com.google.android.exoplayer2.ui.StyledPlayerView
|
||||||
@ -72,19 +70,6 @@ class OfflinePlayerActivity : BaseActivity() {
|
|||||||
playerBinding.closeImageButton.setOnClickListener {
|
playerBinding.closeImageButton.setOnClickListener {
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
playerBinding.playPauseBTN.setOnClickListener {
|
|
||||||
if (!player.isPlaying) {
|
|
||||||
// start or go on playing
|
|
||||||
if (player.playbackState == Player.STATE_ENDED) {
|
|
||||||
// restart video if finished
|
|
||||||
player.seekTo(0)
|
|
||||||
}
|
|
||||||
player.play()
|
|
||||||
} else {
|
|
||||||
// pause the video
|
|
||||||
player.pause()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.player.initialize(
|
binding.player.initialize(
|
||||||
null,
|
null,
|
||||||
@ -92,33 +77,6 @@ class OfflinePlayerActivity : BaseActivity() {
|
|||||||
binding.playerGestureControlsView.binding,
|
binding.playerGestureControlsView.binding,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
|
|
||||||
player.addListener(object : Player.Listener {
|
|
||||||
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()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun updatePlayPauseButton() {
|
|
||||||
if (player.isPlaying) {
|
|
||||||
// video is playing
|
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_pause)
|
|
||||||
} else if (player.playbackState == Player.STATE_ENDED) {
|
|
||||||
// video has finished
|
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_restart)
|
|
||||||
} else {
|
|
||||||
// player in any other state
|
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_play)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun File.toUri(): Uri? {
|
private fun File.toUri(): Uri? {
|
||||||
|
@ -317,7 +317,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
|||||||
BackgroundHelper.stopBackgroundPlay(requireContext())
|
BackgroundHelper.stopBackgroundPlay(requireContext())
|
||||||
}
|
}
|
||||||
|
|
||||||
val playPauseClickListner = View.OnClickListener {
|
binding.playImageView.setOnClickListener {
|
||||||
if (!exoPlayer.isPlaying) {
|
if (!exoPlayer.isPlaying) {
|
||||||
// start or go on playing
|
// start or go on playing
|
||||||
if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
||||||
@ -330,8 +330,6 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
|||||||
exoPlayer.pause()
|
exoPlayer.pause()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
playerBinding.playPauseBTN.setOnClickListener(playPauseClickListner)
|
|
||||||
binding.playImageView.setOnClickListener(playPauseClickListner)
|
|
||||||
|
|
||||||
// video description and chapters toggle
|
// video description and chapters toggle
|
||||||
binding.playerTitleLayout.setOnClickListener {
|
binding.playerTitleLayout.setOnClickListener {
|
||||||
@ -976,15 +974,12 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
|||||||
if (exoPlayer.isPlaying) {
|
if (exoPlayer.isPlaying) {
|
||||||
// video is playing
|
// video is playing
|
||||||
binding.playImageView.setImageResource(R.drawable.ic_pause)
|
binding.playImageView.setImageResource(R.drawable.ic_pause)
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_pause)
|
|
||||||
} else if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
} else if (exoPlayer.playbackState == Player.STATE_ENDED) {
|
||||||
// video has finished
|
// video has finished
|
||||||
binding.playImageView.setImageResource(R.drawable.ic_restart)
|
binding.playImageView.setImageResource(R.drawable.ic_restart)
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_restart)
|
|
||||||
} else {
|
} else {
|
||||||
// player in any other state
|
// player in any other state
|
||||||
binding.playImageView.setImageResource(R.drawable.ic_play)
|
binding.playImageView.setImageResource(R.drawable.ic_play)
|
||||||
playerBinding.playPauseBTN.setImageResource(R.drawable.ic_play)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,47 @@ internal class CustomExoPlayerView(
|
|||||||
"zoom" -> AspectRatioFrameLayout.RESIZE_MODE_ZOOM
|
"zoom" -> AspectRatioFrameLayout.RESIZE_MODE_ZOOM
|
||||||
else -> AspectRatioFrameLayout.RESIZE_MODE_FIT
|
else -> AspectRatioFrameLayout.RESIZE_MODE_FIT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.playPauseBTN.setOnClickListener {
|
||||||
|
if (player?.isPlaying == false) {
|
||||||
|
// start or go on playing
|
||||||
|
if (player?.playbackState == Player.STATE_ENDED) {
|
||||||
|
// restart video if finished
|
||||||
|
player?.seekTo(0)
|
||||||
|
}
|
||||||
|
player?.play()
|
||||||
|
} else {
|
||||||
|
// pause the video
|
||||||
|
player?.pause()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player?.addListener(object : Player.Listener {
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updatePlayPauseButton() {
|
||||||
|
if (player?.isPlaying == true) {
|
||||||
|
// video is playing
|
||||||
|
binding.playPauseBTN.setImageResource(R.drawable.ic_pause)
|
||||||
|
} else if (player?.playbackState == Player.STATE_ENDED) {
|
||||||
|
// video has finished
|
||||||
|
binding.playPauseBTN.setImageResource(R.drawable.ic_restart)
|
||||||
|
} else {
|
||||||
|
// player in any other state
|
||||||
|
binding.playPauseBTN.setImageResource(R.drawable.ic_play)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun hideController() {
|
override fun hideController() {
|
||||||
|
Loading…
Reference in New Issue
Block a user