am daa2c922: am b2522511: Merge "Tweak assist disclosure animation" into mnc-dev

* commit 'daa2c922e1e310c427d36132ac1a9e67d710e10b':
  Tweak assist disclosure animation
This commit is contained in:
Adrian Roos
2015-06-20 00:10:26 +00:00
committed by Android Git Automerger
2 changed files with 43 additions and 11 deletions

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2015 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
-->
<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:controlX1="0.6"
android:controlY1="0"
android:controlX2="0.7"
android:controlY2="1"/>

View File

@@ -93,8 +93,9 @@ public class AssistDisclosure {
private class AssistDisclosureView extends View private class AssistDisclosureView extends View
implements ValueAnimator.AnimatorUpdateListener { implements ValueAnimator.AnimatorUpdateListener {
public static final int TRACING_ANIMATION_DURATION = 300; public static final int TRACING_ANIMATION_DURATION = 600;
public static final int ALPHA_ANIMATION_DURATION = 200; public static final int ALPHA_IN_ANIMATION_DURATION = 450;
public static final int ALPHA_OUT_ANIMATION_DURATION = 400;
private float mThickness; private float mThickness;
private float mShadowThickness; private float mShadowThickness;
@@ -102,11 +103,12 @@ public class AssistDisclosure {
private final Paint mShadowPaint = new Paint(); private final Paint mShadowPaint = new Paint();
private final ValueAnimator mTracingAnimator; private final ValueAnimator mTracingAnimator;
private final ValueAnimator mAlphaAnimator; private final ValueAnimator mAlphaOutAnimator;
private final ValueAnimator mAlphaInAnimator;
private final AnimatorSet mAnimator; private final AnimatorSet mAnimator;
private float mTracingProgress = 0; private float mTracingProgress = 0;
private int mAlpha = 255; private int mAlpha = 0;
public AssistDisclosureView(Context context) { public AssistDisclosureView(Context context) {
super(context); super(context);
@@ -114,13 +116,19 @@ public class AssistDisclosure {
mTracingAnimator = ValueAnimator.ofFloat(0, 1).setDuration(TRACING_ANIMATION_DURATION); mTracingAnimator = ValueAnimator.ofFloat(0, 1).setDuration(TRACING_ANIMATION_DURATION);
mTracingAnimator.addUpdateListener(this); mTracingAnimator.addUpdateListener(this);
mTracingAnimator.setInterpolator(AnimationUtils.loadInterpolator(mContext, mTracingAnimator.setInterpolator(AnimationUtils.loadInterpolator(mContext,
R.interpolator.assist_disclosure_trace));
mAlphaInAnimator = ValueAnimator.ofInt(0, 255).setDuration(ALPHA_IN_ANIMATION_DURATION);
mAlphaInAnimator.addUpdateListener(this);
mAlphaInAnimator.setInterpolator(AnimationUtils.loadInterpolator(mContext,
android.R.interpolator.fast_out_slow_in)); android.R.interpolator.fast_out_slow_in));
mAlphaAnimator = ValueAnimator.ofInt(255, 0).setDuration(ALPHA_ANIMATION_DURATION); mAlphaOutAnimator = ValueAnimator.ofInt(255, 0).setDuration(
mAlphaAnimator.addUpdateListener(this); ALPHA_OUT_ANIMATION_DURATION);
mAlphaAnimator.setInterpolator(AnimationUtils.loadInterpolator(mContext, mAlphaOutAnimator.addUpdateListener(this);
mAlphaOutAnimator.setInterpolator(AnimationUtils.loadInterpolator(mContext,
android.R.interpolator.fast_out_linear_in)); android.R.interpolator.fast_out_linear_in));
mAnimator = new AnimatorSet(); mAnimator = new AnimatorSet();
mAnimator.play(mTracingAnimator).before(mAlphaAnimator); mAnimator.play(mAlphaInAnimator).with(mTracingAnimator);
mAnimator.play(mAlphaInAnimator).before(mAlphaOutAnimator);
mAnimator.addListener(new AnimatorListenerAdapter() { mAnimator.addListener(new AnimatorListenerAdapter() {
boolean mCancelled; boolean mCancelled;
@@ -167,7 +175,7 @@ public class AssistDisclosure {
mAnimator.cancel(); mAnimator.cancel();
mTracingProgress = 0; mTracingProgress = 0;
mAlpha = 255; mAlpha = 0;
} }
private void startAnimation() { private void startAnimation() {
@@ -240,8 +248,10 @@ public class AssistDisclosure {
@Override @Override
public void onAnimationUpdate(ValueAnimator animation) { public void onAnimationUpdate(ValueAnimator animation) {
if (animation == mAlphaAnimator) { if (animation == mAlphaOutAnimator) {
mAlpha = (int) mAlphaAnimator.getAnimatedValue(); mAlpha = (int) mAlphaOutAnimator.getAnimatedValue();
} else if (animation == mAlphaInAnimator) {
mAlpha = (int) mAlphaInAnimator.getAnimatedValue();
} else if (animation == mTracingAnimator) { } else if (animation == mTracingAnimator) {
mTracingProgress = (float) mTracingAnimator.getAnimatedValue(); mTracingProgress = (float) mTracingAnimator.getAnimatedValue();
} }