Merge "Fixed Shade freezing when tapped while collapsing" into tm-qpr-dev
This commit is contained in:
@@ -1443,6 +1443,16 @@ public final class NotificationPanelViewController {
|
|||||||
mMaxAllowedKeyguardNotifications = maxAllowed;
|
mMaxAllowedKeyguardNotifications = maxAllowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean getClosing() {
|
||||||
|
return mClosing;
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean getIsFlinging() {
|
||||||
|
return mIsFlinging;
|
||||||
|
}
|
||||||
|
|
||||||
private void updateMaxDisplayedNotifications(boolean recompute) {
|
private void updateMaxDisplayedNotifications(boolean recompute) {
|
||||||
if (recompute) {
|
if (recompute) {
|
||||||
setMaxDisplayedNotifications(Math.max(computeMaxKeyguardNotifications(), 1));
|
setMaxDisplayedNotifications(Math.max(computeMaxKeyguardNotifications(), 1));
|
||||||
@@ -3718,6 +3728,11 @@ public final class NotificationPanelViewController {
|
|||||||
setListening(true);
|
setListening(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void setTouchSlopExceeded(boolean isTouchSlopExceeded) {
|
||||||
|
mTouchSlopExceeded = isTouchSlopExceeded;
|
||||||
|
}
|
||||||
|
|
||||||
public void setOverExpansion(float overExpansion) {
|
public void setOverExpansion(float overExpansion) {
|
||||||
if (overExpansion == mOverExpansion) {
|
if (overExpansion == mOverExpansion) {
|
||||||
return;
|
return;
|
||||||
@@ -4778,6 +4793,7 @@ public final class NotificationPanelViewController {
|
|||||||
mAmbientState.setSwipingUp(false);
|
mAmbientState.setSwipingUp(false);
|
||||||
if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
|
if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
|
||||||
|| Math.abs(y - mInitialExpandY) > mTouchSlop
|
|| Math.abs(y - mInitialExpandY) > mTouchSlop
|
||||||
|
|| (!isFullyExpanded() && !isFullyCollapsed())
|
||||||
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
||||||
mVelocityTracker.computeCurrentVelocity(1000);
|
mVelocityTracker.computeCurrentVelocity(1000);
|
||||||
float vel = mVelocityTracker.getYVelocity();
|
float vel = mVelocityTracker.getYVelocity();
|
||||||
|
|||||||
@@ -756,6 +756,38 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
|||||||
assertThat(mNotificationPanelViewController.isTracking()).isTrue();
|
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
|
@Test
|
||||||
public void handleTouchEventFromStatusBar_panelsNotEnabled_returnsFalseAndNoViewEvent() {
|
public void handleTouchEventFromStatusBar_panelsNotEnabled_returnsFalseAndNoViewEvent() {
|
||||||
when(mCommandQueue.panelsEnabled()).thenReturn(false);
|
when(mCommandQueue.panelsEnabled()).thenReturn(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user