Merge "Fixed Shade freezing when tapped while collapsing" into tm-qpr-dev am: 3d0ea920d1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20090883 Change-Id: I209a1aabddc17baa8b75f978bc12d7843e90511e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1443,6 +1443,16 @@ public final class NotificationPanelViewController {
|
||||
mMaxAllowedKeyguardNotifications = maxAllowed;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
boolean getClosing() {
|
||||
return mClosing;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
boolean getIsFlinging() {
|
||||
return mIsFlinging;
|
||||
}
|
||||
|
||||
private void updateMaxDisplayedNotifications(boolean recompute) {
|
||||
if (recompute) {
|
||||
setMaxDisplayedNotifications(Math.max(computeMaxKeyguardNotifications(), 1));
|
||||
@@ -3718,6 +3728,11 @@ public final class NotificationPanelViewController {
|
||||
setListening(true);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setTouchSlopExceeded(boolean isTouchSlopExceeded) {
|
||||
mTouchSlopExceeded = isTouchSlopExceeded;
|
||||
}
|
||||
|
||||
public void setOverExpansion(float overExpansion) {
|
||||
if (overExpansion == mOverExpansion) {
|
||||
return;
|
||||
@@ -4778,6 +4793,7 @@ public final class NotificationPanelViewController {
|
||||
mAmbientState.setSwipingUp(false);
|
||||
if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
|
||||
|| Math.abs(y - mInitialExpandY) > mTouchSlop
|
||||
|| (!isFullyExpanded() && !isFullyCollapsed())
|
||||
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
||||
mVelocityTracker.computeCurrentVelocity(1000);
|
||||
float vel = mVelocityTracker.getYVelocity();
|
||||
|
||||
@@ -756,6 +756,38 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
assertThat(mNotificationPanelViewController.isTracking()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnTouchEvent_expansionResumesAfterBriefTouch() {
|
||||
// Start shade collapse with swipe up
|
||||
onTouchEvent(MotionEvent.obtain(0L /* downTime */,
|
||||
0L /* eventTime */, MotionEvent.ACTION_DOWN, 0f /* x */, 0f /* y */,
|
||||
0 /* metaState */));
|
||||
onTouchEvent(MotionEvent.obtain(0L /* downTime */,
|
||||
0L /* eventTime */, MotionEvent.ACTION_MOVE, 0f /* x */, 300f /* y */,
|
||||
0 /* metaState */));
|
||||
onTouchEvent(MotionEvent.obtain(0L /* downTime */,
|
||||
0L /* eventTime */, MotionEvent.ACTION_UP, 0f /* x */, 300f /* y */,
|
||||
0 /* metaState */));
|
||||
|
||||
assertThat(mNotificationPanelViewController.getClosing()).isTrue();
|
||||
assertThat(mNotificationPanelViewController.getIsFlinging()).isTrue();
|
||||
|
||||
// simulate touch that does not exceed touch slop
|
||||
onTouchEvent(MotionEvent.obtain(2L /* downTime */,
|
||||
2L /* eventTime */, MotionEvent.ACTION_DOWN, 0f /* x */, 300f /* y */,
|
||||
0 /* metaState */));
|
||||
|
||||
mNotificationPanelViewController.setTouchSlopExceeded(false);
|
||||
|
||||
onTouchEvent(MotionEvent.obtain(2L /* downTime */,
|
||||
2L /* eventTime */, MotionEvent.ACTION_UP, 0f /* x */, 300f /* y */,
|
||||
0 /* metaState */));
|
||||
|
||||
// fling should still be called after a touch that does not exceed touch slop
|
||||
assertThat(mNotificationPanelViewController.getClosing()).isTrue();
|
||||
assertThat(mNotificationPanelViewController.getIsFlinging()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleTouchEventFromStatusBar_panelsNotEnabled_returnsFalseAndNoViewEvent() {
|
||||
when(mCommandQueue.panelsEnabled()).thenReturn(false);
|
||||
|
||||
Reference in New Issue
Block a user