feat(tv): disable unsupported tracks in dialog

This commit is contained in:
Jarne Demeulemeester 2023-12-31 21:32:37 +01:00
parent 85f48b9abc
commit 92f1cf7eee
No known key found for this signature in database
GPG key ID: 1E5C6AFBD622E9F5
3 changed files with 18 additions and 9 deletions

View file

@ -277,17 +277,13 @@ private fun getTracks(player: Player, type: Int): ArrayList<Track> {
if (group.type == type) { if (group.type == type) {
val format = group.mediaTrackGroup.getFormat(0) val format = group.mediaTrackGroup.getFormat(0)
val label = format.label
val language = Locale(format.language.toString()).displayLanguage
val codec = format.codecs
val selected = group.isSelected
val track = Track( val track = Track(
id = groupIndex, id = groupIndex,
label = label, label = format.label,
language = language, language = Locale(format.language.toString()).displayLanguage,
codec = codec, codec = format.codecs,
selected = selected, selected = group.isSelected,
supported = group.isSupported
) )
tracks.add(track) tracks.add(track)

View file

@ -58,10 +58,12 @@ fun VideoPlayerTrackSelectorDialog(
onClick = { onClick = {
resultNavigator.navigateBack(result = track.id) resultNavigator.navigateBack(result = track.id)
}, },
enabled = track.supported,
shape = ClickableSurfaceDefaults.shape(shape = RoundedCornerShape(4.dp)), shape = ClickableSurfaceDefaults.shape(shape = RoundedCornerShape(4.dp)),
colors = ClickableSurfaceDefaults.colors( colors = ClickableSurfaceDefaults.colors(
containerColor = Color.Transparent, containerColor = Color.Transparent,
focusedContainerColor = Color.Transparent, focusedContainerColor = Color.Transparent,
disabledContainerColor = Color.Transparent,
), ),
border = ClickableSurfaceDefaults.border( border = ClickableSurfaceDefaults.border(
focusedBorder = Border( focusedBorder = Border(
@ -105,6 +107,7 @@ private fun VideoPlayerTrackSelectorDialogPreview() {
language = "English", language = "English",
codec = "flac", codec = "flac",
selected = true, selected = true,
supported = true
), ),
Track( Track(
id = 0, id = 0,
@ -112,6 +115,15 @@ private fun VideoPlayerTrackSelectorDialogPreview() {
language = "Japanese", language = "Japanese",
codec = "flac", codec = "flac",
selected = false, selected = false,
supported = true,
),
Track(
id = 0,
label = null,
language = "English",
codec = "truehd",
selected = false,
supported = false,
), ),
), ),
resultNavigator = EmptyResultBackNavigator(), resultNavigator = EmptyResultBackNavigator(),

View file

@ -10,4 +10,5 @@ data class Track(
val language: String?, val language: String?,
val codec: String?, val codec: String?,
val selected: Boolean, val selected: Boolean,
val supported: Boolean,
) : Parcelable ) : Parcelable