Fix multiple UX issues + drop decorative gradients#1988
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Seven separate commits, one per issue, that address the user-reported UX issues plus a follow-up gradient cleanup.
Fixes
ON_PAUSEand re-applies it viaLaunchedEffectonce 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.FilterChipplus 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
primaryContainer → surfaceContainerHighvertical gradient fromPlaylistCreationTypeDialogbackground.Brushimports dropped../gradlew :app:compileDebugKotlinpasses after each change.Test plan