History log of /frameworks/base/core/java/android/animation/TimeAnimator.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3618d30f8ab6018025b11869676b309c3b4961cf 14-Aug-2015 Doris Liu <tianliu@google.com> Internal cleanup for Animator framework

This CL includes the following changes:
1) Remove redundant field mPlayingState in ValueAnimator.
2) Refactor AnimationHandler so that all of its interaction with Choreographer
is through an interface. A custom provider that implements this interface can
be plugged in and provide timing pulse that are independent of Choreographer.
3) Better encapsulate AnimationHandler and ValueAnimator. Interaction between
the two is done through register/unregister frame callbacks as well as
AnimationFrameCallback interface.
4) Change how animation delay is handled.

Change-Id: Icd49f727321c362dab49b5b33815333c9ea559e0
/frameworks/base/core/java/android/animation/TimeAnimator.java
c42b28dda45347b05826dc3e04f5605a60867a63 07-Apr-2015 Jeff Brown <jeffbrown@google.com> Fix animation start jank due to expensive layout operations.

The Choreographer carefully schedules animation updates to occur
after input but before traversals occur. This ensures that the
effects of animations are perceived immediately in the next frame.
The start time of animation is usually set the moment the animator
first runs. The start time serves as a reference for timing the
remainder of the animation.

Setting the start time during the animation callback works well except
when traversals take a long time to complete. In that case, we may
end up drawing the initial frame of the animation then skipping several
following frames (because a lot of time has already passed since the
animation start time was set), effectively shortening the duration
of the animation.

To resolve this issue, we introduce a new COMMIT phase within the
Choreographer. The COMMIT callback runs after traversals complete
and may provide an updated frame time that more accurately reflects
the time when the frame finished drawing.

In the case where an animation is just starting, we note the fact
that its initial start time has not yet been committed (the user
hasn't actually seen anything on screen yet). Then, during the
COMMIT phase, we adjust the animation start time to better reflect
the time when the animation's first frame was drawn, effectively
causing the animation actually start after the expensive traversal
operations occurred such that no frames will be skipped.

Bug: 17258911
Change-Id: I279603d01fd4ed1de8f51a77c62f4fec5e9b746a
/frameworks/base/core/java/android/animation/TimeAnimator.java
0d1c27a713cb49de8f6f4fd0a129baa883153921 03-Nov-2014 Chet Haase <chet@google.com> Fix seeking and scaled duration behavior

The animation scaled was not being factored in early enough in the
activity lifecycle. Also, setCurrentPlaytTime() was not accounting for
the scaled duration correctly. Finally, added setCurrentFraction() as
a more general-purpose seeking facility.

Issue #18222006 Animator duration scale ignored in some situations
Issue #17951668 add ability to seek fraction, not just time

Change-Id: Idad401f5ff5026d7046c36eee09d78a4793215dc
/frameworks/base/core/java/android/animation/TimeAnimator.java
08d05e3d1d6ade6924266296033981a96b47d5fb 08-Aug-2012 Daniel Sandler <dsandler@android.com> New status bar capable of multiple sliding panels.

There are some visual glitches but almost everything should
be put back pretty much where it was.

Change-Id: I2f9b0591d44599b07bd83f03c4e09e6dd98e1448
/frameworks/base/core/java/android/animation/TimeAnimator.java
20c4f87b2916d05e860d11568d7db6b2d340e909 27-Apr-2012 Jeff Brown <jeffbrown@google.com> Use choreographer frame time to schedule animations.

Instead of using the current uptime millis, which can exhibit
substantial jitter depending on when the code runs, use the
current frame's vsync time when performing animations. The frame
time provides a more consistent pulse.

Bug: 6375101
Change-Id: Icf307cd8524246607db7496c6fef9a5eeb7c0439
/frameworks/base/core/java/android/animation/TimeAnimator.java
a33de55404eb2133d1bae2add3f6e8708459f56d 04-Feb-2012 Chet Haase <chet@google.com> Make the TimeAnimator class public.

This class has existed since ICS, but was hidden. This change
just makes it public API.
Also, cleaned up some internal javadocs.

Change-Id: Id69408446ced183e01d2b065a67397eb305d9665
/frameworks/base/core/java/android/animation/TimeAnimator.java
051d35e41f7b21cd8a1608bdce10cf70952c6be4 14-Dec-2010 Chet Haase <chet@google.com> Adding TimeAnimator capability (hidden for now)

This new class allows listeners to receive callbacks with elapsed time
that are sent on the same animation updates as other animators in the system.
It will allow simulations that go beyond the current animation system while
handling the actual animation timing system and ensuring that those
simulations sync up with other typical animations.

Change-Id: Iac91c39634218793f6598a7dec5ed71dc9630258
/frameworks/base/core/java/android/animation/TimeAnimator.java