Fix spinner horizontal offset
Spinner dropdown will now take into account the offset set via
setDropDownHorizontalOffset.
Also, moved LocaleTestUtils from viewpager2 to testutils.
Bug: 80068491
Test: ./gradlew :appcompat:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.class=androidx.appcompat.widget.AppCompatSpinnerTest
Test: ./gradlew :internal-testutils:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.class=androidx.testutils.LocaleTestUtilsTest
Change-Id: I681acd7b89bafd52a6ed40f07ade3b62d25c6ca9
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java b/appcompat/src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java
index 1b20e5c..1827727 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java
@@ -27,6 +27,7 @@
import androidx.appcompat.app.AppCompatCallback;
import androidx.appcompat.test.R;
import androidx.appcompat.view.ActionMode;
+import androidx.testutils.LocaleTestUtils;
import androidx.testutils.RecreatedAppCompatActivity;
public abstract class BaseTestActivity extends RecreatedAppCompatActivity {
@@ -48,10 +49,19 @@
private boolean mDestroyed;
private AppCompatCallback mAppCompatCallback;
+ private static final String EXTRA_LANGUAGE = "language";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
+ final LocaleTestUtils locale = new LocaleTestUtils(this);
+ if (getIntent().hasExtra(EXTRA_LANGUAGE)) {
+ locale.setLocale(LocaleTestUtils.RTL_LANGUAGE);
+ } else {
+ locale.setLocale(LocaleTestUtils.DEFAULT_TEST_LANGUAGE);
+ }
+
overridePendingTransition(0, 0);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
final int contentView = getContentViewLayoutResId();
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatSpinnerTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatSpinnerTest.java
index 7c45fa9..dea4a0f6 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatSpinnerTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatSpinnerTest.java
@@ -32,8 +32,11 @@
import static org.junit.Assert.assertTrue;
import android.app.Instrumentation;
+import android.content.Context;
+import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
+import android.os.Build;
import android.os.SystemClock;
import android.view.View;
@@ -51,10 +54,14 @@
import androidx.test.espresso.action.Swipe;
import androidx.test.filters.LargeTest;
import androidx.test.filters.MediumTest;
+import androidx.test.filters.SdkSuppress;
import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.testutils.LocaleTestUtils;
import androidx.testutils.PollingCheck;
+import org.hamcrest.Description;
import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
import org.junit.After;
import org.junit.Test;
@@ -65,7 +72,7 @@
@LargeTest
public class AppCompatSpinnerTest
extends AppCompatBaseViewTest<AppCompatSpinnerActivity, AppCompatSpinner> {
- private static final String EARTH = "Earth";
+ private static final String ONE = "1";
private Instrumentation mInstrumentation;
public AppCompatSpinnerTest() {
@@ -138,13 +145,11 @@
waitUntilPopupIsHidden(spinner);
}
- @LargeTest
@Test
public void testPopupThemingFromXmlAttribute() {
verifySpinnerPopupTheming(R.id.view_magenta_themed_popup, R.color.test_magenta, true);
}
- @LargeTest
@Test
public void testUnthemedPopupRuntimeTheming() {
final AppCompatSpinner spinner =
@@ -158,7 +163,6 @@
verifySpinnerPopupTheming(R.id.view_unthemed_popup, R.color.test_green, false);
}
- @LargeTest
@Test
public void testThemedPopupRuntimeTheming() {
final AppCompatSpinner spinner =
@@ -191,13 +195,11 @@
assertThat(dialogPopup.mPopup, instanceOf(AlertDialog.class));
}
- @LargeTest
@Test
public void testChangeOrientationDialogPopupPersists() {
verifyChangeOrientationPopupPersists(R.id.spinner_dialog_popup, true);
}
- @LargeTest
@Test
public void testChangeOrientationDropdownPopupPersists() {
verifyChangeOrientationPopupPersists(R.id.spinner_dropdown_popup, false);
@@ -213,10 +215,11 @@
Instrumentation.ActivityMonitor monitor =
new Instrumentation.ActivityMonitor(mActivity.getClass().getName(), null, false);
mInstrumentation.addMonitor(monitor);
+
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
SystemClock.sleep(250);
- mInstrumentation.waitForIdleSync();
+ mInstrumentation.waitForIdleSync();
mActivity = (AppCompatSpinnerActivity) mInstrumentation.waitForMonitor(monitor);
// Now we can get the new (post-rotation) instance of our spinner
@@ -225,7 +228,6 @@
assertTrue(newSpinner.getInternalPopup().isShowing());
}
- @LargeTest
@Test
public void testSlowScroll() {
final AppCompatSpinner spinner = mContainer
@@ -247,6 +249,69 @@
onView(withText(secondItem)).check(doesNotExist());
}
+ @Test
+ public void testHorizontalOffset() {
+ checkOffsetIsCorrect(500, false, false);
+ }
+
+ @Test
+ @SdkSuppress(minSdkVersion = Build.VERSION_CODES.JELLY_BEAN_MR1)
+ public void testHorizontalOffsetRtl() {
+ setRtl();
+ checkOffsetIsCorrect(200, false, true);
+ }
+
+ @Test
+ public void testVerticalOffset() {
+ checkOffsetIsCorrect(100, true, false);
+ }
+
+ private void checkOffsetIsCorrect(
+ final int offset,
+ final boolean isVerticalOffset,
+ final boolean isRtl) {
+ int spinnerId = R.id.spinner_dropdown_popup_small;
+
+ final AppCompatSpinner spinner = mContainer.findViewById(spinnerId);
+ if (isVerticalOffset) {
+ spinner.setDropDownVerticalOffset(offset);
+ } else {
+ spinner.setDropDownHorizontalOffset(offset);
+ }
+
+ onView(withId(spinnerId)).perform(click());
+ SystemClock.sleep(250);
+
+ int computedOffset;
+ if (isVerticalOffset) {
+ int[] location = new int[2];
+ spinner.getLocationOnScreen(location);
+
+ computedOffset = location[1] + offset;
+ } else {
+ if (isRtl) {
+ int[] location = new int[2];
+ spinner.getLocationOnScreen(location);
+ final AppCompatSpinner.SpinnerPopup spinnerPopup = spinner.getInternalPopup();
+ AppCompatSpinner.DropdownPopup dropdownPopup =
+ (AppCompatSpinner.DropdownPopup) (spinnerPopup);
+ final int popupWidth = dropdownPopup.getWidth();
+ final int spinnerWidth = spinner.getWidth();
+
+ computedOffset = location[0] + (spinnerWidth - popupWidth - offset);
+ } else {
+ computedOffset = offset;
+ }
+ }
+
+ onView(withText(ONE)).check(matches(
+ hasOffset(
+ computedOffset,
+ isVerticalOffset ? "has vertical offset" : "has horizontal offset",
+ isVerticalOffset)
+ ));
+ }
+
private ViewAction slowScrollPopup() {
return new GeneralSwipeAction(Swipe.SLOW,
new CoordinatesProvider() {
@@ -314,4 +379,50 @@
}
});
}
+
+ private Matcher<View> hasOffset(
+ final int offset,
+ final String desc,
+ final boolean isVerticalOffset) {
+ return new TypeSafeMatcher<View>() {
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText(desc);
+ }
+
+ @Override
+ protected boolean matchesSafely(View view) {
+ if (view.getParent() instanceof DropDownListView) {
+ final DropDownListView dropDownListView = (DropDownListView) (view.getParent());
+ int[] location = new int[2];
+ dropDownListView.getLocationOnScreen(location);
+ dropDownListView.getWidth();
+ return location[isVerticalOffset ? 1 : 0] == offset;
+ }
+
+ return false;
+ }
+ };
+ }
+
+ private void setRtl() {
+ final Context context = mInstrumentation.getTargetContext();
+
+ mActivity.finish();
+ final Intent intent = new Intent(context, AppCompatSpinnerActivity.class);
+ intent.putExtra("language", LocaleTestUtils.RTL_LANGUAGE);
+
+ Instrumentation.ActivityMonitor monitor =
+ new Instrumentation.ActivityMonitor(mActivity.getClass().getName(), null, false);
+ mInstrumentation.addMonitor(monitor);
+
+ mActivity = mActivityTestRule.launchActivity(intent);
+
+ mInstrumentation.waitForIdleSync();
+ mInstrumentation.waitForMonitor(monitor);
+
+ mContainer = mActivity.findViewById(R.id.container);
+ mResources = mActivity.getResources();
+ }
}
diff --git a/appcompat/src/androidTest/res/layout/appcompat_spinner_activity.xml b/appcompat/src/androidTest/res/layout/appcompat_spinner_activity.xml
index 534048e..2378f9b 100644
--- a/appcompat/src/androidTest/res/layout/appcompat_spinner_activity.xml
+++ b/appcompat/src/androidTest/res/layout/appcompat_spinner_activity.xml
@@ -116,6 +116,15 @@
android:entries="@array/numbers_array"
android:focusable="false"
android:spinnerMode="dropdown" />
+
+ <androidx.appcompat.widget.AppCompatSpinner
+ android:id="@+id/spinner_dropdown_popup_small"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:entries="@array/numbers_array_small"
+ android:popupBackground="@null"
+ android:focusable="false"
+ android:spinnerMode="dropdown" />
</LinearLayout>
</ScrollView>
diff --git a/appcompat/src/androidTest/res/values/strings.xml b/appcompat/src/androidTest/res/values/strings.xml
index 0188024..9b0c971 100644
--- a/appcompat/src/androidTest/res/values/strings.xml
+++ b/appcompat/src/androidTest/res/values/strings.xml
@@ -120,6 +120,11 @@
<item>38</item>
<item>39</item>
</string-array>
+ <string-array name="numbers_array_small">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
<string name="night_mode">DAY</string>
diff --git a/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java b/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
index 1033e46..01d7375 100644
--- a/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
+++ b/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
@@ -347,6 +347,7 @@
@Override
public void setDropDownHorizontalOffset(int pixels) {
if (mPopup != null) {
+ mPopup.setHorizontalOriginalOffset(pixels);
mPopup.setHorizontalOffset(pixels);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
super.setDropDownHorizontalOffset(pixels);
@@ -836,6 +837,8 @@
void setBackgroundDrawable(Drawable bg);
void setVerticalOffset(int px);
void setHorizontalOffset(int px);
+ void setHorizontalOriginalOffset(int px);
+ int getHorizontalOriginalOffset();
Drawable getBackground();
int getVerticalOffset();
int getHorizontalOffset();
@@ -933,12 +936,24 @@
public int getHorizontalOffset() {
return 0;
}
+
+ @Override
+ public void setHorizontalOriginalOffset(int px) {
+ Log.e(TAG, "Cannot set horizontal (original) offset for MODE_DIALOG, ignoring");
+ }
+
+ @Override
+ public int getHorizontalOriginalOffset() {
+ return 0;
+ }
}
- private class DropdownPopup extends ListPopupWindow implements SpinnerPopup {
+ @VisibleForTesting
+ class DropdownPopup extends ListPopupWindow implements SpinnerPopup {
private CharSequence mHintText;
ListAdapter mAdapter;
private final Rect mVisibleRect = new Rect();
+ private int mOriginalHorizontalOffset;
public DropdownPopup(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
@@ -1007,9 +1022,10 @@
setContentWidth(mDropDownWidth);
}
if (ViewUtils.isLayoutRtl(AppCompatSpinner.this)) {
- hOffset += spinnerWidth - spinnerPaddingRight - getWidth();
+ hOffset += spinnerWidth - spinnerPaddingRight - getWidth()
+ - getHorizontalOriginalOffset();
} else {
- hOffset += spinnerPaddingLeft;
+ hOffset += spinnerPaddingLeft + getHorizontalOriginalOffset();
}
setHorizontalOffset(hOffset);
}
@@ -1075,5 +1091,15 @@
boolean isVisibleToUser(View view) {
return ViewCompat.isAttachedToWindow(view) && view.getGlobalVisibleRect(mVisibleRect);
}
+
+ @Override
+ public void setHorizontalOriginalOffset(int px) {
+ mOriginalHorizontalOffset = px;
+ }
+
+ @Override
+ public int getHorizontalOriginalOffset() {
+ return mOriginalHorizontalOffset;
+ }
}
}
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt b/testutils/src/androidTest/java/androidx/testutils/LocaleTestUtilsTest.kt
similarity index 74%
rename from viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt
rename to testutils/src/androidTest/java/androidx/testutils/LocaleTestUtilsTest.kt
index a10fd14..433d6de 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt
+++ b/testutils/src/androidTest/java/androidx/testutils/LocaleTestUtilsTest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 The Android Open Source Project
+ * Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.viewpager2
+package androidx.testutils
import android.content.Context
import android.content.res.Configuration
@@ -25,10 +25,10 @@
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
-import org.hamcrest.CoreMatchers.equalTo
+import org.hamcrest.CoreMatchers
import org.hamcrest.Matchers
import org.junit.After
-import org.junit.Assert.assertThat
+import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -40,7 +40,8 @@
@RunWith(AndroidJUnit4::class)
@LargeTest
class LocaleTestUtilsTest {
- private val configuration: Configuration get() =
+ private val configuration: Configuration
+ get() =
(ApplicationProvider.getApplicationContext() as Context).resources.configuration
private val Configuration.language: String get() =
ConfigurationCompat.getLocales(this).get(0).toString()
@@ -51,7 +52,8 @@
@Before
fun setUp() {
localeUtil = LocaleTestUtils(
- ApplicationProvider.getApplicationContext() as android.content.Context)
+ ApplicationProvider.getApplicationContext() as Context
+ )
determineDefaultLayoutDirection()
}
@@ -84,12 +86,24 @@
val getReason: (String, String) -> String = { name, code ->
"$name test language '$code' does not exist on test device"
}
- assertThat(getReason("Default", LocaleTestUtils.DEFAULT_TEST_LANGUAGE),
- LocaleTestUtils.DEFAULT_TEST_LANGUAGE, Matchers.isIn(availableLanguages))
- assertThat(getReason("LTR", LocaleTestUtils.LTR_LANGUAGE),
- LocaleTestUtils.LTR_LANGUAGE, Matchers.isIn(availableLanguages))
- assertThat(getReason("RTL", LocaleTestUtils.RTL_LANGUAGE),
- LocaleTestUtils.RTL_LANGUAGE, Matchers.isIn(availableLanguages))
+ Assert.assertThat(
+ getReason(
+ "Default",
+ LocaleTestUtils.DEFAULT_TEST_LANGUAGE
+ ),
+ LocaleTestUtils.DEFAULT_TEST_LANGUAGE,
+ Matchers.isIn(availableLanguages)
+ )
+ Assert.assertThat(
+ getReason("LTR", LocaleTestUtils.LTR_LANGUAGE),
+ LocaleTestUtils.LTR_LANGUAGE,
+ Matchers.isIn(availableLanguages)
+ )
+ Assert.assertThat(
+ getReason("RTL", LocaleTestUtils.RTL_LANGUAGE),
+ LocaleTestUtils.RTL_LANGUAGE,
+ Matchers.isIn(availableLanguages)
+ )
}
private fun assertDefaultValues() {
@@ -97,25 +111,25 @@
}
private fun assertLocaleIs(lang: String, expectRtl: Boolean) {
- assertThat(
+ Assert.assertThat(
"Locale should be $lang",
configuration.language,
- equalTo(lang)
+ CoreMatchers.equalTo(lang)
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
- assertThat(
+ Assert.assertThat(
"Layout direction should be ${if (expectRtl) "RTL" else "LTR"}",
configuration.layoutDirection,
- equalTo(if (expectRtl) LAYOUT_DIRECTION_RTL else LAYOUT_DIRECTION_LTR)
+ CoreMatchers.equalTo(if (expectRtl) LAYOUT_DIRECTION_RTL else LAYOUT_DIRECTION_LTR)
)
}
}
private fun determineDefaultLayoutDirection() {
- assertThat(
+ Assert.assertThat(
"Locale must still be the default when determining the default layout direction",
configuration.language,
- equalTo(DEFAULT_LANGUAGE)
+ CoreMatchers.equalTo(DEFAULT_LANGUAGE)
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
expectRtlInDefaultLanguage = configuration.layoutDirection == LAYOUT_DIRECTION_RTL
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtils.kt b/testutils/src/main/java/androidx/testutils/LocaleTestUtils.kt
similarity index 98%
rename from viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtils.kt
rename to testutils/src/main/java/androidx/testutils/LocaleTestUtils.kt
index 6ca6392..e2e4c4e 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtils.kt
+++ b/testutils/src/main/java/androidx/testutils/LocaleTestUtils.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 The Android Open Source Project
+ * Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.viewpager2
+package androidx.testutils
import android.content.Context
import android.content.res.Configuration
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
index 42d38bc..ba7dfdb 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
@@ -41,7 +41,7 @@
import androidx.test.rule.ActivityTestRule
import androidx.testutils.AppCompatActivityUtils
import androidx.testutils.FragmentActivityUtils.waitForActivityDrawn
-import androidx.viewpager2.LocaleTestUtils
+import androidx.testutils.LocaleTestUtils
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.test.R
import androidx.viewpager2.widget.ViewPager2.ORIENTATION_HORIZONTAL
@@ -84,7 +84,8 @@
@Before
open fun setUp() {
localeUtil = LocaleTestUtils(
- ApplicationProvider.getApplicationContext() as android.content.Context)
+ ApplicationProvider.getApplicationContext() as android.content.Context
+ )
// Ensure a predictable test environment by explicitly setting a locale
localeUtil.setLocale(LocaleTestUtils.DEFAULT_TEST_LANGUAGE)
}
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt
index c3e93b9..a7a4e17 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/FakeDragTest.kt
@@ -24,7 +24,7 @@
import androidx.core.view.animation.PathInterpolatorCompat
import androidx.test.filters.LargeTest
import androidx.testutils.FragmentActivityUtils.waitForCycles
-import androidx.viewpager2.LocaleTestUtils
+import androidx.testutils.LocaleTestUtils
import androidx.viewpager2.widget.BaseTest.Context.SwipeMethod
import androidx.viewpager2.widget.FakeDragTest.Event.OnPageScrollStateChangedEvent
import androidx.viewpager2.widget.FakeDragTest.Event.OnPageScrolledEvent
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt
index 6eab611..8fae152 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OffscreenPageLimitTest.kt
@@ -20,7 +20,7 @@
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import androidx.test.filters.LargeTest
-import androidx.viewpager2.LocaleTestUtils
+import androidx.testutils.LocaleTestUtils
import androidx.viewpager2.widget.OffscreenPageLimitTest.Event.OnChildViewAdded
import androidx.viewpager2.widget.OffscreenPageLimitTest.Event.OnChildViewRemoved
import androidx.viewpager2.widget.OffscreenPageLimitTest.Event.OnPageScrollStateChangedEvent
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt
index fc0b31a..9dfefab 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeCallbackTest.kt
@@ -22,9 +22,9 @@
import androidx.recyclerview.widget.RecyclerView
import androidx.test.core.app.ApplicationProvider
import androidx.test.filters.LargeTest
+import androidx.testutils.LocaleTestUtils
import androidx.testutils.PollingCheck
import androidx.viewpager.widget.ViewPager
-import androidx.viewpager2.LocaleTestUtils
import androidx.viewpager2.widget.BaseTest.Context.SwipeMethod
import androidx.viewpager2.widget.PageChangeCallbackTest.Event.MarkerEvent
import androidx.viewpager2.widget.PageChangeCallbackTest.Event.OnPageScrollStateChangedEvent
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/swipe/TestActivity.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/swipe/TestActivity.kt
index 411285e..3b53100 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/swipe/TestActivity.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/swipe/TestActivity.kt
@@ -17,8 +17,8 @@
package androidx.viewpager2.widget.swipe
import android.os.Bundle
+import androidx.testutils.LocaleTestUtils
import androidx.testutils.RecreatedAppCompatActivity
-import androidx.viewpager2.LocaleTestUtils
import androidx.viewpager2.test.R
class TestActivity : RecreatedAppCompatActivity() {