Merge "Extract LockPatternView animation parameters." into tm-dev

This commit is contained in:
Aleksandr Litovchenko
2022-03-24 15:51:31 +00:00
committed by Android (Google) Code Review
3 changed files with 18 additions and 8 deletions

View File

@@ -77,8 +77,6 @@ public class LockPatternView extends View {
private static final boolean PROFILE_DRAWING = false; private static final boolean PROFILE_DRAWING = false;
private static final int LINE_END_ANIMATION_DURATION_MILLIS = 50; 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_ACTIVATION_DURATION_MILLIS = 50;
private static final int DOT_RADIUS_INCREASE_DURATION_MILLIS = 96; private static final int DOT_RADIUS_INCREASE_DURATION_MILLIS = 96;
private static final int DOT_RADIUS_DECREASE_DURATION_MILLIS = 192; 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 int mDotSizeActivated;
private final float mDotHitFactor; private final float mDotHitFactor;
private final int mPathWidth; private final int mPathWidth;
private final int mLineFadeOutAnimationDurationMs;
private final int mLineFadeOutAnimationDelayMs;
private boolean mDrawingProfilingStarted = false; private boolean mDrawingProfilingStarted = false;
@@ -346,6 +346,11 @@ public class LockPatternView extends View {
mPathWidth = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_line_width); mPathWidth = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_line_width);
mPathPaint.setStrokeWidth(mPathWidth); 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); mDotSize = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_size);
mDotSizeActivated = getResources().getDimensionPixelSize( mDotSizeActivated = getResources().getDimensionPixelSize(
R.dimen.lock_pattern_dot_size_activated); R.dimen.lock_pattern_dot_size_activated);
@@ -831,7 +836,7 @@ public class LockPatternView extends View {
deactivateAnimator.setDuration(DOT_ACTIVATION_DURATION_MILLIS); deactivateAnimator.setDuration(DOT_ACTIVATION_DURATION_MILLIS);
AnimatorSet set = new AnimatorSet(); AnimatorSet set = new AnimatorSet();
set.play(deactivateAnimator) set.play(deactivateAnimator)
.after(LINE_FADE_OUT_DELAY_MILLIS + LINE_FADE_OUT_DURATION_MILLIS .after(mLineFadeOutAnimationDelayMs + mLineFadeOutAnimationDurationMs
- DOT_ACTIVATION_DURATION_MILLIS * 2) - DOT_ACTIVATION_DURATION_MILLIS * 2)
.after(activateAnimator); .after(activateAnimator);
return set; return set;
@@ -862,8 +867,8 @@ public class LockPatternView extends View {
private Animator createLineDisappearingAnimation() { private Animator createLineDisappearingAnimation() {
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1); ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
valueAnimator.addUpdateListener(animation -> invalidate()); valueAnimator.addUpdateListener(animation -> invalidate());
valueAnimator.setStartDelay(LINE_FADE_OUT_DELAY_MILLIS); valueAnimator.setStartDelay(mLineFadeOutAnimationDelayMs);
valueAnimator.setDuration(LINE_FADE_OUT_DURATION_MILLIS); valueAnimator.setDuration(mLineFadeOutAnimationDurationMs);
return valueAnimator; return valueAnimator;
} }
@@ -1278,14 +1283,14 @@ public class LockPatternView extends View {
float fadeAwayProgress; float fadeAwayProgress;
if (mFadePattern) { if (mFadePattern) {
if (elapsedRealtime - lineFadeStart 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. // Time for this segment animation is out so we don't need to draw it.
return; return;
} }
// Set this line segment to fade away animated. // Set this line segment to fade away animated.
fadeAwayProgress = Math.max( fadeAwayProgress = Math.max(
((float) (elapsedRealtime - lineFadeStart - LINE_FADE_OUT_DELAY_MILLIS)) ((float) (elapsedRealtime - lineFadeStart - mLineFadeOutAnimationDelayMs))
/ LINE_FADE_OUT_DURATION_MILLIS, 0f); / mLineFadeOutAnimationDurationMs, 0f);
drawFadingAwayLineSegment(canvas, startX, startY, endX, endY, fadeAwayProgress); drawFadingAwayLineSegment(canvas, startX, startY, endX, endY, fadeAwayProgress);
} else { } else {
mPathPaint.setAlpha(255); mPathPaint.setAlpha(255);

View File

@@ -673,6 +673,9 @@
<item type="dimen" format="float" name="lock_pattern_dot_hit_factor">0.6</item> <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. --> <!-- Width of a gradient applied to a lock pattern line while its disappearing animation. -->
<dimen name="lock_pattern_fade_away_gradient_width">8dp</dimen> <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> <dimen name="text_handle_min_size">40dp</dimen>

View File

@@ -1327,6 +1327,8 @@
<java-symbol type="dimen" name="lock_pattern_dot_size_activated" /> <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_dot_hit_factor" />
<java-symbol type="dimen" name="lock_pattern_fade_away_gradient_width" /> <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_dial" />
<java-symbol type="drawable" name="clock_hand_hour" /> <java-symbol type="drawable" name="clock_hand_hour" />
<java-symbol type="drawable" name="clock_hand_minute" /> <java-symbol type="drawable" name="clock_hand_minute" />