Merge pull request #5817 from FineFindus/fix/end-screen-controller

feat: improve video end screen
This commit is contained in:
Bnyro 2024-03-28 15:51:48 +01:00 committed by GitHub
commit aca61c49d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 3 deletions

View File

@ -41,6 +41,7 @@ import com.github.libretube.enums.PlayerEvent
import com.github.libretube.enums.SbSkipOptions import com.github.libretube.enums.SbSkipOptions
import com.github.libretube.extensions.updateParameters import com.github.libretube.extensions.updateParameters
import com.github.libretube.obj.VideoStats import com.github.libretube.obj.VideoStats
import com.github.libretube.util.PlayingQueue
import com.github.libretube.util.TextUtils import com.github.libretube.util.TextUtils
import java.util.Locale import java.util.Locale
import java.util.concurrent.Executors import java.util.concurrent.Executors
@ -343,6 +344,11 @@ object PlayerHelper {
) )
fun shouldPlayNextVideo(isPlaylist: Boolean = false): Boolean { fun shouldPlayNextVideo(isPlaylist: Boolean = false): Boolean {
// if there is no next video, it obviously should not be played
if (!PlayingQueue.hasNext()) {
return false
}
return autoPlayEnabled || ( return autoPlayEnabled || (
isPlaylist && PreferenceHelper.getBoolean( isPlaylist && PreferenceHelper.getBoolean(
PreferenceKeys.AUTOPLAY_PLAYLISTS, PreferenceKeys.AUTOPLAY_PLAYLISTS,

View File

@ -113,11 +113,11 @@ import com.github.libretube.util.PlayingQueue
import com.github.libretube.util.TextUtils import com.github.libretube.util.TextUtils
import com.github.libretube.util.TextUtils.toTimeInSeconds import com.github.libretube.util.TextUtils.toTimeInSeconds
import com.github.libretube.util.YoutubeHlsPlaylistParser import com.github.libretube.util.YoutubeHlsPlaylistParser
import java.util.concurrent.Executors
import kotlin.math.abs
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.concurrent.Executors
import kotlin.math.abs
@androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class)
class PlayerFragment : Fragment(), OnlinePlayerOptions { class PlayerFragment : Fragment(), OnlinePlayerOptions {
@ -313,7 +313,7 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions {
playNextVideo() playNextVideo()
} }
} else { } else {
binding.player.showController() binding.player.showControllerPermanently()
} }
} }

View File

@ -269,6 +269,12 @@ open class CustomExoPlayerView(
super.showController() super.showController()
} }
fun showControllerPermanently() {
// remove the previous callback from the queue to prevent a flashing behavior
cancelHideControllerTask()
super.showController()
}
override fun onTouchEvent(event: MotionEvent) = false override fun onTouchEvent(event: MotionEvent) = false
private fun initRewindAndForward() { private fun initRewindAndForward() {