From 197228f6d55c1ce6f4a755c467edce7194899116 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 12 Dec 2022 19:17:54 +0100 Subject: [PATCH] Hightlight the current resolution in the quality selection --- .../libretube/services/DownloadService.kt | 5 +++-- .../libretube/ui/fragments/PlayerFragment.kt | 22 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/github/libretube/services/DownloadService.kt b/app/src/main/java/com/github/libretube/services/DownloadService.kt index a640f8672..7972ce033 100644 --- a/app/src/main/java/com/github/libretube/services/DownloadService.kt +++ b/app/src/main/java/com/github/libretube/services/DownloadService.kt @@ -106,8 +106,9 @@ class DownloadService : Service() { DownloadManager.EXTRA_DOWNLOAD_ID, -1 ) - if (downloadId == audioDownloadId) audioDownloadId = null - else if (downloadId == videoDownloadId) videoDownloadId = null + if (downloadId == audioDownloadId) { + audioDownloadId = null + } else if (downloadId == videoDownloadId) videoDownloadId = null if (audioDownloadId != null || videoDownloadId != null) return 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 96b44b8f4..973d4ec8c 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 @@ -1133,12 +1133,12 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { if (resolutions.isEmpty()) { return listOf( - VideoResolution(getString(R.string.hls), adaptiveSourceUrl = streams.hls) + VideoResolution(getString(R.string.hls), resolution = Int.MAX_VALUE, adaptiveSourceUrl = streams.hls) ) + } else { + resolutions.add(0, VideoResolution(getString(R.string.auto_quality), Int.MAX_VALUE)) } - resolutions.add(0, VideoResolution(getString(R.string.auto_quality), null)) - return resolutions } @@ -1176,12 +1176,9 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { ) } - private fun setPlayerResolution(resolution: Int?) { + private fun setPlayerResolution(resolution: Int) { val params = trackSelector.buildUponParameters() - when (resolution) { - null -> params.setMaxVideoSize(Int.MAX_VALUE, Int.MAX_VALUE).setMinVideoSize(0, 0) - else -> params.setMaxVideoSize(Int.MAX_VALUE, resolution).setMinVideoSize(Int.MIN_VALUE, resolution) - } + params.setMaxVideoSize(Int.MAX_VALUE, resolution).setMinVideoSize(Int.MIN_VALUE, resolution) trackSelector.setParameters(params) } @@ -1327,13 +1324,18 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { override fun onQualityClicked() { // get the available resolutions val resolutions = getAvailableResolutions() + val currentQuality = trackSelector.parameters.maxVideoHeight // Dialog for quality selection BaseBottomSheet() .setSimpleItems( - resolutions.map { it.name } + resolutions.map { + if (currentQuality == it.resolution) "${it.name} ✓" else it.name + } ) { which -> - setPlayerResolution(resolutions[which].resolution) + resolutions[which].resolution?.let { + setPlayerResolution(it) + } } .show(childFragmentManager) }