Merge changes I901908d9,Iac9835ad into oc-dr1-dev am: 47aac56746

am: 7f5805d0aa

Change-Id: Iba30c1811f16ed01194755cd59b8c78af156eb9c
This commit is contained in:
Adrian Roos
2017-08-04 13:43:10 +00:00
committed by android-build-merger
4 changed files with 38 additions and 9 deletions

View File

@@ -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

View File

@@ -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;
@@ -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();
@@ -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);
@@ -4223,6 +4233,8 @@ public class StatusBar extends SystemUI implements DemoMode,
public void showKeyguard() {
mKeyguardRequested = true;
mLeaveOpenOnKeyguardHide = false;
mPendingRemoteInputView = null;
updateIsKeyguard();
mAssistManager.onLockscreenShown();
}
@@ -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() {
@@ -4419,15 +4429,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.

View File

@@ -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();
}
}

View File

@@ -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) {