Repository navigation
fix(settings): stop old page flashing on back gesture; desynced page … - #156
Merged
Merged
Conversation
dragonx943
approved these changes
Oct 23, 2026
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.
…titles
what
SVID_20261019_190400_1.mp4
why
setTransition(TRANSIT_FRAGMENT_OPEN), which plays fragment Animators. With predictive back (Android 14+), FragmentManager seeks those Animators withsetCurrentPlayTime()and callsAnimatorSet.start()when the gesture is committed. That call draws one frame at the start values (alpha 1, scale 1).onResume(). The entering page only reaches RESUMED after the transition ends.fix
Fadeinstead ofsetTransition(). Transitions are seeked by a different mechanism and don't flash, and the fade still follows the gesture.motionDurationShort2from the Material theme); the default 300 ms felt slow.STIFFNESS_LOW, about 300 ms) that can't be configured, so the fade is front-loaded to be nearly done before release. The visible page change after a gesture went from about 200 ms to 33–66 ms.FragmentLifecycleCallbacksre-applies them to restored fragments. Without this, back after a theme change or rotation had no animation.onStart()(BasePreferenceFragment,SourceSettingsFragment, and the changelog, nav config, sources manage and plugins manage fragments), which runs when the transition starts. A cancelled gesture runs the section'sonStart()again and restores its title. All title setters moved together; otherwiseSourceSettingsFragmentwould show "Settings" before the source name.SVID_20261019_211913_1.mp4
test
compileDebugKotlinpasses.