History log of /frameworks/base/core/java/android/animation/ValueAnimator.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d15e94f0309a91d5a75d03a9ae165121e7f24907 23-Jan-2015 Chet Haase <chet@google.com> Allow infinite-repeat zero-duration animators to continue repeating

A recent change to ValueAnimator caused infinitely repeating animators with
duration 0 to be ended immediately. BatterySaver mode can cause animators
to have 0 duration, which means that apps depending on animator update events
no longer receive those events due to this behavior change.

The fix is to restore the previous behavior of allowing repeating animators
to continue, regardless of duration.

Issue #19113776 Fix infinite-repeating, zero-duration animator behavior

Change-Id: I4d1c7afb6d06ca45ef41db73c160f6a6d5754e24
/frameworks/base/core/java/android/animation/ValueAnimator.java
5a5afe010d2f8fb7e8f00858b8a305b4745c0469 05-Dec-2014 Eino-Ville Talvala <etalvala@google.com> Fix docs build

Change-Id: I9947d53aeb155d98f5194c9789f19aba1f01e4be
/frameworks/base/core/java/android/animation/ValueAnimator.java
f4e3bab9253bba2c0086c35f4e5a1f7e41324876 03-Dec-2014 Chet Haase <chet@google.com> Fix seeking behavior

A recent fix to seeking behavior injected a couple of issues that need
to be addressed:
- the start time should be updated when seeking so that future calculations
that depend on it (such as the next animation frame) will use the updated
start time based on this seek request. This allows, for example, seeking
into a running animator so that that animator will update its current fraction
to the new seeked value.
- calling reverse() on an unstarted animation would incorrectly set the initial
frame of the animation to the end value for one frame before the reverse animation
actually began.

Issue #18567716 No icons in folders in battery saving mode
Issue #18511989 Search bar flashes when icon is picked up and dropped

Change-Id: Ie30b7e797468c6ccb3d17d4fb3aba6b9849436b0
/frameworks/base/core/java/android/animation/ValueAnimator.java
5a25e5bae223bbee56dab75e36d1d947c8c3cb11 01-Dec-2014 Chet Haase <chet@google.com> Zero duration animations snap to end value when started

A recent change to seeking behavior altered the logic of
setCurrentPlayTime() (which is called when animations are first
started) to set the current animated fraction to 0 for 0-duration
animations. This fix ensures that 0-duration animations snap to
their end value (fraction == 1) instead, matching the behavior
prior to the seeking fix.

Issue #18542543 Animations with 0 duration stay in initial state when calling setCurrentPlayTime(0)

Change-Id: I9916d962cf46453a9e3e1207f58baf16f4a5830a
/frameworks/base/core/java/android/animation/ValueAnimator.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/ValueAnimator.java
d422dc358f0100106dc07d7b903201eb9b043b11 25-Sep-2014 Yigit Boyar <yboyar@google.com> Added a generic configuration and theme based cache

For now, only animators use it but we can consider migrating
drawable cache to it as well.

Bug: 17456416
Change-Id: I571b96856805edb171f0fc52e6bff5a365f46b70
/frameworks/base/core/java/android/animation/ValueAnimator.java
7a08fe0e09c9bd5b66049738617cc9972651bf5b 08-Oct-2014 Jeff Brown <jeffbrown@google.com> Reapply animation duration scale each time it is started.

When Battery Saver mode is enabled, we set the animation duration
scale factor to 0 to effectively disable all animations. Later
when it is disabled, we reset the animation duration scale
factor to 1.

This change ensures that we reapply the duration scale factor
whenever the animation is started instead of only applying it
once when the duration is set (usually when the animation is
created). This ensures that the correct scale factor is applied
even when it changes after the animation has been initialized.

Previously, certain animations would continue to be suppressed
even after Battery Saver mode was disengaged. This wasn't much
of an issue when the duration scale was initially implemented as
a developer setting but now that it is exposed via Battery Saver
the artifacts caused by this bug have become visible to users.

Bug: 17887431
Change-Id: I91ba5ca0505d02ac389a31d067e38886112fa0c8
/frameworks/base/core/java/android/animation/ValueAnimator.java
c01bd1167a1b08d59557f214ddc48cf24d3b8d0a 19-Jul-2014 John Reck <jreck@google.com> Return Animator instead of ValueAnimator

Change-Id: I29a7cfdc7ffbb3a4d33f9e64f9d7ca791f5c947c
/frameworks/base/core/java/android/animation/ValueAnimator.java
d3de42cae84fadfa1befd082a2cf1bf72f9ad82a 15-Jul-2014 John Reck <jreck@google.com> Add RT-enabled reveal animator

Bug: 16161431

Also re-writes RevealAnimator to avoid using any listeners internally,
removing the logic around shadowing the update listeners.

Change-Id: I6ed8126398eed971a87f20bccb7584c9acafbb6c
/frameworks/base/core/java/android/animation/ValueAnimator.java
7bc6a3f023ca3e1dde91fc97b6036dee3ba538a2 16-Jul-2014 ztenghui <ztenghui@google.com> Add more reverse support to AnimatedVD

bug:16162242

Change-Id: Ie0b7618beeb65ebeb65db41600165837524bcee4
/frameworks/base/core/java/android/animation/ValueAnimator.java
2ed16ac6238227dab2687519268f3683f045e2ac 22-Mar-2014 George Mount <mount@google.com> Fix problem on Animator with a start delay.

Bug 13589060

Change-Id: I05b9421fa141466bdbfe19f1bd5d993fa23982cb
/frameworks/base/core/java/android/animation/ValueAnimator.java
1ffb280a7d2c70cc16d709c685f5d31fdb86b5e4 10-Oct-2013 George Mount <mount@google.com> Add ofArgb to ObjectAnimator and ValueAnimator.

Bug 10396985

Change-Id: Ib1fcea04b5a915800fc415b3d548a8853b05389c
/frameworks/base/core/java/android/animation/ValueAnimator.java
f43fb2a57f152b5760d8792fec26f36d46b23817 06-Sep-2013 Chet Haase <chet@google.com> Reversing immediately after starting animator ends it

Previously, an animator that had started but not yet played its
first frame would be reversed from its end state, which was not the
desired behavior. Now, we detect that condition (started, but not yet
actually running) and simply end() the animator immediately.

Issue #10136266 ValueAnimator.reverse right after calling start() does the full animation

Change-Id: I2a48d267336241ce74079c75758026c6f07ebc3a
/frameworks/base/core/java/android/animation/ValueAnimator.java
8aa1ffb0ed292891030992c65df4e5dc8bd37524 08-Aug-2013 Chet Haase <chet@google.com> pause/resume for Animators

It is now possible to pause Animator-based animations. Pausing an
animator causes it to hold the current time/value indefinitely, or
until end/cancel/resume is called. When resume() is called, it continues
from where it left off.

There is a new listener interface on Animator, AnimatorPauseListener,
which can be used to listen to pause/resume events.

Change-Id: I77d1535e792fb7bf349f549a0ac0a0d85958cb47
/frameworks/base/core/java/android/animation/ValueAnimator.java
9b80ca81a8cc33067d858c52c7acbef9d8bdaf6a 04-Jun-2013 Chet Haase <chet@google.com> Optimize calls to Trace for animators

Previously, ValueAnimator would always call into the Trace class to
log start/end events. When the animator is an ObjectAnimator, this
call necessitated building a new String to capture the animated property
name. This fix puts the calls to Trace inside a check for isTagEnabled(),
to ensure that we only bother building the trace name when tracing is
actually enabled.

Change-Id: I56ef093f3b67b31a19c861f9d1e44a84341edf53
/frameworks/base/core/java/android/animation/ValueAnimator.java
fdd3ad7018ebb054c0288b8cd92739703a973181 25-Apr-2013 Chet Haase <chet@google.com> Give animators more useful names in systrace

Also, fix ObjectAnimator.getPropertyName() to return useful info
for ObjectAnimators not created with string-based property names.

Change-Id: If7ab6dbcc3be13f5978840b02f4a91ef7eee1c50
/frameworks/base/core/java/android/animation/ValueAnimator.java
0a41431d697a34e7fe4ed2c481484d7a63949037 13-Apr-2013 Chet Haase <chet@google.com> Merge "API and doc cleanup, plus small animation/UI features" into jb-mr2-dev
430742f09063574271e6c4091de13b9b9e762514 12-Apr-2013 Chet Haase <chet@google.com> API and doc cleanup, plus small animation/UI features

Adding features which round out the animation APIs (missing
getters, etc.). Also fix doc typos.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: I063736848ba26e6d6c809b15fc3a103c74222f46
/frameworks/base/core/java/android/animation/ValueAnimator.java
18772ea228f3d292629c4f0b5f6392d047e0530d 11-Apr-2013 Romain Guy <romainguy@google.com> Trace ValueAnimator based animations in systrace

Change-Id: I1a81e157dea46743a737ed864f4aa0781651ccfd
/frameworks/base/core/java/android/animation/ValueAnimator.java
be19e030a14c8e398e8af97fa898ea80187704df 16-Mar-2013 Chet Haase <chet@google.com> Add auto-cancel ability to ObjectAnimator

Add a method that enables a new auto-cancel option to
ObjectAnimator. When set, any ObjectAnimator (when started) will
cause any running ObjectAnimator instance (with that flag set)
that has the same target and properties to cancel() itself prior
to starting the new one.

Issue #7426129 Add auto-cancel to animators

Change-Id: I586659c365289cdb9afb6c416bdbaf5630477149
/frameworks/base/core/java/android/animation/ValueAnimator.java
caf46486f54cdc899e383dfc776ec33a81b089a1 15-Mar-2013 Chet Haase <chet@google.com> Reset reverse state when an animator ends

Seeking an animation after the animator has reverse()'d to the beginning
will result in seeking in reverse. Starting the animation will make it proceed
normally, and calling reverse() will also give expected behavior. But seeking
causes this unexpected behavior because the state of reversing is not reset until
the next time the animation is played (either by start() or reverse()).

Fix is to reset the internal flag when the animator ends.

Issue #8234676 Reversing an Animator Leaves it in A Reversed State Until Explicitly Started

Change-Id: I9d212ae1879aa277d1add7eb4c7ec61432af059e
/frameworks/base/core/java/android/animation/ValueAnimator.java
58ed5d748c0b9b64845975ef5844ad313de7c3f6 07-Nov-2012 Kenny Root <kroot@google.com> am 768d9e1a: Merge "Correct executable bit for source files"

* commit '768d9e1a72ceee7d4a5f608776b87b62d6ce4a04':
Correct executable bit for source files
3a084af2e90849aaa8beb3a610189e3399c63ea0 07-Nov-2012 Kenny Root <kroot@google.com> Correct executable bit for source files

Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
/frameworks/base/core/java/android/animation/ValueAnimator.java
4dd176864310e1d9519bf6b88918913e9927984f 13-Sep-2012 Chet Haase <chet@google.com> end() a reverse()'d animation correctly

Previously, an animator that had been reverse()'d (and was thus
playing backwards) would not end() at the right value. That is, a call
to end() would cause the animation to snap to its original end value, not
the reverse-playing end value (i.e., its start value). Logic to handle
calculating the proper end value was not taking the reversing behavior
into account.

Issue #6583656 When you call end() after calling reverse() on an animation that has not started leads to forward animation finishing.

Change-Id: Ifca60a32d4973c21b85aed9c459f802526c0207e
/frameworks/base/core/java/android/animation/ValueAnimator.java
2936fc0244ab2010696b3b1d723d6bbbc693916e 16-Aug-2012 Chet Haase <chet@google.com> Make animators more robust against ending mid-stream

The logic in the frame processing code of ValueAnimator did not handle
the situation of animators being ended while the current animation list
was being processed. In particular, if a call to an animation update
(which could result in a call out to user code) caused that animation, or
other current animators, to end, then there was the risk of running off the
end of the list of current animators.

The fix is to work from a copy of the current animator list, processing frames
on each one only if they also exist in the real animations list.

Issue #6992223 Frequent System UI crash

Change-Id: I742964558f8354f04c311b7b51c7686f26a4dacf
/frameworks/base/core/java/android/animation/ValueAnimator.java
ff7e6ef4f18ff94a9836492ff3ccd1ba7f6804f3 15-Aug-2012 Jeff Brown <jeffbrown@google.com> Apply ValueAnimator scale factor immediately in WM.

Normally the ValueAnimator scale factor is applied the first
time a ViewRootImpl window session is created but that may
be too late for animators created by system services that
start early in the boot process. So set the scale factor
immediately whenever the setting changes.

Also make ValueAnimator.getDurationScale() accessible (but @hide)
for custom animators that want to apply the same scale to
their animations.

Change-Id: I0f5a750ab5b014f63848445435d8dca86f2a7ada
/frameworks/base/core/java/android/animation/ValueAnimator.java
59bbef0cd781f4933fd8a0a85b6067f36e529e02 08-May-2012 Jeff Brown <jeffbrown@google.com> Improve animation timing.

Detect when a vsync message was significantly delayed which may
indicate that a frame was skipped. When this happens, update
the frame time to reflect the approximate start time of the
current frame instead of the start time of the frame that was
skipped a long time ago.

Removed an unnecessary call to getCurrentPlayTime() in the
animator framework. The result was always zero and the call
just made the code confusing.

Bug: 6443611
Change-Id: I92b24f7ffd74c59b75a727b6bfc0bb51fc92a73a
/frameworks/base/core/java/android/animation/ValueAnimator.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/ValueAnimator.java
17cf42cb85c22b50ecfa8d21efc992f99d20fc45 17-Apr-2012 Chet Haase <chet@google.com> Fix logic of animator start/cancel/end callbacks

The callbacks for animators in some corner cases were not being
called correctly. For example, startDelayed animators that were
started and then ended didn't send out the proper events.

This CL fixes that logic. Specifically:
- An animator that is end()'d will implicitly start() itself and then
assign an end value. This was already the case, but listeners were not
getting notified. Now this situation causes callbacks to listeners for
both the start and end events.
- startDelayed animators that are end()'d or cancel()'d prior to finishing
the startDelay phase will send out events (start and cancel/end, as appropriate)
to listeners.

Change-Id: I40a0f2fdb19d9ec7c3726a91363686c6ecb7d915
/frameworks/base/core/java/android/animation/ValueAnimator.java
ebb2d8d708c5c58c79ae88ac2bd10450a856f702 24-Mar-2012 Jeff Brown <jeffbrown@google.com> Enable vsync traversals by default.

Improved how the various callbacks are managed and sequenced
to reduce code duplication.

Added a heuristic to avoid postponing traversals until
the next vsync frame if we did not actually do any drawing during
the previous frame. This helps in the very common case where
drawing occurs in response to input.

Change-Id: I277d9eeaf50408f8745a3cfd181db1d140770658
/frameworks/base/core/java/android/animation/ValueAnimator.java
c6ffab32415a58bbb010dcd115684f9dbc249710 17-Mar-2012 Chet Haase <chet@google.com> Reduce redundant animation processing

Starting several animations will place separate events onto the
animation queue, which may cause the active animations to get
processed more than once in any frame when one of those start messages
is processed.

This change moves the logic of starting pending animations into
the animation frame processing itself. Now when a start event is
processed, it only calls the animation frame logic if there are
unstarted animations pending.

Issue #6172602 Inconsistent animation callbacks

Change-Id: I3a546f0c849f42b2dd998f099fcdfafd7d780ad9
/frameworks/base/core/java/android/animation/ValueAnimator.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
/frameworks/base/core/java/android/animation/ValueAnimator.java
7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c 06-Mar-2012 Jeff Brown <jeffbrown@google.com> Use the Choreographer for Drawable animations.

Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
/frameworks/base/core/java/android/animation/ValueAnimator.java
4a06c8008b2edd6677f9a411af79b0a4971b87fe 16-Feb-2012 Jeff Brown <jeffbrown@google.com> Simplify Choreographer API.

Removed the listeners and schedule animation / draw methods.
Instead all requests are posted as one-shot callbacks, which is a
better match for how clients actually use the Choreographer.

Bug: 5721047
Change-Id: I113180b2713a300e4444d0d987f52b8157b7ac15
/frameworks/base/core/java/android/animation/ValueAnimator.java
c38fa1f63674971f9ac6ced1a449fb81026b62f7 02-Feb-2012 Chet Haase <chet@google.com> Add Developer Option setting for Animator scaling.

This new setting allows users to set a scale factor for the
duration and startDelay of all Animator-based animations. This
setting is very similar to the Transition animation scale and
Window animation scale settings, except this one applies specifically
to Animator animations. The property is only accessible by users
through the Settings UI, not programmatically. The value applies
system-wide and is picked up per-process at the time of the first
ValueAnimator construction.

This is an update to a previous CL; this approach uses the WindowManager
to store the animator scale settings, instead of SystemProperties.

Change-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966
/frameworks/base/core/java/android/animation/ValueAnimator.java
d21a9fe2d9a6cfe966fc7df3a8c37c172d7ac302 01-Feb-2012 Chet Haase <chet@google.com> Add Developer Option setting for Animator scaling.

This new setting allows users to set a scale factor for the
duration and startDelay of all Animator-based animations. This
setting is very similar to the Transition animation scale and
Window animation scale settings, except this one applies specifically
to Animator animations. The property is only accessible by users
through the Settings UI, not programmatically. The value applies
system-wide and is picked up per-process at the time of the first
ValueAnimator construction.

Change-Id: I3d5fbc956695c88d01c30820259da3e107ffd8a3
/frameworks/base/core/java/android/animation/ValueAnimator.java
2b072677538de979961b5bf527109fdab1713731 23-Dec-2011 Joe Fernandez <joefernandez@google.com> am 201469f5: am bb7f590a: Merge "docs: Add developer guide cross-references, Project ACRE, round 4" into ics-mr1

* commit '201469f54522436be79d4d6665721049bfc74320':
docs: Add developer guide cross-references, Project ACRE, round 4
3aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45 20-Dec-2011 Joe Fernandez <joefernandez@google.com> docs: Add developer guide cross-references, Project ACRE, round 4

Change-Id: I1b43414aaec8ea217b39a0d780c80a25409d0991
/frameworks/base/core/java/android/animation/ValueAnimator.java
96e942dabeeaaa9ab6df3a870668c6fe53d930da 01-Dec-2011 Jeff Brown <jeffbrown@google.com> Use a Choreographer to schedule animation and drawing.

Both animations and drawing need to march to the beat of
the same drum, but the animation system doesn't know
abgout the view system and vice-versa so neither one
can drive the other.

We introduce the Choreographer as a drummer to keep
everyone in time and ensure a magnificent performance.

This patch enabled VSync based animations and drawing by
default. Two system properties are provided for testing
purposes to control the behavior.

"debug.choreographer.vsync": Enables vsync based animation
timing. Defaults to true. When false, animations are
timed by posting delayed messages to a message queue in
the same way they used to be before this patch.

"debug.choreographer.animdraw": Enables the use of the animation
timer to drive drawing such that drawing is synchronized with
animations (in other words, with vsync or the timing loop).
Defaults to true. When false, layout traversals and drawing
are posted to the message queue for execution without any delay or
synchronization in the same way they used to be before this patch.

Stubbed out part of the layoutlib animation code because it
depends on the old timing loop (opened bug 5712395)

Change-Id: I186d9518648e89bc3e809e393e9a9148bbbecc4d
/frameworks/base/core/java/android/animation/ValueAnimator.java
9c38dbeb1d183ecd48bbf5d18a39f5e0508a1223 03-Dec-2011 Jeff Brown <jeffbrown@google.com> Refactor ValueAnimator to reduce use of ThreadLocals.

Change-Id: I494c9cc32e58b77d5f7ea092ee6a0ae4d2d805bb
/frameworks/base/core/java/android/animation/ValueAnimator.java
7f9f99ea11051614a7727dfb9f9578b518e76e3c 11-Aug-2011 Xavier Ducrohet <xav@android.com> Make some methods/fields package private so that layoutlib can access them.

Change-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64
/frameworks/base/core/java/android/animation/ValueAnimator.java
8b699792b677bd4dd8442b32641ac09d48fdd79c 06-Aug-2011 Chet Haase <chet@google.com> Fix cancellation of AnimatorSet when child animation has delay

Previously, AnimatorSet incorrectly checked whether child animations were
'running' to figure out what to cancel. If a child animation was started, but
sitting in a startDelay phase, it was not 'running', so the right cancel/end
events would not propagate.

The fix is to add a new isStarted() API to Animator, which returns true when
the animator has started (but not yet ended), regardless of whether the animator
has a startDelay or not. It's basically a superset of the existing isRunning()
method, which only returns true when an animator has actually started setting values.

Change-Id: I126814cb6637b58295b6d18d9b155235671f99be
/frameworks/base/core/java/android/animation/ValueAnimator.java
b8f574a165bf6ec5b316734b367ac274ded4809b 03-Aug-2011 Chet Haase <chet@google.com> Fix AnimatorSet cancellation issues

AnimatorSet was incorrectly ignoring cancel() when it was in the
initial startDelay phase. Fix is to change isRunning() to be true if the
animator is also in its delay phase.

Change-Id: I1a8c877de24fa294beea0ba30d495658255b13b3
/frameworks/base/core/java/android/animation/ValueAnimator.java
7dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5 12-Jul-2011 Chet Haase <chet@google.com> Fix Animator cancel() behavior

Previously, calling cancel() on an Animator would cause onAnimationCancel
events to be sent to all listeners. This was confusing for listeners
that were keying off this event for performing other actions, when the original
animator wasn't truly canceled (because it wasn't even running, or had already
been canceled earlier). This change hinges listener notification on
the animator actually running; no events are sent otherwise.

Also added the first set of Animator tests to verify that this behavior
is correct.

Change-Id: I81ab56559b5c0343c8dc7880e1c8235f3020975b
/frameworks/base/core/java/android/animation/ValueAnimator.java
d4dd7025a1b356476e119de19a2e2cd5cf50d43c 05-Apr-2011 Chet Haase <chet@google.com> Fix bug with values in cloned animators.

When a ValueAnimator is cloned, we correctly clone the underlying
PropertyValuesHolder objects and assign them to the new object.
However, we then put values into the new property map using the
old values instead of the new ones. This means that the per-property
animated values cannot be retrieved with the property names from
the cloned animator, because the map refers to the values of the
original object, not the cloned object that is actually being animated.
Fix is easy: just put the cloned values (which are already being created)
into the map.

Change-Id: I81282ca1dab6b1767ddc894d57a1110b344b4b0a
/frameworks/base/core/java/android/animation/ValueAnimator.java
a00f3865f55c5c9cb74510ee2b239d101230133c 22-Feb-2011 Chet Haase <chet@google.com> Add ViewPropertyAnimator for easy animation of View properties

Change-Id: I2bc52ca16507d8d20004d2d6823e587791272aac
/frameworks/base/core/java/android/animation/ValueAnimator.java
154f14508a11627d5a995b6fe2a14a83d794a6fe 24-Feb-2011 Chet Haase <chet@google.com> Fix bug with bad state in animators

Bug 3482310: The playing state was not being correctly set to
RUNNING after an animator was start()'d. Instead, we were seeking
to the start value (correct), setting the state to SEEKED (also correct),
but not resetting the playing state to STOPPED. So when the animation
actually started animating values, it didn't recognize that it was
starting a STOPPED animation, so it never set its state to RUNNING,
and never returned true from isRunning().

Change-Id: Iea92dce98f92f60052d8a9a451094b953f9f0c67
/frameworks/base/core/java/android/animation/ValueAnimator.java
e9140a72b1059574046a624b471b2c3a35806496 17-Feb-2011 Chet Haase <chet@google.com> Fix invalidation bug with View bounds properties

When setLeft/Right/Top/Bottom() functions were called on View,
invalidation was only happening at the parent level. When an
app is hardware accelerated, this means that the view's display
list is not being recreated. So views that were changing size due
to these calls were not getting redrawn properly, causing some
artifacts in animations (especially LayoutTransition, which
calls these setters).

Fix is to invalidate the child instead of just the child's bounds
in the parent.

Change-Id: Ic8b2a5db519345dce617f914c2214738f22031b2
/frameworks/base/core/java/android/animation/ValueAnimator.java
add6577a0196258e5a48c5deefcdb12e05c935b3 10-Feb-2011 Chet Haase <chet@google.com> Fix animation and layoutTransition issues.

There were some subtle timing issues in animators with ending animations that
were not completely initialized (possibly because a startDelay'd animator
was ended before the delay elapsed).
Also, LayoutTransition had bugs around running a transition on a container
while a previously-started transition was still in progress. This could result
in some minor artifacts or crash bugs, depending on the durations and delays set
on the transition animations.

Change-Id: Ic6a69601f1ce9a55db15fff6b8ed25950b354491
/frameworks/base/core/java/android/animation/ValueAnimator.java
8901ffab294934fc4899143f31bd58f3d58df225 17-Jan-2011 Patrick Dubroy <dubroy@google.com> Add a method for clearing all animations on a thread.
/frameworks/base/core/java/android/animation/ValueAnimator.java
b2ab04ffb6894f399d5c9ceb15f64eb17b654426 16-Jan-2011 Chet Haase <chet@google.com> Remove obsolete DoubleEvaluator

Change-Id: I4407468599061ff35c68589988fb1e897de28c69
/frameworks/base/core/java/android/animation/ValueAnimator.java
53ee3316bcb3590ff156b3fd7108903c0817c35d 11-Jan-2011 Chet Haase <chet@google.com> Rename RGBEvaluator to ArgbEvaluator

Change-Id: Iee74b475960d623fa757349e4053bd7c58cf5734
/frameworks/base/core/java/android/animation/ValueAnimator.java
27c1d4debb3848f5accd5673fffeeacad3e61648 16-Dec-2010 Chet Haase <chet@google.com> Fix minor animation and doc issues

Change-Id: I0ea077d9434ac3e22e8600f22ca4a24a6a46965c
/frameworks/base/core/java/android/animation/ValueAnimator.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/ValueAnimator.java
e2ab7ccd385cdb6517955c719e1d2b49771bedb6 07-Dec-2010 Chet Haase <chet@google.com> Change cancel/end behavior of animations to be synchronous

Previously, cancel() and end() calls would simply log a message to
be handled later by the animation handler. This caused problems with
coordinating complex animations, where some start() events for
future animations would occur before end() events for animations already
completed.
The change is to make these events synchronous (and require them to be
called from the appropriate thread), simplifying the code and the usage.

Also, fixed various timing and event bugs in AnimatorSet, and removed
the getter/setter properties from ObjectAnimator, since an earlier change
makes these properties undesirable (because the code will use a faster
JNI approach instead of reflection when it can).

Change-Id: I05c16645c2a31a92048a6031ddb126eb4312a946
/frameworks/base/core/java/android/animation/ValueAnimator.java
730666858692ea396f5ad779654b5d86ff90b6ca 30-Nov-2010 Chet Haase <chet@google.com> animation bugfix plus xml resources for new View properties

There was a bug around animation duration where it was possible,
for small durations or large inter-frame times, to calculate
fractions outside of the 0-1 range, causing bad value calculations.

Unrelated: new View properties for translation, scale, and rotation
were added in this release. This commit addes XML resources for
those properties.

Change-Id: Ieaf5dd729588adb2a40656aa82beecc3576f4af5
/frameworks/base/core/java/android/animation/ValueAnimator.java
2970c499388b4dcd1232cd622a9b80b395eeb2b4 09-Nov-2010 Chet Haase <chet@google.com> various fixes for animations and javadocs

Issues around threading of animations and AnimatorSet bugs are
fixed in this change. Unrelated fixes to javadocs in other
framework classes are also part of the change.

Change-Id: I35f7e03ffdec9143bc2eb155e8f9384798ad35b3
/frameworks/base/core/java/android/animation/ValueAnimator.java
7c608f25d494c8a0a671e7373efbb47ca635367e 23-Oct-2010 Chet Haase <chet@google.com> optimizing for primitive types in animations

The animator classes caused autoboxing by converting primitive types (by far
the most typical types used in animations) to be converted to their
Object equivalents because of various APIs that required Object
(like getValue() to get the animated value). This change creates
factory methods on some classes instead of the former constructors
so that we can create and return private type-specific subclasses
which operate directly on the primitive types instead.

In particular, float and int are natively supported by the animators
now. Support in the APIs for double and long was removed because it
seemed like these less common types did not justify the extra
baggage of the added API and code.

Change-Id: I6008a3883e3d6dd5225005f45f112af148e5a4ea
/frameworks/base/core/java/android/animation/ValueAnimator.java
70d4ba15b1f0c1133c5aabc86de828b41e482fff 06-Oct-2010 Chet Haase <chet@google.com> Performance optimizations for animations and toolkit

Change-Id: I316a48273a9cbb428a965e4b849b3e5e9e8202f1
/frameworks/base/core/java/android/animation/ValueAnimator.java
e3bc4e6f102fbef760fe0a59dd807363571b0867 27-Oct-2010 Chet Haase <chet@google.com> Use ThreadLocal for static Animator variables.

Certain fields in Animator are statics, like the list of current animations and the
main handler. However, since there may be >1 UI thread per process, these should really
be ThreadLocal variables, so that they are local to each UI thread. For example,
most animators will cause an invalidation in the view hierarchy, which can only
happen in the UI thread for that view.

Change-Id: I42be61c781ffac97b527f78ce1ffc2e0cdc42999
/frameworks/base/core/java/android/animation/ValueAnimator.java
599ca29986235e07f532c7b112507f6c39b5dba9 22-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> Expose (internally only) the number of animations currently running.

This will be used for StrictMode to annotate violations with
whether or not they janked up an animation.

Change-Id: I5bc691f49b74c45279cd2ae044d2a81dcf1204a9
/frameworks/base/core/java/android/animation/ValueAnimator.java
5c13d89c1332fcc499379b9064b891187b75ca32 08-Oct-2010 Chet Haase <chet@google.com> Optimizing display lists by referencing pointers to resources instead of copying them

Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
/frameworks/base/core/java/android/animation/ValueAnimator.java
51b3227c2e08143c2e3dde9d51ae5b6fff36693c 14-Oct-2010 Chet Haase <chet@google.com> Remove errant minus sign

Change-Id: I39a76484884615aa86f4a845eb4637467ec5abc7
/frameworks/base/core/java/android/animation/ValueAnimator.java
2794eb3b02e2404d453d3ad22a8a85a138130a07 13-Oct-2010 Chet Haase <chet@google.com> Remove generics from Animator APIs

Change the manner of constructing Animator-related objects from constructors
via generics to factory methods with type-specific method names. Should
improve the proliferation of warnings due to generics issues and make the
code more readable (less irrelevant angle brackets Floating around).

Change-Id: Ib59a7dd72a95d438022e409ddeac48853082b943
/frameworks/base/core/java/android/animation/ValueAnimator.java
83d6e8213230fb0805aa019d266842253baeb114 14-Oct-2010 Romain Guy <romainguy@google.com> Revert "Remove generics from Animator APIs"

This reverts commit 41f041d9986f8a5d45b6cb0b86e881c81a412168.
/frameworks/base/core/java/android/animation/ValueAnimator.java
41f041d9986f8a5d45b6cb0b86e881c81a412168 13-Oct-2010 Chet Haase <chet@google.com> Remove generics from Animator APIs

Change the manner of constructing Animator-related objects from constructors
via generics to factory methods with type-specific method names. Should
improve the proliferation of warnings due to generics issues and make the
code more readable (less irrelevant angle brackets Floating around).

Change-Id: I7c1776b15f3c9f245c09fb7de6dc005fdba58fe2
/frameworks/base/core/java/android/animation/ValueAnimator.java
608fc3cbed6062f29cd512c08aacb8c1632a8851 11-Oct-2010 Chet Haase <chet@google.com> Double the performance of animations.

There is a hard-coded limit to the frame rate of animations; this commit increases that rate by changing the inter-frame delay from 30 ms to 10 ms (although the actual delay will be determined by the maximum refresh rate of the system and the system load). For example, the effective maximum on current devices is 55 fps, or a delay of about 16 ms.

Change-Id: Id96a41cef36851e2d9508a98934f4b25595251ea
/frameworks/base/core/java/android/animation/ValueAnimator.java
e0ee2e9f3102c3c14c873a75a7b04e49787e0fb9 07-Oct-2010 Chet Haase <chet@google.com> New TimeInterpolator interface for android.animation package.

The new animation package's reliance on the old Interpolator interface (in
android.view.animation) was an eyesore. Adding TimeInterpolator, and having the
old Interpolator interface extend it, allows the new Animator classes to break
the tie to the older animation package completely. However, developers can still
use the older Interpolator-based classes, such as AccelerateInterpolator,
because they all implicitly extend the new TimeInterpolator class.

Change-Id: I41132fa56167ba564f4839113289114d0ea31a92
/frameworks/base/core/java/android/animation/ValueAnimator.java
0e0590bf3cb32e73f423c0fe39a180d4b3c4343d 26-Sep-2010 Chet Haase <chet@google.com> bug fixes in animation classes

Change-Id: I5465bc95032c94851b8cf4e4db3477f546e8b0d1
/frameworks/base/core/java/android/animation/ValueAnimator.java
3060421045d4d9e411797f91bb509824b03e33fb 23-Sep-2010 Jim Miller <jaggies@google.com> Add new WaveView widget to framework and integrate into LockScreen.

This adds a new "Energy Wave" widget to the internal widgets and
integrates it into LockScreen.

ValueAnimator needed a slight modification since it expects to
be run inside of Activities with a Looper. Additionally, this adds
an API, removeAllUpdateListeners(), which is needed to properly
recycle ValueAnimator objects.

Some minor code cleanup and UI tweaks after review.

Changed delay timeout from 1.3s to 0.5s.

Change-Id: Ibcf015e61fa8ba79d62f2019f1b29ace7caa00c8
/frameworks/base/core/java/android/animation/ValueAnimator.java
b20db3ec34e846010f389880b2cfab4d7bf79820 10-Sep-2010 Chet Haase <chet@google.com> Make fragment animations work when fragments go away

Change-Id: I136de6ef910cc02b8181fcfa065bdb0770841396
/frameworks/base/core/java/android/animation/ValueAnimator.java
a18a86b43e40e3c15dcca0ae0148d641be9b25fe 07-Sep-2010 Chet Haase <chet@google.com> Rename several animation classes

Change-Id: I6a4544875090db485163c8d56de8718f56d267c7
/frameworks/base/core/java/android/animation/ValueAnimator.java