Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8293eb9 authored by Matt Pietal's avatar Matt Pietal Committed by Android (Google) Code Review
Browse files

Merge "PIN view - Tweak animation" into sc-dev

parents 9ab4b954 a56073a0
Loading
Loading
Loading
Loading
+22 −8
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.keyguard;

import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -34,7 +35,9 @@ import com.android.systemui.R;
 * Provides background color and radius animations for key pad buttons.
 */
class NumPadAnimator {
    private ValueAnimator mAnimator;
    private AnimatorSet mAnimator;
    private ValueAnimator mExpandAnimator;
    private ValueAnimator mContractAnimator;
    private GradientDrawable mBackground;
    private RippleDrawable mRipple;
    private GradientDrawable mRippleMask;
@@ -55,18 +58,28 @@ class NumPadAnimator {
        mMargin = context.getResources().getDimensionPixelSize(R.dimen.num_pad_key_margin);

        // Actual values will be updated later, usually during an onLayout() call
        mAnimator = ValueAnimator.ofFloat(0f);
        mAnimator.setDuration(100);
        mAnimator.setInterpolator(Interpolators.FAST_OUT_LINEAR_IN);
        mAnimator.setRepeatMode(ValueAnimator.REVERSE);
        mAnimator.setRepeatCount(1);
        mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        mAnimator = new AnimatorSet();
        mExpandAnimator = ValueAnimator.ofFloat(0f, 1f);
        mExpandAnimator.setDuration(50);
        mExpandAnimator.setInterpolator(Interpolators.LINEAR);
        mExpandAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                public void onAnimationUpdate(ValueAnimator anim) {
                    mBackground.setCornerRadius((float) anim.getAnimatedValue());
                    mRippleMask.setCornerRadius((float) anim.getAnimatedValue());
                }
        });

        mContractAnimator = ValueAnimator.ofFloat(1f, 0f);
        mContractAnimator.setStartDelay(33);
        mContractAnimator.setDuration(417);
        mContractAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
        mContractAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                public void onAnimationUpdate(ValueAnimator anim) {
                    mBackground.setCornerRadius((float) anim.getAnimatedValue());
                    mRippleMask.setCornerRadius((float) anim.getAnimatedValue());
                }
        });
        mAnimator.playSequentially(mExpandAnimator, mContractAnimator);
    }

    void updateMargin(ViewGroup.MarginLayoutParams lp) {
@@ -77,7 +90,8 @@ class NumPadAnimator {
        float startRadius = height / 2f;
        float endRadius = height / 4f;
        mBackground.setCornerRadius(startRadius);
        mAnimator.setFloatValues(startRadius, endRadius);
        mExpandAnimator.setFloatValues(startRadius, endRadius);
        mContractAnimator.setFloatValues(endRadius, startRadius);
    }

    void start() {