summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java24
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java1
2 files changed, 23 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
index df059e3686ba..b4fe900e5320 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
@@ -29,6 +29,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.keyguard.LatencyTracker;
import com.android.systemui.Dependency;
import com.android.systemui.keyguard.KeyguardViewMediator;
+import com.android.systemui.keyguard.WakefulnessLifecycle;
/**
* Controller which coordinates all the fingerprint unlocking actions with the UI.
@@ -99,6 +100,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
private final UnlockMethodCache mUnlockMethodCache;
private final Context mContext;
private int mPendingAuthenticatedUserId = -1;
+ private boolean mPendingShowBouncer;
public FingerprintUnlockController(Context context,
DozeScrimController dozeScrimController,
@@ -110,6 +112,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
mPowerManager = context.getSystemService(PowerManager.class);
mUpdateMonitor = KeyguardUpdateMonitor.getInstance(context);
mUpdateMonitor.registerCallback(this);
+ Dependency.get(WakefulnessLifecycle.class).addObserver(mWakefulnessObserver);
mStatusBarWindowManager = Dependency.get(StatusBarWindowManager.class);
mDozeScrimController = dozeScrimController;
mKeyguardViewMediator = keyguardViewMediator;
@@ -212,9 +215,10 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
Trace.beginSection("MODE_UNLOCK or MODE_SHOW_BOUNCER");
if (!wasDeviceInteractive) {
mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested();
+ mPendingShowBouncer = true;
+ } else {
+ showBouncer();
}
- mStatusBarKeyguardViewManager.animateCollapsePanels(
- FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR);
Trace.endSection();
break;
case MODE_WAKE_AND_UNLOCK_PULSING:
@@ -247,6 +251,12 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
Trace.endSection();
}
+ private void showBouncer() {
+ mStatusBarKeyguardViewManager.animateCollapsePanels(
+ FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR);
+ mPendingShowBouncer = false;
+ }
+
@Override
public void onStartedGoingToSleep(int why) {
mPendingAuthenticatedUserId = -1;
@@ -338,4 +348,14 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
}
mStatusBar.notifyFpAuthModeChanged();
}
+
+ private final WakefulnessLifecycle.Observer mWakefulnessObserver =
+ new WakefulnessLifecycle.Observer() {
+ @Override
+ public void onFinishedWakingUp() {
+ if (mPendingShowBouncer) {
+ FingerprintUnlockController.this.showBouncer();
+ }
+ }
+ };
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 6b67dc498d8d..32a5abc37244 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -5161,6 +5161,7 @@ public class StatusBar extends SystemUI implements DemoMode,
mStackScroller.setAnimationsEnabled(true);
mVisualStabilityManager.setScreenOn(true);
mNotificationPanel.setTouchDisabled(false);
+ mDozeServiceHost.stopDozing();
updateVisibleToUser();
updateIsKeyguard();
}