fix: keep settings headers visible on Android 10 - #588
Open
mvanhorn wants to merge 1 commit into
Open
Conversation
Collaborator
|
Thank you for your contribution. The review process may take several days, and we will notify you as soon as there are any updates. |
Apricityx
added a commit
that referenced
this pull request
Aug 3, 2026
Apricityx
force-pushed
the
main
branch
2 times, most recently
from
August 5, 2026 12:00
ecbf8f3 to
091fcc7
Compare
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.
Restore a composition order in
FrostedGlassChromethat does not place the header content inside the problematic explicit shadow/haze graphics-layer combination on API 29, preferring the previously workingSurfaceelevation path or an equivalently scoped compatibility fallback while preserving the current shape, border, blur, and configurable background opacity. Keep the fix in this production shared primitive so the existingSettingsRouteScaffoldwiring fixes every settings page, including About, without per-route exceptions or a test-only rendering abstraction. Add an Android instrumentation regression test that launches the real settings flow on API 29, opens the non-scrollable About route, captures the screen after navigation settles, and checks for rendered foreground pixels within the accessibility-reported title bounds rather than merely checking that the semantic text node exists. On Android 10 / API 29, the title and subtitle at the top of launcher settings pages briefly render during navigation, then disappear until scrolling invalidates the page; the About page cannot be scrolled, so its header stays missing. The report includes exact navigation steps and device/API details, while a collaborator could not reproduce it on their environment and suspected an Android 10-specific rendering problem. All affected settings routes render their pinned header throughSettingsRouteScaffold, which delegates toFloatingGlassHeaderand the sharedFrostedGlassChromeimplementation. Repository history identifies the recent move fromSurfaceelevation to an explicitModifier.shadowimmediately beforeclipandhazeEffectas the narrow regression boundary for the old-platform graphics-layer behavior.Testing: On an API 29 emulator, open Settings and then About, wait for navigation/animations to settle, and verify the About title bounds contain contrasting rendered text pixels without any scroll gesture; On API 29, open a scrollable settings category and verify its title remains visibly rendered both before and after scrolling down and returning to the top.
Fixes #583