Merge "Clean up deprecation in androidx.viewpager, set deprecation as fatal" into androidx-master-dev
am: 4a94e2dcaa

Change-Id: I8f7c70df047523196dc64020dca2e37bb5ad517e
diff --git a/viewpager/build.gradle b/viewpager/build.gradle
index 0c3a19f..3abbc19 100644
--- a/viewpager/build.gradle
+++ b/viewpager/build.gradle
@@ -29,5 +29,4 @@
     mavenGroup = LibraryGroups.VIEWPAGER
     inceptionYear = "2018"
     description = "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later."
-    failOnDeprecationWarnings = false
 }
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
index 65408bf..4bf3926 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
@@ -26,8 +26,8 @@
 import static androidx.test.espresso.action.ViewActions.pressKey;
 import static androidx.test.espresso.action.ViewActions.swipeLeft;
 import static androidx.test.espresso.action.ViewActions.swipeRight;
-import static androidx.test.espresso.assertion.PositionAssertions.isBelow;
 import static androidx.test.espresso.assertion.PositionAssertions.isBottomAlignedWith;
+import static androidx.test.espresso.assertion.PositionAssertions.isCompletelyBelow;
 import static androidx.test.espresso.assertion.PositionAssertions.isLeftAlignedWith;
 import static androidx.test.espresso.assertion.PositionAssertions.isRightAlignedWith;
 import static androidx.test.espresso.assertion.PositionAssertions.isTopAlignedWith;
@@ -574,7 +574,7 @@
         // the title strip
         onView(withId(selectedPageId)).check(isLeftAlignedWith(withId(R.id.pager)));
         onView(withId(selectedPageId)).check(isRightAlignedWith(withId(R.id.pager)));
-        onView(withId(selectedPageId)).check(isBelow(withId(R.id.titles)));
+        onView(withId(selectedPageId)).check(isCompletelyBelow(withId(R.id.titles)));
         onView(withId(selectedPageId)).check(isBottomAlignedWith(withId(R.id.pager)));
 
         boolean hasStartTitle = !TextUtils.isEmpty(expectedStartTitle);
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerActions.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerActions.java
index ff7252d..b3205da 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerActions.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerActions.java
@@ -23,7 +23,7 @@
 import android.widget.TextView;
 
 import androidx.annotation.Nullable;
-import androidx.test.espresso.Espresso;
+import androidx.test.espresso.IdlingRegistry;
 import androidx.test.espresso.IdlingResource;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
@@ -124,14 +124,14 @@
                 try {
                     // Register our listener as idling resource so that Espresso waits until the
                     // wrapped action results in the view pager getting to the STATE_IDLE state
-                    Espresso.registerIdlingResources(customListener);
+                    IdlingRegistry.getInstance().register(customListener);
                     baseAction.perform(uiController, view);
                     customListener.mNeedsIdle = true;
                     uiController.loopMainThreadUntilIdle();
                     customListener.mNeedsIdle = false;
                 } finally {
                     // Unregister our idling resource
-                    Espresso.unregisterIdlingResources(customListener);
+                    IdlingRegistry.getInstance().unregister(customListener);
                     // And remove our tracker listener from ViewPager
                     viewPager.removeOnPageChangeListener(customListener);
                 }
@@ -383,6 +383,8 @@
                         }
                     }
                 },
-                Press.FINGER);
+                Press.FINGER,
+                0,
+                0);
     }
 }
diff --git a/viewpager/src/main/java/androidx/viewpager/widget/PagerAdapter.java b/viewpager/src/main/java/androidx/viewpager/widget/PagerAdapter.java
index dd708c5..bfd8977 100644
--- a/viewpager/src/main/java/androidx/viewpager/widget/PagerAdapter.java
+++ b/viewpager/src/main/java/androidx/viewpager/widget/PagerAdapter.java
@@ -95,6 +95,7 @@
      * @param container The containing View which is displaying this adapter's
      * page views.
      */
+    @SuppressWarnings("deprecation")
     public void startUpdate(@NonNull ViewGroup container) {
         startUpdate((View) container);
     }
@@ -110,6 +111,7 @@
      * @return Returns an Object representing the new page.  This does not
      * need to be a View, but can be some other container of the page.
      */
+    @SuppressWarnings("deprecation")
     @NonNull
     public Object instantiateItem(@NonNull ViewGroup container, int position) {
         return instantiateItem((View) container, position);
@@ -125,6 +127,7 @@
      * @param object The same object that was returned by
      * {@link #instantiateItem(View, int)}.
      */
+    @SuppressWarnings("deprecation")
     public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
         destroyItem((View) container, position, object);
     }
@@ -139,6 +142,7 @@
      * @param object The same object that was returned by
      * {@link #instantiateItem(View, int)}.
      */
+    @SuppressWarnings("deprecation")
     public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
         setPrimaryItem((View) container, position, object);
     }
diff --git a/viewpager/src/main/java/androidx/viewpager/widget/PagerTabStrip.java b/viewpager/src/main/java/androidx/viewpager/widget/PagerTabStrip.java
index d90bf59..bb45d9e 100644
--- a/viewpager/src/main/java/androidx/viewpager/widget/PagerTabStrip.java
+++ b/viewpager/src/main/java/androidx/viewpager/widget/PagerTabStrip.java
@@ -170,6 +170,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation")
     public void setBackgroundDrawable(Drawable d) {
         super.setBackgroundDrawable(d);
         if (!mDrawFullUnderlineSet) {
@@ -280,21 +281,9 @@
 
     @Override
     void updateTextPositions(int position, float positionOffset, boolean force) {
-        final Rect r = mTempRect;
-        int bottom = getHeight();
-        int left = mCurrText.getLeft() - mTabPadding;
-        int right = mCurrText.getRight() + mTabPadding;
-        int top = bottom - mIndicatorHeight;
-
-        r.set(left, top, right, bottom);
-
         super.updateTextPositions(position, positionOffset, force);
         mTabAlpha = (int) (Math.abs(positionOffset - 0.5f) * 2 * 0xFF);
 
-        left = mCurrText.getLeft() - mTabPadding;
-        right = mCurrText.getRight() + mTabPadding;
-        r.union(left, top, right, bottom);
-
-        invalidate(r);
+        invalidate();
     }
 }
diff --git a/viewpager/src/main/java/androidx/viewpager/widget/PagerTitleStrip.java b/viewpager/src/main/java/androidx/viewpager/widget/PagerTitleStrip.java
index f5bfbea..c9c5089 100644
--- a/viewpager/src/main/java/androidx/viewpager/widget/PagerTitleStrip.java
+++ b/viewpager/src/main/java/androidx/viewpager/widget/PagerTitleStrip.java
@@ -91,6 +91,7 @@
     private static class SingleLineAllCapsTransform extends SingleLineTransformationMethod {
         private Locale mLocale;
 
+        @SuppressWarnings("deprecation")
         SingleLineAllCapsTransform(Context context) {
             mLocale = context.getResources().getConfiguration().locale;
         }
diff --git a/viewpager/src/main/java/androidx/viewpager/widget/ViewPager.java b/viewpager/src/main/java/androidx/viewpager/widget/ViewPager.java
index d7a25bc..953928c 100644
--- a/viewpager/src/main/java/androidx/viewpager/widget/ViewPager.java
+++ b/viewpager/src/main/java/androidx/viewpager/widget/ViewPager.java
@@ -16,7 +16,6 @@
 
 package androidx.viewpager.widget;
 
-import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
@@ -54,7 +53,6 @@
 import androidx.core.view.AccessibilityDelegateCompat;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowInsetsCompat;
-import androidx.core.view.accessibility.AccessibilityEventCompat;
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 import androidx.customview.view.AbsSavedState;
 
@@ -110,8 +108,6 @@
     private static final String TAG = "ViewPager";
     private static final boolean DEBUG = false;
 
-    private static final boolean USE_CACHE = false;
-
     private static final int DEFAULT_OFFSCREEN_PAGES = 1;
     private static final int MAX_SETTLE_DURATION = 600; // ms
     private static final int MIN_DISTANCE_FOR_FLING = 25; // dips
@@ -1477,14 +1473,6 @@
         } else {
             super.addView(child, index, params);
         }
-
-        if (USE_CACHE) {
-            if (child.getVisibility() != GONE) {
-                child.setDrawingCacheEnabled(mScrollingCacheEnabled);
-            } else {
-                child.setDrawingCacheEnabled(false);
-            }
-        }
     }
 
     private static boolean isDecorView(@NonNull View view) {
@@ -2682,15 +2670,6 @@
     private void setScrollingCacheEnabled(boolean enabled) {
         if (mScrollingCacheEnabled != enabled) {
             mScrollingCacheEnabled = enabled;
-            if (USE_CACHE) {
-                final int size = getChildCount();
-                for (int i = 0; i < size; ++i) {
-                    final View child = getChildAt(i);
-                    if (child.getVisibility() != GONE) {
-                        child.setDrawingCacheEnabled(enabled);
-                    }
-                }
-            }
         }
     }
 
@@ -3006,11 +2985,9 @@
     }
 
     @Override
-    // Suppress WrongConstant lint error for AccessibilityEvent.TYPE_VIEW_SCROLLED
-    @SuppressLint("WrongConstant")
     public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
         // Dispatch scroll events from this ViewPager.
-        if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED) {
+        if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
             return super.dispatchPopulateAccessibilityEvent(event);
         }