More polishing
This commit is contained in:
parent
592ceb4b2f
commit
4670a42d31
3 changed files with 37 additions and 19 deletions
|
|
@ -4,7 +4,7 @@
|
||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
<DropdownSelection timestamp="2026-06-24T07:49:03.527980803Z">
|
<DropdownSelection timestamp="2026-06-24T10:28:35.006754299Z">
|
||||||
<Target type="DEFAULT_BOOT">
|
<Target type="DEFAULT_BOOT">
|
||||||
<handle>
|
<handle>
|
||||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=RFCY20YA30P" />
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=RFCY20YA30P" />
|
||||||
|
|
|
||||||
|
|
@ -98,11 +98,19 @@ fun RecordingItem(
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(bottom = 6.dp)
|
.padding(bottom = 6.dp)
|
||||||
) {
|
) {
|
||||||
Text(
|
Box(
|
||||||
text = recording.formattedDate,
|
modifier = Modifier
|
||||||
style = MaterialTheme.typography.bodySmall,
|
.clip(RoundedCornerShape(4.dp))
|
||||||
color = Color(0xFFA3D1FF)
|
.background(Color(0xFF054D00))
|
||||||
)
|
.padding(horizontal = 6.dp, vertical = 1.dp)
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = recording.formattedDate,
|
||||||
|
style = MaterialTheme.typography.labelSmall,
|
||||||
|
fontWeight = FontWeight.Bold,
|
||||||
|
color = Color(0xFFCCCCCC)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// "NEW" badge — shown until the recording is first played.
|
// "NEW" badge — shown until the recording is first played.
|
||||||
if (recording.isNew) {
|
if (recording.isNew) {
|
||||||
|
|
@ -184,7 +192,7 @@ fun RecordingItem(
|
||||||
Text(
|
Text(
|
||||||
text = recording.artist,
|
text = recording.artist,
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = Color(0xFFE6A900),
|
color = Color(0xFF61B5FF),
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis
|
overflow = TextOverflow.Ellipsis
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
|
|
@ -202,7 +203,7 @@ fun RecordingListScreen(
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Shuffle,
|
imageVector = Icons.Default.Shuffle,
|
||||||
contentDescription = stringResource(R.string.cd_shuffle),
|
contentDescription = stringResource(R.string.cd_shuffle),
|
||||||
tint = if (shuffle) MaterialTheme.colorScheme.primary
|
tint = if (shuffle) Color(0xFF70D66B)
|
||||||
else MaterialTheme.colorScheme.onSurfaceVariant
|
else MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -214,7 +215,7 @@ fun RecordingListScreen(
|
||||||
contentDescription = stringResource(R.string.cd_repeat),
|
contentDescription = stringResource(R.string.cd_repeat),
|
||||||
tint = if (repeatMode == RepeatMode.OFF)
|
tint = if (repeatMode == RepeatMode.OFF)
|
||||||
MaterialTheme.colorScheme.onSurfaceVariant
|
MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
else MaterialTheme.colorScheme.primary
|
else Color(0xFF70D66B)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// Search & filter
|
// Search & filter
|
||||||
|
|
@ -222,7 +223,7 @@ fun RecordingListScreen(
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Search,
|
imageVector = Icons.Default.Search,
|
||||||
contentDescription = stringResource(R.string.cd_search_filter),
|
contentDescription = stringResource(R.string.cd_search_filter),
|
||||||
tint = if (hasActiveFilter || showControls) MaterialTheme.colorScheme.primary
|
tint = if (hasActiveFilter || showControls) Color(0xFF70D66B)
|
||||||
else MaterialTheme.colorScheme.onSurfaceVariant
|
else MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -301,7 +302,8 @@ fun RecordingListScreen(
|
||||||
) {
|
) {
|
||||||
Box {
|
Box {
|
||||||
TextButton(onClick = { showSortMenu = true }) {
|
TextButton(onClick = { showSortMenu = true }) {
|
||||||
Text(stringResource(sortMode.labelRes), style = MaterialTheme.typography.labelMedium)
|
Text(stringResource(sortMode.labelRes), style = MaterialTheme.typography.labelMedium,
|
||||||
|
color = Color(0xFF70D66B))
|
||||||
}
|
}
|
||||||
DropdownMenu(expanded = showSortMenu, onDismissRequest = { showSortMenu = false }) {
|
DropdownMenu(expanded = showSortMenu, onDismissRequest = { showSortMenu = false }) {
|
||||||
SortMode.entries.forEach { mode ->
|
SortMode.entries.forEach { mode ->
|
||||||
|
|
@ -325,7 +327,8 @@ fun RecordingListScreen(
|
||||||
Text(
|
Text(
|
||||||
if (hiddenArtists.isEmpty()) stringResource(R.string.filter_artists)
|
if (hiddenArtists.isEmpty()) stringResource(R.string.filter_artists)
|
||||||
else stringResource(R.string.filter_artists_hidden, hiddenArtists.size),
|
else stringResource(R.string.filter_artists_hidden, hiddenArtists.size),
|
||||||
style = MaterialTheme.typography.labelMedium
|
style = MaterialTheme.typography.labelMedium,
|
||||||
|
color = Color(0xFF70D66B)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -333,7 +336,8 @@ fun RecordingListScreen(
|
||||||
Text(
|
Text(
|
||||||
if (hiddenYears.isEmpty()) stringResource(R.string.filter_years)
|
if (hiddenYears.isEmpty()) stringResource(R.string.filter_years)
|
||||||
else stringResource(R.string.filter_years_hidden, hiddenYears.size),
|
else stringResource(R.string.filter_years_hidden, hiddenYears.size),
|
||||||
style = MaterialTheme.typography.labelMedium
|
style = MaterialTheme.typography.labelMedium,
|
||||||
|
color = Color(0xFF70D66B)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -346,10 +350,12 @@ fun RecordingListScreen(
|
||||||
Column(modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp)) {
|
Column(modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp)) {
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
TextButton(onClick = { vm.showAllArtists() }) {
|
TextButton(onClick = { vm.showAllArtists() }) {
|
||||||
Text(stringResource(R.string.filter_all), style = MaterialTheme.typography.labelSmall)
|
Text(stringResource(R.string.filter_all), style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B))
|
||||||
}
|
}
|
||||||
TextButton(onClick = { vm.hideAllArtists() }) {
|
TextButton(onClick = { vm.hideAllArtists() }) {
|
||||||
Text(stringResource(R.string.filter_none), style = MaterialTheme.typography.labelSmall)
|
Text(stringResource(R.string.filter_none), style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FlowRow(
|
FlowRow(
|
||||||
|
|
@ -360,7 +366,8 @@ fun RecordingListScreen(
|
||||||
FilterChip(
|
FilterChip(
|
||||||
selected = artist !in hiddenArtists,
|
selected = artist !in hiddenArtists,
|
||||||
onClick = { vm.toggleArtist(artist) },
|
onClick = { vm.toggleArtist(artist) },
|
||||||
label = { Text(artist, style = MaterialTheme.typography.labelSmall) }
|
label = { Text(artist, style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B)) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -375,10 +382,12 @@ fun RecordingListScreen(
|
||||||
Column(modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp)) {
|
Column(modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp)) {
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
TextButton(onClick = { vm.showAllYears() }) {
|
TextButton(onClick = { vm.showAllYears() }) {
|
||||||
Text(stringResource(R.string.filter_all), style = MaterialTheme.typography.labelSmall)
|
Text(stringResource(R.string.filter_all), style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B))
|
||||||
}
|
}
|
||||||
TextButton(onClick = { vm.hideAllYears() }) {
|
TextButton(onClick = { vm.hideAllYears() }) {
|
||||||
Text(stringResource(R.string.filter_none), style = MaterialTheme.typography.labelSmall)
|
Text(stringResource(R.string.filter_none), style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FlowRow(
|
FlowRow(
|
||||||
|
|
@ -389,7 +398,8 @@ fun RecordingListScreen(
|
||||||
FilterChip(
|
FilterChip(
|
||||||
selected = year !in hiddenYears,
|
selected = year !in hiddenYears,
|
||||||
onClick = { vm.toggleYear(year) },
|
onClick = { vm.toggleYear(year) },
|
||||||
label = { Text(year.toString(), style = MaterialTheme.typography.labelSmall) }
|
label = { Text(year.toString(), style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFF70D66B)) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue