LauncherViewPropertyAnimator.java revision 7407d2a16ed6cf22494122cf683bf13de6fa3695
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.ViewPropertyAnimator;
237407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurkaimport android.view.View;
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;
537407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    Animator.AnimatorListener mListener;
547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    boolean mRunning = false;
557407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
567407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator(View target) {
577407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mTarget = target;
587407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
597407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
607407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
617407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void addListener(Animator.AnimatorListener listener) {
627407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener != null) {
637407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            throw new RuntimeException("Only one listener supported");
647407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
657407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mListener = listener;
667407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
677407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
687407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
697407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void cancel() {
707407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mViewPropertyAnimator.cancel();
717407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
727407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
737407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
747407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public Animator clone() {
757407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        throw new RuntimeException("Not implemented");
767407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
777407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
787407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
797407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void end() {
807407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        throw new RuntimeException("Not implemented");
817407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
827407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
837407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
847407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public long getDuration() {
857407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return mViewPropertyAnimator.getDuration();
867407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
877407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
887407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
897407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public ArrayList<Animator.AnimatorListener> getListeners() {
907407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return null;
917407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
927407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
937407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
947407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public long getStartDelay() {
957407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return mViewPropertyAnimator.getStartDelay();
967407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
977407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
987407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
997407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void onAnimationCancel(Animator animation) {
1007407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener != null) {
1017407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mListener.onAnimationCancel(this);
1027407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1037407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mRunning = false;
1047407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1057407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1067407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1077407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void onAnimationEnd(Animator animation) {
1087407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener != null) {
1097407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mListener.onAnimationEnd(this);
1107407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1117407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mRunning = false;
1127407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1137407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1147407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1157407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void onAnimationRepeat(Animator animation) {
1167407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener != null) {
1177407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mListener.onAnimationRepeat(this);
1187407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1197407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1207407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1217407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1227407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void onAnimationStart(Animator animation) {
1237407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener != null) {
1247407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mListener.onAnimationStart(this);
1257407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1267407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mRunning = true;
1277407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1287407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1297407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1307407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public boolean isRunning() {
1317407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return mRunning;
1327407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1337407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1347407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1357407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public boolean isStarted() {
1367407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return mViewPropertyAnimator != null;
1377407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1387407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1397407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1407407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void removeAllListeners() {
1417407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mListener = null;
1427407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1437407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1447407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1457407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void removeListener(Animator.AnimatorListener listener) {
1467407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mListener == listener) {
1477407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mListener = null;
1487407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        } else {
1497407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            throw new RuntimeException("Removing listener that wasn't set");
1507407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1517407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1527407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1537407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public Animator setDuration(long duration) {
1557407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.DURATION);
1567407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mDuration = duration;
1577407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
1587407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1597407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1607407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1617407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void setInterpolator(TimeInterpolator value) {
1627407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.INTERPOLATOR);
1637407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mInterpolator = value;
1647407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1657407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1667407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1677407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void setStartDelay(long startDelay) {
1687407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.START_DELAY);
1697407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mStartDelay = startDelay;
1707407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1717407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1727407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1737407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void setTarget(Object target) {
1747407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        throw new RuntimeException("Not implemented");
1757407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1767407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1777407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1787407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void setupEndValues() {
1797407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1807407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1817407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1827407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1837407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void setupStartValues() {
1847407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
1857407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
1867407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    @Override
1877407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public void start() {
1887407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mViewPropertyAnimator = mTarget.animate();
1897407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.TRANSLATION_X)) {
1907407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.translationX(mTranslationX);
1917407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1927407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.TRANSLATION_Y)) {
1937407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.translationY(mTranslationY);
1947407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1957407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.SCALE_X)) {
1967407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.scaleX(mScaleX);
1977407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
1987407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.ROTATION_Y)) {
1997407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.rotationY(mRotationY);
2007407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2017407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.SCALE_Y)) {
2027407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.scaleY(mScaleY);
2037407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2047407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.ALPHA)) {
2057407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.alpha(mAlpha);
2067407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2077407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.START_DELAY)) {
2087407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.setStartDelay(mStartDelay);
2097407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2107407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.DURATION)) {
2117407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.setDuration(mDuration);
2127407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2137407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        if (mPropertiesToSet.contains(Properties.INTERPOLATOR)) {
2147407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka            mViewPropertyAnimator.setInterpolator(mInterpolator);
2157407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        }
2167407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mViewPropertyAnimator.setListener(this);
2177407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mViewPropertyAnimator.start();
2187407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2197407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2207407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator translationX(float value) {
2217407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.TRANSLATION_X);
2227407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mTranslationX = value;
2237407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2247407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2257407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2267407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator translationY(float value) {
2277407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.TRANSLATION_Y);
2287407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mTranslationY = value;
2297407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2307407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2317407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2327407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator scaleX(float value) {
2337407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.SCALE_X);
2347407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mScaleX = value;
2357407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2367407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2377407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2387407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator scaleY(float value) {
2397407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.SCALE_Y);
2407407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mScaleY = value;
2417407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2427407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2437407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2447407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator rotationY(float value) {
2457407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.ROTATION_Y);
2467407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mRotationY = value;
2477407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2487407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2497407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka
2507407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    public LauncherViewPropertyAnimator alpha(float value) {
2517407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mPropertiesToSet.add(Properties.ALPHA);
2527407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        mAlpha = value;
2537407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka        return this;
2547407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka    }
2557407d2a16ed6cf22494122cf683bf13de6fa3695Michael Jurka}
256