Merge "Don't set expansion for downward (upward) scroll when the bouncer is hidden (shown)." into tm-dev am: 81a5f75d0f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17533603

Change-Id: Idab216c271a73ac4bcc77ca5dd6d02d8395f1ccb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Xiaowen Lei
2022-04-04 16:28:07 +00:00
committed by Automerger Merge Worker
2 changed files with 16 additions and 20 deletions

View File

@@ -117,15 +117,23 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
return false;
}
// Don't set expansion for downward scroll when the bouncer is hidden.
if (!mBouncerInitiallyShowing && (e1.getY() < e2.getY())) {
return true;
}
// Don't set expansion for upward scroll when the bouncer is shown.
if (mBouncerInitiallyShowing && (e1.getY() > e2.getY())) {
return true;
}
// For consistency, we adopt the expansion definition found in the
// PanelViewController. In this case, expansion refers to the view above the
// bouncer. As that view's expansion shrinks, the bouncer appears. The bouncer
// is fully hidden at full expansion (1) and fully visible when fully collapsed
// (0).
final float dy = mBouncerInitiallyShowing ? e2.getY() - e1.getY()
: e1.getY() - e2.getY();
final float screenTravelPercentage = Math.max(0,
dy / mCentralSurfaces.getDisplayHeight());
final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY())
/ mCentralSurfaces.getDisplayHeight();
setPanelExpansion(mBouncerInitiallyShowing
? screenTravelPercentage : 1 - screenTravelPercentage);
return true;

View File

@@ -169,7 +169,7 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
* Makes sure swiping up when bouncer initially showing doesn't change the expansion amount.
*/
@Test
public void testSwipeUp_whenBouncerInitiallyShowing_keepsExpansionAtZero() {
public void testSwipeUp_whenBouncerInitiallyShowing_doesNotSetExpansion() {
when(mCentralSurfaces.isBouncerShowing()).thenReturn(true);
mTouchHandler.onSessionStart(mTouchSession);
@@ -191,21 +191,15 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
assertThat(gestureListener.onScroll(event1, event2, 0, distanceY))
.isTrue();
// Ensure only called once
verify(mStatusBarKeyguardViewManager)
verify(mStatusBarKeyguardViewManager, never())
.onPanelExpansionChanged(anyFloat(), anyBoolean(), anyBoolean());
// TODO(b/227348372): update the logic and also this test.
// Ensure the expansion is kept at 0.
verify(mStatusBarKeyguardViewManager).onPanelExpansionChanged(eq(0f), eq(false),
eq(true));
}
/**
* Makes sure swiping down when bouncer initially hidden doesn't change the expansion amount.
*/
@Test
public void testSwipeDown_whenBouncerInitiallyHidden_keepsExpansionAtOne() {
public void testSwipeDown_whenBouncerInitiallyHidden_doesNotSetExpansion() {
mTouchHandler.onSessionStart(mTouchSession);
ArgumentCaptor<GestureDetector.OnGestureListener> gestureListenerCaptor =
ArgumentCaptor.forClass(GestureDetector.OnGestureListener.class);
@@ -225,14 +219,8 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
assertThat(gestureListener.onScroll(event1, event2, 0, distanceY))
.isTrue();
// Ensure only called once
verify(mStatusBarKeyguardViewManager)
verify(mStatusBarKeyguardViewManager, never())
.onPanelExpansionChanged(anyFloat(), anyBoolean(), anyBoolean());
// TODO(b/227348372): update the logic and also this test.
// Ensure the expansion is kept at 1.
verify(mStatusBarKeyguardViewManager).onPanelExpansionChanged(eq(1f), eq(false),
eq(true));
}
/**