From e57e9dcadf9cd27a43dfc99638af586afbdf03e4 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 4 Aug 2017 10:59:13 -0400 Subject: [PATCH] Make NearestTouchFrameTest run on more device configurations Test: runtest systemui Change-Id: Ied095c1e884d1ca95531e2f4e182f1d1bcaaeb35 Fixes: 64339927 --- .../statusbar/phone/NearestTouchFrame.java | 9 ++++++- .../phone/NearestTouchFrameTest.java | 26 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NearestTouchFrame.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NearestTouchFrame.java index 8bc6563540120..004a6043ff940 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NearestTouchFrame.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NearestTouchFrame.java @@ -15,7 +15,9 @@ package com.android.systemui.statusbar.phone; import android.content.Context; +import android.content.res.Configuration; import android.graphics.Rect; +import android.support.annotation.VisibleForTesting; import android.util.AttributeSet; import android.util.Log; import android.util.Pair; @@ -42,8 +44,13 @@ public class NearestTouchFrame extends FrameLayout { private View mTouchingChild; public NearestTouchFrame(Context context, AttributeSet attrs) { + this(context, attrs, context.getResources().getConfiguration()); + } + + @VisibleForTesting + NearestTouchFrame(Context context, AttributeSet attrs, Configuration c) { super(context, attrs); - mIsActive = context.getResources().getConfiguration().smallestScreenWidthDp < 600; + mIsActive = c.smallestScreenWidthDp < 600; } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java index 577dc52e22908..ed1491d312948 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NearestTouchFrameTest.java @@ -18,10 +18,12 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.content.res.Configuration; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; @@ -43,7 +45,29 @@ public class NearestTouchFrameTest extends SysuiTestCase { @Before public void setup() { - mNearestTouchFrame = new NearestTouchFrame(mContext, null); + Configuration c = new Configuration(mContext.getResources().getConfiguration()); + c.smallestScreenWidthDp = 500; + mNearestTouchFrame = new NearestTouchFrame(mContext, null, c); + } + + @Test + public void testNoActionOnLargeDevices() { + Configuration c = new Configuration(mContext.getResources().getConfiguration()); + c.smallestScreenWidthDp = 700; + mNearestTouchFrame = new NearestTouchFrame(mContext, null, c); + + View left = mockViewAt(0, 0, 10, 10); + View right = mockViewAt(20, 0, 10, 10); + + 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)); + ev.recycle(); } @Test