Simplify getAvailableResolutions().

This commit is contained in:
Isira Seneviratne 2023-02-13 09:13:15 +05:30
parent 97ec8bf315
commit b99fb04cbd
2 changed files with 11 additions and 25 deletions

View File

@ -2,6 +2,5 @@ package com.github.libretube.obj
data class VideoResolution( data class VideoResolution(
val name: String, val name: String,
val resolution: Int? = null, val resolution: Int
val adaptiveSourceUrl: String? = null
) )

View File

@ -1202,29 +1202,18 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions {
* Get all available player resolutions * Get all available player resolutions
*/ */
private fun getAvailableResolutions(): List<VideoResolution> { private fun getAvailableResolutions(): List<VideoResolution> {
val resolutions = exoPlayer.currentTracks.groups.asSequence().map { group -> val resolutions = exoPlayer.currentTracks.groups.asSequence()
(0 until group.length).map { .flatMap { group ->
group.getTrackFormat(it).height (0 until group.length).map {
group.getTrackFormat(it).height
}
} }
}.flatten()
.filter { it > 0 } .filter { it > 0 }
.sortedDescending() .map { VideoResolution("${it}p", it) }
.distinct() .toSortedSet(compareByDescending { it.resolution })
return resolutions.map { resolutions.add(VideoResolution(getString(R.string.auto_quality), Int.MAX_VALUE))
VideoResolution( return resolutions.toList()
name = "${it}p",
resolution = it
)
}.toMutableList().also {
it.add(
0,
VideoResolution(
getString(R.string.auto_quality),
resolution = Int.MAX_VALUE
)
)
}
} }
private fun setResolutionAndSubtitles() { private fun setResolutionAndSubtitles() {
@ -1366,9 +1355,7 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions {
if (currentQuality == it.resolution) "${it.name}" else it.name if (currentQuality == it.resolution) "${it.name}" else it.name
} }
) { which -> ) { which ->
resolutions[which].resolution?.let { setPlayerResolution(resolutions[which].resolution)
setPlayerResolution(it)
}
} }
.show(childFragmentManager) .show(childFragmentManager)
} }