Skip to content

Commit 5d2404d

Browse files
author
Danielle Millett
committed
Updating isShowing during onResume()
Since the callback is unregistered in onPause(), KeyguardFaceUnlock doesn't get onKeyguardVisibilityChanged() when it's paused. This means that if the state changes while it's paused, then mIsShowing is incorrect when it resumes. This is fixed by keeping track of the state in KeyguardUpdateMonitor and checking it when onResume() is called. Change-Id: I67aa1e091161a965e4347dc8c2ec5e7a1dd9d92e
1 parent 5b03984 commit 5d2404d

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public void onPause() {
9393
@Override
9494
public void onResume() {
9595
if (DEBUG) Log.d(TAG, "onResume()");
96+
mIsShowing = KeyguardUpdateMonitor.getInstance(mContext).isKeyguardVisible();
9697
maybeStartBiometricUnlock();
9798
KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateCallback);
9899
}

policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ public class KeyguardUpdateMonitor {
9292
private CharSequence mTelephonySpn;
9393
private int mRingMode;
9494
private int mPhoneState;
95+
private boolean mKeyguardIsVisible;
9596

9697
// Device provisioning state
9798
private boolean mDeviceProvisioned;
@@ -567,14 +568,20 @@ private void handleClockVisibilityChanged() {
567568
*/
568569
private void handleKeyguardVisibilityChanged(int showing) {
569570
if (DEBUG) Log.d(TAG, "handleKeyguardVisibilityChanged(" + showing + ")");
571+
boolean isShowing = (showing == 1);
572+
mKeyguardIsVisible = isShowing;
570573
for (int i = 0; i < mCallbacks.size(); i++) {
571574
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
572575
if (cb != null) {
573-
cb.onKeyguardVisibilityChanged(showing == 1);
576+
cb.onKeyguardVisibilityChanged(isShowing);
574577
}
575578
}
576579
}
577580

581+
public boolean isKeyguardVisible() {
582+
return mKeyguardIsVisible;
583+
}
584+
578585
private static boolean isBatteryUpdateInteresting(BatteryStatus old, BatteryStatus current) {
579586
final boolean nowPluggedIn = current.isPluggedIn();
580587
final boolean wasPluggedIn = old.isPluggedIn();

0 commit comments

Comments
 (0)