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

Commit ddbc85cb authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Fix 6683092: tune GlowPadView wave animation" into jb-dev

parents 386ce58a 5892e2ec
Loading
Loading
Loading
Loading
+25 −5
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ public class GlowPadView extends View {
    }

    // Tuneable parameters for animation
    private static final int WAVE_ANIMATION_DURATION = 1200;
    private static final int WAVE_ANIMATION_DURATION = 1350;
    private static final int RETURN_TO_HOME_DELAY = 1200;
    private static final int RETURN_TO_HOME_DURATION = 200;
    private static final int HIDE_ANIMATION_DELAY = 200;
@@ -361,6 +361,7 @@ public class GlowPadView extends View {
                mHandleDrawable.setAlpha(0.0f);
                deactivateTargets();
                showTargets(true);
                ping();
                startBackgroundAnimation(INITIAL_SHOW_HANDLE_DURATION, 1.0f);
                setGrabbedState(OnTriggerListener.CENTER_HANDLE);
                if (AccessibilityManager.getInstance(mContext).isEnabled()) {
@@ -484,7 +485,12 @@ public class GlowPadView extends View {
        final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
        final int delay = animate ? HIDE_ANIMATION_DELAY : 0;

        final float targetScale = expanded ? TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
        // TODO: add an attribute for this. For now we'll show the expand for navbar, but not
        // keyguard.
        final boolean expandDisabled = !mAlwaysTrackFinger;

        final float targetScale = (expanded || expandDisabled) ?
                TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
        final int length = mTargetDrawables.size();
        final TimeInterpolator interpolator = Ease.Cubic.easeOut;
        for (int i = 0; i < length; i++) {
@@ -499,7 +505,8 @@ public class GlowPadView extends View {
                    "onUpdate", mUpdateListener));
        }

        final float ringScaleTarget = expanded ? RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
        final float ringScaleTarget = (expanded || expandDisabled) ?
                RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
        mTargetAnimations.add(Tweener.to(mOuterRing, duration,
                "ease", interpolator,
                "alpha", 0.0f,
@@ -663,9 +670,22 @@ public class GlowPadView extends View {
     */
    public void ping() {
        if (mFeedbackCount > 0) {
            boolean doWaveAnimation = true;
            final AnimationBundle waveAnimations = mWaveAnimations;

            // Don't do a wave if there's already one in progress
            if (waveAnimations.size() > 0 && waveAnimations.get(0).animator.isRunning()) {
                long t = waveAnimations.get(0).animator.getCurrentPlayTime();
                if (t < WAVE_ANIMATION_DURATION/2) {
                    doWaveAnimation = false;
                }
            }

            if (doWaveAnimation) {
                startWaveAnimation();
            }
        }
    }

    private void stopAndHideWaveAnimation() {
        mWaveAnimations.cancel();
@@ -677,7 +697,7 @@ public class GlowPadView extends View {
        mPointCloud.waveManager.setAlpha(1.0f);
        mPointCloud.waveManager.setRadius(mHandleDrawable.getWidth()/2.0f);
        mWaveAnimations.add(Tweener.to(mPointCloud.waveManager, WAVE_ANIMATION_DURATION,
                "ease", Ease.Linear.easeNone,
                "ease", Ease.Quad.easeOut,
                "delay", 0,
                "radius", 2.0f * mOuterRadius,
                "onUpdate", mUpdateListener,
+3 −3
Original line number Diff line number Diff line
@@ -186,10 +186,10 @@ public class PointCloud {

        // Compute contribution from Wave
        float radius = hypot(point.x, point.y);
        float distanceToWaveRing = Math.abs(radius - waveManager.radius);
        float distanceToWaveRing = (radius - waveManager.radius);
        float waveAlpha = 0.0f;
        if (distanceToWaveRing < waveManager.width * 0.5f) {
            float cosf = FloatMath.cos(PI * 0.5f * distanceToWaveRing / waveManager.width);
        if (distanceToWaveRing < waveManager.width * 0.5f && distanceToWaveRing < 0.0f) {
            float cosf = FloatMath.cos(PI * 0.25f * distanceToWaveRing / waveManager.width);
            waveAlpha = waveManager.alpha * max(0.0f, (float) Math.pow(cosf, 20.0f));
        }

+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@
                prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
                prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
                prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
                prvandroid:feedbackCount="0"
                prvandroid:feedbackCount="1"
                prvandroid:vibrationDuration="@integer/config_vibration_duration"
                prvandroid:alwaysTrackFinger="true"
                prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@
                prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
                prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
                prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
                prvandroid:feedbackCount="0"
                prvandroid:feedbackCount="1"
                prvandroid:vibrationDuration="@integer/config_vibration_duration"
                prvandroid:alwaysTrackFinger="true"
                prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@
        prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
        prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
        prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
        prvandroid:feedbackCount="0"
        prvandroid:feedbackCount="1"
        prvandroid:vibrationDuration="@integer/config_vibration_duration"
        prvandroid:alwaysTrackFinger="true"
        prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
Loading