Hide unsupported skip actions in clock widget music part

This commit is contained in:
MM20 2023-02-14 16:59:32 +01:00
parent e4a599f234
commit d5729006e4
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -27,6 +27,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import de.mm20.launcher2.music.MusicService import de.mm20.launcher2.music.MusicService
import de.mm20.launcher2.music.PlaybackState import de.mm20.launcher2.music.PlaybackState
import de.mm20.launcher2.music.SupportedActions
import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetLayout import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetLayout
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -53,6 +54,7 @@ class MusicPartProvider : PartProvider, KoinComponent {
val title by musicService.title.collectAsState(null) val title by musicService.title.collectAsState(null)
val artist by musicService.artist.collectAsState(null) val artist by musicService.artist.collectAsState(null)
val state by musicService.playbackState.collectAsState(PlaybackState.Stopped) val state by musicService.playbackState.collectAsState(PlaybackState.Stopped)
val supportedActions by musicService.supportedActions.collectAsState(SupportedActions())
val playIcon = AnimatedImageVector.animatedVectorResource(R.drawable.anim_ic_play_pause) val playIcon = AnimatedImageVector.animatedVectorResource(R.drawable.anim_ic_play_pause)
@ -101,6 +103,7 @@ class MusicPartProvider : PartProvider, KoinComponent {
), contentDescription = null ), contentDescription = null
) )
} }
if (supportedActions.skipToNext) {
IconButton(onClick = { musicService.next() }) { IconButton(onClick = { musicService.next() }) {
Icon( Icon(
imageVector = Icons.Rounded.SkipNext, imageVector = Icons.Rounded.SkipNext,
@ -109,6 +112,7 @@ class MusicPartProvider : PartProvider, KoinComponent {
} }
} }
} }
}
if (layout === ClockWidgetLayout.Vertical) { if (layout === ClockWidgetLayout.Vertical) {
Column( Column(
modifier = Modifier.padding(8.dp), modifier = Modifier.padding(8.dp),
@ -149,12 +153,14 @@ class MusicPartProvider : PartProvider, KoinComponent {
} }
} }
Row { Row {
if (supportedActions.skipToPrevious) {
IconButton(onClick = { musicService.previous() }) { IconButton(onClick = { musicService.previous() }) {
Icon( Icon(
imageVector = Icons.Rounded.SkipPrevious, imageVector = Icons.Rounded.SkipPrevious,
contentDescription = null contentDescription = null
) )
} }
}
IconButton(onClick = { musicService.togglePause() }) { IconButton(onClick = { musicService.togglePause() }) {
Icon( Icon(
painter = rememberAnimatedVectorPainter( painter = rememberAnimatedVectorPainter(
@ -163,6 +169,7 @@ class MusicPartProvider : PartProvider, KoinComponent {
), contentDescription = null ), contentDescription = null
) )
} }
if (supportedActions.skipToPrevious) {
IconButton(onClick = { musicService.next() }) { IconButton(onClick = { musicService.next() }) {
Icon( Icon(
imageVector = Icons.Rounded.SkipNext, imageVector = Icons.Rounded.SkipNext,
@ -173,5 +180,6 @@ class MusicPartProvider : PartProvider, KoinComponent {
} }
} }
} }
}
} }