mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-12 00:32:26 +01:00
The song's times are larger on the media screen, and show under the player beside the map
This commit is contained in:
1 parent
4aeaaee875
commit
806ffdf2b8
3 files changed
+22
-8
No files matched your search
@@ -268,7 +268,10 @@ private fun DockedPlayer(now: NowPlaying, modifier: Modifier) {
|
||||
maxLines = 1, overflow = TextOverflow.Ellipsis,
|
||||
)
|
||||
if (now.durationMs > 0) {
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth().padding(vertical = 2.dp), showTimes = false)
|
||||
PlayerProgress(
|
||||
now, media, Modifier.fillMaxWidth().padding(vertical = 2.dp),
|
||||
timeStyle = MaterialTheme.typography.labelLarge,
|
||||
)
|
||||
} else {
|
||||
Spacer(Modifier.height(10.dp))
|
||||
}
|
||||
|
||||
@@ -721,7 +721,7 @@ private fun StageControls(now: NowPlaying, media: CarMedia, modifier: Modifier)
|
||||
)
|
||||
}
|
||||
}
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth().padding(top = if (compact) 4.dp else 12.dp), showTimes = showTimes)
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth().padding(top = if (compact) 4.dp else 12.dp), showTimes = showTimes, timeStyle = MaterialTheme.typography.titleLarge)
|
||||
// What's left goes to the buttons: play takes about half of it, the row below a third,
|
||||
// and neither grows past what a row of them fits across.
|
||||
BoxWithConstraints(Modifier.weight(1f).fillMaxWidth(), contentAlignment = Alignment.Center) {
|
||||
@@ -770,7 +770,7 @@ private fun NowPlayingControls(now: NowPlaying, media: CarMedia, modifier: Modif
|
||||
)
|
||||
}
|
||||
}
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth(), showTimes = showTimes)
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth(), showTimes = showTimes, timeStyle = MaterialTheme.typography.titleLarge)
|
||||
TransportRow(now, media, skip = if (compact) 48.dp else 60.dp, modifier = Modifier.fillMaxWidth())
|
||||
PlayModeRow(now, media, size = if (compact) 46.dp else 56.dp, modifier = Modifier.fillMaxWidth(), maxOther = 2)
|
||||
}
|
||||
@@ -810,7 +810,7 @@ private fun CompactPlayer(now: NowPlaying, media: CarMedia, art: android.graphic
|
||||
}
|
||||
}
|
||||
Spacer(Modifier.height(10.dp))
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth())
|
||||
PlayerProgress(now, media, Modifier.fillMaxWidth(), timeStyle = MaterialTheme.typography.titleLarge)
|
||||
Spacer(Modifier.height(6.dp))
|
||||
TransportRow(now, media, skip = 54.dp, modifier = Modifier.fillMaxWidth())
|
||||
Spacer(Modifier.height(10.dp))
|
||||
|
||||
@@ -59,9 +59,18 @@ import kotlinx.coroutines.withContext
|
||||
* the map - so a button looks and behaves the same wherever it turns up.
|
||||
*/
|
||||
|
||||
/** The seek bar, with elapsed and total time under it when [showTimes]. */
|
||||
/**
|
||||
* The seek bar, with elapsed and total time under it when [showTimes]. The times default to a
|
||||
* size readable at a glance from the driver's seat; the narrow side column passes a smaller one.
|
||||
*/
|
||||
@Composable
|
||||
internal fun PlayerProgress(now: NowPlaying, media: CarMedia, modifier: Modifier = Modifier, showTimes: Boolean = true) {
|
||||
internal fun PlayerProgress(
|
||||
now: NowPlaying,
|
||||
media: CarMedia,
|
||||
modifier: Modifier = Modifier,
|
||||
showTimes: Boolean = true,
|
||||
timeStyle: androidx.compose.ui.text.TextStyle = MaterialTheme.typography.titleMedium,
|
||||
) {
|
||||
if (now.durationMs <= 0) return
|
||||
var position by remember { mutableLongStateOf(now.currentPosition()) }
|
||||
LaunchedEffect(now) {
|
||||
@@ -80,8 +89,10 @@ internal fun PlayerProgress(now: NowPlaying, media: CarMedia, modifier: Modifier
|
||||
)
|
||||
if (showTimes) {
|
||||
Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
|
||||
Text(formatDuration(position), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
Text(formatDuration(now.durationMs), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
// Tabular figures, so the elapsed time doesn't jitter sideways as it counts.
|
||||
val style = timeStyle.copy(fontFeatureSettings = "tnum")
|
||||
Text(formatDuration(position), style = style, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
Text(formatDuration(now.durationMs), style = style, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user