Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java +5 −1 Original line number Diff line number Diff line Loading @@ -187,8 +187,12 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { Trace.endSection(); return; } startWakeAndUnlock(calculateMode()); } public void startWakeAndUnlock(int mode) { boolean wasDeviceInteractive = mUpdateMonitor.isDeviceInteractive(); mMode = calculateMode(); mMode = mode; mHasScreenTurnedOnSinceAuthenticating = false; if (mMode == MODE_WAKE_AND_UNLOCK_PULSING && pulsingOrAod()) { // If we are waking the device up while we are pulsing the clock and the Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +20 −6 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ import android.widget.RemoteViews; import android.widget.TextView; import android.widget.Toast; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.graphics.ColorUtils; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -749,7 +750,7 @@ public class StatusBar extends SystemUI implements DemoMode, private SysuiColorExtractor mColorExtractor; private ForegroundServiceController mForegroundServiceController; private ScreenLifecycle mScreenLifecycle; private WakefulnessLifecycle mWakefulnessLifecycle; @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle; private void recycleAllVisibilityObjects(ArraySet<NotificationVisibility> array) { final int N = array.size(); Loading Loading @@ -3787,6 +3788,15 @@ public class StatusBar extends SystemUI implements DemoMode, private void dismissKeyguardThenExecute(OnDismissAction action, Runnable cancelAction, boolean afterKeyguardGone) { if (mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_ASLEEP && mUnlockMethodCache.canSkipBouncer() && !mLeaveOpenOnKeyguardHide && isPulsing()) { // Reuse the fingerprint wake-and-unlock transition if we dismiss keyguard from a pulse. // TODO: Factor this transition out of FingerprintUnlockController. mFingerprintUnlockController.startWakeAndUnlock( FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING); } if (mStatusBarKeyguardViewManager.isShowing()) { mStatusBarKeyguardViewManager.dismissWithAction(action, cancelAction, afterKeyguardGone); Loading Loading @@ -4223,6 +4233,8 @@ public class StatusBar extends SystemUI implements DemoMode, public void showKeyguard() { mKeyguardRequested = true; mLeaveOpenOnKeyguardHide = false; mPendingRemoteInputView = null; updateIsKeyguard(); mAssistManager.onLockscreenShown(); } Loading Loading @@ -4273,13 +4285,11 @@ public class StatusBar extends SystemUI implements DemoMode, } updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */); updatePanelExpansionForKeyguard(); mLeaveOpenOnKeyguardHide = false; if (mDraggedDownRow != null) { mDraggedDownRow.setUserLocked(false); mDraggedDownRow.notifyHeightChanged(false /* needsAnimation */); mDraggedDownRow = null; } mPendingRemoteInputView = null; } private void updatePanelExpansionForKeyguard() { Loading Loading @@ -4419,15 +4429,19 @@ public class StatusBar extends SystemUI implements DemoMode, setBarState(StatusBarState.SHADE); View viewToClick = null; if (mLeaveOpenOnKeyguardHide) { if (!mKeyguardRequested) { mLeaveOpenOnKeyguardHide = false; } long delay = calculateGoingToFullShadeDelay(); mNotificationPanel.animateToFullShade(delay); if (mDraggedDownRow != null) { mDraggedDownRow.setUserLocked(false); mDraggedDownRow = null; } if (!mKeyguardRequested) { viewToClick = mPendingRemoteInputView; mPendingRemoteInputView = null; } // Disable layout transitions in navbar for this transition because the load is just // too heavy for the CPU and GPU on any device. Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -156,7 +156,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb */ protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing) { if (mBouncer.needsFullscreenBouncer() && !mDozing) { // The keyguard might be showing (already). So we need to hide it. mStatusBar.hideKeyguard(); mBouncer.show(true /* resetSecuritySelection */); Loading @@ -167,6 +166,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBouncer.prepare(); } } updateStates(); } private void showBouncer() { Loading Loading @@ -250,7 +250,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb public void setDozing(boolean dozing) { if (mDozing != dozing) { mDozing = dozing; if (dozing || mBouncer.needsFullscreenBouncer() || mOccluded) { reset(dozing /* hideBouncerWhenShowing */); } updateStates(); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ import com.android.internal.logging.testing.FakeMetricsLogger; import com.android.internal.statusbar.IStatusBarService; import com.android.keyguard.KeyguardHostView.OnDismissAction; import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.statusbar.ActivatableNotificationView; import com.android.systemui.statusbar.CommandQueue; Loading Loading @@ -500,6 +501,14 @@ public class StatusBarTest extends SysuiTestCase { mSystemServicesProxy = ssp; mNotificationPanel = panelView; mBarService = barService; mWakefulnessLifecycle = createAwakeWakefulnessLifecycle(); } private WakefulnessLifecycle createAwakeWakefulnessLifecycle() { WakefulnessLifecycle wakefulnessLifecycle = new WakefulnessLifecycle(); wakefulnessLifecycle.dispatchStartedWakingUp(); wakefulnessLifecycle.dispatchFinishedWakingUp(); return wakefulnessLifecycle; } public void setBarStateForTest(int state) { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java +5 −1 Original line number Diff line number Diff line Loading @@ -187,8 +187,12 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { Trace.endSection(); return; } startWakeAndUnlock(calculateMode()); } public void startWakeAndUnlock(int mode) { boolean wasDeviceInteractive = mUpdateMonitor.isDeviceInteractive(); mMode = calculateMode(); mMode = mode; mHasScreenTurnedOnSinceAuthenticating = false; if (mMode == MODE_WAKE_AND_UNLOCK_PULSING && pulsingOrAod()) { // If we are waking the device up while we are pulsing the clock and the Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +20 −6 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ import android.widget.RemoteViews; import android.widget.TextView; import android.widget.Toast; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.graphics.ColorUtils; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -749,7 +750,7 @@ public class StatusBar extends SystemUI implements DemoMode, private SysuiColorExtractor mColorExtractor; private ForegroundServiceController mForegroundServiceController; private ScreenLifecycle mScreenLifecycle; private WakefulnessLifecycle mWakefulnessLifecycle; @VisibleForTesting WakefulnessLifecycle mWakefulnessLifecycle; private void recycleAllVisibilityObjects(ArraySet<NotificationVisibility> array) { final int N = array.size(); Loading Loading @@ -3787,6 +3788,15 @@ public class StatusBar extends SystemUI implements DemoMode, private void dismissKeyguardThenExecute(OnDismissAction action, Runnable cancelAction, boolean afterKeyguardGone) { if (mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_ASLEEP && mUnlockMethodCache.canSkipBouncer() && !mLeaveOpenOnKeyguardHide && isPulsing()) { // Reuse the fingerprint wake-and-unlock transition if we dismiss keyguard from a pulse. // TODO: Factor this transition out of FingerprintUnlockController. mFingerprintUnlockController.startWakeAndUnlock( FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING); } if (mStatusBarKeyguardViewManager.isShowing()) { mStatusBarKeyguardViewManager.dismissWithAction(action, cancelAction, afterKeyguardGone); Loading Loading @@ -4223,6 +4233,8 @@ public class StatusBar extends SystemUI implements DemoMode, public void showKeyguard() { mKeyguardRequested = true; mLeaveOpenOnKeyguardHide = false; mPendingRemoteInputView = null; updateIsKeyguard(); mAssistManager.onLockscreenShown(); } Loading Loading @@ -4273,13 +4285,11 @@ public class StatusBar extends SystemUI implements DemoMode, } updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */); updatePanelExpansionForKeyguard(); mLeaveOpenOnKeyguardHide = false; if (mDraggedDownRow != null) { mDraggedDownRow.setUserLocked(false); mDraggedDownRow.notifyHeightChanged(false /* needsAnimation */); mDraggedDownRow = null; } mPendingRemoteInputView = null; } private void updatePanelExpansionForKeyguard() { Loading Loading @@ -4419,15 +4429,19 @@ public class StatusBar extends SystemUI implements DemoMode, setBarState(StatusBarState.SHADE); View viewToClick = null; if (mLeaveOpenOnKeyguardHide) { if (!mKeyguardRequested) { mLeaveOpenOnKeyguardHide = false; } long delay = calculateGoingToFullShadeDelay(); mNotificationPanel.animateToFullShade(delay); if (mDraggedDownRow != null) { mDraggedDownRow.setUserLocked(false); mDraggedDownRow = null; } if (!mKeyguardRequested) { viewToClick = mPendingRemoteInputView; mPendingRemoteInputView = null; } // Disable layout transitions in navbar for this transition because the load is just // too heavy for the CPU and GPU on any device. Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -156,7 +156,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb */ protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing) { if (mBouncer.needsFullscreenBouncer() && !mDozing) { // The keyguard might be showing (already). So we need to hide it. mStatusBar.hideKeyguard(); mBouncer.show(true /* resetSecuritySelection */); Loading @@ -167,6 +166,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBouncer.prepare(); } } updateStates(); } private void showBouncer() { Loading Loading @@ -250,7 +250,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb public void setDozing(boolean dozing) { if (mDozing != dozing) { mDozing = dozing; if (dozing || mBouncer.needsFullscreenBouncer() || mOccluded) { reset(dozing /* hideBouncerWhenShowing */); } updateStates(); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ import com.android.internal.logging.testing.FakeMetricsLogger; import com.android.internal.statusbar.IStatusBarService; import com.android.keyguard.KeyguardHostView.OnDismissAction; import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.statusbar.ActivatableNotificationView; import com.android.systemui.statusbar.CommandQueue; Loading Loading @@ -500,6 +501,14 @@ public class StatusBarTest extends SysuiTestCase { mSystemServicesProxy = ssp; mNotificationPanel = panelView; mBarService = barService; mWakefulnessLifecycle = createAwakeWakefulnessLifecycle(); } private WakefulnessLifecycle createAwakeWakefulnessLifecycle() { WakefulnessLifecycle wakefulnessLifecycle = new WakefulnessLifecycle(); wakefulnessLifecycle.dispatchStartedWakingUp(); wakefulnessLifecycle.dispatchFinishedWakingUp(); return wakefulnessLifecycle; } public void setBarStateForTest(int state) { Loading