Let lock icon reappear after fingerprint draw off

Test: Unlock with fingerprint, observe icon
Test: Unlock with fingerprint while collapsing panel, make sure
icon reappears after 800ms.

Change-Id: I8b081445bdaaa68741e4bab57a6f79f6e12f1d54
Fixes: 30507748
(cherry picked from commit 8dea48c87e)
This commit is contained in:
Jorim Jaggi
2016-11-28 14:47:45 +01:00
parent 873c99c30b
commit f6103695f8

View File

@@ -35,6 +35,8 @@ import com.android.systemui.statusbar.policy.AccessibilityController;
*/
public class LockIcon extends KeyguardAffordanceView {
private static final int FP_DRAW_OFF_TIMEOUT = 800;
private static final int STATE_LOCKED = 0;
private static final int STATE_LOCK_OPEN = 1;
private static final int STATE_FACE_UNLOCK = 2;
@@ -53,6 +55,8 @@ public class LockIcon extends KeyguardAffordanceView {
private boolean mHasFingerPrintIcon;
private int mDensity;
private final Runnable mDrawOffTimeout = () -> update(true /* forceUpdate */);
public LockIcon(Context context, AttributeSet attrs) {
super(context, attrs);
mTrustDrawable = new TrustDrawable(context);
@@ -116,7 +120,6 @@ public class LockIcon extends KeyguardAffordanceView {
} else {
mTrustDrawable.stop();
}
// TODO: Real icon for facelock.
int state = getState();
boolean anyFingerprintIcon = state == STATE_FINGERPRINT || state == STATE_FINGERPRINT_ERROR;
boolean useAdditionalPadding = anyFingerprintIcon;
@@ -171,6 +174,14 @@ public class LockIcon extends KeyguardAffordanceView {
animation.forceAnimationOnUI();
animation.start();
}
if (iconRes == R.drawable.lockscreen_fingerprint_draw_off_animation) {
removeCallbacks(mDrawOffTimeout);
postDelayed(mDrawOffTimeout, FP_DRAW_OFF_TIMEOUT);
} else {
removeCallbacks(mDrawOffTimeout);
}
mLastState = state;
mLastDeviceInteractive = mDeviceInteractive;
mLastScreenOn = mScreenOn;