Merge changes from topic "presubmit-am-1ed947fca7094fbbac88b82e8b541160-tm-qpr-dev" into tm-qpr-dev

* changes:
  Do not allow panel expansion with bouncer over dream.
  Revert "Do not allow panel expansion with bouncer over dream."
This commit is contained in:
Bryce Lee
2022-04-12 02:46:43 +00:00
committed by Android (Google) Code Review
4 changed files with 44 additions and 34 deletions

View File

@@ -144,9 +144,8 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
private void setPanelExpansion(float expansion) {
mCurrentExpansion = expansion;
mCentralSurfaces.setBouncerShowing(expansion != KeyguardBouncer.EXPANSION_HIDDEN);
mCentralSurfaces.setBouncerShowingOverDream(
mCurrentExpansion != KeyguardBouncer.EXPANSION_HIDDEN);
mStatusBarKeyguardViewManager.onPanelExpansionChanged(mCurrentExpansion, false, true);
}

View File

@@ -468,6 +468,7 @@ public class CentralSurfaces extends CoreStartable implements
*/
protected int mState; // TODO: remove this. Just use StatusBarStateController
protected boolean mBouncerShowing;
private boolean mBouncerShowingOverDream;
private final PhoneStatusBarPolicy mIconPolicy;
@@ -3467,7 +3468,19 @@ public class CentralSurfaces extends CoreStartable implements
mStatusBarHideIconsForBouncerManager.setBouncerShowingAndTriggerUpdate(bouncerShowing);
mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */);
updateScrimController();
updateNotificationPanelTouchState();
if (!mBouncerShowing) {
updatePanelExpansionForKeyguard();
}
}
/**
* Sets whether the bouncer over dream is showing. Note that the bouncer over dream is handled
* independently of the rest of the notification panel. As a result, setting this state via
* {@link #setBouncerShowing(boolean)} leads to unintended side effects from states modified
* behind the dream.
*/
public void setBouncerShowingOverDream(boolean bouncerShowingOverDream) {
mBouncerShowingOverDream = bouncerShowingOverDream;
}
/**
@@ -3612,13 +3625,10 @@ public class CentralSurfaces extends CoreStartable implements
* collapse the panel after we expanded it, and thus we would end up with a blank
* Keyguard.
*/
public void updateNotificationPanelTouchState() {
void updateNotificationPanelTouchState() {
boolean goingToSleepWithoutAnimation = isGoingToSleep()
&& !mDozeParameters.shouldControlScreenOff();
boolean bouncerShowingOverDream = isBouncerShowing()
&& mDreamOverlayStateController.isOverlayActive();
boolean disabled = bouncerShowingOverDream
|| (!mDeviceInteractive && !mDozeServiceHost.isPulsing())
boolean disabled = (!mDeviceInteractive && !mDozeServiceHost.isPulsing())
|| goingToSleepWithoutAnimation;
mNotificationPanelViewController.setTouchAndAnimationDisabled(disabled);
mNotificationIconAreaController.setAnimationsEnabled(!disabled);
@@ -4146,7 +4156,7 @@ public class CentralSurfaces extends CoreStartable implements
}
public boolean isBouncerShowingOverDream() {
return isBouncerShowing() && mDreamOverlayStateController.isOverlayActive();
return mBouncerShowingOverDream;
}
/**

View File

@@ -418,14 +418,14 @@ public abstract class PanelViewController {
expand = false;
} else if (onKeyguard) {
expand = true;
} else if (mCentralSurfaces.isBouncerShowingOverDream()) {
expand = false;
} else if (mKeyguardStateController.isKeyguardFadingAway()) {
// If we're in the middle of dismissing the keyguard, don't expand due to the
// cancelled gesture. Gesture cancellation during an unlock is expected in some
// situations, such keeping your finger down while swiping to unlock to an app
// that is locked in landscape (the rotation will cancel the touch event).
expand = false;
} else if (mCentralSurfaces.isBouncerShowingOverDream()) {
expand = false;
} else {
// If we get a cancel, put the shade back to the state it was in when the
// gesture started

View File

@@ -160,28 +160,6 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
2)).isTrue();
}
/**
* Ensures {@link CentralSurfaces}
*/
@Test
public void testInformBouncerShowingOnExpand() {
swipeToPosition(1f, Direction.UP, 0);
verify(mCentralSurfaces).setBouncerShowing(true);
}
/**
* Ensures {@link CentralSurfaces}
*/
@Test
public void testInformBouncerHidingOnCollapse() {
// Must swipe up to set initial state.
swipeToPosition(1f, Direction.UP, 0);
Mockito.clearInvocations(mCentralSurfaces);
swipeToPosition(0f, Direction.DOWN, 0);
verify(mCentralSurfaces).setBouncerShowing(false);
}
private enum Direction {
DOWN,
UP,
@@ -442,6 +420,29 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
verify(mUiEventLogger).log(BouncerSwipeTouchHandler.DreamEvent.DREAM_BOUNCER_FULLY_VISIBLE);
}
/**
* Ensures {@link CentralSurfaces}
*/
@Test
public void testInformBouncerShowingOnExpand() {
swipeToPosition(1f, Direction.UP, 0);
verify(mCentralSurfaces).setBouncerShowingOverDream(true);
}
/**
* Ensures {@link CentralSurfaces}
*/
@Test
public void testInformBouncerHidingOnCollapse() {
// Must swipe up to set initial state.
swipeToPosition(1f, Direction.UP, 0);
Mockito.clearInvocations(mCentralSurfaces);
swipeToPosition(0f, Direction.DOWN, 0);
verify(mCentralSurfaces).setBouncerShowingOverDream(false);
}
private void swipeToPosition(float percent, Direction direction, float velocityY) {
Mockito.clearInvocations(mTouchSession);
mTouchHandler.onSessionStart(mTouchSession);