ui nits: cover placeholder ratio, now playing scrim/title, add-server keyboard, titlebars, search dismiss, fab icon

- CoverArt: use the thumbnail's intrinsic ratio until the full-res painter loads, so non-square art no longer snaps
- Now Playing: move the top scrim out of the sliding screen into MainNavigation, static under the status bar, fading in as the screen settles at the top
- Now Playing: titlebar shows the playback source (album/playlist name, or Library) instead of "Now playing"
- Add server: keep the test/save bar above the keyboard on first launch
- Titlebars: use the theme default title style instead of headlineMedium
- Library: clicking an item in a searched tab dismisses the search
- Library FAB: use the AutoMirrored Sort icon at 28dp so the glyph reads a little thicker
This commit is contained in:
austinried
2026-10-04 00:29:58 +00:00
parent 2552e1a10c
commit 2e925f2f78
12 changed files with 106 additions and 35 deletions
@@ -78,7 +78,7 @@ class PlaybackControllerTest {
await { handle.operations.contains("play") }
assertEquals(51, handle.itemCount)
assertEquals(QueueContext(QueueKind.Songs, ""), controller.state.value.context)
assertEquals(QueueContext(QueueKind.Songs, 1, ""), controller.state.value.context)
assertTrue(controller.state.value.hasNext)
assertTrue(controller.state.value.hasPrevious)
}
@@ -305,7 +305,7 @@ class PlaybackControllerTest {
controller.playAlbum(1, "al1", 0)
await { controller.state.value.item != null }
assertEquals(QueueContext(QueueKind.Album, "al1"), controller.state.value.context)
assertEquals(QueueContext(QueueKind.Album, 1, "al1"), controller.state.value.context)
assertTrue(controller.state.value.isPlaying)
assertTrue(controller.state.value.hasNext)
assertTrue(controller.state.value.hasPrevious)
@@ -370,6 +370,7 @@ class AppScreenshotTest {
SubtracksTheme {
NowPlayingScreen(
state = Fixtures.playbackState(),
title = "Kid A",
coverArt = CoverArtRef("art-al-kid-a", "test:art-al-kid-a"),
artwork = artworkColorsFromSeed(Color.rgb(120, 80, 200)),
onBack = {},
@@ -392,6 +393,7 @@ class AppScreenshotTest {
SubtracksTheme {
NowPlayingScreen(
state = Fixtures.playbackState().copy(shuffle = true, repeat = RepeatMode.One),
title = "Kid A",
coverArt = CoverArtRef("art-al-kid-a", "test:art-al-kid-a"),
artwork = artworkColorsFromSeed(Color.rgb(120, 80, 200)),
onBack = {},