diff options
author | 2025-03-18 17:10:25 -0700 | |
---|---|---|
committer | 2025-03-19 09:49:54 -0700 | |
commit | 25e28ec42118f3b3dc8ebc5372c1037aba7dfa30 (patch) | |
tree | 0167701f21270359b96ccd084139ecaa9ddd5e25 /libs/androidfw/LocaleDataLookup.cpp | |
parent | 34f9f07edf00f62d54803c60a5c30af678e33195 (diff) |
Fix issue with applying interpolators twice
SizeChangeAnimation internally uses view animations on a timeline of
1000ms. These view animations are driven by a ValueAnimator that is
returned to callers of SizeChangeAnimation. This ValueAnimator defines
the actual duration of the animation and can be used to define an
interpolator.
But there is an issue with applying interpolators to the ValueAnimator.
The internal view animations also have their own interpolator set. They
don't override the default and by default they use
accelerate/decelerate.
This means that we are applying two interpolators to the animation
curve: whatever is applied to the ValueAnimator + accelerate/decelerate.
Resulting in the animation curve not matching with what is expected.
Fixing this by ensuring that the internal view animations use a linear
interpolator. This allows the animation curve to be only controlled by
the ValueAnimator. Giving control to callers of SizeChangeAnimation to
define the animation timings.
Bug: 403659671
Test: manual, check the animation, log out animted values and check
against a known correct animation curve
Flag: com.android.wm.shell.enable_bubble_to_fullscreen
Change-Id: Idf20bf7fd9a43f5e9fa4c3d2b9a41480a3dc33dd
Diffstat (limited to 'libs/androidfw/LocaleDataLookup.cpp')
0 files changed, 0 insertions, 0 deletions