Skip to content

Fix multiple UX issues + drop decorative gradients#1988

Merged
lostf1sh merged 7 commits into
masterfrom
fix/multi-issue-batch-and-gradient-cleanup
May 13, 2026
Merged

Fix multiple UX issues + drop decorative gradients#1988
lostf1sh merged 7 commits into
masterfrom
fix/multi-issue-batch-and-gradient-cleanup

Conversation

@lostf1sh

@lostf1sh lostf1sh commented May 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Seven separate commits, one per issue, that address the user-reported UX issues plus a follow-up gradient cleanup.

Fixes

  • fix(accounts) — Service title in connected-account card no longer truncates (titleLarge/maxLines=1 → titleMedium/maxLines=2). "NetEase Cloud Music" / "QQ Music" now fit alongside the Connected badge.
  • feat(queue) — Adds a Locate current song entry to the queue sheet's expanded FAB menu; scrolls (instant or animated by distance) to the playing track. Hidden when the current song is not in the visible queue range.
  • fix(home) — Saves Home's scroll position on ON_PAUSE and re-applies it via LaunchedEffect once data is ready, so returning from Listening Stats lands back at the same place even when conditional sections (Daily Mix, Recently Played, Stats card) shift indices during re-emit.
  • fix(cast) — Skips the "Nearby devices" header + refresh indicator items when both wifi and bluetooth are off, leaving only the WifiOffIllustration instead of a dead empty card.
  • feat(song-picker) — Adds a Favorites only FilterChip plus a leading Search icon to the song picker used in Create Playlist; favorites filter applies to both the paged list and search results.

Style cleanup

  • style(playlist) — Drops the primaryContainer → surfaceContainerHigh vertical gradient from PlaylistCreationTypeDialog background.
  • style(telegram) — Removes 5 decorative gradients across the Telegram module (dashboard page background, channel avatar fallback, empty-state circle, channel-search idle icon, song-item album-art fallback). Each replaced with a solid container color; unused Brush imports dropped.

./gradlew :app:compileDebugKotlin passes after each change.

Test plan

  • Accounts → connect QQ Music / NetEase Cloud Music; title no longer ellipsized
  • Queue sheet → open FAB menu, "Locate current song" present; tap it, list scrolls to current track
  • Home → scroll down, open Listening Stats, press back; scroll position is restored
  • Cast sheet → turn off wifi + bluetooth, open sheet; no "Nearby devices" header, only WifiOffIllustration
  • Create Playlist → step 2 song picker shows search icon + "Favorites only" chip; chip filters results
  • Create Playlist type-selection dialog → solid background, no gradient
  • Telegram dashboard, channel search, song rows → solid backgrounds where gradients used to be

lostf1sh added 7 commits May 13, 2026 21:26
Long service names like "NetEase Cloud Music" and "QQ Music" were
truncated because the title was titleLarge with maxLines=1 while the
"Connected" badge ate horizontal space. Drop to titleMedium and allow
the title to wrap to 2 lines.
Adds a "Locate current song" entry to the queue sheet's expanded FAB
menu (alongside Clear queue / Save as playlist). Tapping it scrolls
the queue list to the currently playing track — instantly when far,
animated when nearby. Entry is hidden when the current song is not in
the displayed queue range.
Home's conditional sections (Daily Mix, Recently Played, Listening
Stats card) shift their indices while their flows re-emit on return,
so the saved firstVisibleItemIndex in rememberLazyListState could land
on the wrong item or get clamped. Save the position explicitly on
ON_PAUSE and re-apply it via LaunchedEffect once the data is ready.
The "Nearby devices / No devices yet" header and refresh indicator
kept rendering even when both wifi and bluetooth were off, sitting
above the WifiOffIllustration as dead UI. Skip the header and refresh
indicator items entirely when allConnectivityOff is true.
While creating a new playlist there was no obvious way to filter the
song list. Add a "Favorites only" FilterChip below the search field
that narrows both the paged list and search results to favorited
tracks, and add a leading Search icon to the text field so it reads
as a filter input. Search label updated to "Search or filter songs…".
Remove the primaryContainer→surfaceContainerHigh vertical gradient
from the Create Playlist type-selection dialog so it inherits the
Surface's solid surfaceContainerHigh background like the rest of the
app's dialogs. Unused Brush import dropped.
Replace decorative Brush gradients with solid container colors across
the Telegram module:
- Dashboard page background (primaryContainer→transparent) removed
- Dashboard channel-row avatar fallback (primary→tertiary) → primary
- Dashboard empty-state circle (primaryContainer→tertiaryContainer) → primaryContainer
- Channel search initial-state icon backdrop → solid primaryContainer @ 0.5
- Song item album-art fallback (primaryContainer→tertiaryContainer) → primaryContainer

Drops the now-unused Brush import from each file.
@lostf1sh lostf1sh merged commit 6185863 into master May 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant