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

Commit e742fd3b authored by Aleksandr Litovchenko's avatar Aleksandr Litovchenko
Browse files

Extract LockPatternView animation parameters.

Move lock_pattern_line_fade_out_duration and lock_pattern_line_fade_out_delay to resources in order to override it for different devices.

Tests: manually
Bug: 204870856
Bug: 199436708
Change-Id: I758871d2d7ea62bd0ad55f83fc39b6d916cb2bba
(cherry picked from commit 7520086bd06737c00772a4526df637156fb983dd)
parent 235814bb
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -77,8 +77,6 @@ public class LockPatternView extends View {

    private static final boolean PROFILE_DRAWING = false;
    private static final int LINE_END_ANIMATION_DURATION_MILLIS = 50;
    private static final int LINE_FADE_OUT_DURATION_MILLIS = 500;
    private static final int LINE_FADE_OUT_DELAY_MILLIS = 150;
    private static final int DOT_ACTIVATION_DURATION_MILLIS = 50;
    private static final int DOT_RADIUS_INCREASE_DURATION_MILLIS = 96;
    private static final int DOT_RADIUS_DECREASE_DURATION_MILLIS = 192;
@@ -89,6 +87,8 @@ public class LockPatternView extends View {
    private final int mDotSizeActivated;
    private final float mDotHitFactor;
    private final int mPathWidth;
    private final int mLineFadeOutAnimationDurationMs;
    private final int mLineFadeOutAnimationDelayMs;

    private boolean mDrawingProfilingStarted = false;

@@ -346,6 +346,11 @@ public class LockPatternView extends View {
        mPathWidth = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_line_width);
        mPathPaint.setStrokeWidth(mPathWidth);

        mLineFadeOutAnimationDurationMs =
            getResources().getInteger(R.integer.lock_pattern_line_fade_out_duration);
        mLineFadeOutAnimationDelayMs =
            getResources().getInteger(R.integer.lock_pattern_line_fade_out_delay);

        mDotSize = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_size);
        mDotSizeActivated = getResources().getDimensionPixelSize(
                R.dimen.lock_pattern_dot_size_activated);
@@ -831,7 +836,7 @@ public class LockPatternView extends View {
        deactivateAnimator.setDuration(DOT_ACTIVATION_DURATION_MILLIS);
        AnimatorSet set = new AnimatorSet();
        set.play(deactivateAnimator)
                .after(LINE_FADE_OUT_DELAY_MILLIS + LINE_FADE_OUT_DURATION_MILLIS
                .after(mLineFadeOutAnimationDelayMs + mLineFadeOutAnimationDurationMs
                        - DOT_ACTIVATION_DURATION_MILLIS * 2)
                .after(activateAnimator);
        return set;
@@ -862,8 +867,8 @@ public class LockPatternView extends View {
    private Animator createLineDisappearingAnimation() {
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
        valueAnimator.addUpdateListener(animation -> invalidate());
        valueAnimator.setStartDelay(LINE_FADE_OUT_DELAY_MILLIS);
        valueAnimator.setDuration(LINE_FADE_OUT_DURATION_MILLIS);
        valueAnimator.setStartDelay(mLineFadeOutAnimationDelayMs);
        valueAnimator.setDuration(mLineFadeOutAnimationDurationMs);
        return valueAnimator;
    }

@@ -1278,14 +1283,14 @@ public class LockPatternView extends View {
        float fadeAwayProgress;
        if (mFadePattern) {
            if (elapsedRealtime - lineFadeStart
                    >= LINE_FADE_OUT_DELAY_MILLIS + LINE_FADE_OUT_DURATION_MILLIS) {
                    >= mLineFadeOutAnimationDelayMs + mLineFadeOutAnimationDurationMs) {
                // Time for this segment animation is out so we don't need to draw it.
                return;
            }
            // Set this line segment to fade away animated.
            fadeAwayProgress = Math.max(
                    ((float) (elapsedRealtime - lineFadeStart - LINE_FADE_OUT_DELAY_MILLIS))
                            / LINE_FADE_OUT_DURATION_MILLIS, 0f);
                    ((float) (elapsedRealtime - lineFadeStart - mLineFadeOutAnimationDelayMs))
                            / mLineFadeOutAnimationDurationMs, 0f);
            drawFadingAwayLineSegment(canvas, startX, startY, endX, endY, fadeAwayProgress);
        } else {
            mPathPaint.setAlpha(255);
+3 −0
Original line number Diff line number Diff line
@@ -673,6 +673,9 @@
    <item type="dimen" format="float" name="lock_pattern_dot_hit_factor">0.6</item>
    <!-- Width of a gradient applied to a lock pattern line while its disappearing animation. -->
    <dimen name="lock_pattern_fade_away_gradient_width">8dp</dimen>
    <!-- Parameters applied to line disappearing animation in LockPatternView in milliseconds. -->
    <integer name="lock_pattern_line_fade_out_duration">500</integer>
    <integer name="lock_pattern_line_fade_out_delay">150</integer>

    <dimen name="text_handle_min_size">40dp</dimen>

+2 −0
Original line number Diff line number Diff line
@@ -1327,6 +1327,8 @@
  <java-symbol type="dimen" name="lock_pattern_dot_size_activated" />
  <java-symbol type="dimen" name="lock_pattern_dot_hit_factor" />
  <java-symbol type="dimen" name="lock_pattern_fade_away_gradient_width" />
  <java-symbol type="integer" name="lock_pattern_line_fade_out_duration" />
  <java-symbol type="integer" name="lock_pattern_line_fade_out_delay" />
  <java-symbol type="drawable" name="clock_dial" />
  <java-symbol type="drawable" name="clock_hand_hour" />
  <java-symbol type="drawable" name="clock_hand_minute" />