Merge "Prevent touch event dispatch on the top edge when collapsed" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e354477990
@@ -4618,20 +4618,20 @@ public final class NotificationPanelViewController implements Dumpable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the view that would receive the touch is disabled, just have status bar
|
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
// eat the gesture.
|
// If the view that would receive the touch is disabled, just have status
|
||||||
if (event.getAction() == MotionEvent.ACTION_DOWN && !mView.isEnabled()) {
|
// bar eat the gesture.
|
||||||
Log.v(TAG,
|
if (!mView.isEnabled()) {
|
||||||
String.format(
|
mShadeLog.logMotionEvent(event,
|
||||||
"onTouchForwardedFromStatusBar: "
|
"onTouchForwardedFromStatusBar: panel view disabled");
|
||||||
+ "panel view disabled, eating touch at (%d,%d)",
|
|
||||||
(int) event.getX(),
|
|
||||||
(int) event.getY()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (isFullyCollapsed() && event.getY() < 1f) {
|
||||||
|
// b/235889526 Eat events on the top edge of the phone when collapsed
|
||||||
|
mShadeLog.logMotionEvent(event, "top edge touch ignored");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
return mView.dispatchTouchEvent(event);
|
return mView.dispatchTouchEvent(event);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -843,13 +843,24 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
|||||||
public void handleTouchEventFromStatusBar_panelAndViewEnabled_viewReceivesEvent() {
|
public void handleTouchEventFromStatusBar_panelAndViewEnabled_viewReceivesEvent() {
|
||||||
when(mCommandQueue.panelsEnabled()).thenReturn(true);
|
when(mCommandQueue.panelsEnabled()).thenReturn(true);
|
||||||
when(mView.isEnabled()).thenReturn(true);
|
when(mView.isEnabled()).thenReturn(true);
|
||||||
MotionEvent event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 0f, 0f, 0);
|
MotionEvent event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 0f, 2f, 0);
|
||||||
|
|
||||||
mNotificationPanelViewController.getStatusBarTouchEventHandler().handleTouchEvent(event);
|
mNotificationPanelViewController.getStatusBarTouchEventHandler().handleTouchEvent(event);
|
||||||
|
|
||||||
verify(mView).dispatchTouchEvent(event);
|
verify(mView).dispatchTouchEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void handleTouchEventFromStatusBar_topEdgeTouch_viewNeverReceivesEvent() {
|
||||||
|
when(mCommandQueue.panelsEnabled()).thenReturn(true);
|
||||||
|
when(mView.isEnabled()).thenReturn(true);
|
||||||
|
MotionEvent event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 0f, 0f, 0);
|
||||||
|
|
||||||
|
mNotificationPanelViewController.getStatusBarTouchEventHandler().handleTouchEvent(event);
|
||||||
|
|
||||||
|
verify(mView, never()).dispatchTouchEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testA11y_initializeNode() {
|
public void testA11y_initializeNode() {
|
||||||
AccessibilityNodeInfo nodeInfo = new AccessibilityNodeInfo();
|
AccessibilityNodeInfo nodeInfo = new AccessibilityNodeInfo();
|
||||||
|
|||||||
Reference in New Issue
Block a user