Fix not-updating skip/prev buttons

This commit is contained in:
Bnyro 2022-12-10 13:11:38 +01:00
parent a629b066f4
commit 8db59399b9

View File

@ -25,6 +25,7 @@ import androidx.annotation.RequiresApi
import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.os.postDelayed
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
@ -167,6 +168,8 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
private lateinit var segmentData: SegmentData private lateinit var segmentData: SegmentData
private var sponsorBlockEnabled = PlayerHelper.sponsorBlockEnabled private var sponsorBlockEnabled = PlayerHelper.sponsorBlockEnabled
val handler = Handler(Looper.getMainLooper())
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
arguments?.let { arguments?.let {
@ -215,7 +218,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
if (this::playerBinding.isInitialized && !binding.player.isPlayerLocked) { if (this::playerBinding.isInitialized && !binding.player.isPlayerLocked) {
playerBinding.exoBottomBar.visibility = View.VISIBLE playerBinding.exoBottomBar.visibility = View.VISIBLE
} }
Handler(Looper.getMainLooper()).postDelayed(this::showBottomBar, 100) handler.postDelayed(this::showBottomBar, 100)
} }
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
@ -533,7 +536,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
private fun checkForSegments() { private fun checkForSegments() {
if (!exoPlayer.isPlaying || !PlayerHelper.sponsorBlockEnabled) return if (!exoPlayer.isPlaying || !PlayerHelper.sponsorBlockEnabled) return
Handler(Looper.getMainLooper()).postDelayed(this::checkForSegments, 100) handler.postDelayed(this::checkForSegments, 100)
if (!sponsorBlockEnabled) return if (!sponsorBlockEnabled) return
@ -685,7 +688,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
playerBinding.liveDiff.text = "-$diffText" playerBinding.liveDiff.text = "-$diffText"
} }
// call it again // call it again
Handler(Looper.getMainLooper()) handler
.postDelayed(this@PlayerFragment::refreshLiveStatus, 100) .postDelayed(this@PlayerFragment::refreshLiveStatus, 100)
} }
@ -822,7 +825,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
} }
if (isPlaying && PlayerHelper.sponsorBlockEnabled) { if (isPlaying && PlayerHelper.sponsorBlockEnabled) {
Handler(Looper.getMainLooper()).postDelayed( handler.postDelayed(
this@PlayerFragment::checkForSegments, this@PlayerFragment::checkForSegments,
100 100
) )
@ -949,11 +952,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
) )
} }
// next and previous buttons syncQueueButtons()
if (PlayerHelper.skipButtonsEnabled) {
playerBinding.skipPrev.setInvisible(!PlayingQueue.hasPrev())
playerBinding.skipNext.setInvisible(!PlayingQueue.hasNext())
}
playerBinding.skipPrev.setOnClickListener { playerBinding.skipPrev.setOnClickListener {
playNextVideo(PlayingQueue.getPrev()) playNextVideo(PlayingQueue.getPrev())
@ -964,6 +963,16 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
} }
} }
private fun syncQueueButtons() {
if (!PlayerHelper.skipButtonsEnabled) return
// next and previous buttons
playerBinding.skipPrev.setInvisible(!PlayingQueue.hasPrev())
playerBinding.skipNext.setInvisible(!PlayingQueue.hasNext())
handler.postDelayed(this::syncQueueButtons, 100)
}
private fun updatePlayPauseButton() { private fun updatePlayPauseButton() {
if (exoPlayer.isPlaying) { if (exoPlayer.isPlaying) {
// video is playing // video is playing