17407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka/* 27407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * Copyright (C) 2012 The Android Open Source Project 37407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * 47407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * Licensed under the Apache License, Version 2.0 (the "License"); 57407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * you may not use this file except in compliance with the License. 67407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * You may obtain a copy of the License at 77407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * 87407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * http://www.apache.org/licenses/LICENSE-2.0 97407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * 107407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * Unless required by applicable law or agreed to in writing, software 117407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * distributed under the License is distributed on an "AS IS" BASIS, 127407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * See the License for the specific language governing permissions and 147407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka * limitations under the License. 157407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka */ 167407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 177407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkapackage com.android.launcher2; 187407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 197407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport android.animation.Animator; 207407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport android.animation.Animator.AnimatorListener; 217407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport android.animation.TimeInterpolator; 227407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport android.view.View; 23032e6bad1ba588ed8a884fb8f28fb8596efac480Michael Jurkaimport android.view.ViewPropertyAnimator; 247407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 257407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport java.util.ArrayList; 267407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport java.util.EnumSet; 277407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 287407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkapublic class LauncherViewPropertyAnimator extends Animator implements AnimatorListener { 297407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka enum Properties { 307407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka TRANSLATION_X, 317407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka TRANSLATION_Y, 327407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka SCALE_X, 337407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka SCALE_Y, 347407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka ROTATION_Y, 357407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka ALPHA, 367407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka START_DELAY, 377407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka DURATION, 387407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka INTERPOLATOR 397407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 407407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka EnumSet<Properties> mPropertiesToSet = EnumSet.noneOf(Properties.class); 417407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka ViewPropertyAnimator mViewPropertyAnimator; 427407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka View mTarget; 437407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 447407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mTranslationX; 457407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mTranslationY; 467407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mScaleX; 477407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mScaleY; 487407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mRotationY; 497407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka float mAlpha; 507407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka long mStartDelay; 517407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka long mDuration; 527407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka TimeInterpolator mInterpolator; 53159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka ArrayList<Animator.AnimatorListener> mListeners; 547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka boolean mRunning = false; 5539b599e0641047e5583cf717d35a4cb080049665Michael Jurka FirstFrameAnimatorHelper mFirstFrameHelper; 567407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 577407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator(View target) { 587407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mTarget = target; 59159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka mListeners = new ArrayList<Animator.AnimatorListener>(); 607407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 617407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 627407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 637407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void addListener(Animator.AnimatorListener listener) { 64159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka mListeners.add(listener); 657407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 667407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 677407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 687407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void cancel() { 698a309c257a97d9c4c402fae5f00941e8169ea541Michael Jurka if (mViewPropertyAnimator != null) { 708a309c257a97d9c4c402fae5f00941e8169ea541Michael Jurka mViewPropertyAnimator.cancel(); 718a309c257a97d9c4c402fae5f00941e8169ea541Michael Jurka } 727407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 737407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 747407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 757407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public Animator clone() { 767407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka throw new RuntimeException("Not implemented"); 777407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 787407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 797407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 807407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void end() { 817407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka throw new RuntimeException("Not implemented"); 827407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 837407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 847407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 857407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public long getDuration() { 868a309c257a97d9c4c402fae5f00941e8169ea541Michael Jurka return mDuration; 877407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 887407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 897407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 907407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public ArrayList<Animator.AnimatorListener> getListeners() { 91159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka return mListeners; 927407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 937407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 947407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 957407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public long getStartDelay() { 968a309c257a97d9c4c402fae5f00941e8169ea541Michael Jurka return mStartDelay; 977407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 987407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 997407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1007407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void onAnimationCancel(Animator animation) { 101159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka for (int i = 0; i < mListeners.size(); i++) { 102159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka Animator.AnimatorListener listener = mListeners.get(i); 103159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka listener.onAnimationCancel(this); 1047407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1057407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mRunning = false; 1067407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1077407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1087407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1097407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void onAnimationEnd(Animator animation) { 110159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka for (int i = 0; i < mListeners.size(); i++) { 111159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka Animator.AnimatorListener listener = mListeners.get(i); 112159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka listener.onAnimationEnd(this); 1137407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1147407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mRunning = false; 1157407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1167407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1177407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1187407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void onAnimationRepeat(Animator animation) { 119159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka for (int i = 0; i < mListeners.size(); i++) { 120159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka Animator.AnimatorListener listener = mListeners.get(i); 121159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka listener.onAnimationRepeat(this); 1227407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1237407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1247407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1257407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1267407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void onAnimationStart(Animator animation) { 12739b599e0641047e5583cf717d35a4cb080049665Michael Jurka // This is the first time we get a handle to the internal ValueAnimator 12839b599e0641047e5583cf717d35a4cb080049665Michael Jurka // used by the ViewPropertyAnimator. 12939b599e0641047e5583cf717d35a4cb080049665Michael Jurka mFirstFrameHelper.onAnimationStart(animation); 13039b599e0641047e5583cf717d35a4cb080049665Michael Jurka 131159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka for (int i = 0; i < mListeners.size(); i++) { 132159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka Animator.AnimatorListener listener = mListeners.get(i); 133159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka listener.onAnimationStart(this); 1347407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1357407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mRunning = true; 1367407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1377407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1387407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1397407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public boolean isRunning() { 1407407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return mRunning; 1417407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1427407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1437407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1447407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public boolean isStarted() { 1457407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return mViewPropertyAnimator != null; 1467407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1477407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1487407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1497407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void removeAllListeners() { 150159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka mListeners.clear(); 1517407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1527407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1537407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void removeListener(Animator.AnimatorListener listener) { 155159b4cc1e463ba730dbdff7c4ada2af01f35a1f1Michael Jurka mListeners.remove(listener); 1567407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1577407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1587407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1597407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public Animator setDuration(long duration) { 1607407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.DURATION); 1617407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mDuration = duration; 1627407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 1637407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1647407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1657407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1667407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void setInterpolator(TimeInterpolator value) { 1677407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.INTERPOLATOR); 1687407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mInterpolator = value; 1697407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1707407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1717407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1727407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void setStartDelay(long startDelay) { 1737407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.START_DELAY); 1747407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mStartDelay = startDelay; 1757407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1767407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1777407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1787407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void setTarget(Object target) { 1797407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka throw new RuntimeException("Not implemented"); 1807407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1817407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1827407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1837407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void setupEndValues() { 1847407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1857407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1867407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1877407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1887407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void setupStartValues() { 1897407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 1907407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 1917407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka @Override 1927407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public void start() { 1937407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator = mTarget.animate(); 19439b599e0641047e5583cf717d35a4cb080049665Michael Jurka 19539b599e0641047e5583cf717d35a4cb080049665Michael Jurka // FirstFrameAnimatorHelper hooks itself up to the updates on the animator, 19639b599e0641047e5583cf717d35a4cb080049665Michael Jurka // and then adjusts the play time to keep the first two frames jank-free 19739b599e0641047e5583cf717d35a4cb080049665Michael Jurka mFirstFrameHelper = new FirstFrameAnimatorHelper(mViewPropertyAnimator, mTarget); 19839b599e0641047e5583cf717d35a4cb080049665Michael Jurka 1997407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.TRANSLATION_X)) { 2007407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.translationX(mTranslationX); 2017407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2027407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.TRANSLATION_Y)) { 2037407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.translationY(mTranslationY); 2047407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2057407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.SCALE_X)) { 2067407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.scaleX(mScaleX); 2077407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2087407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.ROTATION_Y)) { 2097407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.rotationY(mRotationY); 2107407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2117407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.SCALE_Y)) { 2127407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.scaleY(mScaleY); 2137407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2147407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.ALPHA)) { 2157407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.alpha(mAlpha); 2167407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2177407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.START_DELAY)) { 2187407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.setStartDelay(mStartDelay); 2197407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2207407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.DURATION)) { 2217407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.setDuration(mDuration); 2227407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2237407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka if (mPropertiesToSet.contains(Properties.INTERPOLATOR)) { 2247407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.setInterpolator(mInterpolator); 2257407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2267407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.setListener(this); 2277407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mViewPropertyAnimator.start(); 2282ecf995e0d2d55eb71d03f7230ca87270872d1a3Michael Jurka LauncherAnimUtils.cancelOnDestroyActivity(this); 2297407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2307407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2317407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator translationX(float value) { 2327407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.TRANSLATION_X); 2337407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mTranslationX = value; 2347407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2357407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2367407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2377407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator translationY(float value) { 2387407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.TRANSLATION_Y); 2397407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mTranslationY = value; 2407407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2417407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2427407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2437407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator scaleX(float value) { 2447407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.SCALE_X); 2457407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mScaleX = value; 2467407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2477407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2487407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2497407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator scaleY(float value) { 2507407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.SCALE_Y); 2517407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mScaleY = value; 2527407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2537407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2557407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator rotationY(float value) { 2567407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.ROTATION_Y); 2577407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mRotationY = value; 2587407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2597407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2607407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka 2617407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka public LauncherViewPropertyAnimator alpha(float value) { 2627407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mPropertiesToSet.add(Properties.ALPHA); 2637407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka mAlpha = value; 2647407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka return this; 2657407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka } 2667407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka} 267