diff options
author | Sai Cheemalapati <saicheems@google.com> | 2014-06-19 12:33:34 -0700 |
---|---|---|
committer | Sai Cheemalapati <saicheems@google.com> | 2014-06-20 14:58:12 -0700 |
commit | 13b8948c0cc543f62a68fa32c4692ba16a2e93c6 (patch) | |
tree | 64a355ff484d67726bd5c3e7ae8ae2afc24560d2 /src/com/android/phone/common/animation/AnimUtils.java | |
parent | 4aac9d221bd23ae582e44064ffcadc90d06b220d (diff) | |
download | android_packages_apps_PhoneCommon-13b8948c0cc543f62a68fa32c4692ba16a2e93c6.tar.gz android_packages_apps_PhoneCommon-13b8948c0cc543f62a68fa32c4692ba16a2e93c6.tar.bz2 android_packages_apps_PhoneCommon-13b8948c0cc543f62a68fa32c4692ba16a2e93c6.zip |
Update Emergency Dialer to match Dialer (5/7).
Emergency dialer style updated to match style in Dialer and
InCallUI.
Moved all dialpad resources to PhoneCommon.
Change-Id: Ia3b937c12fc133a04c10ba842df9e89012ba331d
Diffstat (limited to 'src/com/android/phone/common/animation/AnimUtils.java')
-rw-r--r-- | src/com/android/phone/common/animation/AnimUtils.java | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/com/android/phone/common/animation/AnimUtils.java b/src/com/android/phone/common/animation/AnimUtils.java new file mode 100644 index 0000000..35ac107 --- /dev/null +++ b/src/com/android/phone/common/animation/AnimUtils.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2014 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.android.phone.common.animation; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.view.View; +import android.view.ViewPropertyAnimator; +import android.view.animation.Interpolator; +import android.view.animation.PathInterpolator; + +public class AnimUtils { + public static final int DEFAULT_DURATION = -1; + public static final Interpolator EASE_IN = new PathInterpolator(0.0f, 0.0f, 0.2f, 1.0f); + public static final Interpolator EASE_OUT = new PathInterpolator(0.4f, 0.0f, 1.0f, 1.0f); + public static final Interpolator EASE_OUT_EASE_IN = new PathInterpolator(0.4f, 0, 0.2f, 1); + + public static class AnimationCallback { + public void onAnimationEnd() {} + public void onAnimationCancel() {} + } + + public static void crossFadeViews(View fadeIn, View fadeOut, int duration) { + fadeIn(fadeIn, duration); + fadeOut(fadeOut, duration); + } + + public static void fadeOut(View fadeOut, int duration) { + fadeOut(fadeOut, duration, null); + } + + public static void fadeOut(final View fadeOut, int duration, final AnimationCallback callback) { + fadeOut.setAlpha(1); + final ViewPropertyAnimator animator = fadeOut.animate(); + animator.cancel(); + animator.alpha(0).withLayer().setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + fadeOut.setVisibility(View.GONE); + if (callback != null) { + callback.onAnimationEnd(); + } + } + + @Override + public void onAnimationCancel(Animator animation) { + fadeOut.setVisibility(View.GONE); + fadeOut.setAlpha(0); + if (callback != null) { + callback.onAnimationCancel(); + } + } + }); + if (duration != DEFAULT_DURATION) { + animator.setDuration(duration); + } + animator.start(); + } + + public static void fadeIn(View fadeIn, int duration) { + fadeIn(fadeIn, duration, null); + } + + public static void fadeIn(final View fadeIn, int duration, final AnimationCallback callback) { + fadeIn.setAlpha(0); + final ViewPropertyAnimator animator = fadeIn.animate(); + animator.cancel(); + animator.alpha(1).withLayer().setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + fadeIn.setVisibility(View.VISIBLE); + } + + @Override + public void onAnimationCancel(Animator animation) { + fadeIn.setAlpha(1); + if (callback != null) { + callback.onAnimationCancel(); + } + } + + @Override + public void onAnimationEnd(Animator animation) { + if (callback != null) { + callback.onAnimationEnd(); + } + } + }); + if (duration != DEFAULT_DURATION) { + animator.setDuration(duration); + } + animator.start(); + } +} |