From c72f444448da3973a743ac5be17f22eb40c891b4 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Tue, 3 Mar 2026 22:30:47 -0500 Subject: [PATCH] Add remove from queue button --- .../ui/detail/music/NowPlayingOverlay.kt | 16 ++++++++++++++++ .../wholphin/ui/detail/music/NowPlayingPage.kt | 1 + 2 files changed, 17 insertions(+) diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingOverlay.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingOverlay.kt index 2231fecf..6f69411c 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingOverlay.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingOverlay.kt @@ -16,10 +16,13 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf @@ -37,10 +40,12 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.media3.common.Player import androidx.media3.common.util.UnstableApi +import androidx.tv.material3.Icon import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.github.damontecres.wholphin.R import com.github.damontecres.wholphin.data.model.AudioItem +import com.github.damontecres.wholphin.ui.components.Button import com.github.damontecres.wholphin.ui.ifElse import com.github.damontecres.wholphin.ui.main.settings.MoveDirection import com.github.damontecres.wholphin.ui.playback.ControllerViewState @@ -63,6 +68,7 @@ fun NowPlayingOverlay( onLongClickSong: (Int, AudioItem) -> Unit, onClickMore: () -> Unit, onMoveQueue: (Int, MoveDirection) -> Unit, + onClickRemove: (Int, AudioItem) -> Unit, modifier: Modifier = Modifier, ) { val scope = rememberCoroutineScope() @@ -188,6 +194,16 @@ fun NowPlayingOverlay( enabled = index < queue.lastIndex, onClick = { onMoveQueue.invoke(index, MoveDirection.DOWN) }, ) + Button( + onClick = { onClickRemove.invoke(index, song) }, + enabled = true, + modifier = Modifier.size(32.dp), + ) { + Icon( + imageVector = Icons.Default.Delete, + contentDescription = stringResource(R.string.remove_from_queue), + ) + } } } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingPage.kt index 212d50b7..244a7a4e 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/music/NowPlayingPage.kt @@ -205,6 +205,7 @@ fun NowPlayingPage( onMoveQueue = { index, direction -> viewModel.moveQueue(index, direction) }, onClickMore = { showMoreDialog = true }, onClickSong = { index, _ -> viewModel.play(index) }, + onClickRemove = { index, _ -> viewModel.removeFromQueue(index) }, onLongClickSong = { index, song -> itemMoreDialog = DialogParams(