From 607d320c9d18a57350bef72cc74017366ffd04ec Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Mon, 17 Jan 2011 14:52:09 -0800 Subject: [PATCH] Fix 3303606: invalidate WaveView after resetting state This fixes a bug where the unlock state machine was in the reset state when it awakes which caused it to ignore the first unlock attempt. The reason for this is the state machine didn't run again until the next user input. We now invalidate the drawing area to ensure the unlock state machine runs and is ready when LockScreen shows again. Change-Id: I9f2b279d432ff634ba0b29e606cdc954718a2ad2 --- .../com/android/internal/widget/WaveView.java | 47 ++----------------- 1 file changed, 4 insertions(+), 43 deletions(-) diff --git a/core/java/com/android/internal/widget/WaveView.java b/core/java/com/android/internal/widget/WaveView.java index 4cb3966aa2a1c..c7a90c40bd63a 100644 --- a/core/java/com/android/internal/widget/WaveView.java +++ b/core/java/com/android/internal/widget/WaveView.java @@ -152,7 +152,6 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mUnlockRing.setScaleX(0.1f); mUnlockRing.setScaleY(0.1f); mUnlockRing.setAlpha(0.0f); - mDrawables.add(mUnlockRing); mUnlockDefault = new DrawableHolder(createDrawable(R.drawable.unlock_default)); @@ -192,7 +191,6 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen if (DBG) Log.v(TAG, "State RESET_LOCK"); mWaveTimerDelay = WAVE_DELAY; for (int i = 0; i < mLightWaves.size(); i++) { - //TweenMax.to(mLightWave.get(i), .3, {alpha:0, ease:Quint.easeOut}); DrawableHolder holder = mLightWaves.get(i); holder.addAnimTo(300, 0, "alpha", 0.0f, false); } @@ -200,16 +198,12 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mLightWaves.get(i).startAnimations(this); } - //TweenMax.to(unlockRing, .5, { x: lockX, y: lockY, scaleX: .1, scaleY: .1, - // alpha: 0, overwrite: true, ease:Quint.easeOut }); mUnlockRing.addAnimTo(DURATION, 0, "x", mLockCenterX, true); mUnlockRing.addAnimTo(DURATION, 0, "y", mLockCenterY, true); mUnlockRing.addAnimTo(DURATION, 0, "scaleX", 0.1f, true); mUnlockRing.addAnimTo(DURATION, 0, "scaleY", 0.1f, true); mUnlockRing.addAnimTo(DURATION, 0, "alpha", 0.0f, true); - //TweenMax.to(unlockDefault, 0, { x: lockX, y: lockY, scaleX: .1, scaleY: .1, - // alpha: 0 , overwrite: true }); mUnlockDefault.removeAnimationFor("x"); mUnlockDefault.removeAnimationFor("y"); mUnlockDefault.removeAnimationFor("scaleX"); @@ -220,15 +214,10 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mUnlockDefault.setScaleX(0.1f); mUnlockDefault.setScaleY(0.1f); mUnlockDefault.setAlpha(0.0f); - - //TweenMax.to(unlockDefault, .5, { delay: .1, scaleX: 1, scaleY: 1, - // alpha: 1, overwrite: true, ease:Quint.easeOut }); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "scaleX", 1.0f, true); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "scaleY", 1.0f, true); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "alpha", 1.0f, true); - //TweenMax.to(unlockHalo, 0, { x: lockX, y: lockY, scaleX:.1, scaleY: .1, - // alpha: 0 , overwrite: true }); mUnlockHalo.removeAnimationFor("x"); mUnlockHalo.removeAnimationFor("y"); mUnlockHalo.removeAnimationFor("scaleX"); @@ -239,16 +228,12 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mUnlockHalo.setScaleX(0.1f); mUnlockHalo.setScaleY(0.1f); mUnlockHalo.setAlpha(0.0f); - - //TweenMax.to(unlockHalo, .5, { x: lockX, y: lockY, scaleX: 1, scaleY: 1, - // alpha: 1 , overwrite: true, ease:Quint.easeOut }); mUnlockHalo.addAnimTo(DURATION, SHORT_DELAY, "x", mLockCenterX, true); mUnlockHalo.addAnimTo(DURATION, SHORT_DELAY, "y", mLockCenterY, true); mUnlockHalo.addAnimTo(DURATION, SHORT_DELAY, "scaleX", 1.0f, true); mUnlockHalo.addAnimTo(DURATION, SHORT_DELAY, "scaleY", 1.0f, true); mUnlockHalo.addAnimTo(DURATION, SHORT_DELAY, "alpha", 1.0f, true); - //lockTimer.stop(); removeCallbacks(mLockTimerActions); mLockState = STATE_READY; @@ -260,8 +245,6 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen case STATE_START_ATTEMPT: if (DBG) Log.v(TAG, "State START_ATTEMPT"); - //TweenMax.to(unlockDefault, 0, {scaleX: .1, scaleY:.1, alpha: 0, - // x:lockX +182, y: lockY , overwrite: true }); mUnlockDefault.removeAnimationFor("x"); mUnlockDefault.removeAnimationFor("y"); mUnlockDefault.removeAnimationFor("scaleX"); @@ -273,14 +256,10 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mUnlockDefault.setScaleY(0.1f); mUnlockDefault.setAlpha(0.0f); - //TweenMax.to(unlockDefault, 0.5, { delay: .1 , scaleX: 1, scaleY: 1, - // alpha: 1, ease:Quint.easeOut }); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "scaleX", 1.0f, false); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "scaleY", 1.0f, false); mUnlockDefault.addAnimTo(DURATION, SHORT_DELAY, "alpha", 1.0f, false); - //TweenMax.to(unlockRing, 0.5, {scaleX: 1, scaleY: 1, - // alpha: 1, ease:Quint.easeOut, overwrite: true }); mUnlockRing.addAnimTo(DURATION, 0, "scaleX", 1.0f, true); mUnlockRing.addAnimTo(DURATION, 0, "scaleY", 1.0f, true); mUnlockRing.addAnimTo(DURATION, 0, "alpha", 1.0f, true); @@ -292,12 +271,8 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen case STATE_ATTEMPTING: if (DBG) Log.v(TAG, "State ATTEMPTING (fingerDown = " + fingerDown + ")"); - //TweenMax.to(unlockHalo, 0.4, { x:mouseX, y:mouseY, scaleX:1, scaleY:1, - // alpha: 1, ease:Quint.easeOut }); if (dragDistance > mSnapRadius) { if (fingerDown) { - //TweenMax.to(unlockHalo, 0.4, {x:ringX, y:ringY, scaleX:1, scaleY:1, - // alpha: 1 , ease:Quint.easeOut , overwrite: true }); mUnlockHalo.addAnimTo(0, 0, "x", ringX, true); mUnlockHalo.addAnimTo(0, 0, "y", ringY, true); mUnlockHalo.addAnimTo(0, 0, "scaleX", 1.0f, true); @@ -320,8 +295,6 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen if (DBG) Log.v(TAG, "State UNLOCK_ATTEMPT"); if (dragDistance > mSnapRadius) { for (int n = 0; n < mLightWaves.size(); n++) { - //TweenMax.to(this["lightWave"+n], .5,{alpha:0, delay: (6+n-currentWave)*.1, - // x:ringX, y:ringY, scaleX: .1, scaleY: .1, ease:Quint.easeOut}); DrawableHolder wave = mLightWaves.get(n); long delay = 1000L*(6 + n - mCurrentWave)/10L; wave.addAnimTo(FINAL_DURATION, delay, "x", ringX, true); @@ -334,19 +307,14 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mLightWaves.get(i).startAnimations(this); } - //TweenMax.to(unlockRing, .5, {x:ringX, y: ringY, scaleX: .1, scaleY: .1, - // alpha: 0, ease: Quint.easeOut }); mUnlockRing.addAnimTo(FINAL_DURATION, 0, "x", ringX, false); mUnlockRing.addAnimTo(FINAL_DURATION, 0, "y", ringY, false); mUnlockRing.addAnimTo(FINAL_DURATION, 0, "scaleX", 0.1f, false); mUnlockRing.addAnimTo(FINAL_DURATION, 0, "scaleY", 0.1f, false); mUnlockRing.addAnimTo(FINAL_DURATION, 0, "alpha", 0.0f, false); - //TweenMax.to(unlockRing, .5, { delay: 1.3, alpha: 0 , ease: Quint.easeOut }); mUnlockRing.addAnimTo(FINAL_DURATION, FINAL_DELAY, "alpha", 0.0f, false); - //TweenMax.to(unlockDefault, 0, { x:ringX, y: ringY, scaleX: .1, scaleY: .1, - // alpha: 0 , overwrite: true }); mUnlockDefault.removeAnimationFor("x"); mUnlockDefault.removeAnimationFor("y"); mUnlockDefault.removeAnimationFor("scaleX"); @@ -358,26 +326,19 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen mUnlockDefault.setScaleY(0.1f); mUnlockDefault.setAlpha(0.0f); - //TweenMax.to(unlockDefault, .5, { x:ringX, y: ringY, scaleX: 1, scaleY: 1, - // alpha: 1 , ease: Quint.easeOut , overwrite: true }); mUnlockDefault.addAnimTo(FINAL_DURATION, 0, "x", ringX, true); mUnlockDefault.addAnimTo(FINAL_DURATION, 0, "y", ringY, true); mUnlockDefault.addAnimTo(FINAL_DURATION, 0, "scaleX", 1.0f, true); mUnlockDefault.addAnimTo(FINAL_DURATION, 0, "scaleY", 1.0f, true); mUnlockDefault.addAnimTo(FINAL_DURATION, 0, "alpha", 1.0f, true); - //TweenMax.to(unlockDefault, .5, { delay: 1.3, scaleX: 3, scaleY: 3, - // alpha: 1, ease: Quint.easeOut }); mUnlockDefault.addAnimTo(FINAL_DURATION, FINAL_DELAY, "scaleX", 3.0f, false); mUnlockDefault.addAnimTo(FINAL_DURATION, FINAL_DELAY, "scaleY", 3.0f, false); mUnlockDefault.addAnimTo(FINAL_DURATION, FINAL_DELAY, "alpha", 0.0f, false); - //TweenMax.to(unlockHalo, .5, { x:ringX, y: ringY , ease: Back.easeOut }); mUnlockHalo.addAnimTo(FINAL_DURATION, 0, "x", ringX, false); mUnlockHalo.addAnimTo(FINAL_DURATION, 0, "y", ringY, false); - //TweenMax.to(unlockHalo, .5, { delay: 1.3, scaleX: 3, scaleY: 3, - // alpha: 1, ease: Quint.easeOut }); mUnlockHalo.addAnimTo(FINAL_DURATION, FINAL_DELAY, "scaleX", 3.0f, false); mUnlockHalo.addAnimTo(FINAL_DURATION, FINAL_DELAY, "scaleY", 3.0f, false); mUnlockHalo.addAnimTo(FINAL_DURATION, FINAL_DELAY, "alpha", 0.0f, false); @@ -429,10 +390,12 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen if (DBG) Log.v(TAG, "LockTimerActions"); // reset lock after inactivity if (mLockState == STATE_ATTEMPTING) { + if (DBG) Log.v(TAG, "Timer resets to STATE_RESET_LOCK"); mLockState = STATE_RESET_LOCK; } // for prototype, reset after successful unlock if (mLockState == STATE_UNLOCK_SUCCESS) { + if (DBG) Log.v(TAG, "Timer resets to STATE_RESET_LOCK after success"); mLockState = STATE_RESET_LOCK; } invalidate(); @@ -455,16 +418,12 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen wave.setX(mMouseX); wave.setY(mMouseY); - //TweenMax.to(this["lightWave"+currentWave], 2, { x:lockX , y:lockY, alpha: 1.5, - // scaleX: 1, scaleY:1, ease:Cubic.easeOut}); wave.addAnimTo(WAVE_DURATION, 0, "x", mLockCenterX, true); wave.addAnimTo(WAVE_DURATION, 0, "y", mLockCenterY, true); wave.addAnimTo(WAVE_DURATION*2/3, 0, "alpha", 1.0f, true); wave.addAnimTo(WAVE_DURATION, 0, "scaleX", 1.0f, true); wave.addAnimTo(WAVE_DURATION, 0, "scaleY", 1.0f, true); - //TweenMax.to(this["lightWave"+currentWave], 1, { delay: 1.3 - // , alpha: 0 , ease:Quint.easeOut}); wave.addAnimTo(1000, RING_DELAY, "alpha", 0.0f, false); wave.startAnimations(WaveView.this); @@ -603,6 +562,8 @@ public class WaveView extends View implements ValueAnimator.AnimatorUpdateListen } public void reset() { + if (DBG) Log.v(TAG, "reset() : resets state to STATE_RESET_LOCK"); mLockState = STATE_RESET_LOCK; + invalidate(); } }