Merge "Fix disabled views with nearest touch frame" into oc-mr1-dev

This commit is contained in:
Jason Monk
2017-09-07 12:48:02 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 1 deletions

View File

@@ -87,7 +87,8 @@ public class NearestTouchFrame extends FrameLayout {
if (mTouchingChild != null) {
event.offsetLocation(mTouchingChild.getWidth() / 2 - event.getX(),
mTouchingChild.getHeight() / 2 - event.getY());
return mTouchingChild.dispatchTouchEvent(event);
return mTouchingChild.getVisibility() == VISIBLE
&& mTouchingChild.dispatchTouchEvent(event);
}
}
return super.onTouchEvent(event);

View File

@@ -70,6 +70,24 @@ public class NearestTouchFrameTest extends SysuiTestCase {
ev.recycle();
}
@Test
public void testInvisibleViews() {
View left = mockViewAt(0, 0, 10, 10);
View right = mockViewAt(20, 0, 10, 10);
when(left.getVisibility()).thenReturn(View.INVISIBLE);
mNearestTouchFrame.addView(left);
mNearestTouchFrame.addView(right);
mNearestTouchFrame.onMeasure(0, 0);
MotionEvent ev = MotionEvent.obtain(0, 0, 0,
12 /* x */, 5 /* y */, 0);
mNearestTouchFrame.onTouchEvent(ev);
verify(left, never()).onTouchEvent(eq(ev));
verify(right, never()).onTouchEvent(eq(ev));
ev.recycle();
}
@Test
public void testHorizontalSelection_Left() {
View left = mockViewAt(0, 0, 10, 10);