Merge changes I901908d9,Iac9835ad into oc-dr1-dev
am: 47aac56746
Change-Id: I902d2775b0a94e65b1c05e5c551ecf590c74e48f
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -748,7 +749,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();
|
||||
@@ -3776,6 +3777,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);
|
||||
@@ -4212,6 +4222,8 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
|
||||
public void showKeyguard() {
|
||||
mKeyguardRequested = true;
|
||||
mLeaveOpenOnKeyguardHide = false;
|
||||
mPendingRemoteInputView = null;
|
||||
updateIsKeyguard();
|
||||
mAssistManager.onLockscreenShown();
|
||||
}
|
||||
@@ -4262,13 +4274,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() {
|
||||
@@ -4408,15 +4418,19 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
setBarState(StatusBarState.SHADE);
|
||||
View viewToClick = null;
|
||||
if (mLeaveOpenOnKeyguardHide) {
|
||||
mLeaveOpenOnKeyguardHide = false;
|
||||
if (!mKeyguardRequested) {
|
||||
mLeaveOpenOnKeyguardHide = false;
|
||||
}
|
||||
long delay = calculateGoingToFullShadeDelay();
|
||||
mNotificationPanel.animateToFullShade(delay);
|
||||
if (mDraggedDownRow != null) {
|
||||
mDraggedDownRow.setUserLocked(false);
|
||||
mDraggedDownRow = null;
|
||||
}
|
||||
viewToClick = mPendingRemoteInputView;
|
||||
mPendingRemoteInputView = 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.
|
||||
|
||||
@@ -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 */);
|
||||
@@ -167,6 +166,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
mBouncer.prepare();
|
||||
}
|
||||
}
|
||||
updateStates();
|
||||
}
|
||||
|
||||
private void showBouncer() {
|
||||
@@ -250,7 +250,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
public void setDozing(boolean dozing) {
|
||||
if (mDozing != dozing) {
|
||||
mDozing = dozing;
|
||||
reset(dozing /* hideBouncerWhenShowing */);
|
||||
if (dozing || mBouncer.needsFullscreenBouncer() || mOccluded) {
|
||||
reset(dozing /* hideBouncerWhenShowing */);
|
||||
}
|
||||
updateStates();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user