feat: Implement custom keyboard for Android TV (#523)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2025-10-09 09:59:30 +02:00 committed by GitHub
parent 721fc28060
commit 75c2f958b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 927 additions and 157 deletions

View file

@ -33,6 +33,7 @@ fun AudioPicker(
val listState = rememberLazyListState()
LaunchedEffect(selectedIndex) {
if (selectedIndex == -1) return@LaunchedEffect
listState.scrollToItem(
audioTracks.indexOfFirst { it.index == selectedIndex.toLong() }
)
@ -50,15 +51,16 @@ fun AudioPicker(
verticalArrangement = Arrangement.spacedBy(6.dp)
) {
item {
val selectedOff = -1 == selectedIndex
TrackButton(
modifier = Modifier
.fillMaxWidth()
.defaultSelected(-1 == selectedIndex),
.defaultSelected(selectedOff),
onClick = {
VideoPlayerObject.setAudioTrackIndex(-1)
player.clearAudioTrack()
},
selected = -1 == selectedIndex
selected = selectedOff
) {
Text(
text = "Off",

View file

@ -35,6 +35,7 @@ fun SubtitlePicker(
val listState = rememberLazyListState()
LaunchedEffect(selectedIndex) {
if (selectedIndex == -1) return@LaunchedEffect
listState.scrollToItem(
subTitles.indexOfFirst { it.index == selectedIndex.toLong() }
)
@ -52,15 +53,16 @@ fun SubtitlePicker(
verticalArrangement = Arrangement.spacedBy(6.dp)
) {
item {
val selectedOff = -1 == selectedIndex
TrackButton(
modifier = Modifier
.fillMaxWidth()
.defaultSelected(-1 == selectedIndex),
.defaultSelected(selectedOff),
onClick = {
VideoPlayerObject.setSubtitleTrackIndex(-1)
player.clearSubtitleTrack()
},
selected = -1 == selectedIndex
selected = selectedOff
) {
Column(
horizontalAlignment = Alignment.Start,