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

am: 2602127d55

Change-Id: Ib9be53d33e716bdde0895093c272892cb2562d59
This commit is contained in:
Jason Monk
2017-09-07 16:54:26 +00:00
committed by android-build-merger
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);