diff --git a/app/src/main/java/com/github/libretube/obj/VideoResolution.kt b/app/src/main/java/com/github/libretube/obj/VideoResolution.kt index b234cfda2e..465e01a16f 100644 --- a/app/src/main/java/com/github/libretube/obj/VideoResolution.kt +++ b/app/src/main/java/com/github/libretube/obj/VideoResolution.kt @@ -2,6 +2,5 @@ package com.github.libretube.obj data class VideoResolution( val name: String, - val resolution: Int? = null, - val adaptiveSourceUrl: String? = null + val resolution: Int ) 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 6849876a8c..2438b87186 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 @@ -1202,29 +1202,18 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions { * Get all available player resolutions */ private fun getAvailableResolutions(): List { - val resolutions = exoPlayer.currentTracks.groups.asSequence().map { group -> - (0 until group.length).map { - group.getTrackFormat(it).height + val resolutions = exoPlayer.currentTracks.groups.asSequence() + .flatMap { group -> + (0 until group.length).map { + group.getTrackFormat(it).height + } } - }.flatten() .filter { it > 0 } - .sortedDescending() - .distinct() + .map { VideoResolution("${it}p", it) } + .toSortedSet(compareByDescending { it.resolution }) - return resolutions.map { - VideoResolution( - name = "${it}p", - resolution = it - ) - }.toMutableList().also { - it.add( - 0, - VideoResolution( - getString(R.string.auto_quality), - resolution = Int.MAX_VALUE - ) - ) - } + resolutions.add(VideoResolution(getString(R.string.auto_quality), Int.MAX_VALUE)) + return resolutions.toList() } private fun setResolutionAndSubtitles() { @@ -1366,9 +1355,7 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions { if (currentQuality == it.resolution) "${it.name} ✓" else it.name } ) { which -> - resolutions[which].resolution?.let { - setPlayerResolution(it) - } + setPlayerResolution(resolutions[which].resolution) } .show(childFragmentManager) }