diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2012-11-19 02:19:31 +0000 |
---|---|---|
committer | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2012-11-19 02:20:34 +0000 |
commit | 50d4e62972f51be99a00aeae38aab9ea4dd065f3 (patch) | |
tree | 78e42c580240d002f96b20bd5ea7a3a916d0c18f /src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java | |
parent | cdb1e61ac246649e6bb6049e969ff1414e13e650 (diff) | |
download | android_packages_apps_Trebuchet-50d4e62972f51be99a00aeae38aab9ea4dd065f3.tar.gz android_packages_apps_Trebuchet-50d4e62972f51be99a00aeae38aab9ea4dd065f3.tar.bz2 android_packages_apps_Trebuchet-50d4e62972f51be99a00aeae38aab9ea4dd065f3.zip |
Fix post-merge breakage from the new 4.2 stuff
Diffstat (limited to 'src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java')
-rw-r--r-- | src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java b/src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java new file mode 100644 index 000000000..456c3c0cb --- /dev/null +++ b/src/com/cyanogenmod/trebuchet/LauncherAnimUtils.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.trebuchet; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.PropertyValuesHolder; +import android.animation.ValueAnimator; + +import java.util.HashSet; + +public class LauncherAnimUtils { + static HashSet<Animator> sAnimators = new HashSet<Animator>(); + static Animator.AnimatorListener sEndAnimListener = new Animator.AnimatorListener() { + public void onAnimationStart(Animator animation) { + } + + public void onAnimationRepeat(Animator animation) { + } + + public void onAnimationEnd(Animator animation) { + sAnimators.remove(animation); + } + + public void onAnimationCancel(Animator animation) { + sAnimators.remove(animation); + } + }; + + public static void cancelOnDestroyActivity(Animator a) { + sAnimators.add(a); + a.addListener(sEndAnimListener); + } + + public static void onDestroyActivity() { + HashSet<Animator> animators = new HashSet<Animator>(sAnimators); + for (Animator a : animators) { + if (a.isRunning()) { + a.cancel(); + } else { + sAnimators.remove(a); + } + } + } + + public static AnimatorSet createAnimatorSet() { + AnimatorSet anim = new AnimatorSet(); + cancelOnDestroyActivity(anim); + return anim; + } + + public static ValueAnimator ofFloat(float... values) { + ValueAnimator anim = new ValueAnimator(); + anim.setFloatValues(values); + cancelOnDestroyActivity(anim); + return anim; + } + + public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) { + ObjectAnimator anim = new ObjectAnimator(); + anim.setTarget(target); + anim.setPropertyName(propertyName); + anim.setFloatValues(values); + cancelOnDestroyActivity(anim); + return anim; + } + + public static ObjectAnimator ofPropertyValuesHolder(Object target, + PropertyValuesHolder... values) { + ObjectAnimator anim = new ObjectAnimator(); + anim.setTarget(target); + anim.setValues(values); + cancelOnDestroyActivity(anim); + return anim; + } +} |