Repository navigation
Add orbit card background styles and paint the orbit behind the library header - #371
Merged
Merged
Conversation
Lay out the preview orbit in a separate content slot so it can paint upward behind the header while the header stays readable, and clip the fullscreen stage so the overflow never escapes the route.
Extract header and content into separate slots so the orbit can paint above the stage behind the header, and clip the tab at screen bounds via a custom clipper. Add a paint-only top overflow to OrbitScroll for the ribbon and cards.
Verify the orbit path paints behind the library header by comparing gallery output with the path enabled and disabled, and tighten the rail clipping assertion to require zero ribbon bleed outside the Songs page.
Update the notice copy in en, es, tl, and zh to describe the orbit passing behind the library header and search bar while staying clipped to the Songs screen edges, matching the new overlay behavior. Regenerate the localizations.
Add a portrait-only Card Background section to the orbit settings with blur, black, and album-art color gradient options, and pass the selected style through to the orbit preview. Deep links to the cardBackground section now force the portrait profile.
Portrait cards now honor the card background setting: blackGradient keeps the legacy two-pass fade, blurGradient draws a pre-baked blurred cover with a lighter fade, and albumColorGradient tints the fade from the extracted dominant color. OrbitScroll preloads blurred artwork for the visible window so motion draws a cached texture instead of a live filter, and SongCard resolves album colors off the layout path.
Wire the new cardBackground section into the settings search catalog and pass the selected background style through to the orbit stage from the Songs screen.
Add the provider setter and preference plumbing for the card background style so the selection survives restarts and is cleared with the portrait layout reset.
Cover the selector in portrait settings, preference persistence and reset for the background style, and update card image lookups for the pre-baked blurred cover.
Introduce an ImageProvider that rasterizes a blurred, gradient-masked portrait overlay at a bounded size, sharing resolved local covers and image-cache entries across cards. Add a preloader that warms a small moving lookahead window, one cover at a time, replacing queued work on jumps or direction changes. Cover the raster sizing, cache behavior during animation and scrolling, and preloader queueing, reversal, disposal, and error handling with tests.
Introduce an OrbitCardBlur widget that renders the cached blur overlay without a live filter or gradient mask, reusing prewarmed textures on the first frame and deferring only missing artwork behind the extraction gate. Add the OrbitCardBackgroundStyle enum with storage serialization for the blur, black, and album color gradient options.
Add labels and hints for the card background style selector in English, Spanish, Filipino, and Chinese.
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
orbit_card_background_style(default black gradient), reset it with the portrait layout, and expose it in Orbit settings, settings search, and a deep link that opens the portrait Card Background section.OrbitCardBlurImagedecodes a bounded 192px raster, bakes the horizontal fade into the image, and disposes its codecs and pictures after each render.OrbitCardBlurPreloader: four-card lookahead plus half the visible window, forward before backward, one cover at a time, and a fresh queue when the user changes direction or jumps.albumSurface, with a darkening scrim that keeps title and artist text readable. The black style keeps its existing two-pass fade, and landscape cards are unchanged.Related issue
none
Checklist
flutter analyzepassesflutter testpassescargo test --manifest-path rust/Cargo.tomlpassesflutter run --flavor full)CHANGELOG.mdupdated for user-facing changes