diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java | 24 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java | 1 |
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(); } |