• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/animation/
History log of /frameworks/base/core/java/android/animation/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2333b7ef64370c545d0a6ca6ece07ce8e1ce894 13-Nov-2017 Jorim Jaggi <jjaggi@google.com> Add ability to override global duration scale on ValueAnimator

This is needed as window animations are being ported over to use
ValueAnimator, and thus ValueAnimator need to ability to support
custom duration scales per object.

Test: ValueAnimatorTests
Bug: 64674361
Change-Id: Iea8d673b66e52866929174bbf6ca4a7ae882807b
alueAnimator.java
290271695d66cb6be38b1ebe80dc3473e6163738 27-Sep-2017 Doris Liu <tianliu@google.com> Fix end() for infinite AnimatorSet

BUG: 66880433
Test: repo steps in the bug above

Change-Id: If34b7386b7ff5cd28144e99c37957abddb068e9c
nimatorSet.java
a5e833e8463f817956a397557c96c5ee18359be8 13-Jun-2017 Wale Ogunwale <ogunwale@google.com> Merge "Ensure that we use SF Vsync Choreographer for the PiP transition." into oc-dev am: e1e0db8ca9
am: 90159a2492

Change-Id: I0092411f5b8bef853b55e6ffe7bdf700876f7715
4a526c124554e75dc4bc11a682645a73bd47d501 16-May-2017 Winson Chung <winsonc@google.com> Ensure that we use SF Vsync Choreographer for the PiP transition.

- Move the bounds animation onto the animation thread
- Remove existing code referencing the old sf-vsync choreographer
- Add ability for ValueAnimator subclasses to reference a different
AnimationHandler, which uses a different FrameCallbackProvider with the
sf-vsync choreographer in the animations that require it
- Ensure that PiP touch events are batched and sent aligned with the
sf-vsync
- Move GC onto its own thread to not block other BackgroundThread calls

Bug: 36371375
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: bit FrameworksServicesTests:com.android.server.wm.BoundsAnimationControllerTests
Test: go/wm-smoke

Change-Id: I6a41b35a4e4d4d6dbea82c2673452825fe3ffa58
alueAnimator.java
ba087b09fce6c50af846c483891052a49217ab59 07-Jun-2017 Doris Liu <tianliu@google.com> Merge "Merge "Better handle non-recommended use and warn against it in JavaDoc" into oc-dev am: 8d06d8cbf1" into oc-dev-plus-aosp
am: 721ecfd21a

Change-Id: Iec199dd0cfe7beace7549d3e16e888458fd0306c
8d06d8cbf1fd18c3a8119fba5fe060bc0c7f8c4b 07-Jun-2017 Doris Liu <tianliu@google.com> Merge "Better handle non-recommended use and warn against it in JavaDoc" into oc-dev
88bb31b95467f3591f4911be673b57c6fb316134 06-Jun-2017 Doris Liu <tianliu@google.com> Better handle non-recommended use and warn against it in JavaDoc

BUG: 62386748
Test: Follow repro steps in b/62358678. The issue is no
longer reproducible

Change-Id: Ic3cec7c4947296224edb5365d81988d4da7ee5e1
nimatorSet.java
7d0b3bbf15073852c576ba48fd8926fd63ffd17b 01-Jun-2017 Doris Liu <tianliu@google.com> Merge "Ensure start delay is properly scaled with duration scale" into oc-dev am: 9057f846ac
am: 4b5d12d25a

Change-Id: I80a1dc2c898a9456b651f6b1375055e6fcb59540
2ac6547824ff217a89b726fa633dfd60c6f7bd89 31-May-2017 Doris Liu <tianliu@google.com> Ensure start delay is properly scaled with duration scale

BUG: 62126024
Test: CTS test in the same target branch
Change-Id: Ia396e69e053ccd90cdf37ac0b59c404c9952e497
alueAnimator.java
367804f1e43cb35c8f0a05070438147c506dc02a 31-May-2017 Chet Haase <chet@google.com> Merge "Fix infinite loop problem in AnimationHandler" into oc-dev am: 163ec051d1
am: 3fb0e7555f

Change-Id: I91064e4baf1333c25d55d06e4373c83243c3e0da
da9374211f84b899e8c09c0600ec3fe6ed35b22f 27-May-2017 Chet Haase <chet@google.com> Fix infinite loop problem in AnimationHandler

AnimationHandler.doAnimationFrame() iterates on a list that may be changed
during the course of the lopp, especially when Battery Saver is enabled, or
animators have zero duration, coupled with user code launching new animators
when old ones end.

The fix is to iterate through the old size of the list, and avoid processing
new animators in the current frame.

Bug: 37376806 Keyboard doesn't come up when battery saver is turned on on Android O
Test: manual
Change-Id: I40ca1d849e6f337779c23edbab22d80760c22f9b
nimationHandler.java
01e1b8550d6559076ec5bdedd48632c9e4d01930 16-May-2017 Aurimas Liutikas <aurimas@google.com> Merge "Remove internal listener when cloning" into oc-dev am: a7dde34a81
am: c59f75af1d

Change-Id: Ia44c46f0784c412d71956c9e7f1e17533c991b9c
7fb80f7d277bcde8a685088b97f52a39be567c7c 15-May-2017 Philip Quinn <pquinn@google.com> Update the mTotalDuration for each animation in an AnimatorSet.

A cache was introduced in I677bc289f2ba430466f2d90ebc14368cb7b75118 to
optimise calls to createDependencyGraph(), but the update was removed in
If1dc6e8dbc93a4bf5ade8c5b0dcf43d3ee6ba7b5. This patch reintroduces the
update when calculating child animation start/end times to re-enable the
optimisation.

Test: cts-tradefed run cts-dev --module CtsAnimationTestCases
Change-Id: Ie9dad4049c07a151889b57809bf844ab854ff482
nimatorSet.java
c457547cbd26e754d126f4f3651b4a7b2a262799 13-May-2017 Doris Liu <tianliu@google.com> Remove internal listener when cloning

BUG: 38270215
Test: adb shell am instrument -w
com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner

Change-Id: Ia80d5f8958e320ad7d51ef7a08168763c8988146
nimatorSet.java
56b2df05f56b2c7b82a50b46341d055f6d70a913 12-May-2017 Doris Liu <tianliu@google.com> Fix racy clone

BUG: 38184803
Test: cts AnimatorSet tests
Change-Id: I308ae9cc014f13a6aa928d8d82e339f476f4b3de
nimatorSet.java
02eabdff6b8d4a8c6152a4ef69c2839e66595512 26-Apr-2017 Doris Liu <tianliu@google.com> Refine JavaDocs for AnimatorSet#getCurrentPlayTime()

This is to address API concil's feedback.

BUG: 37673139
Test: make -j20 docs
Change-Id: I2e360c7996f8368c77c30c55271e006f94736f90
nimatorSet.java
5fb129c2abcf62ba09bff7322cad62adf9449887 21-Apr-2017 Doris Liu <tianliu@google.com> Behavior compat for child being manipulated outside Animatorset

When a child animator is being manipulated outside of the AnimatorSet,
such as when the child animator is running before the AnimatorSet gets
started, we need to make sure we maintain the behavoir on N:
The child animator will be re-started at its scheduled start time in
the AnimatorSet.

BUG: 37507882
Test: Repro steps in comment #1 & ag/2144081/
Change-Id: Ib97e85706f01d18a2e72fb4d1d678e22cf959894
nimatorSet.java
ae570c04c0e43e0d66e2c563fe6d8cacb438961b 03-Apr-2017 Doris Liu <tianliu@google.com> Remove workaround for end() not supported in some app

BUG: 36241584
Test: Follow repro steps of comment #1 in the bug above

Change-Id: I1bf27a7cc9cc2bd398c372623d7978e838f1d8b2
nimatorSet.java
d7968dc174f60e3b8f5aaddd05703cf6ce9114ad 16-Mar-2017 Doris Liu <tianliu@google.com> Fix 0 duration scale for pre-O apps

This CL fixed an issue where pre-O apps receive animation
end callbacks before all animations have ended.

BUG: 36157561
Change-Id: Id0ea05e76c91a21a678ec05b1ed0c898ee36ee43
Workaround: 36241584
Test: repro steps in comment #1
nimatorSet.java
21ba77f6b6c037e9507e210e22c18614fa9d2e9b 07-Mar-2017 Doris Liu <tianliu@google.com> Ensure behavior consistency for 0 duration scale

BUG: 35590176
Test: cts in the same topic branch
Change-Id: Ia0a2518a1376d3f82ee6c5a7b27e3cb24ed54cbf
nimatorSet.java
e8a5d8d211983522661cd2a059b66e71b09a5e07 14-Feb-2017 Doris Liu <tianliu@google.com> Fix start time modification outside of updatePlayTime()

BUG: 35340235
Test: manually start the chrome photos app, no crash
and CTS at: ag/1908702

Change-Id: I3c0a6f140ee497020b562f25cade241dcd993c2a
nimatorSet.java
c9b5034178809a0c51f368735fded79bd73527bd 11-Feb-2017 Doris Liu <tianliu@google.com> Correctly handle infinite start time

BUG: 34837854
Test: ag/1901799
Change-Id: If60dc9432df189642e67ff544e14a4cda7d5e0ec
nimatorSet.java
dd65ab04071fd80007155e8cb4b205370acf759b 08-Feb-2017 Doris Liu <tianliu@google.com> Add getter for current play time

BUG: 30993532
Test: cts tests in the same topic branch
Change-Id: I45ee9c61f53051fcac3399eebc378aa2c0ce056d
nimatorSet.java
6d4520920526cc44063ff2e665adb08e9a3c8a64 08-Feb-2017 Doris Liu <tianliu@google.com> Fix reverse with start delay

Test: cts in the same topic branch

Change-Id: Ie8793f25d39e0104c880f1a873f68650b918bffa
nimatorSet.java
alueAnimator.java
466149d78c8483094840db8c70976427a9dab0a7 04-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix start delay for ValueAnimator"
3b466875bc9b931fce339b95aeaa7d19bb3fc640 04-Feb-2017 Doris Liu <tianliu@google.com> Fix start delay for ValueAnimator

This CL ensures that doAnimationFrame() is called the frame
after start() is called, so that AnimatorSet can pulse frames
into single animators as soon as they are start()'ed.

Test: new cts test in same topic branch

Change-Id: I4f9522ce9e1a54ca3bcad6c696e6b248c945ff90
alueAnimator.java
5c71b8cc4ae3e76ce7c7462fff9426c8e96ea5f7 31-Jan-2017 Doris Liu <tianliu@google.com> Make sure start() is called for custom animators

BUG: 34758281
Test: ag/1848837

Change-Id: Iae5d2fb41c4556ee201b9c4dfbc356996dc475a5
nimator.java
nimatorSet.java
alueAnimator.java
6ba5ed322c04f260c51d58f2e49c6189b672f2d3 27-Jan-2017 Doris Liu <tianliu@google.com> Use listener to determine whether an Animator has ended

BUG: 34736819
Test: ran cts test for ValueAnimator and AnimatorSet
Change-Id: Ia1070f83833940cb09d26243f5873751d9ca2a38
nimator.java
nimatorSet.java
1f6c3fb286d3672f25707ddd224be211eb24c98e 26-Jan-2017 Doris Liu <tianliu@google.com> Merge "Work around a bug in an An app"
66c564e390ea71576db7d4c1803b169cc98e987b 26-Jan-2017 Doris Liu <tianliu@google.com> Work around a bug in an An app

An app has Animators (NoPauseAnimatorWrapper) that does not
check their listeners against null before cloning. The previous
implementation of AnimatorSet has masked this issue. But the
underlying bug should be fixed in this app.

For now, work around the bug by adding a listener to all the child
animators.

BUG: 34736819
Test: Manual

Change-Id: I968450aab62cf5d308e3b64e76dcf018178af67e
nimatorSet.java
40e8469789c197e36b3d008039c7c2842ab2bfc5 26-Jan-2017 Doris Liu <tianliu@google.com> Refine the comparator for the animation event sorting

BUG: 34719156
Test: manual
Change-Id: Iad96967c8ee6a3b3b661fb9de4e750d7b935b3f7
nimatorSet.java
13351997aa36eb53e5ff0fcee3f5e3da83787278 18-Jan-2017 Doris Liu <tianliu@google.com> New functionalities for AnimatorSet: Reverse, Seek

This CL adds reverse and seek to AnimatorSet's capabilities.

Structural changes:
1) Child animators are now being pulsed by AnimatorSet in a more
timeline manner, as opposed to the old listener based style.
This timeline based approach avoids the time offset in between
sequential animations, and therefore produces a more accurate
overall duration.
2) Timeline is done by representing start and end of each child animator
in two separate events. All the events are then sorted based on the
time they happen, such that it's clear what should happen in between
last frame and the new frame (i.e. which animations should start
or end).

Test: CTS (in the same topic branch)
Bug: 30993532

Change-Id: If1dc6e8dbc93a4bf5ade8c5b0dcf43d3ee6ba7b5
nimationHandler.java
nimator.java
nimatorSet.java
bjectAnimator.java
alueAnimator.java
ad804a9b431d583815bf33de4872c6996d71fa45 09-Dec-2016 Doris Liu <tianliu@google.com> Add API info about Keyframe and PropertyValuesHolder am: 21b93c1f66
am: 046f615de8

Change-Id: I22ca65d40ef4fc04be2cf1fec214409a20aa8e07
21b93c1f662c2d399fa0769b05383be8308b2ecf 03-Dec-2016 Doris Liu <tianliu@google.com> Add API info about Keyframe and PropertyValuesHolder

BUG: 32713413
Test: make -j20 docs
Change-Id: Ib2d11fe16cb470609058d2698b6b00173ae1928b
bjectAnimator.java
alueAnimator.java
67e2ae86396c6d0f989285275cbf908dee5e71f7 12-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix import statement in view|transition|animation packages.

This change also remove trailing whitespace.

Test: code still compiles
Change-Id: I7eff4546320d67d2bae58d31bad0625ea0791b8f
eyframeSet.java
49a513b571bcb8e5da94bd50ae465cbaafa44734 08-Oct-2016 Chet Haase <chet@google.com> Add API to query whether animators are enabled

Animators can be scaled to have zero duration globally in any device.
This can happen either via Developer Options (an uncommon path) or
Battery Saver mode (much more common for real users).
In general, this works fine; it just causes app animations to be jump-cuts
instead (which is the desired effect, either to make transitions faster
(Developer Options setting) or to optimize battery usage by rendering
fewer frames (Battery Saver mode).

But sometimes, choreographed animations can have undesired artifacts. For
example, an animation that calls an end listener to restart itself
will end up doing this almost constantly due to this effect. Other artifacts
can also occur, such as intermediate results in a complex choreography of
multiple animations can show several intermediate results in a way that is
confusing to the user.

For these cases, there is nothing that the platform can do to automatically
determine how to best handle the result. Instead, we surface this new
API to help developers discover this behavior and compensate accordingly.

Bug: 31052471 Animation playback is abnormally fast during Battery saver mode
Test: unit tests, CTS test upcoming

Change-Id: Id7ef1a9652ac5c6cdaca0c126756e82582d49b1c
alueAnimator.java
2d7cb10ea4526616c5c00a0ecce7f6517ea502fe 27-Sep-2016 Doris Liu <tianliu@google.com> Allow null target in ObjectAnimator if the target has never been set am: 4d04b1a446 am: fd2c4f186b
am: 07c6140cda

Change-Id: I230e79daa0e13dffeaa6137ea513272e0b9d45c5
930012063b9dfec09d6d111a50eac4c896306dee 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Added note in LayoutTransition class reference that APPEARING and DISAPPEARING animation timelines cannot overlap am: 5232329b4e am: 1456a0a321
am: 4cb055832b

Change-Id: I7c28aef0e439a22a74c86cb7cdb4a5c1061bfb50
fd2c4f186ba8e08ce483570beb89df13461a0a25 27-Sep-2016 Doris Liu <tianliu@google.com> Allow null target in ObjectAnimator if the target has never been set
am: 4d04b1a446

Change-Id: I5438b8d79f6e245e8a87e1480023c0ac77243f10
8e9b8b6c74af1aec7daf477fe83924c44f611339 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Added note in LayoutTransition class reference that APPEARING and DISAPPEARING animation timelines cannot overlap am: 5232329b4e
am: ad5cafd283

Change-Id: I8593de353f1186b2aa892cf541a4718d64474b15
4cb055832bf7d3e5eb6ac05c8bd80fe85027d3fe 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Added note in LayoutTransition class reference that APPEARING and DISAPPEARING animation timelines cannot overlap am: 5232329b4e
am: 1456a0a321

Change-Id: I1771afca56ff1cf1b4bcc7bf9573a71d9b566e54
ad5cafd283dc2c3785954505fb41d8be8aafaf2c 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Added note in LayoutTransition class reference that APPEARING and DISAPPEARING animation timelines cannot overlap
am: 5232329b4e

Change-Id: Ib3f8ffa61495a237c6e69b8f9260b46027c26a2a
4d04b1a446cb8c3dc5b42ddd58f82a6127521622 27-Sep-2016 Doris Liu <tianliu@google.com> Allow null target in ObjectAnimator if the target has never been set

BUG: 31684571
Test: http://ag/1484115

Change-Id: I867fc3f93ddf70c58ae4387317ac875c5bafbebe
bjectAnimator.java
5232329b4e5c00622e3f1d87deec8130aa3b917f 19-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Added note in LayoutTransition class reference that APPEARING
and DISAPPEARING animation timelines cannot overlap

Bug: 16808571
Change-Id: I8cbac11da4f866f2d3bcde45996b039e9bdfb801
ayoutTransition.java
76817faf291f579cf99d818944ca2b3c91a6ed97 30-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Add TestApi to ValueAnimator for AnimationScaleListDrawable CTS test. am: 0a815bb94f am: 3687be955f
am: d607d75790

Change-Id: Id83875c14472af2ba44f0194c897460ec6aa427d
0a815bb94fa2aad016a10fe23633efc5682d2a7c 23-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Add TestApi to ValueAnimator for AnimationScaleListDrawable CTS test.

Also rename an internal class.

b/30877925

Change-Id: Ib971ed090907a0ab387dd7c768e2b77eb9b69f75
alueAnimator.java
f66d2f6f31d6a9bc51c8fa52915906c3594db82c 22-Aug-2016 Doris Liu <tianliu@google.com> Fix out of order listener callback for animator set containing empty sets

BUG: 31016584

CTS test for this fix is added at:
https://googleplex-android-review.git.corp.google.com/#/c/1348858/

Change-Id: I9427a6791f4e0aafc33f5cc9fac16c3518d1cdbe
nimatorSet.java
a06d1f8fec719c01721a147fd5223dcafe693a7c 26-Jul-2016 Justin Klaassen <justinklaassen@google.com> Fix NPE in ValueAnimator am: 543a7ed7af
am: 705e2fb40c

Change-Id: I5beab0d64c1544344f1153f183c513839f673a1f
543a7ed7af992c5f62a9df1a20f3a2397d3e6ec3 23-Jul-2016 Justin Klaassen <justinklaassen@google.com> Fix NPE in ValueAnimator

- Reset mAnimationEndRequested to false in ValueAnimator#start(boolean)
so that previously canceled animated (with a start delay) can be
canceled again.
- In ObjectAnimator#animateValue(float) check if target == null
regardless of mTarget == null since it's possible the target was
explicitly set to null prior to the animator being cancelled.

Bug: 30190459
Change-Id: I6da55737df30a28f48355fc7a41ab91d05979deb
bjectAnimator.java
alueAnimator.java
2c0a36a1ec3c734bbfd0999a353ed40e2ead260b 27-Jun-2016 Doris Liu <tianliu@google.com> Merge "Rounding per-channel interpolation in ArgbEvaluator to closest integer"
d0ff41c40660288c3bae27e5c3bc328a464eab03 27-Jun-2016 Doris Liu <tianliu@google.com> Rounding per-channel interpolation in ArgbEvaluator to closest integer

In case of interpolating between x+1 and x in a color channel, the
previous implementation would jump to x in the *beginning* of the
animation, as it rounds down the interpolated float that's [x, x+1].
This CL rounds the per-channel interpolated float to the closest
integer.

Change-Id: I8610fb14ab3dd0ee2b1816868977c5653c178660
rgbEvaluator.java
91fcf575f1a712ba04b58a260752df3a333fa57f 24-Jun-2016 Doris Liu <tianliu@google.com> Merge \\"Fix NPE for checking for whether animators should play together\\" into nyc-mr1-dev am: 7f9c189f06
am: b53c9c1658

Change-Id: Ia8b14a4e79c60e3c83f12ab07160ff2d36247088
c470466d7c89b55d8c5a13d79076fa2f8d624da1 23-Jun-2016 Doris Liu <tianliu@google.com> Fix NPE for checking for whether animators should play together

BUG: 29586505
Change-Id: Ic2a67d51d2ac8d5bfb11ed7773c7c7e413cc28c7
nimatorSet.java
0eba1dfba040c096f8cd1b7b6d4c289ee78db4b8 13-Jun-2016 George Mount <mount@google.com> Notify end animation after setting the state to not running.

Bug 28404635

Change-Id: I13a480b54bb652e52d6b36addfe6d3799ece7568
nimatorSet.java
alueAnimator.java
c88ded5a50b35436b1e217699a0b1b224f63df02 14-Jun-2016 Doris Liu <tianliu@google.com> Merge \"Merge \\\"Fix setCurrentPlayTime for started but not yet pulsed animations\\\" into nyc-dev am: 42d39300cf am: a28f0003eb\" into nyc-mr1-dev-plus-aosp
am: 18b9573517

Change-Id: I6b9360bdbb145d4d0b6947ae11dd9dce7bdcbd5e
a28f0003eb27edbe298ce36c0e6b70dde42a4f09 13-Jun-2016 Doris Liu <tianliu@google.com> Merge \"Fix setCurrentPlayTime for started but not yet pulsed animations\" into nyc-dev
am: 42d39300cf

Change-Id: I7c1f2adb31ece266b082ffb9ea85b17c083b518c
caa2ebf814d0c0a4ff29e7f7a7ee8ca46df08802 10-Jun-2016 Doris Liu <tianliu@google.com> Fix setCurrentPlayTime for started but not yet pulsed animations

Also fix the behavior for calling reverse() immediately after
start(). Such case now triggers end() right away, which is
consistent with what the animation would do in M.

Bug: 29271714
Change-Id: I045e36e039179a3c462f22bc6a3a765437de4074
alueAnimator.java
51cfa78b250202a997626f3e2df985c3f9defa9b 10-Jun-2016 George Mount <mount@google.com> Merge "Ensure Animators and AnimatorSets run together are sync'd"
b04a0e57a751bfef6d4e320f9c9cf0a5715b4d3d 10-Jun-2016 George Mount <mount@google.com> Ensure Animators and AnimatorSets run together are sync'd

Bug 18122022

Previously, each animator would wait a frame after it was
started the animation was actually started. This is fine
for the first frame of an animation, but when it is within
an AnimatorSet, each animator will add a frame of delay.
This skews the animations so that they can no longer be
synchronized.

This CL refrains from waiting for an animation frame when it
is started during the animator callback and just start
the animation immediately on that frame.

Change-Id: I007dad9aef7596f0e954377a36a17afd4801b7fe
nimationHandler.java
c9493879d7b38b9d0b5b09aa3760966a3ca33eac 03-Jun-2016 Doris Liu <tianliu@google.com> Support Keyframe definition for AVD on RT

BUG: 27441613
Change-Id: Iece386f65f3704d1b7caa2b3690a8d3048ccf6e2
ropertyValuesHolder.java
a57e95a6a351242941e5cef97aaaa1fb34f20a9d 01-Jun-2016 Doris Liu <tianliu@google.com> Throw Exception for wrong valueType with API guard

Previously, wrong valueType error is swallowed in jni. As a result,
some animations are quietly skipped without letting developers know.
This CL maintains that behavior for pre-N, and throws Exception
to notify developers of the error for N and above.

Bug: 29009391
Change-Id: I3e8f003cdb97d214da72af3f93a84f64797b1c2c
(cherry picked from commit 94db09917a17976135e2c63d8e4171c54730c079)
ropertyValuesHolder.java
a282745fb8904645d54562d3857626f69f2e95e8 09-Jun-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Simplify KeyframeSet to avoid caching."
7e1d49326719076401b43b28649a827478ea6487 09-Jun-2016 Doris Liu <tianliu@google.com> Merge "Support Keyframe definition for AVD on RT"
a6b967cfc54408f6ee78ae0e4695eca6efd62e89 03-Jun-2016 Doris Liu <tianliu@google.com> Support Keyframe definition for AVD on RT

BUG: 27441613
Change-Id: Iece386f65f3704d1b7caa2b3690a8d3048ccf6e2
ropertyValuesHolder.java
792926a58c94563cf35d532cd3db888cc1cbeb7d 20-May-2016 Doris Liu <tianliu@google.com> Improve the property modification effiency of VectorDrawable animators

Previously, the VectorDrawable animators modify the VD properties by
doing reflection based on the property name. This CL avoids the overhead
of calling reflection by wrapping the setters of VD objects in
Float/IntProperty.

Bug: 28124049
Change-Id: I562c8d749fdfe508564c82a700a92e835cdd9ff4
(cherry picked from commit 9f3b31b9530a2121b4557fc312972c4faa133d5e)
ropertyValuesHolder.java
2c0f9885e59f0520bf17fb90867fd6f620d89fa5 27-Apr-2016 George Mount <mount@google.com> Simplify KeyframeSet to avoid caching.

Bug 27367940


Change-Id: I76426def5d4b46c0a0ba534fd952f6c41725c74a
loatKeyframeSet.java
ntKeyframeSet.java
eyframeSet.java
eyframes.java
athKeyframes.java
ropertyValuesHolder.java
204550983ac0fbbcde9875df4a934a83542e200a 03-Jun-2016 Doris Liu <tianliu@google.com> Merge "Add additional type check for animating along a path"
02f03120a974c6ed17b0c7fa5e8e50d42f9b7768 02-Jun-2016 Doris Liu <tianliu@google.com> Add additional type check for animating along a path

BUG: 29009391
Change-Id: I58c98e64f89d0e4e5e2d800a16e71ef853ecd5f6
nimatorInflater.java
94db09917a17976135e2c63d8e4171c54730c079 01-Jun-2016 Doris Liu <tianliu@google.com> Throw Exception for wrong valueType with API guard

Previously, wrong valueType error is swallowed in jni. As a result,
some animations are quietly skipped without letting developers know.
This CL maintains that behavior for pre-N, and throws Exception
to notify developers of the error for N and above.

Bug: 29009391
Change-Id: I3e8f003cdb97d214da72af3f93a84f64797b1c2c
ropertyValuesHolder.java
b37b27ff19e6d4b43b436445866591a67dcfc6d4 28-May-2016 Doris Liu <tianliu@google.com> Merge "Merge "Add more doc for Object animators defined with a single value" into nyc-dev am: f97a0f5c9c" into nyc-mr1-dev am: d01f474773
am: d38541009b

* commit 'd38541009b847cba108a71a49d64d809b0bb5f42':
Add more doc for Object animators defined with a single value

Change-Id: Icbc5a547c8a586335d4a826059765103cb59f26f
3c8598399638c90da69e14fde824385fdb582e1d 28-May-2016 Doris Liu <tianliu@google.com> Add more doc for Object animators defined with a single value

Bug: 28104516
Change-Id: I181b2817ceda5dfaf87e12c81b21e7d0d2f002fc
bjectAnimator.java
3cea02f3ceadfc1612ee0ae27679fe8a10e3c22f 25-May-2016 Doris Liu <tianliu@google.com> Merge "Clamp start delay to non-negative range" into nyc-dev am: 54d89e078d am: 0890a4708e
am: a38cbfbd1f

* commit 'a38cbfbd1f51da95eb15063a2e7cf412fc1a0e93':
Clamp start delay to non-negative range

Change-Id: I56a05ae6ba65508f20b91699f319de71641a7fd1
61045c518b18a7cee30954fe45f9db8c14e705e1 25-May-2016 Doris Liu <tianliu@google.com> Clamp start delay to non-negative range

Bug: 28936388
Change-Id: I2a225e07cad53c6ffc3637219f8c741aca5c008c
nimatorSet.java
alueAnimator.java
9f3b31b9530a2121b4557fc312972c4faa133d5e 20-May-2016 Doris Liu <tianliu@google.com> Improve the property modification effiency of VectorDrawable animators

Previously, the VectorDrawable animators modify the VD properties by
doing reflection based on the property name. This CL avoids the overhead
of calling reflection by wrapping the setters of VD objects in
Float/IntProperty.

Bug: 28124049
Change-Id: I562c8d749fdfe508564c82a700a92e835cdd9ff4
ropertyValuesHolder.java
ed45ab9004e9f70649f2f122d0d827ce70427130 30-Apr-2016 Romain Guy <romainguy@google.com> Evaluate ARGB values in linear space instead of sRGB

A comparison between the old behavior and the behavior proposed in
this change can be found in the following document:

https://docs.google.com/a/google.com/document/d/1x8g5VcEZbuZd-RhSITc1VPpZ_dc0FlF1WbDscBYPQzM

Change-Id: I29d3fdfdd45cb64f32ad6a6f3f25fa3dafe1a6d0
rgbEvaluator.java
fa21bdfd5a8a5da3ec0530f7cc884994f92dc597 22-Apr-2016 Chet Haase <chet@google.com> Document behavior of object references in Animator classes

Animators that are created with Object values may have undefined
behavior when those objects are changed outside of the animator itself.
For example, an animator created with a start Rect and end Rect
will animate the bounds between those two objects. But if the caller
changes either the start or end rect before or during the animation,
that will affect the values used on every frame of the animation.

Issue #28304520 Strange interpolation of property values holder values

Change-Id: Id6ac19c8369ae34450e6b53d68f5e492b27c577e
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
dd67b0d52521bb828bc31732fe3ac8b786a19cce 20-Apr-2016 Doris Liu <tianliu@google.com> Merge "Fix pause/resume for AnimatorSet" into nyc-dev
2987dffb7248392ca48d87817b27c09092b1d4bf 19-Apr-2016 Doris Liu <tianliu@google.com> Fix pause/resume for AnimatorSet

Bug: 28251945
Change-Id: Ie98c779791bf181e2e8fbf38bbd453228ce43310
nimatorSet.java
c5801fb9333823f08889f82eb4679638d18d6863 14-Apr-2016 Doris Liu <tianliu@google.com> Merge "Add api check to guard AnimatorSet behavior change" into nyc-dev
56b0b570890dbb7baa00da95f5be2eb3e0122f0a 13-Apr-2016 Doris Liu <tianliu@google.com> Skip to end for 0-duration animation

Repeating a 0-duration animation makes no sense. In the case of
battery saver mode, all animators are set to 0 duration, and
repeating the 0 duration animations not only waste battery power
but also potentially produce flickers on screen. In this CL,
0-duration animations are skipped to the end, regardless their
repeat count.

Bug: 25451472
Change-Id: I20f9dc2f0ff9c027782a8363ff4cf4a4d390736c
alueAnimator.java
58606db8be7e64a4317955b87fba4ee51f353630 13-Apr-2016 Doris Liu <tianliu@google.com> Add api check to guard AnimatorSet behavior change

For pre-N, we have inconsistent behavior between ValueAnimator and
AnimatorSet in the case of calling end() when already ended:
ValueAnimator would start() and immediately end, whereas AnimatorSet
would be no-op. We made a decision to be consistent within Animation
Framework from N forward, which means that AnimatorSet will have the
new behavior of starting and immediately ending just like
ValueAnimator. This new behavior will be guarded by an API check.

Bug: 25601129
Change-Id: I2d952a93d8521c547ec8cde173c80d1d8ead0639
nimatorSet.java
c69bd2246f4ec5000591fdc381f84cd90be85b7f 15-Mar-2016 Jorim Jaggi <jjaggi@google.com> Implement transition for docking task in recents #6

- Use a future to provide the app thumbnail so the app can restart
in parallel when recents draws the bitmap (extremely expensive).
- Don't call startRecents from AM when recents is already running - this
messes up the transition information.
- Make sure to put the task into resizing mode if it needs to be restored
from the disk.
- Some minor fixes for the transition animation spec.
- Add NO_MOVE_ANIMATION to recents flags to prevent wallpaper
flickering.

Bug: 27607141
Change-Id: I7d0c75b88775ab467927b8cf94303ddb60222e7f
eyframes.java
787e9dd6c81a2db27cd002ca6672be4279cabe88 15-Mar-2016 Jorim Jaggi <jjaggi@google.com> Implement transition for docking task in recents #5

- Move task along a curved path.

Bug: 27607141
Change-Id: I945071de55efed0d327b68045e48fea6989adf63
eyframeSet.java
athKeyframes.java
907c177b04d07d5d84005ac92df9bde6af7c394d 25-Mar-2016 George Mount <mount@google.com> Start seeked animators without waiting for start delay.

Bug 24872727

Change-Id: I954efd7113565f9b8f9a569f57960b8d91620758
alueAnimator.java
e60a693d847a160b7a0d70046eb1d0e6d2cb4f10 17-Mar-2016 Chet Haase <chet@google.com> Clarify docs around weak references to animator targets

Issue #26069047 Weak reference to the target in animators
can cause interrupted animations

Change-Id: I719f619006e93a94af907c4de7840c691a5aed37
nimator.java
bjectAnimator.java
7f1bdd9f9180574c8b6b98cefe3c542b92477295 18-Mar-2016 George Mount <mount@google.com> Merge "Add @SafeVarargs for methods using typevar varargs." into nyc-dev
d98f4ba86c02714d94ec3b6f35345cb0b04f7778 14-Mar-2016 George Mount <mount@google.com> Add @SafeVarargs for methods using typevar varargs.

Bug 27142336
Using a type variable in a varargs leads to a javac warning
because type variables are treated as Object after compilation.
Because these uses do not require a specific typed array, we
can use @SafeVarargs to suppress the warning.

Change-Id: I860bcc79667a9c85c381c7994fd1d798209d7c66
bjectAnimator.java
ropertyValuesHolder.java
781fbf28c70868d803a6caf13a2209c785fa4fce 14-Mar-2016 Alan Viverette <alanv@google.com> Merge "Ensure all Java-side usages of config flags are using Java flags" into nyc-dev
5a705d0bbbd1f5eb117170c9c68399cc7b484b7a 11-Mar-2016 Doris Liu <tianliu@google.com> Merge "Set end value immediately when start a 0-duration animation" into nyc-dev
ac85f90466dd60d2af8ffc3942d503a0de606726 11-Mar-2016 Alan Viverette <alanv@google.com> Ensure all Java-side usages of config flags are using Java flags

Previously we were using native config flags in some places that expected
Java flags, and vice-versa. All usages of config flags are now annotated
to ensure we're using the right type.

Cleans up annotations on most methods that were touched.

Bug: 21161798
Change-Id: Ifd87dfb12199fc8258915d8a510e03ddb681ca89
nimator.java
nimatorInflater.java
tateListAnimator.java
c4dd2e7d525fc41081ab9138535cd1cf153c4bc6 04-Mar-2016 Adam Lesinski <adamlesinski@google.com> Merge "Move the guts of Resources to ResourcesImpl" into nyc-dev
a06b3f19d498e2c387e7a976f94d3cd5f1d77c35 02-Mar-2016 George Mount <mount@google.com> Remove animation listener while paused.

Bug 27418573

While an animator was paused, it continued to receive
Choreographer callbacks. This has been changed now so
that after the first callback, it is removed.

Change-Id: If73483404b38f1f354a63fc98d07696f442987e6
alueAnimator.java
fb302ccd8e0610a09691ea5503ff8111dc7a2e41 01-Mar-2016 Adam Lesinski <adamlesinski@google.com> Move the guts of Resources to ResourcesImpl

In order to satisfy the requirement that clients can
cache a Resources object when a configuration change happens,
we move the caches and all other method bodies to ResourcesImpl.
These can then be swapped out for the correct version when needed,
while allowing clients to keep holding the existing Resources references.

This is part 1 of 2 CLs. The next one will do the actual switching of implementations
based on configuration changes for multiwindow.

Bug:26854894
Change-Id: I41156194a3541e59053b4048c3a15981c7d8a506
nimatorInflater.java
b199da785b0174a2addcf0c4c31304d005dc69e9 25-Feb-2016 Doris Liu <tianliu@google.com> Set end value immediately when start a 0-duration animation

This is to be consistent with pre-N behavior.

Bug: 27066791
Change-Id: I24cb7bc7645339a6e52be35a8cb15902b7d7bd5e
alueAnimator.java
c4bb185d41cfb960ed9a3178a4f8974c351abdb0 19-Feb-2016 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 5 of MANY

This is reverting the revert of what reverts the revert of the original
implementation. Fourth revert is a charm!

This reverts commit df7fdb1e0bdb5c289bbc08047e5c710185503309.

Change-Id: I6fc3a5accfd8b79c3da31bbc101ad9e9b4d6e7dd
nimatorSet.java
df7fdb1e0bdb5c289bbc08047e5c710185503309 18-Feb-2016 Doris Liu <tianliu@google.com> Revert "Revert "Revert "VectorDrawable native rendering - Step 5 of MANY"""

This reverts commit 0d20a275a5baf8579c8b9111cf2ce6615874a6b6.

Change-Id: I97c782f1164a5d39ab74dc098cca71d9e1b30cd8
nimatorSet.java
0d20a275a5baf8579c8b9111cf2ce6615874a6b6 11-Feb-2016 Doris Liu <tianliu@google.com> Revert "Revert "VectorDrawable native rendering - Step 5 of MANY""

This reverts commit e03ef25a3e44ef5d495e366c30b9b5b69fc58194.

Change-Id: I9c2e1c891667451a3ee668e414bf337ad67279ab
nimatorSet.java
e03ef25a3e44ef5d495e366c30b9b5b69fc58194 11-Feb-2016 John Reck <jreck@google.com> Revert "VectorDrawable native rendering - Step 5 of MANY"

Bug: 27136799

This reverts commit 18bdf443e371e9f293439b4ff92cc79abaa422e5.

Change-Id: I825b061eec2a591f2d18119ba64494624b9ad4f2
nimatorSet.java
18bdf443e371e9f293439b4ff92cc79abaa422e5 02-Feb-2016 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 5 of MANY

Implemented reset() (public API for AVD)
and reverse() (internal API that needs to be supported)

Change-Id: Ife1650049f271cad1347943151a5800c40c20aa2
nimatorSet.java
766431aa57c16ece8842287a92b2e7208e3b8ac3 04-Feb-2016 Doris Liu <tianliu@google.com> Revert "Revert "VectorDrawable native rendering - Step 4 of MANY""

This reverts commit 5a11e8d0ba21624025b89ac63bbd18befa55be0e.

Change-Id: I7a48b59c4f930dad65ddc8590c25a12636244ea2
nimatorSet.java
athKeyframes.java
ropertyValuesHolder.java
5a11e8d0ba21624025b89ac63bbd18befa55be0e 04-Feb-2016 Doris Liu <tianliu@google.com> Revert "VectorDrawable native rendering - Step 4 of MANY"

b/26949340 and b/26975469, b/26975079 as well

This reverts commit f276acd98457bcaabc9e79a17a736b3b484f005e.

Change-Id: I4b55177daf0d289bc03604c71fd4bf579f65073a
nimatorSet.java
athKeyframes.java
ropertyValuesHolder.java
f276acd98457bcaabc9e79a17a736b3b484f005e 07-Jan-2016 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 4 of MANY

This CL runs VectorDrawable animation on RenderThread. The changes in this CL
include:
- Convert all the animators in AnimatorSet for AVD into a set of RenderNodeAnimators.
- Hook up the new animators with RenderThread
- Add drawOp in RecordingCanvas for drawing VD so that during the animation
on RenderThread, all the property changes on VD can be reflected on the screen.

TODO:
- Implement reverse and reset for AVD.

Change-Id: I2df1d754f2db0ad098d9c15dde4bb2bdfafc2315
nimatorSet.java
athKeyframes.java
ropertyValuesHolder.java
0f5fd2d8709dc8724e45d500d72119662bf28694 14-Jan-2016 George Mount <mount@google.com> Merge "Add IntDefs for Animator and Transition classes."
7764b920f21e0b9250122ff26533d5dac98df6b3 13-Jan-2016 George Mount <mount@google.com> Add IntDefs for Animator and Transition classes.

Bug 23593341

Change-Id: Ifcb30322cb90efb32262c80f5d11c2d39efc5080
alueAnimator.java
406a02b59d3a8f9890509200f048c23c3b3200b7 12-Jan-2016 Chet Haase <chet@google.com> Don't double-set keyframe values when Property exists

There is logic in PVH.setupValue() that sets the value of
the appropriate keyframe from a Property, if that Property object
exists for the animator. But after that is done, it goes ahead and sets
the same keyframe value based on the getter for the target object.
This is not only redundant; it is wrong (in the odd situation in which
a getter would return something different than Property.get()).

The solution is to return early once we've set the value with the
Property object.

Issue #26471646 PropertyValuesHolder uses reflection in setupValue when a Property is being used

Change-Id: I12634a25661400f13f44872ba17625b32e93ca19
ropertyValuesHolder.java
804618d0863a5d8ad1b08a846bd5319be864a1cb 17-Nov-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 2 of MANY

Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.

Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.

Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.

Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
nimatorInflater.java
66d48566537bd2d037e1eff919542731b93fa85c 09-Nov-2015 Doris Liu <tianliu@google.com> Fix animator sometimes not being ended when end() is called without start()'ing

Bug: 23713124
Change-Id: I2e00cedb9c74e14d2361579bba89d3d1dbfe4d22
alueAnimator.java
f2aeca34ba55d56de0c0db7c126f98a8f623f002 16-Oct-2015 George Mount <mount@google.com> Change wrong doc about using linear interpolator.

Bug 24986885

Change-Id: I79f2cd0c6439749bf1fc412d28471e865501aa5a
bjectAnimator.java
8b7c99cca2c9996a0ac2d87f24bd3ef83fd10be5 02-Oct-2015 Doris Liu <tianliu@google.com> New public API for calculating the total duration of an animation

Total duration is the total amount of time an animation takes from
start to finish. It include start delay (if any), child animation
sequence, accounting for repeat.

Change-Id: Id5b36a63c02e25586aefd38612aa5867492e1adb
nimator.java
nimatorSet.java
alueAnimator.java
fbe94ece70c8064e9d9d6f6c278bb9ab310911cd 09-Sep-2015 Doris Liu <tianliu@google.com> More refactor on ValueAnimator

mPlayingBackwards is confusing when placed next to mReversing.
One means the overall direction of animation playing, the other
indicates the direction of playing in the current iteration.

mCurrentIteration and mPlayingBackward are redundant together,
as the latter can be derived from the former, given the overall
direction of animation playing. Redundant variables pose risk of
getting out of sync and therefore are refactored out in this CL.
Instead, an overall fraction that ranges from 0 to mRepeatCount + 1
was introduced. It can capture both the current iteration and the
fraction in the current iteration. It gives a much better idea of
the overall progress of the animation.

Change-Id: Ic0ea02c86b04cfc01c462687d1ebbd46184cbab7
alueAnimator.java
4365e5a13755ffbdb977586c90b8b515add599aa 07-Oct-2015 Chet Haase <chet@google.com> Fix ValueAnimator.getCurrentPlayTime()

Return a valid value for the current play time if the animator has
been seeked to a play time or fraction, but not yet started.

Issue #24717972 animator.getCurrentPlayTime() is all messed up

Change-Id: I15f1329b65410b4b0366a23a3419b5987305a865
alueAnimator.java
7b67734fe3601e87d3d3e54cc054884e02f58937 02-Oct-2015 Doris Liu <tianliu@google.com> Merge "Fix behavior change for animators without a start delay"
f57bfe2fefc87fdb1dcc27b0f4b3a11996c15da2 01-Oct-2015 Doris Liu <tianliu@google.com> Fix behavior change for animators without a start delay

This CL maintains the behavior that animators without any
start delay will get started right away, instead of being delayed
to the first frame as it was in the previous refactor.

Bug: 23825781
Change-Id: I7873bc6c7a761c1b4d48ee5e17af631b359fd676
nimatorSet.java
alueAnimator.java
2b2e2c8d252b33fa25ccba1e37322256cd44b3d5 01-Oct-2015 Doris Liu <tianliu@google.com> Update doc to reflect requirement of a Looper for changing animation's frame delay

Bug: 24569533
Change-Id: Ie886394a5e3cd7ceebbedbf09e2d9645b464a9c6
alueAnimator.java
ee684556ceb8b940ca2af06613a59728e9b78507 28-Aug-2015 Doris Liu <tianliu@google.com> Correct isRunning() behavior for AnimatorSet

isRunning() for an Animator indicates whether an animator has gone
past its start delay and not yet finished. As a subclass of Animator,
AnimatorSet should follow the same principle. The implemention prior
to this CL returns whether any child animation is running, which is
inconsistent with the javadoc for isRunning() and general behavior
for Animator.

Change-Id: Iece814dfcd609ee292dbc00bd55dc64c7bda8e57
nimatorSet.java
3dbaae1ef4f221b3626810f4ba19eec068dd6304 27-Aug-2015 Doris Liu <tianliu@google.com> Prevents recursive call into end() or cancel()

end() and cancel() in ValueAnimator will trigger onAnimationCancel
or onAnimationEnd callback on its listeners. If additional end()
or cancel() request comes from the callback, a loop will be formed.
Therefore, we need to mark when the end is reuqested so we do not
process end() or cancel() request multiple times during one animation
run, and also effectively terminate the loop.

Bug: 23596652
Change-Id: Iefb69eb8969071b43124c09d7cccbe9ff5ba5dcc
alueAnimator.java
f310e889392be5198004c6c6611b2b50ae3344b8 27-Aug-2015 Doris Liu <tianliu@google.com> Fix build

Change-Id: Ib454858f0fe3eb9171297c2c1ccece33729c487b
nimationHandler.java
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
nimationHandler.java
bjectAnimator.java
imeAnimator.java
alueAnimator.java
458f20ed5a3be51ab1166256dfeece37fa7e3c66 11-Aug-2015 Doris Liu <tianliu@google.com> Exclude DelayAnim in child animation value setup

Change-Id: I5f3274d3c1a6fee7b22bb59cdb80f9bce8c4420e
nimatorSet.java
49db4242b134ffee79392670f9e434f6e3c7cec7 10-Aug-2015 Doris Liu <tianliu@google.com> Add cache for each animation's duration in AnimatorSet

Each animator's total druation is cached in the set, so that when
their duration changes, the dependency graph will be updated to
reflect the change.

Change-Id: I677bc289f2ba430466f2d90ebc14368cb7b75118
nimatorSet.java
1cbcbf3f4dc80f906b10d2d33ca031622e46615e 07-Aug-2015 Doris Liu <tianliu@google.com> Merge "Make sure the correct AnimatorListeners gets called"
6f2276bf792ed21f7a6c4c3ef0dede8beeb728e5 06-Aug-2015 Doris Liu <tianliu@google.com> Make sure the correct AnimatorListeners gets called

This CL fixes the bug where when there're AnimatorSet inside of
AnimatorSet, incorrect AnimatorListeners get notified of the
Animator's lifecycle events.

Bug: 22940651
Bug: 22954352
Change-Id: I2bf66413d54dcfc75dc7fa779e723443763a30a5
nimatorSet.java
dbf69e4652d439892080dff3353b1cfd5b4bf6bc 06-Aug-2015 Doris Liu <tianliu@google.com> Exclude delay animation from getChildAnimations() list

Bug: 22975427
Change-Id: I8bd9a51f0a886873346d77e9452662301a7c0363
nimatorSet.java
5e66616c04e4a54df7e8783bc7ffe6c22bcb3040 04-Aug-2015 Doris Liu <tianliu@google.com> Fix clone in AnimatorSet

Change-Id: I277d801897b08889c53522affdfc5581953c4f01
nimatorSet.java
1309914ebf21e705fc59d7d44014124d8a21a2d2 11-Jul-2015 Doris Liu <tianliu@google.com> Refactor AnimatorSet in prep for adding more functionalities

This refactor changes how relationships (i.e. with/after/before)
among Animators in an AnimatorSet are represented. Specifically,
a directed graph is used: parent-child indicates sequential
relationship, and siblings will fire simultaneously.

This CL also fixed the issue where start delays for Animators that
play together are not handled correctly.

Bug: 11649073
Bug: 18069038
Change-Id: I5dad4889fbe81440e66bf98601e8a247d3aedb2e
nimator.java
nimatorSet.java
alueAnimator.java
81728b862e8448bc460fd6589de6c1b954f8227e 10-Jun-2015 Chet Haase <chet@google.com> Merge "Clarify docs for Animator.isStarted()" into mnc-dev
4ddd9257d60c378ddcf5b537ea2a03b80629f097 10-Jun-2015 Chet Haase <chet@google.com> Clarify docs for Animator.isStarted()

Behavior is different than spec'd for one-shot animators, clarified
docs to reflect that.

Issue #21087798 better docs for isStarted()

Change-Id: I499a5d52cf02ef715acb6ae0635ede4328c93de8
nimator.java
2787cebfdc78b662e8742b7eb8dacf9b4a6e80c1 06-Jun-2015 Doris Liu <tianliu@google.com> Infer value type for ObjectAnimator, too

Previously, changes have been made to infer value types for
PropertyValuesHolder when no value type is defined. This CL applies
the same inferring logic to ObjectAnimator too.

Bug: 21645431
Change-Id: Ifdf163a7d32da990dc2281080f87f94c0df0e9ce
nimatorInflater.java
a2f043822b870f09839d025e146e37f7e7646fc4 11-May-2015 Doris Liu <tianliu@google.com> Merge "Use ArrayMap instead of HashMap for storing relavant nodes" into mnc-dev
d7444427d9f44b6b7448d4c21edca866132c8b59 11-May-2015 Doris Liu <tianliu@google.com> Use ArrayMap instead of HashMap for storing relavant nodes

This fix is to take advantage of ArrayMap, which is a key-value
mapping data structure that is more memory efficient than HashMap.

Bug: 11604254
Change-Id: I57006880de570a4d7f3899e274cf0a06355d116b
nimatorSet.java
6a8c79bb2b4b0c749e76dc3628ec5200efec4f40 07-May-2015 Alan Viverette <alanv@google.com> Merge "Improve keying for theme caches, rebase system theme on config change" into mnc-dev
e54d245b993e1347cb32c23a6bdc907a45fab324 06-May-2015 Alan Viverette <alanv@google.com> Improve keying for theme caches, rebase system theme on config change

Themes now use an array of applied styles rather than a String to store
their history. They are keyed based on a hash code computed from the
history of applied styles. The themed drawable cache has been abstracted
out into its own class.

Also updates system context to use DayNight as the default and ensures
that GlobalActions uses the correct context, which exercises the change.

CTS tests have been added in another CL.

Bug: 20421157
Change-Id: I9eb4b7dffd198ad24d02f656eaf0839570b59caa
nimatorInflater.java
0698594d478926ab4694ac0f8429847bad2ceedb 06-May-2015 Chet Haase <chet@google.com> Fix leak in LayoutTransition

Previously, an OnPreDrawListener was added to clean things up, including
removing the listener, after animations are started.
But if the view is detached before that listener is called, the
listener will remain on that ViewTreeObserver.

This change adds an OnAttachStateChangeListener to perform that cleanup
step when the view is detached, just in case.

Issue #20824645 Leak in LayoutTransition

Change-Id: I264812f8e02dda673789712ba83d208e87cdc5a4
ayoutTransition.java
7eaccbfbc25b772659536c096f6341927c38c470 23-Apr-2015 Doris Liu <tianliu@google.com> Remove distance based animation duration API

Bug: 20500107

This reverts commit 0084e370955cfa1efbf8ab447ac5e71a5529f5d3.

Change-Id: I57f1f3a22c5adfefd966447050b100a50e7141b2
nimator.java
nimatorInflater.java
nimatorSet.java
alueAnimator.java
7b380329ece8ce0bc93f6b16459dd4a8e594e0e6 23-Apr-2015 Doris Liu <tianliu@google.com> Merge "Infer value type for keyframes when it is undefined"
a01fbf35de21cd595d4cda2e83b67c1238e12550 22-Apr-2015 Doris Liu <tianliu@google.com> Infer value type for keyframes when it is undefined

Bug: 20140483

Change-Id: Idf6caea2a8eae803e33dd34b9c8f563ad12e1848
nimatorInflater.java
57c78290e4ba0ebd1fdb01c19db42a7c42e7664e 22-Apr-2015 ztenghui <ztenghui@google.com> Merge "Being extra careful, reset some more variables on ValueAnimator."
e1b5c2b48a5cf1dd3712dde35b59bc18851b4018 21-Apr-2015 ztenghui <ztenghui@google.com> Being extra careful, reset some more variables on ValueAnimator.

No real bug found related to these set of variables yet, just a clean up.

b/20457797

Change-Id: I8443718b1c289ccc87e6b227d417825838277361
alueAnimator.java
fe7cca3d27a6a7c202ba5efa9695d6b575ca2a28 21-Apr-2015 ztenghui <ztenghui@google.com> Merge "Reset the Node status when clone."
b1e80d826b860203cc966d56584f9d83f5636bc0 21-Apr-2015 ztenghui <ztenghui@google.com> Reset the Node status when clone.

b/20457797

Change-Id: I5f1b0e2238fdc4a69a9c09c1e6e0272f7ede3685
nimatorSet.java
7513aab4dfa33130fd846bf033f4878ae1c75914 18-Apr-2015 Doris Liu <tianliu@google.com> Revert "Use real screen size to scale duration"

This reverts commit 5ed54c743c04e2bc349e12c31adb67cbc3094651.

Reverting to avoid build breakage.

Change-Id: Ib73056bb5a11e718cbc82db5917946bdf8db06dc
nimator.java
nimatorInflater.java
5ed54c743c04e2bc349e12c31adb67cbc3094651 17-Apr-2015 Doris Liu <tianliu@google.com> Use real screen size to scale duration

Duration scale based on screen size was using the area of the screen
excluding system bars to compare with our reference device's screen
size. This caused the following issues:
1) On baseline device (i.e N5) a scaling factor that is not 1 will be
applied to the duration.
2) Scaling on the same device will be different in landscape vs.
portrait, as the system bars take different amounts of space in
different orienations.

This CL fixes both of the above issues.

Bug: 20309042

Change-Id: I9d1d0a471d968bee1330b80f0f69a0066d6a1860
nimator.java
nimatorInflater.java
a7e8cfe97892a984e49292f9221b2db568b6364d 13-Apr-2015 Doris Liu <tianliu@google.com> Fix duration scale attribute for AnimatorSet

Bug: 20160979
Change-Id: I876771a037d2c254fc53ad0bfa4880e69e427090
nimatorInflater.java
02ecf04097fab8531788ddb941ff2b38ad9fd931 10-Apr-2015 Doris Liu <tianliu@google.com> Merge "Distance based animation duration"
0084e370955cfa1efbf8ab447ac5e71a5529f5d3 10-Apr-2015 Doris Liu <tianliu@google.com> Distance based animation duration

In order to preserve the same look and feel of an animation across different
devices, we need to maintain the same angular velocity for the animation in
users' field of view. Since the animation path may span different angles on
different devices, we need to therefore adjust the duration accordingly.

Change-Id: Ia37f213e5a894a046edbb1a45a4ced04e406d85d
nimator.java
nimatorInflater.java
nimatorSet.java
alueAnimator.java
4e1e6af4766500eb895be50cd7247438bf5dfcd5 10-Apr-2015 ztenghui <ztenghui@google.com> Merge "The ValueAnimator's state need to be totally reset during clone."
26e9a19900bae56b012425a114685d42dfa2fde1 10-Apr-2015 ztenghui <ztenghui@google.com> The ValueAnimator's state need to be totally reset during clone.

b/20119270

Change-Id: I26365b38e4a9712227aaec6f08f32025dab82ac7
alueAnimator.java
fe928dac694674caa6073e81bcb0de6754f4dd1e 10-Apr-2015 Doris Liu <tianliu@google.com> Merge "Add a check for color type in property values holder"
9032fa5808d7808f54d31d646049d0b1f4a9491b 10-Apr-2015 Doris Liu <tianliu@google.com> Add a check for color type in property values holder

Bug: 20140483
Change-Id: Ic6cc72388811a450e29a346625c785456834452b
nimatorInflater.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
imeAnimator.java
alueAnimator.java
6aac06ab940566020d050fdaa0d5e8d2e6c128ae 01-Apr-2015 Doris Liu <tianliu@google.com> Add per-interval interpolation support for keyframe in xml resources

Bug: 19913234
Change-Id: Ie46af02b2db3dad6ace667480aa556e0f645d278
nimatorInflater.java
bjectAnimator.java
6df99053ebd6d32ed1c0e83516b480a6843770c3 31-Mar-2015 Doris Liu <tianliu@google.com> Fix per-keyframe interpolators

Support different interpolators on every keyframe by running
interpolators on proportional duration instead of raw fraction.

Bug: 19928396

Change-Id: Ifb8c3a3b56785582cd6b0121d7bfb44534866300
loatKeyframeSet.java
ntKeyframeSet.java
eyframeSet.java
c615c6fc9caca76cd96998f86e1f1e6393aeadbb 02-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate methods to be called from overrides with @CallSuper

Change-Id: Ibc587c2aaee9f3e7f448079f72a75459fe4e15e7
bjectAnimator.java
alueAnimator.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
nimatorInflater.java
loatKeyframeSet.java
ntKeyframeSet.java
eyframeSet.java
eyframes.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
7b9c912f536925ac6ec43935d6e97506851b33d6 31-May-2013 Tor Norbye <tnorbye@google.com> Add @ResourceInt annotations on APIs

Change-Id: I119cc059c2f8bd98fd585fc84ac2b1b7d5892a08
nimatorInflater.java
34efbcedac4157b1e92fcd8fd746ba2754b44858 23-Jan-2015 Chet Haase <chet@google.com> am af8c621d: Merge "Allow infinite-repeat zero-duration animators to continue repeating" into lmp-mr1-dev automerge: 458cc6a
automerge: f647cde

* commit 'f647cde899c4462b465721cd705f234da7e82730':
Allow infinite-repeat zero-duration animators to continue repeating
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
alueAnimator.java
d430753cba09acb07af8b313286f247c78a41a32 01-Dec-2014 Chet Haase <chet@google.com> Add resource attributes for Keyframes and PropertyValuesHolders

Issue #17939329 Expose multi-property and multi-keyframe capabilities in animation resources

Change-Id: I14822ced47665fa6cde4996f74d3078da2ada38a
nimatorInflater.java
nimatorSet.java
bjectAnimator.java
alueAnimator.java
5a5afe010d2f8fb7e8f00858b8a305b4745c0469 05-Dec-2014 Eino-Ville Talvala <etalvala@google.com> Fix docs build

Change-Id: I9947d53aeb155d98f5194c9789f19aba1f01e4be
alueAnimator.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
alueAnimator.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
alueAnimator.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
imeAnimator.java
alueAnimator.java
691487d2c370dc2c7dbf360a25244b99651c18af 11-Nov-2014 George Mount <mount@google.com> Remove unnecessary reflection lookup in Animators.

Bug 17978210

When Properties are used with PropertyValuesHolders or
ObjectAnimators, the reflection lookup for getters and
setters is unnecessary.

Fixed problem in which static maps were being protected
by instance locks.

Fixed problem where we were repeatedly doing a
reflection lookup on methods that don't exist.

Change-Id: Ic0a1b62357f3aaaa4c900fef6087583ad0e964b6
ropertyValuesHolder.java
e48ef2a3efedebdcc351b60d2f3c35c987811938 31-Oct-2014 George Mount <mount@google.com> Cancel animation when target changes.

Bug 18201083

Change-Id: I2ea15063b18881c4b31ae6cdc287649dbc4a61f7
bjectAnimator.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
nimator.java
nimatorInflater.java
nimatorSet.java
loatKeyframeSet.java
ntKeyframeSet.java
eyframeSet.java
eyframes.java
ropertyValuesHolder.java
tateListAnimator.java
alueAnimator.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
alueAnimator.java
bc68f5adc222e6438588537fba222ea6a13f46e0 12-Sep-2014 George Mount <mount@google.com> Allow Path Animations to support overshooting.

Bug 17458698

Change-Id: I7a29fc8932a28121d7db8b3bf695d91a55ef059b
athKeyframes.java
6f6578e81c1df207da47e2e1337382341f271206 06-Sep-2014 Chet Haase <chet@google.com> Use constant state in AnimatedVectorDrawable

Complex animated vector drawables can be expensive to load due to
sub-optimal parsing of the String-based pathData. Suffering that penalty
every time the same drawable is loaded (such as material-themed
ProgressBars) is painful.

The new approach caches constant state of both the VectorDrawable (including
the pathData geometry) and the animators (which includes potentially expensive
path-based interpolators).

issue #17366831 Material ProgressBar taking 200+ms to inflate

Change-Id: Iba3b541e24cfce8c07f5aa9fe6aa7d7b92b2fe1c
nimatorSet.java
fd3c4744f265c5277e6e2641a18d5ec3dff19f6b 08-Sep-2014 George Mount <mount@google.com> Use intrinsic size for path animation in AnimatedVectorDrawable

Bug 16984007

Animated Vector Drawables were using the viewport dimensions for
calculating the allowable animation error. Instead of using viewport
dimensions, it is better to use the intrinsic dimensions. Using
the viewport dimensions meant that a small viewport (e.g. 1x1)
would mean that animation paths within would only have an accuracy
of 50% of the dimensions of the drawable.

Change-Id: Id0152eabb4effd1e50c644eea7a371b38baeb7c1
nimatorInflater.java
eyframeSet.java
f5945a0c8bb868f978d9d0d22043a8b44464a86e 06-Sep-2014 John Reck <jreck@google.com> Disable RT-anim for AnimatorSet

Bug: 17317184

Unfortunately this will disable *all* RT animations in a scene,
but we don't have more selective targetting currently

Change-Id: I57e1c0ae43957f45229473bdcdaf34c05825fab7
nimatorSet.java
984011f6850fd4b6ad4db6d6022bd475d7a2c712 21-Aug-2014 George Mount <mount@google.com> Use optimized Keyframes for Path animations.

Bug 17005728

Change-Id: I2e109ed1a3e768e1e0286fc3950516f16509e591
nimatorInflater.java
loatKeyframeSet.java
ntKeyframeSet.java
eyframeSet.java
eyframes.java
ayoutTransition.java
bjectAnimator.java
athKeyframes.java
ropertyValuesHolder.java
291161ac3815fb853fd6af21055d60f57a869608 22-Jul-2014 John Reck <jreck@google.com> Run RevealAnimator on RT

Bug: 16894195

Change-Id: I9acffa7aecc04c68b60c67f8f8a20aa225075a42
nimator.java
evealAnimator.java
7f9988f0f51e181f20fa22e17635d61893e5b74a 08-Aug-2014 Craig Stout <cstout@google.com> Fix NPEs when inflating a ValueAnimator.

Change-Id: I4489b9e80635053792668a2f8032635893fb4afd
nimatorInflater.java
af4d04cab6d48ae0d6a5e79bd30f679af87abaad 29-Jul-2014 Chris Craik <ccraik@google.com> Use RoundRect clipping for circle reveal animation

bug:16630975

Also, remove inverse clipping feature from reveal animator.

Change-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653
evealAnimator.java
c01bd1167a1b08d59557f214ddc48cf24d3b8d0a 19-Jul-2014 John Reck <jreck@google.com> Return Animator instead of ValueAnimator

Change-Id: I29a7cfdc7ffbb3a4d33f9e64f9d7ca791f5c947c
nimator.java
evealAnimator.java
alueAnimator.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
evealAnimator.java
alueAnimator.java
dd223e612cdd9cd5a2ee8be5f78c218f01353e55 17-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Change Animators to reset values when restarted if their target changes" into lmp-dev
8619f48fb353740f7fd3f6eaa86fe493377e6cad 16-Jul-2014 Yigit Boyar <yboyar@google.com> Change Animators to reset values when restarted if their target changes

Bug: 15710503
Change-Id: Ib39bf0e13199978ffb389111c225beb30312c965
loatKeyframeSet.java
ntKeyframeSet.java
eyframe.java
eyframeSet.java
bjectAnimator.java
ropertyValuesHolder.java
tateListAnimator.java
7bc6a3f023ca3e1dde91fc97b6036dee3ba538a2 16-Jul-2014 ztenghui <ztenghui@google.com> Add more reverse support to AnimatedVD

bug:16162242

Change-Id: Ie0b7618beeb65ebeb65db41600165837524bcee4
nimator.java
nimatorSet.java
alueAnimator.java
4ae3e6af08919e31174e049d2509e73a9bebb2b3 15-Jul-2014 Chet Haase <chet@google.com> Set existing TypeEvaluator on new KeyframeSet when changing object values

This avoids NullPointerException crash when changing values without
first canceling a running animator.

Issue #16245303 KeyframeSet crash on null keyframe or evaluator

Change-Id: I50ce5223310fe87e3382c446e2d36d93ae38a8fe
ropertyValuesHolder.java
e8c8617c287d57bfeca89c6d3b9ca40d784a797b 25-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Clone animators before running in StateListAnimator"
f505b1f08d606688881d56591d018c0d9162d739 23-Jun-2014 George Mount <mount@google.com> Use Property for ofFloat with Path.

Bug 15827972

Change-Id: I8917f7ab0df9709c11ae38e89af6b603ec76d430
bjectAnimator.java
eb034fbca40006c55db143047eb628c4b657730a 09-Jun-2014 ztenghui <ztenghui@google.com> AVD now support path morphing.

Basically extended the ValueAnimator to support a new type: pathType.
Add the PathDataEvaluator internally to interpolate path data.
Update test to show the path morphing.

Change-Id: I89db0199cbc12e3041790a6115f3f50b80213cdb
nimatorInflater.java
de5a75ea91cdc9d56f2051aa6ef8e7c1b45febbb 17-Jun-2014 Yigit Boyar <yboyar@google.com> Clone animators before running in StateListAnimator

Bug: 15678925
Change-Id: I81d88c08d515b90b3105936c2d665b417483dfe1
tateListAnimator.java
cf4832f69c8786b098ce18c24319021f8cd6733a 17-Jun-2014 ztenghui <ztenghui@google.com> Add path support into xml files for PathInterpolator and ObjectAnimator.

The test case is showing that AnimatedVectorDrawable is able to use path to
define time interpolator and object movement now.

Change-Id: If3c0418265d0fd762c8f5f0bb8c39cce3ad34ef3
nimatorInflater.java
e5e92602a41a4ddc7b42cd1c171a0edfbd09b8da 03-Jun-2014 ztenghui <ztenghui@google.com> Add AnimatedVectorDrawable

Currently as a hidden class.
It can support many the animations now as far as ObjectAnimator and
hierarchical group can support.
And we don't have path morphing yet.

Also support the Animator / Interpolator inflation from Context and Resources.

Change-Id: I948bbdf7373ad291171eed0b497959dce8c2edf3
nimatorInflater.java
87ac5f60e20fba335497aa9dc03b7c29c4b966a2 05-Jun-2014 Alan Viverette <alanv@google.com> Use a weak reference to the ObjectAnimator target

Also adds Nullable and NonNull annotations where it was obvious.

Change-Id: I4be7a94b0510e87b260f902cc1efd3c5e4bdc228
bjectAnimator.java
42516d19db936b10874c27e16eeacda041af01f9 20-May-2014 George Mount <mount@google.com> API Review: split out BidirectionalTypeConverter.

Bug 14997858

Change-Id: I1f2ccf7c4e60320c8df759702a8f2fa24fd3acd2
idirectionalTypeConverter.java
bjectAnimator.java
ropertyValuesHolder.java
ypeConverter.java
f4c5bf30b445874cf353e1b96cab94185a39ce6d 07-May-2014 Yigit Boyar <yboyar@google.com> State based animators for Views

Set quantum theme buttons to elevate 2dp on press

Change-Id: Ibf4f5ef166b901382c304d392eba075836a96a35
nimatorInflater.java
tateListAnimator.java
5f9ea81c99306b2741db3109fb68b52c652f39f2 07-May-2014 Chet Haase <chet@google.com> Doc fix in TypeEvaluator method docs

Change-Id: Ie20ba820b0a3a6b8f0f6120dfcfc8bba6adf29b3
ypeEvaluator.java
4dc16b370ca633d6937c8e0ebf9f5aca46baa9a4 25-Mar-2014 ztenghui <ztenghui@google.com> Add RevealAnimator

Expose this as a ValueAnimator throught a new API as
View.createRevealAnimator().

Change-Id: Ia6aac452988f001023478ee1ca0f268960e23f25
evealAnimator.java
2ed16ac6238227dab2687519268f3683f045e2ac 22-Mar-2014 George Mount <mount@google.com> Fix problem on Animator with a start delay.

Bug 13589060

Change-Id: I05b9421fa141466bdbfe19f1bd5d993fa23982cb
alueAnimator.java
fbb35fb39eb74c6fa7ba6804faeaccb80483be14 17-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use of long for pointers in PropertyValuesHolder

Long is used in PropertyValuesHolder class to store native pointers
as they can be 64-bit. Note that jmethodID, a pointer to structures,
is also carried in long rather than int to support 64-bit system.

Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>

(cherry picked from commit 0141e884344a5c267239079d615e1c9d9898a222)

Change-Id: I80408a7227427732db0d8b4c960bcb849b7c8060
ropertyValuesHolder.java
c96c7b2e54965e30c8fb82295f1ca9f891ebd5e7 23-Aug-2013 George Mount <mount@google.com> Add animations along a Path.

Change-Id: If03bd10a3961ff874e33489e1253146b8dadca33
bjectAnimator.java
ointFEvaluator.java
ropertyValuesHolder.java
e6702cb0f6eab83442b097081c3888a1fde87e6a 21-Oct-2013 George Mount <mount@google.com> Merge "Add ofArgb to ObjectAnimator and ValueAnimator."
1ffb280a7d2c70cc16d709c685f5d31fdb86b5e4 10-Oct-2013 George Mount <mount@google.com> Add ofArgb to ObjectAnimator and ValueAnimator.

Bug 10396985

Change-Id: Ib1fcea04b5a915800fc415b3d548a8853b05389c
nimatorInflater.java
rgbEvaluator.java
bjectAnimator.java
alueAnimator.java
eddb9dc0a4011d48ace2b9f0e4f57295bf16ee1b 10-Oct-2013 Chet Haase <chet@google.com> am a8382f70: am 1928bcbc: am 1d7b3dc1: Merge "Make LayoutTransition.setInterpolator() actually do something" into klp-dev

* commit 'a8382f7064225ac1f44d27545376607d10ee00f3':
Make LayoutTransition.setInterpolator() actually do something
33d08762d8e8d32422903929ad2b72774d9f8c87 10-Oct-2013 Chet Haase <chet@google.com> Make LayoutTransition.setInterpolator() actually do something

Previously, you could set a new interpolator on a LayoutTransition object,
but it wouldn't have any effect, since the value was only used at construction
time. This change makes the intended behavior work, byt assigning that
new interpolator to the appropriate animations when they are run.

Issue #11163487 LayoutTransition.setInterpolator() has no effect

Change-Id: I1b390a30c008ac2bf26491dc352e28f276357388
ayoutTransition.java
7d8589c1562519f2fe644647b83a525b321e44be 09-Oct-2013 George Mount <mount@google.com> Merge "Support for multiple value animations."
d5df8a366553a3a6bcb83c9810fbe775a96dfb9a 09-Oct-2013 George Mount <mount@google.com> Merge "Setter values can now have different type than animated values."
c75b478cedcbee4a5b67707322672b89a2837e05 09-Oct-2013 George Mount <mount@google.com> Merge "Adds reuse Rect constructor for RectEvaluator."
0f3f2983db5c5f7aa2395408165b326c420000dd 12-Sep-2013 George Mount <mount@google.com> Adds reuse Rect constructor for RectEvaluator.

Adds constructor to RectEvaluator that allows reuse of the
evaluated Rect Object.

Change-Id: I09ca4fd7dadb20d1501248c83dc008c00d901fd6
ectEvaluator.java
4eed52944c0fcb3afa7369aba60fb5c655580286 30-Aug-2013 George Mount <mount@google.com> Support for multiple value animations.

Bug 2805977
Support for multi-value setters in ObjectAnimator.

Change-Id: I7854dfcb82372afc6d9afb4c50a289ff9d41574e
loatArrayEvaluator.java
ntArrayEvaluator.java
bjectAnimator.java
ropertyValuesHolder.java
16d2c9cc6bd67131d9921fbc14a69d88f48f48ca 17-Sep-2013 George Mount <mount@google.com> Setter values can now have different type than animated values.

Add TypeConverter to convert animated values type to target
setter type.

Change-Id: I7f0581b18a5321b4aafd7e47f147a81573c45061
bjectAnimator.java
ropertyValuesHolder.java
ypeConverter.java
f8c40cfc72f8f443b167f9452aba859fa83af39f 26-Sep-2013 George Mount <mount@google.com> Set evaluator after setting values so that it can take effect.

Bug 10638385

setEvaluator only takes effect after values are set in
an Animator.

Change-Id: I609a8615732182add3dd5bfc8940a4913e031cfa
nimatorInflater.java
a8e176534cb086cdf925b0ab0fbd7c2859a1de44 11-Sep-2013 Chet Haase <chet@google.com> Merge "Reversing immediately after starting animator ends it" into klp-dev
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
alueAnimator.java
d82c8ac4db7091d2e976af4c89a1734465d20cd2 26-Aug-2013 Chet Haase <chet@google.com> Transition API changes from API council recommendations

Issue #10460684 KLP API Review: android.view.transition and android.animation
Issue #10570740 Transitions: inflate transition targets from xml

Change-Id: I7a3f6d3aece2fcafc5efd555d033f79e86635c98
nimator.java
ropertyValuesHolder.java
bac752632c7f2cea9ae5bb1e21408b4095e71afa 16-Aug-2013 Sascha Haeberling <haeberling@google.com> Fix typo in JavaDoc for TypeEvaluator.

Change-Id: Ice2b2db117e1f91ad70ed55d4cc0b14b86804c1c
ypeEvaluator.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
nimator.java
nimatorListenerAdapter.java
nimatorSet.java
alueAnimator.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
alueAnimator.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
bjectAnimator.java
alueAnimator.java
e8cee38c6a8dd54cc222cbbd8655ae32a66a8e73 17-Apr-2013 Chet Haase <chet@google.com> Remove Animatable interface

Push the interface methods from the new Animatable interface back
down into Animator, from whence they came.

Issue #8634310 Remove Animatable interface

Change-Id: I79e26001709d791d54fcb02561640fe2e008b1fd
nimatable.java
nimator.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
nimatable.java
nimator.java
nimatorSet.java
alueAnimator.java
18772ea228f3d292629c4f0b5f6392d047e0530d 11-Apr-2013 Romain Guy <romainguy@google.com> Trace ValueAnimator based animations in systrace

Change-Id: I1a81e157dea46743a737ed864f4aa0781651ccfd
alueAnimator.java
edf6f4b49f6e77c349f5055372ce381b74f12efb 26-Mar-2013 Chet Haase <chet@google.com> Make adding views specific to a ViewGroup's overlay

Adding views to views (possible with the new Overlay API) is weird.
This change moves the view-management facilities of Overlay to a subclass
that is specific to the overlay returned from ViewGroup.getOverlay().
So now you can add drawables to all view overlays, but only add/remove
views to/from the overlay returned from ViewGroup.getOverlay().

Also, the previous approach of using an interface for Overlay was
changed to classes for both ViewOverlay and ViewGroupOverlay.

Finally, this change makes not handling touch correctly the proper,
and documented, behavior of overlay views. There are various tricky issues
to sort out with input in overlays (including click handling as well as focus)
and we don't want developers starting to use overlays as some kind of general
container hierarchy, so we're purposely constraining overlays to have visual-only
behavior.

Issue #8459085 Overlay needs to handle touch correctly

Change-Id: I207b8dbf528f87c92369d270d8b0a6556826d207
ectEvaluator.java
b989502e5cf44d65c6dddc0179b6d9b6e61ef7fd 03-Apr-2013 Chet Haase <chet@google.com> Adding small animation features

RectEvaluator is useful when animating object bounds.
The other change is a hidden API that allows temporary suspension
of layout, useful for animations which need to animate view bounds
without conflicting with layout passes that might happen in the middle
of the animation.

Change-Id: I3dc08cb6ec455dfa3409e825506b218d3ea63d7a
ectEvaluator.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
bjectAnimator.java
alueAnimator.java
30527267d12d4338820d4ec2526c6bf81c7f7785 15-Mar-2013 Chet Haase <chet@google.com> Merge "Reset reverse state when an animator ends" into jb-mr2-dev
2de8dac82dfa23f2382a6f6b1f9a2a995ef366eb 15-Mar-2013 Chet Haase <chet@google.com> Merge "Log warning when animator detects NaN value" into jb-mr2-dev
d9e4a5c2e55883d4eab766d4ab6aee408cb260a0 15-Mar-2013 Chet Haase <chet@google.com> Use same default duration (300) for animator resources as for other animators

Issue #7492926 Animator resources should use same default duration as code-created Animators

Change-Id: I337a2c37ff26ebb6cb8b2fb2b58523c464af518b
nimatorInflater.java
2076316ce118f3685f3a28ed0e895b2c3697b191 15-Mar-2013 Chet Haase <chet@google.com> Log warning when animator detects NaN value

Issue #8350458 Add exception to Animators when NaN detected

Change-Id: I926c3f35b661b0bb1d9e3c7c0df55e7513734589
eyframeSet.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
alueAnimator.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
alueAnimator.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
alueAnimator.java
00177e483dd5b703545e742e6e2f8346dd4f624f 10-Sep-2012 Chet Haase <chet@google.com> Fix clone() for Animators with just a 'to' value

Previously, clone() on an Animator with only one value would mistakenly
think that the clone had a real starting value (which would end up being 0 in the
int and float cases). Fix is to set the 'mHasFirstValue' flag appropriately for the
clone, based on the state of the cloned animator.

Issue #7106442 ObjectAnimator.clone() does not work properly for single parameter

Change-Id: I08bf03b7687a65eb613c1671a58e4cbfae66a30e
eyframe.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
alueAnimator.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
alueAnimator.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
imeAnimator.java
9b5599894b80b2707909e8e6872eeec7c58af73a 09-Aug-2012 Chet Haase <chet@google.com> Fix shift/mask error in ArtbEvaluator

Shifting from the left copies the MSB along with it. This causes a problem
in ArgbEvaluator, which shifts the top byte down by 24 for the start/end
colors, and then uses those values to interpolate alpha values. The correct
appraoch (used with the other color components) is to mask by 0xff after the
shift.

Issue #6960514 External bug: ArgbEvaluator can't evaluate alpha value properly

Change-Id: I750d38ddfecc5f30d8dab7c6d27d1a7ac06361c3
rgbEvaluator.java
9be0105fbc56eb1b1813bb7c5fe258a144867a43 22-Jun-2012 Scott Main <smain@google.com> docs: fix several links

Change-Id: I89d9fd64dc22c90680bb05415cc966c255165af9
ackage.html
c20fc8daf56eb348fa4a9355a9e33b0ebc468699 19-Jun-2012 Luca Zanolin <zano@google.com> Clone the list of listeners before notifing any event.

This is required, otherwise the listener cannot remove it-self from the
list of listeners during the notification.

Bug: 6692355
Change-Id: I07762feb4f9b97ec4b6148d2f604d53e266b84d7
ayoutTransition.java
66ef1a201ea9df71a8ec9b2d1aaab1eb1180ae40 02-Jun-2012 Chet Haase <chet@google.com> Skip LayoutTransition animations on objects of size (0,0)

LayoutTransition runs changing animations on all objects that change between
now and the next layout. This works in most normal situations, but when a container
is becoming visible, or being added to its container, or other first-time situations,
then some of the views and parent hierarchy may be of size (0,0). The user really
shouldn't need to see an animation up from these nonsense values, so we just
skip running the animation on these objects and simply place the objects where they
need to go.

Issue #6597648 view should not animate up from size (0,0)

Change-Id: I2c355a68bf1ce3b41fbec01ad95c78d83562ba32
ayoutTransition.java
ab3a776827365b6bb413052a5e093bbc87265728 23-May-2012 Chet Haase <chet@google.com> Avoid running layout transitions on unattached views and windows

LayoutTransition causes artifacts in some situations where a window is just
becoming visible or a container is just being added to the view tree when animations
are kicked off in LayoutTransition due to the normal automatic mechanism of running
animations when views are added/removed/etc. The problem is that containers in these
situations may have children with positions and sizes of (0, 0), causing the animation to
animate from this default/nonsense value to whatever is appropriate for the views when
they are first laid out and drawn. The end result is correct, but the animation is
superfluous and silly.

The fix is to avoid running any kind of transition animation on windows that are not
currently visible or containers that are not currently atached to the view hierarchy.
This should avoid the situation by only allowing the animations to run after the containers
and windows are visible and set up correctly.

Issue #6544410 issue with layout transition when first showing the activity

Change-Id: I737b2598887ef806dec3b02a483a8e8ff2c3d4e2
ayoutTransition.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
alueAnimator.java
db4101c7d5a2af174bdc61dc706329faabaeb5c6 03-May-2012 Chet Haase <chet@google.com> Better error logs for faulty ObjectAnimators

Previously, if you set up an ObjectAnimator with the name of a property
which could not be resolved to an existing method (e.g., "foo" becomes "getFoo()"
or "setFoo()"), the errors in the log could be a bit obscure and the animation might
just crash sometime later with an unexplained NPE. This change provides a more
detailed log message detailing the actual method/class involved.

Issue #5990756 NullPointerException on no such property

Change-Id: Ic5bf7069c4879623e00ab8a794b799773cce487c
ropertyValuesHolder.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
imeAnimator.java
alueAnimator.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
ayoutTransition.java
alueAnimator.java
7dd4a536a125d5e9573e82c39581bf9ee3922424 16-Apr-2012 Chet Haase <chet@google.com> Adding new CHANGING transition to LayoutTransition.

LayoutTransition used to depend on child views being added/removed or
shown/hidden in the transition container. These evens would trigger animations
to fade the child view as well as those to animate the side-affected changes
to sibling views. This CL enables a new feature in LayoutTransition that
enables animating any changes to the layout of the children in the container
whenever a layout occurs. For example, you can change the LayoutParams of a
child view and call requestLayout() to automatically animate those changes.

This capability is not enabled by default. To enable, call the new
LayoutTransition.enableTransitionType(LayoutTransition.CHANGING) method.

Change-Id: I4d07a3b36245353b2151f0dca4f75080ab6a4592
ayoutTransition.java
c299a3384171e36fc9ab6d1011d8a589a7f344d1 12-Apr-2012 Chet Haase <chet@google.com> Fix AnimatorSet duration issue

Setting the duration on an AnimatorSet should propagate that value
to its children. This works, but only if all children are added to the set
before setDuration() is called. This fix delays that propagation until
the set is started, making it possible to have a more flexible order of when
the children are added and when the duration is set.

Issue #6324904 AnimatorSet durations too long

Change-Id: I797971c2310eb2e3fe931b4aa35de505f2a519f7
nimatorSet.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
alueAnimator.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
alueAnimator.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
nimator.java
alueAnimator.java
7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c 06-Mar-2012 Jeff Brown <jeffbrown@google.com> Use the Choreographer for Drawable animations.

Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
alueAnimator.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
alueAnimator.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
imeAnimator.java
a553113a1f88e112b0999c12c7c2e8d724ed7fa8 02-Feb-2012 Chet Haase <chet@google.com> Fix bug in LayoutTransition that caused views to stay invisible

LayoutTransition side-effects the alpha property on View to fade views
in and out. This works fine if the layout transition is always used on
those views' container. But if you fade out a disappearing view and then
set the transition to null on the container and set that view to VISIBLE,
there is no transition logic to restore the alpha value to 1 (opaque).

The fix is to always restore alpha to its pre-animation value when fading
the view out.

Also, added extra info to alpha and the various View transform properties
to help hierarchyviewer debugging.

Issue #5958434: LayoutTransition temporary disablement may leave some views invisible

Change-Id: I3c21b0e7334dc29c10c5e372b589f0e2b59c2883
ayoutTransition.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
alueAnimator.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
alueAnimator.java
0d29936ec3b5545a415e8d032150ea987aab36e3 26-Jan-2012 Chet Haase <chet@google.com> Fix bug in LayoutTransition for INVISIBLE views

When a view is becoming VISIBLE or INVISIBLE in a container with a
LayoutTransition, animations run to fade the view in and out and also
to run 'changing' animations on the view's other siblings. This logic
also cancels any running 'changin' animations to account for new ones
running.

However, in the specific case of INVISIBLE changes, there will be no
layout changes in the container - layout has already accounted for that
view (unlike in the case of GONE views); the visibility is just a matter of
drawing the view (or not). Therefore, we're canceling 'changing' animations
that should continue running and not replacing them with any other animations,
since new animations would only be started on layout chnages which are not
forthcoming.

One artifact seen from this bug is that the navigation bar buttons sometimes
disappear when changing orientation. This is because the menu button may
toggle between VISIBLE and INVISIBLE, causing animations on the other
buttons to get canceled, which leaves those views in a completely wrong
state.

The right thing to do is to avoid canceling in-process 'changing' animations
and to skip the logic of setting up new 'changing' animations which won't fire
anyway.

There is some minor API work in here because we did not previously have the
necessary information in LayoutTransition to know whether a view was being
hidden or shown to/from the INVISIBLE state.

Issue #5911213: LayoutTransitions ending in an odd state

Change-Id: I5c60c8583c8ea08965727b4ef17b550c40a3882c
ayoutTransition.java
cf06d7390cf35aec4f54b705ba4dfdb96fb1c01a 02-Jan-2012 Rajdeep Dua <rajdeep@google.com> Bug fix for android.animation.LayoutTransition getStartDelay (int transitionType)
Bug Id : 5813366

Change-Id: Icc482ad820a91a1896c61db67bb6b95cc2ae4c5b
ayoutTransition.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
nimatorSet.java
bjectAnimator.java
alueAnimator.java
ackage.html
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
alueAnimator.java
9c38dbeb1d183ecd48bbf5d18a39f5e0508a1223 03-Dec-2011 Jeff Brown <jeffbrown@google.com> Refactor ValueAnimator to reduce use of ThreadLocals.

Change-Id: I494c9cc32e58b77d5f7ea092ee6a0ae4d2d805bb
alueAnimator.java
8a22e59311ab797aeb10682b4c9e036ded95a429 11-Nov-2011 Chet Haase <chet@google.com> Fix leak in LayoutTransition

LayoutTransition was making an incorrect assumption that there could
only be one transition animation on a child of a transitioning container.
But if multiple children are added/removed to/from that container, there would
be multiple calls to set up changing animations for each existing child
of that container. This meant that the child would have multiple, new
OnLayoutChangeListeners added to it as part of the setup process.

Meanwhile, we would cache only the latest listener in a hashmap that used
the child as a key for the listener. Then when we cleaned up the hashmap later,
we would remove only the latest listener from the child, leaving the rest there
for eternity.

The fix is to skip the setup entirely for children that already have listeners
set on them; they must, if that's the case, already have been set up and are
already listening for layout changes. Setting up the animation is redundant,
and adding another listener is a leak.

issue #5588509: memory leak in systemui

Change-Id: I2c9f312cc2bcf4f2d08ac6b5d8f8e495aa4f3597
ayoutTransition.java
1a76dcd6d1e30f92668b5df309398d545cef9ace 06-Oct-2011 Chet Haase <chet@google.com> Fix issue #5367164: memory leak in LayoutTransition

When a transition occurs, layout change listeners are added to the container
being transitioned as well as every container up the view hierarchy. The
parent views were not having those listeners removed, so every time a transition
ran, more listeners would be added. Adding to that, the use of an ArrayList
as the collection to hold the listeners meant that adding duplicate items
would just increase the size of the list. There's now a sanity-check on the add
call to make sure that the listener does not exist already, but more importantly
we remove all listeners added when the transition ends.

Change-Id: I4ea05adf30765db091124065539b0ffd32729b3b
ayoutTransition.java
d56c6951755a902a354e13e5fa05fb0984132cc6 07-Sep-2011 Chet Haase <chet@google.com> Add end functionality to LayoutTransition

This new hidden API is called by ViewRootImpl when there is a pending
transition but the parent window is not visible.

Change-Id: Idd6a0959b391fae542e675e8740b6a16f8963678
ayoutTransition.java
3c4ce72c4d66d9ee041924259f20381b658c1529 03-Sep-2011 Chet Haase <chet@google.com> Fix artifact with LayoutTransitions on disappearing window.

Logic in performTraversals() starts a transition running at the
proper time. But when a view's parent window goes away, this transition
may not start at that time because drawing gets canceled. But the
transition still hung off of the ViewRoot, waiting until some later
drawing operation to kick it off. This resulted in some weird animations
like the Recents panel appearing and having a single item animate off of it.

The fix is to delete pending transitions when drawing is skipped.

Change-Id: I3ab7702c16e069644a163424f977350743e2cecc
bjectAnimator.java
c88ba95921444946443794cbaca5911f1a924720 12-Aug-2011 Xavier Ducrohet <xav@android.com> Merge "Make some methods/fields package private so that layoutlib can access them."
7f9f99ea11051614a7727dfb9f9578b518e76e3c 11-Aug-2011 Xavier Ducrohet <xav@android.com> Make some methods/fields package private so that layoutlib can access them.

Change-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64
alueAnimator.java
e115ffeb3a05f440c0062ad9b3954b7fefef4b00 11-Aug-2011 Chet Haase <chet@google.com> Fix behavior of custom animations for LayoutTransition.

Previously, setting custom animations on a LayoutTransition would cause
those animations to be run not only for changing views in the container, but
for the parent hierarchy of those views as well. This can lead to unexpected
behavior, as seen in the ApiDemos LayoutAnimations and LayoutAnimationsHideShow.
This change changes the behavior so that the parent hierarchy is animated by
the default animations (which change the bounds and scrollX/Y fields) instead
of custom animations.

Change-Id: I9a04d97fabbc34dc0d5809eb3fd8ac08e0801d7c
ayoutTransition.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
nimator.java
nimatorSet.java
alueAnimator.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
nimator.java
nimatorSet.java
alueAnimator.java
ecc2fd94fa05970082a1f2544f08df7c961c6d98 02-Aug-2011 Martijn Coenen <maco@google.com> Removed unused import from AnimatorSet.

Change-Id: I7d5b3327290845d44cbe0abd48bf45c6f43bf677
nimatorSet.java
d45204ba092312630a0e516ea7c247e594ce893b 29-Jul-2011 Martijn Coenen <maco@google.com> Fix ConcurrentModificationException in AnimatorSet.

Would occur if you would start an AnimatorSet for the
second time.

Change-Id: I8fa0e8ab039e8525acae1564b2e9dec4a0838981
nimatorSet.java
abb7d66049c176459779a22810b3931d263f68e6 18-Jul-2011 Chet Haase <chet@google.com> Merge "Fixed animation ordering bug in LayoutTransition."
eb1d851e0e6c2dc1de0ec7990ccf7d29dda41a9a 18-Jul-2011 Chet Haase <chet@google.com> Fixed animation ordering bug in LayoutTransition.

This bug caused an artifact in Recent Apps where you might see things
pop to their end location before popping back and then animating correctly
into place.

Change-Id: Ia7313ec76cc42162528c3c167b8bc562284b14bc
ayoutTransition.java
622e05c4d2f7c7542ab9cdd30c31813cb6cdb103 16-Jul-2011 Chet Haase <chet@google.com> Fix leak in LayoutTransition

Static objects were referencing the first LayoutTransition object,
which referenced its target container, which eventually referenced the
Activity. That reference chain never went away.
The fix is to create animators that do not reference any target
object (they are just templates which are loaded with real target
objects when they are started).

Change-Id: Ie29f53bf3b886b8052b6ee3a56647a312d9adeaa
ayoutTransition.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
nimatorSet.java
alueAnimator.java
b39f051631250c49936a475d0e64584afb7f1b93 24-May-2011 Chet Haase <chet@google.com> Add 'Property' object

This change adds a generic Property facility to the SDK, which allows an
easy way to reference fields (private or otherwise) in a general way.
For example, animations can use this facility to animate 'properties'
on target objects in a way that is more code- and compiler-friendly than
the existing String-based approach (for objects which have implemented
Properties, of course). The animator classes have been updated to use
this new approach (in addition to Strings, which are still more generally
useful for objects which have get/set functions but not Property objects).

The change also includes new Property objects on View (which can now be
used in creating animations on Views).

There is an unrelated change on GLES20RecordingCanvas to change the way we
cache bitmaps, which avoids spurious garbage by using an ArrayList instead of
a HashSet.

Change-Id: I167b43a3fca20e7695b1a23ca81274367539acda
loatEvaluator.java
ntEvaluator.java
bjectAnimator.java
ropertyValuesHolder.java
ypeEvaluator.java
cca2c9807206f320bd41bf8656a227e4f249e4ba 20-May-2011 Chet Haase <chet@google.com> Add ability to transition parent hierarchy in layout transitions

This change compensates for changes in the parent hierarchy of
transitioning views. It automatically animates parents with the same
animations as those used for the CHANGING animations run on the container
children.

Change-Id: I86471d16a9070b024cc09c8f6e0f504a881fa99f
ayoutTransition.java
c54ed966f78b9ee8117931859d62faa6f11fe018 06-May-2011 Chet Haase <chet@google.com> Minor javadoc enhancements

Change-Id: Ic24bb0e1e669989f0cae3a9b8fa064b38c8e7948
ayoutTransition.java
6cfdf4538049e4b96f50d8c0fe3119664420cc34 23-Apr-2011 Chet Haase <chet@google.com> Fix bitfield bug with vertex shader selection

Change-Id: I8bd3005f363afb52e6624806efb3e04c4a56ee18
nimatorInflater.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
alueAnimator.java
e8e45d32fd1f67fed1b70d0fc19d2f91a76f128e 03-Mar-2011 Chet Haase <chet@google.com> Cancel LayoutTransition animations selectively

A recent change to LayoutTransition caused new layout transitions to
cancel any previously-running animations. This was to handle situations
where a transition adding an item needed transitions removing items to
finish their job first (and vice versa). But canceling *all* running
animations from transitions caused some artifacts, like making the status
bar icons blink or fade in, depending on which one was started last.

The new approach is to cancel just the ones we care about: adding animations
cancel removing animations, and vice versa. Either one cancels 'changing'
animations, which prevents objects from being animated to the old end
locations, since the new transition will animate them to the correct new
end locations.

Change-Id: I68ac351b05365cace6639b6618422395c35c83fd
ayoutTransition.java
a00f3865f55c5c9cb74510ee2b239d101230133c 22-Feb-2011 Chet Haase <chet@google.com> Add ViewPropertyAnimator for easy animation of View properties

Change-Id: I2bc52ca16507d8d20004d2d6823e587791272aac
alueAnimator.java
a8bdc2a42e49a8262de2ceb351e7437655ff7c66 24-Feb-2011 Chet Haase <chet@google.com> Merge "Fix bug with bad state in animators"
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
alueAnimator.java
e86c12c9e489e7f04c49a7733fc4014668e012e2 23-Feb-2011 Scott Main <smain@google.com> am 02be2f1d: am 2788e4f9: docs: fix some typos

* commit '02be2f1d874078f227af34fcac7863eca1f35653':
docs: fix some typos
2788e4f96a3f210192145a340a1d072c70c7bc4f 23-Feb-2011 Scott Main <smain@google.com> docs: fix some typos

Change-Id: I2dc9855f8fe87234d4337351e8bac6c382fb74d2
ackage.html
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
eyframeSet.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
6b5e593725d1f323f64b6f13cd58aad4af822fe1 15-Feb-2011 Chet Haase <chet@google.com> Merge "Fix when >2 keyframes supplied"
750e12e18f7ce9654cadf11b9e933afb29b59311 12-Feb-2011 Chet Haase <chet@google.com> Fix when >2 keyframes supplied

When there are more than two keyframes, we treat each keyframe
interval as its own separate period during which to calculate animated
values. To do this, we calculate an intervaleFraction from the overall
elapsed fraction of the entire animation. This intervalFraction is then
used to calculate the animated values in that interval.

However, we failed to actually use the intervalFraction in some code
paths, using the overall fraction instead. This caused a jumping behavior
because we were incorrectly calculating the values during the intervals.

Change-Id: Ia052e1e8b5130ff450ee20c0a3581e3de42399e1
loatKeyframeSet.java
ntKeyframeSet.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
ayoutTransition.java
alueAnimator.java
0dfc39842459daea98e2b551bbecd16d1baca439 28-Jan-2011 Chet Haase <chet@google.com> Fixed LayoutTransition bug moving multiple views

The problem was that there can be >1 animation spawned for each
view in a container, if there are multiple events that trigger
a transition. These animations would potentially clobber object
layout values, causing problems as successive animations tried to use those
clobbered values to set up their own animation values.

The fix is to track the created animations and cancel them as future
animations on those same objects get created. This mechanism used to
be in the code (the bug came about when that mechanism went away), but
was removed because of memory leaks of never removing animations that
were set up but never started. The new approach also caches pending
animations, but runs a second aniamtor to delete the entries in that
collection just in case.

Change-Id: If60c7d188712334dea69d0794dc6b4ce29ca6c09
ayoutTransition.java
daf98e941e140e8739458126640183b9f296a2ab 10-Jan-2011 Chet Haase <chet@google.com> Use optimized display lists for all hwaccelerated rendering

Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.

In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.

This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.

This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.

Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
ayoutTransition.java
f99b782b9f3a78fd814d6fd9be9b202142760677 17-Jan-2011 Robert Ly <robertly@google.com> Doc change: animation devguide topic

Change-Id: I52cdd29616f7f30784c0f8352c035493c8d413dc
ackage.html
8901ffab294934fc4899143f31bd58f3d58df225 17-Jan-2011 Patrick Dubroy <dubroy@google.com> Add a method for clearing all animations on a thread.
alueAnimator.java
7beecfaf3b65a1552a7a7cc78ca00bb04133b507 16-Jan-2011 Patrick Dubroy <dubroy@google.com> Fix latent bug with reinitializing an ObjectAnimator.
bjectAnimator.java
51ae5fc2d22a7bb616f432d7bac66bbbf8a1927f 16-Jan-2011 Patrick Dubroy <dubroy@google.com> Fix animation bugs caused by weak reference

Change-Id: I4c7bd9d4843c355efd9c89059462f19600c3be45
bjectAnimator.java
b2ab04ffb6894f399d5c9ceb15f64eb17b654426 16-Jan-2011 Chet Haase <chet@google.com> Remove obsolete DoubleEvaluator

Change-Id: I4407468599061ff35c68589988fb1e897de28c69
oubleEvaluator.java
loatKeyframeSet.java
ntKeyframeSet.java
ropertyValuesHolder.java
alueAnimator.java
2b90a9a7144f1bb91f72da025ce444038f12c6aa 15-Jan-2011 Scott Main <smain@google.com> fix sdk build breakage; remove invalid @note tag

Change-Id: Iaaf5a38388ceccdd0d1f3766523788f54f1dc8d2
bjectAnimator.java
ec84c3a189e4aa70aa6ea8ba712e5a4f260a153b 14-Jan-2011 Patrick Dubroy <dubroy@google.com> Allow old view hierarchy to be GC'ed more quickly during rotation.
bjectAnimator.java
9c0874408cfc6f6f4e4561973ca5ae52a5982db7 13-Jan-2011 Chet Haase <chet@google.com> Supress layout requests while a LayoutTransition is running.

LayoutTransition works by animating layout-related properties
(left, right, top, and bottom). This works great when that animation
is the only thing affecting the layout of the UI. But if there are other things
happening in the application that cause layout to run on that
container or in its parent hierarchy, this can cause the layout properties
on its children to get mis-set during the middle of the transition.
This results in artifacts like animating objects jumping to locations where
they would be were there no animation running.

The fix is to supress layout requests on that container (and its children)
until the transition is complete (then issue a layout request on the container
to make sure that the container has the correct layout data)

Change-Id: I15bf0423a11409f854076f86099233db7fe4edc0
ayoutTransition.java
53ee3316bcb3590ff156b3fd7108903c0817c35d 11-Jan-2011 Chet Haase <chet@google.com> Rename RGBEvaluator to ArgbEvaluator

Change-Id: Iee74b475960d623fa757349e4053bd7c58cf5734
nimatorInflater.java
rgbEvaluator.java
GBEvaluator.java
alueAnimator.java
2954cd91ab1fef14c8aed5173c160ce00558cd3a 09-Jan-2011 Chet Haase <chet@google.com> Add start/endTransition events for CHANGE transitions

There was already a mechanism for sending out events for LayoutTransition
when animations started or ended, but the implementation only sent out events
for the appearing/disappearing animations. This fix provides callbacks to
listeners for the CHANGE_APPEARING and CHANGE_DISAPPEARING transitions, too.

Change-Id: Icfb8cc1c20d2df3e4a817255e96c9d0e94c1d8c4
ayoutTransition.java
9e90a9953b65ae575ec8db3989857e0c145724b1 05-Jan-2011 Chet Haase <chet@google.com> Reuse display lists at the java level.

Objects are invalidated and reset instead of being nulled out
and recreated. This avoids creating small amounts of garbage for
the display list and canvas objects.

Change-Id: I464fac7ea8944c19ad6d03f13a95d9017e3f4262
ayoutTransition.java
cbda9104d029a8420786bd17725e8b1fb0c4c188 17-Dec-2010 Ben Komalo <benkomalo@google.com> Fix incorrect anonymous AnimatorListenerAdapter.

Change-Id: I0384a437089d11dda03d0657235404ea96e8b19d
ayoutTransition.java
27c1d4debb3848f5accd5673fffeeacad3e61648 16-Dec-2010 Chet Haase <chet@google.com> Fix minor animation and doc issues

Change-Id: I0ea077d9434ac3e22e8600f22ca4a24a6a46965c
alueAnimator.java
48ea8d836276c04528d8e7dfebd59d27a627ce66 14-Dec-2010 Chet Haase <chet@google.com> Merge "Adding TimeAnimator capability (hidden for now)"
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
imeAnimator.java
alueAnimator.java
e64ea87f966e995f5e1a77f991b9da0ed21ffab0 14-Dec-2010 Chet Haase <chet@google.com> Fix artifact with concurrent add/remove LayoutTransitions

There was a bug with LayoutTransitions where if the animations
were of different duration (such as in the current status bar clock),
it was possible to end up in a bad situation because the previous animation
might outlast the new animation, causing the opposite end result
from what was expected. The fix was to keep track of the current
add/remove animations and to cancel any running ones prior to starting
new ones.

Change-Id: I884ce33ce0671f6ba6153ee3951c8d14c5ed5714
ayoutTransition.java
37f74cad46c6f1799aec3c52e8f47598237f43d4 09-Dec-2010 Chet Haase <chet@google.com> Add ability to reuse bitmaps when loading new content

Change-Id: Ic5f5f40ee39787403977fb372b335dc21cf07243
ropertyValuesHolder.java
a52a5e7c4cc8c6224108314e51c0f3079cc968c1 07-Dec-2010 Makoto Onuki <omakoto@google.com> Add space after property name in error message

Change-Id: I15c1acc468ff17a1ebd1bc28288d0ac7113748b2
ropertyValuesHolder.java
1a8e404743a27da08d0f2df5480c51725c9b001a 07-Dec-2010 Chet Haase <chet@google.com> Remove broken doc link to removed method

Change-Id: Id1b1ab8e15d9af9fa38946cc5c673062a4b5a72d
ropertyValuesHolder.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
nimator.java
nimatorSet.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
2e1f5b0de3218e0f43fc8246760f854665da5856 01-Dec-2010 Chet Haase <chet@google.com> Merge "Add methods to AnimatorSet that take collections"
37a7bec599e8d877d8a7f12ab2c2c160d1c2cf8a 01-Dec-2010 Chet Haase <chet@google.com> Add methods to AnimatorSet that take collections

Change-Id: I5664bee6d27b32a70ca7d335e7fbe0af39a240bd
nimatorSet.java
5bed88e12d0b4e77483e287c068fbf551ecf8a10 30-Nov-2010 Chet Haase <chet@google.com> Animators can now have dimension and color values.

You can now use floats, ints, dimensions, or colors as input values
in XML for Animator objects. There is still a 'valueType' attribute
that lets you specify the number values to create the animator with,
though it defaults to floats (or in the case of color inputs, to ints).

Change-Id: I65f1df802db602c33f2a0308a663b6f808148e25
nimatorInflater.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
alueAnimator.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
nimatorSet.java
alueAnimator.java
6e0ecb4eed5cd2e1f15766d7028467129974a12d 04-Nov-2010 Chet Haase <chet@google.com> Adding JNI methods as a faster reflection mechanism

This approach is only for the common cases of void-return,
single-argument float/int methods.

Change-Id: Ifb31535a6f717b85417eced93c579be6e461e039
bjectAnimator.java
ropertyValuesHolder.java
691ac26817d489d9770aa6ba7b098ff17e8be99a 04-Nov-2010 Chet Haase <chet@google.com> Fixed problem with setting updated values on existing animators

The previous version of PropertyValuesHolder handled construction fine,
but setting new values did not result in things getting completely set
up correctly for interpolation between those new values.

Change-Id: Ibffb16e58b4fe76b8d1cad6f0224ffd4d5404c05
ropertyValuesHolder.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
nimatorInflater.java
nimatorSet.java
loatKeyframeSet.java
ntKeyframeSet.java
eyframe.java
eyframeSet.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
70d4ba15b1f0c1133c5aabc86de828b41e482fff 06-Oct-2010 Chet Haase <chet@google.com> Performance optimizations for animations and toolkit

Change-Id: I316a48273a9cbb428a965e4b849b3e5e9e8202f1
eyframeSet.java
bjectAnimator.java
alueAnimator.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
alueAnimator.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
alueAnimator.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
imeInterpolator.java
alueAnimator.java
3a64f241fe792cadbe0df7e592389f7d90f88fc1 15-Oct-2010 Chet Haase <chet@google.com> Merge "Remove errant minus sign"
51b3227c2e08143c2e3dde9d51ae5b6fff36693c 14-Oct-2010 Chet Haase <chet@google.com> Remove errant minus sign

Change-Id: I39a76484884615aa86f4a845eb4637467ec5abc7
alueAnimator.java
fec30790e8caeb02db0618ec06eba7408efe2307 14-Oct-2010 Chet Haase <chet@google.com> Removed obsolete trace statements

Change-Id: I98041460da3109201b13b00ff553eb3e7290debb
ropertyValuesHolder.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
nimator.java
nimatorInflater.java
nimatorSet.java
eyframeSet.java
ayoutTransition.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.java
83d6e8213230fb0805aa019d266842253baeb114 14-Oct-2010 Romain Guy <romainguy@google.com> Revert "Remove generics from Animator APIs"

This reverts commit 41f041d9986f8a5d45b6cb0b86e881c81a412168.
nimator.java
nimatorInflater.java
nimatorSet.java
eyframeSet.java
ayoutTransition.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.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
nimator.java
nimatorInflater.java
nimatorSet.java
eyframeSet.java
ayoutTransition.java
bjectAnimator.java
ropertyValuesHolder.java
alueAnimator.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
alueAnimator.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
nimator.java
nimatorSet.java
eyframe.java
eyframeSet.java
ayoutTransition.java
imeInterpolator.java
alueAnimator.java
5d6d7b9c3d76ba0bf72906d54c2ef366be149a23 05-Oct-2010 Chet Haase <chet@google.com> Changed LayoutTransition to disable animations when set to null

Change-Id: Ic4d67135a273ea816c3d15bce05da611bd6bae53
ayoutTransition.java
5e25c2c14593caee5638603120553ae1ec530f85 16-Sep-2010 Chet Haase <chet@google.com> Add ability to automate animated transitions on View show/hide

Change-Id: Id6ff92c8fd06c3f5fb30c41b020b4de4f567154f
ayoutTransition.java
0e0590bf3cb32e73f423c0fe39a180d4b3c4343d 26-Sep-2010 Chet Haase <chet@google.com> bug fixes in animation classes

Change-Id: I5465bc95032c94851b8cf4e4db3477f546e8b0d1
bjectAnimator.java
alueAnimator.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
alueAnimator.java
9316232130fe831c998c9d7be9cf67294eccdcae 16-Sep-2010 Joe Onorato <joeo@google.com> Fix broken javadoc.

Change-Id: I4729ebee36117f281af613e0b49f70d7dee5f334
nimatorListenerAdapter.java
b20db3ec34e846010f389880b2cfab4d7bf79820 10-Sep-2010 Chet Haase <chet@google.com> Make fragment animations work when fragments go away

Change-Id: I136de6ef910cc02b8181fcfa065bdb0770841396
alueAnimator.java
634a20acf713ffe0d4a67c0b888cf1e9782890e7 09-Sep-2010 Chet Haase <chet@google.com> Fix bug with LayoutTransition when layouts are just coming on line

Change-Id: Ia7061d8ec138f8f7aea822596f46b3549a996700
ayoutTransition.java
a18a86b43e40e3c15dcca0ae0148d641be9b25fe 07-Sep-2010 Chet Haase <chet@google.com> Rename several animation classes

Change-Id: I6a4544875090db485163c8d56de8718f56d267c7
nimatable.java
nimatableInflater.java
nimatableListenerAdapter.java
nimator.java
nimatorInflater.java
nimatorListenerAdapter.java
nimatorSet.java
eyframe.java
eyframeSet.java
ayoutTransition.java
bjectAnimator.java
ropertyAnimator.java
ropertyValuesHolder.java
equencer.java
ypeEvaluator.java
alueAnimator.java
21cd1389d2ef218b20994b617c57af120841a57f 02-Sep-2010 Chet Haase <chet@google.com> Add transition effects for layout changes on ViewGroups

Change-Id: Ibefcca5692450188fbcec608f3f7e36be1213b21
nimatable.java
nimatableListenerAdapter.java
nimator.java
eyframe.java
ayoutTransition.java
ropertyAnimator.java
ropertyValuesHolder.java
equencer.java
1e0ac5a1063d00670f4dc7ca5b120ef2836f9e8f 27-Aug-2010 Chet Haase <chet@google.com> Fix Sequencer end events when terminated early

Change-Id: I3e10d17000182419219dbd1243d42cd0ecda7aa0
nimator.java
equencer.java
f1b9b464216d2fac634be9c6aa8605d7c9ed5b68 26-Aug-2010 Chet Haase <chet@google.com> Fix problems with early ending of Sequencer

Change-Id: Ib7548059ee3d3d713b78f86a2d290be4397c167d
nimator.java
equencer.java
673e42fafd4088970ec95e1f13c61dc83132c74e 26-Aug-2010 Chet Haase <chet@google.com> Fix for end events from Sequencer objects

Change-Id: I8947d8b016b880f9f54f2bf6ab22b4e188cdb29a
nimatable.java
nimator.java
equencer.java
d51d368f2d512ab657b8ae45780c82c0dbea94c3 12-Aug-2010 Chet Haase <chet@google.com> Change animator xml importing to use new inflater class

Change-Id: I97225ee9868f4dcce5e4c1ba55e16414eb6c0464
nimatableInflater.java
nimator.java
ropertyAnimator.java
49afa5bc100e5d4c069fea980dd6b09501f56397 23-Aug-2010 Chet Haase <chet@google.com> Add facilities for layout transitions

Change-Id: I5c73ce6c6ba3bc9e3b57fcfbbcab37d511db6132
nimatable.java
nimator.java
ropertyAnimator.java
equencer.java
602e4d3824bf8b9cb9f817375d195b969712176a 16-Aug-2010 Chet Haase <chet@google.com> Adding animation facilities to simplify layout transitions

Change-Id: I70992a0dff6a75727f51abcfdfc7d7f2c2a8c101
nimator.java
ropertyAnimator.java
ropertyValuesHolder.java
d953d08e9299072130d9f4411cbcf6678bbce822 17-Aug-2010 Chet Haase <chet@google.com> multiple-property animations

Change-Id: Ida9440dad165f3450ff62862fc1627e138595e5f
nimator.java
oubleEvaluator.java
loatEvaluator.java
ntEvaluator.java
ropertyAnimator.java
ropertyValuesHolder.java
5c7649857246333572eb332b505ad617365ef5fa 17-Aug-2010 Chet Haase <chet@google.com> Implement reversing functionality for Animator

Change-Id: I5cf32363a363c17a1d5c5dd0c602b06dc9ebc785
nimator.java
811ed1065f39469cf2cf6adba22cab397ed88d5e 06-Aug-2010 Chet Haase <chet@google.com> Make Fragments use the new animation APIs

Change-Id: I3e3c271234c737491b6ae37821f16434f4563b1d
equencer.java
5d7b50b800b9898f5ca0b2b4d8b73ed6a4ee1749 05-Aug-2010 Chet Haase <chet@google.com> Add new API to Animator to allow seeking of animations

Change-Id: I3960030f54814ed0ef6fb6853061c64ab3b4dd1c
nimator.java
40771bc433a790f9d8796a96cf7f48c279aef65f 04-Aug-2010 Patrick Dubroy <dubroy@google.com> Fix NPE in onAnimationEnd when using Sequencer.after(long)
equencer.java
8fbf8d2b08a22a8f06abe8cff39d935865ec1c9d 31-Jul-2010 Chet Haase <chet@google.com> Fix problems with moving Views around (invalidation, conflict with layout)

Change-Id: I38f8f8a4e8082854a53a2975da258b5d946ed525
ropertyAnimator.java
3b69b6f0be85d1f97c1e6824cf986777ba4e5d00 29-Jul-2010 Chet Haase <chet@google.com> Make the new android.animation package public

Change-Id: Iff31676f25fc989707a1e17fb172296014a22c27
eyframe.java
equencer.java
ackage.html
f54a8d7c479485174941c38f151ea7083c658da3 22-Jul-2010 Chet Haase <chet@google.com> Adding xml declarations for new animation framework

Change-Id: Ic789e47790cf24d1c4b3bcbe9048b992ab93517b
nimator.java
ropertyAnimator.java
equencer.java
fe591563f8529305bd52e1f0640e83b9a93d562f 27-Jul-2010 Chet Haase <chet@google.com> Add ability to instantiate PropertyAnimator objects with single "to" value.

Change-Id: I44c57ee175e8a7bcc4532323ef9b4cfbbf58ae32
nimatableListenerAdapter.java
nimator.java
eyframe.java
eyframeSet.java
ropertyAnimator.java
equencer.java
a6e4a1757728efc91627ece602b0899d75303659 23-Jul-2010 Chet Haase <chet@google.com> Sequencer now sends out onAnimationEnd() event correctly.

Previously, Sequencer did not detect child animation ending correctly, so it never sent an end event. This made it difficult to have nested sequencers.

Change-Id: I6c67d0846176191cf77a49c21a5ab9a00acb5159
equencer.java
3dd207a6dbd5d9244dc7fe213d5caa3cddaff0db 20-Jul-2010 Chet Haase <chet@google.com> Add keyframes to animation framework.

Change-Id: I5c8c8037aeeedae1ce7a18200986caf57264772f
nimator.java
eyframe.java
eyframeSet.java
ropertyAnimator.java
010dbaa1236cf2dcdc62c29049468e90188acaae 20-Jul-2010 Chet Haase <chet@google.com> Fix bugs in Sequencer

Change-Id: I03aebe8d822bef0b9e163ba3280699ca02a6563c
nimator.java
equencer.java
17fb4b0d1cfbad1f026fec704c86640f070b4c2f 29-Jun-2010 Chet Haase <chet@google.com> Initial checkin of new animation system. package, APIs, functionality all subject to change. package is hidden for now.

Change-Id: Ieca54cd1f09c171abb5adc6419ff337083f586be
nimatable.java
nimator.java
oubleEvaluator.java
loatEvaluator.java
ntEvaluator.java
ropertyAnimator.java
GBEvaluator.java
equencer.java
ypeEvaluator.java
ackage.html