diff --git a/app/src/main/java/com/github/libretube/ui/extensions/SetInvisible.kt b/app/src/main/java/com/github/libretube/ui/extensions/SetInvisible.kt new file mode 100644 index 000000000..b5cb0f836 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/extensions/SetInvisible.kt @@ -0,0 +1,7 @@ +package com.github.libretube.ui.extensions + +import android.view.View + +fun View.setInvisible(value: Boolean) { + this.visibility = if (value) View.INVISIBLE else View.VISIBLE +} diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index d908a43c7..5f64086b5 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -72,6 +72,7 @@ import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.dialogs.AddToPlaylistDialog import com.github.libretube.ui.dialogs.DownloadDialog import com.github.libretube.ui.dialogs.ShareDialog +import com.github.libretube.ui.extensions.setInvisible import com.github.libretube.ui.extensions.setupSubscriptionButton import com.github.libretube.ui.interfaces.OnlinePlayerOptions import com.github.libretube.ui.models.PlayerViewModel @@ -953,19 +954,13 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { } // next and previous buttons - playerBinding.skipPrev.visibility = if ( - PlayerHelper.skipButtonsEnabled && PlayingQueue.hasPrev() - ) { - View.VISIBLE - } else { - View.INVISIBLE + if (PlayerHelper.skipButtonsEnabled) { + playerBinding.skipPrev.setInvisible(!PlayingQueue.hasPrev()) + playerBinding.skipNext.setInvisible(!PlayingQueue.hasNext()) } - playerBinding.skipNext.visibility = - if (PlayerHelper.skipButtonsEnabled) View.VISIBLE else View.INVISIBLE playerBinding.skipPrev.setOnClickListener { - videoId = PlayingQueue.getPrev() - playVideo() + playNextVideo(PlayingQueue.getPrev()) } playerBinding.skipNext.setOnClickListener { diff --git a/app/src/main/java/com/github/libretube/util/PlayingQueue.kt b/app/src/main/java/com/github/libretube/util/PlayingQueue.kt index 7f2cfdaf1..e6171bb5b 100644 --- a/app/src/main/java/com/github/libretube/util/PlayingQueue.kt +++ b/app/src/main/java/com/github/libretube/util/PlayingQueue.kt @@ -45,12 +45,15 @@ object PlayingQueue { } fun getPrev(): String? { - val index = queue.indexOf(currentStream) - return if (index > 0) queue[index - 1].url?.toID() else null + return if (currentIndex() > 0) queue[currentIndex() - 1].url?.toID() else null } fun hasPrev(): Boolean { - return queue.indexOf(currentStream) > 0 + return currentIndex() > 0 + } + + fun hasNext(): Boolean { + return currentIndex() + 1 < size() } fun updateCurrent(streamItem: StreamItem) {