Move car media to androidx

Bug: 77333303
Test: local deplyment and test
Change-Id: I04e48eb139fcfc9e38058654ee2daa2cb062a8a6
Merged-In: I04e48eb139fcfc9e38058654ee2daa2cb062a8a6
(cherry picked from commit 3ba5dbe22222f1aa9d4a4da7274d1be2af1a9577)
(cherry picked from commit f9f3dee14778bb7b932f7241b92d91ac1d938c66)
diff --git a/Android.mk b/Android.mk
index f442d59..ece3138 100644
--- a/Android.mk
+++ b/Android.mk
@@ -37,15 +37,17 @@
 
 LOCAL_DEX_PREOPT := false
 
+LOCAL_JAVA_LIBRARIES += android.car
+
 LOCAL_STATIC_ANDROID_LIBRARIES += \
-    android-support-car \
-    android-support-constraint-layout \
-    android-support-design-widget \
+    androidx.car_car \
+    androidx-constraintlayout_constraintlayout \
+    androidx.design_design \
     car-apps-common \
     car-media-common
 
 LOCAL_STATIC_JAVA_LIBRARIES += \
-    android-support-constraint-layout-solver
+    androidx-constraintlayout_constraintlayout-solver
 
 include $(BUILD_PACKAGE)
 
diff --git a/res/layout-h1200dp/fragment_playback_with_queue.xml b/res/layout-h1200dp/fragment_playback_with_queue.xml
index 113de90..1fec4fd 100644
--- a/res/layout-h1200dp/fragment_playback_with_queue.xml
+++ b/res/layout-h1200dp/fragment_playback_with_queue.xml
@@ -14,28 +14,28 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<android.support.constraint.ConstraintLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/playback_container"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_start"
         android:layout_width="0dp"
         android:layout_height="0dp"
         android:orientation="vertical"
         app:layout_constraintGuide_begin="@dimen/car_margin"/>
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_end"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         app:layout_constraintGuide_end="@dimen/car_margin"/>
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_top"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -48,4 +48,4 @@
     <include
         layout="@layout/playback_controls"/>
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/fragment_app_selection.xml b/res/layout/fragment_app_selection.xml
index e3834bb..431f394 100644
--- a/res/layout/fragment_app_selection.xml
+++ b/res/layout/fragment_app_selection.xml
@@ -16,7 +16,7 @@
   ~ limitations under the License.
   ~
  -->
-<android.support.constraint.ConstraintLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:background="@color/alpha_fragment_background_color"
@@ -34,4 +34,4 @@
         app:dayNightStyle="always_light"
         app:showPagedListViewDivider="false" />
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/fragment_playback.xml b/res/layout/fragment_playback.xml
index 521ecb8..b08bf8d 100644
--- a/res/layout/fragment_playback.xml
+++ b/res/layout/fragment_playback.xml
@@ -14,28 +14,28 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<android.support.constraint.ConstraintLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/playback_container"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_start"
         android:layout_width="0dp"
         android:layout_height="0dp"
         android:orientation="vertical"
         app:layout_constraintGuide_begin="@dimen/car_margin"/>
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_end"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         app:layout_constraintGuide_end="@dimen/car_margin"/>
 
-    <android.support.constraint.Guideline
+    <androidx.constraintlayout.widget.Guideline
         android:id="@+id/margin_top"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -48,4 +48,4 @@
     <include
         layout="@layout/playback_controls"/>
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/media_activity.xml b/res/layout/media_activity.xml
index 97acbdb..68f912c 100644
--- a/res/layout/media_activity.xml
+++ b/res/layout/media_activity.xml
@@ -14,7 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<android.support.constraint.ConstraintLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/application"
@@ -88,4 +88,4 @@
         android:layout_width="match_parent"
         app:layout_constraintTop_toTopOf="parent"/>
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/metadata_normal.xml b/res/layout/metadata_normal.xml
index 903dc74..687d59d 100644
--- a/res/layout/metadata_normal.xml
+++ b/res/layout/metadata_normal.xml
@@ -14,7 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<android.support.constraint.ConstraintLayout
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
@@ -79,4 +79,4 @@
         tools:progress="70"
         tools:visibility="visible"/>
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/src/com/android/car/media/AppSelectionFragment.java b/src/com/android/car/media/AppSelectionFragment.java
index 6a56c1d..a9a7f59 100644
--- a/src/com/android/car/media/AppSelectionFragment.java
+++ b/src/com/android/car/media/AppSelectionFragment.java
@@ -3,16 +3,18 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+import androidx.car.widget.PagedListView;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.car.media.common.MediaSource;
 
 import java.util.ArrayList;
@@ -20,8 +22,6 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import androidx.car.widget.PagedListView;
-
 /**
  * A {@link Fragment} that implements the app selection UI
  */
diff --git a/src/com/android/car/media/BrowseFragment.java b/src/com/android/car/media/BrowseFragment.java
index ecb3f6c..67178fa 100644
--- a/src/com/android/car/media/BrowseFragment.java
+++ b/src/com/android/car/media/BrowseFragment.java
@@ -21,9 +21,6 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -31,6 +28,10 @@
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.car.media.browse.BrowseAdapter;
 import com.android.car.media.browse.ContentForwardStrategy;
 import com.android.car.media.common.GridSpacingItemDecoration;
diff --git a/src/com/android/car/media/EmptyFragment.java b/src/com/android/car/media/EmptyFragment.java
index 72b6889..358667f 100644
--- a/src/com/android/car/media/EmptyFragment.java
+++ b/src/com/android/car/media/EmptyFragment.java
@@ -2,7 +2,6 @@
 
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v4.app.Fragment;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -11,6 +10,8 @@
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 import com.android.car.media.common.MediaSource;
 import com.android.car.media.widgets.ViewUtils;
 
diff --git a/src/com/android/car/media/MediaActivity.java b/src/com/android/car/media/MediaActivity.java
index 6f01c62..0053bb1 100644
--- a/src/com/android/car/media/MediaActivity.java
+++ b/src/com/android/car/media/MediaActivity.java
@@ -15,7 +15,6 @@
  */
 package com.android.car.media;
 
-import android.annotation.NonNull;
 import android.car.Car;
 import android.content.ComponentName;
 import android.content.Context;
@@ -24,15 +23,24 @@
 import android.graphics.Bitmap;
 import android.media.session.MediaController;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.widget.DrawerLayout;
 import android.transition.Fade;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewGroup;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import androidx.annotation.NonNull;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.car.drawer.CarDrawerActivity;
+import androidx.car.drawer.CarDrawerAdapter;
+
 import com.android.car.media.common.ActiveMediaSourceManager;
 import com.android.car.media.common.CrossfadeImageView;
 import com.android.car.media.common.MediaItemMetadata;
@@ -45,14 +53,6 @@
 import com.android.car.media.widgets.MetadataView;
 import com.android.car.media.widgets.ViewUtils;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import androidx.car.drawer.CarDrawerActivity;
-import androidx.car.drawer.CarDrawerAdapter;
-
 /**
  * This activity controls the UI of media. It also updates the connection status for the media app
  * by broadcast. Drawer menu is controlled by {@link MediaDrawerController}.
@@ -184,16 +184,16 @@
     };
     private DrawerLayout.DrawerListener mDrawerListener = new DrawerLayout.DrawerListener() {
         @Override
-        public void onDrawerSlide(@android.support.annotation.NonNull View view, float v) {
+        public void onDrawerSlide(@androidx.annotation.NonNull View view, float v) {
         }
 
         @Override
-        public void onDrawerOpened(@android.support.annotation.NonNull View view) {
+        public void onDrawerOpened(@androidx.annotation.NonNull View view) {
             closeAppSelector();
         }
 
         @Override
-        public void onDrawerClosed(@android.support.annotation.NonNull View view) {
+        public void onDrawerClosed(@androidx.annotation.NonNull View view) {
         }
 
         @Override
diff --git a/src/com/android/car/media/MediaPlaybackModel.java b/src/com/android/car/media/MediaPlaybackModel.java
index a223893..aef706a 100644
--- a/src/com/android/car/media/MediaPlaybackModel.java
+++ b/src/com/android/car/media/MediaPlaybackModel.java
@@ -27,11 +27,12 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
-import android.support.annotation.MainThread;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.util.Log;
 
+import androidx.annotation.MainThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import com.android.car.apps.common.util.Assert;
 
 import java.util.ArrayList;
diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java
index b7983bf..376c304 100644
--- a/src/com/android/car/media/PlaybackFragment.java
+++ b/src/com/android/car/media/PlaybackFragment.java
@@ -16,14 +16,10 @@
 
 package com.android.car.media;
 
+import android.annotation.NonNull;
 import android.content.Context;
 import android.media.session.MediaController;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.constraint.ConstraintLayout;
-import android.support.constraint.ConstraintSet;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.RecyclerView;
 import android.transition.Transition;
 import android.transition.TransitionInflater;
 import android.transition.TransitionListenerAdapter;
@@ -35,6 +31,16 @@
 import android.widget.SeekBar;
 import android.widget.TextView;
 
+import androidx.car.widget.ListItem;
+import androidx.car.widget.ListItemAdapter;
+import androidx.car.widget.ListItemProvider;
+import androidx.car.widget.PagedListView;
+import androidx.car.widget.TextListItem;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.constraintlayout.widget.ConstraintSet;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.car.media.common.MediaItemMetadata;
 import com.android.car.media.common.MediaSource;
 import com.android.car.media.common.PlaybackControls;
@@ -44,12 +50,6 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
-import androidx.car.widget.ListItem;
-import androidx.car.widget.ListItemAdapter;
-import androidx.car.widget.ListItemProvider;
-import androidx.car.widget.PagedListView;
-import androidx.car.widget.TextListItem;
-
 /**
  * A {@link Fragment} that implements both the playback and the content forward browsing experience.
  * It observes a {@link PlaybackModel} and updates its information depending on the currently
diff --git a/src/com/android/car/media/browse/BrowseAdapter.java b/src/com/android/car/media/browse/BrowseAdapter.java
index dd5d2ee..631c20b 100644
--- a/src/com/android/car/media/browse/BrowseAdapter.java
+++ b/src/com/android/car/media/browse/BrowseAdapter.java
@@ -19,16 +19,17 @@
 import android.content.Context;
 import android.media.browse.MediaBrowser;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v7.util.DiffUtil;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.DiffUtil;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.car.media.common.MediaItemMetadata;
 import com.android.car.media.common.MediaSource;
 
diff --git a/src/com/android/car/media/browse/BrowseItemViewType.java b/src/com/android/car/media/browse/BrowseItemViewType.java
index 0a9e66e..63a54fe 100644
--- a/src/com/android/car/media/browse/BrowseItemViewType.java
+++ b/src/com/android/car/media/browse/BrowseItemViewType.java
@@ -16,7 +16,7 @@
 
 package com.android.car.media.browse;
 
-import android.support.annotation.LayoutRes;
+import androidx.annotation.LayoutRes;
 
 /**
  * Possible view types that would be used by the {@link BrowseAdapter}.
@@ -38,7 +38,7 @@
 
     /**
      * {@link BrowseItemViewType} that take the whole width of the
-     * {@link android.support.v7.widget.RecyclerView}
+     * {@link androidx.recyclerview.widget.RecyclerView}
      */
     BrowseItemViewType(@LayoutRes int layoutId) {
         mLayoutId = layoutId;
diff --git a/src/com/android/car/media/browse/BrowseViewData.java b/src/com/android/car/media/browse/BrowseViewData.java
index 3a6cc65..f9c2ced 100644
--- a/src/com/android/car/media/browse/BrowseViewData.java
+++ b/src/com/android/car/media/browse/BrowseViewData.java
@@ -16,10 +16,10 @@
 
 package com.android.car.media.browse;
 
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+
 import com.android.car.media.common.MediaItemMetadata;
 
 import java.util.Objects;
diff --git a/src/com/android/car/media/browse/BrowseViewHolder.java b/src/com/android/car/media/browse/BrowseViewHolder.java
index c68625e..39606cf 100644
--- a/src/com/android/car/media/browse/BrowseViewHolder.java
+++ b/src/com/android/car/media/browse/BrowseViewHolder.java
@@ -17,12 +17,13 @@
 package com.android.car.media.browse;
 
 import android.content.Context;
-import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.car.media.common.MediaItemMetadata;
 
 /**
diff --git a/src/com/android/car/media/drawer/MediaBrowserItemsFetcher.java b/src/com/android/car/media/drawer/MediaBrowserItemsFetcher.java
index ab2593c..eb094fc 100644
--- a/src/com/android/car/media/drawer/MediaBrowserItemsFetcher.java
+++ b/src/com/android/car/media/drawer/MediaBrowserItemsFetcher.java
@@ -23,14 +23,14 @@
 import android.media.session.MediaSession;
 import android.util.Log;
 
+import androidx.car.drawer.DrawerItemViewHolder;
+
 import com.android.car.media.MediaPlaybackModel;
 import com.android.car.media.R;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import androidx.car.drawer.DrawerItemViewHolder;
-
 /**
  * {@link MediaItemsFetcher} implementation that fetches items from a specific {@link MediaBrowser}
  * node.
diff --git a/src/com/android/car/media/drawer/MediaDrawerAdapter.java b/src/com/android/car/media/drawer/MediaDrawerAdapter.java
index c1f5e07..e1cf1b6 100644
--- a/src/com/android/car/media/drawer/MediaDrawerAdapter.java
+++ b/src/com/android/car/media/drawer/MediaDrawerAdapter.java
@@ -16,12 +16,12 @@
 package com.android.car.media.drawer;
 
 import android.content.Context;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.RecyclerView;
 
+import androidx.annotation.Nullable;
 import androidx.car.drawer.CarDrawerAdapter;
 import androidx.car.drawer.CarDrawerController;
 import androidx.car.drawer.DrawerItemViewHolder;
+import androidx.recyclerview.widget.RecyclerView;
 
 /**
  * Subclass of CarDrawerAdapter used by the Media app.
diff --git a/src/com/android/car/media/drawer/MediaDrawerController.java b/src/com/android/car/media/drawer/MediaDrawerController.java
index 077cd74..407bbe3 100644
--- a/src/com/android/car/media/drawer/MediaDrawerController.java
+++ b/src/com/android/car/media/drawer/MediaDrawerController.java
@@ -21,18 +21,18 @@
 import android.media.session.MediaController;
 import android.media.session.MediaSession;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.widget.DrawerLayout;
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+import androidx.car.drawer.CarDrawerAdapter;
+import androidx.car.drawer.CarDrawerController;
+import androidx.drawerlayout.widget.DrawerLayout;
+
 import com.android.car.media.MediaManager;
 import com.android.car.media.MediaPlaybackModel;
 import com.android.car.media.R;
 
-import androidx.car.drawer.CarDrawerAdapter;
-import androidx.car.drawer.CarDrawerController;
-
 /**
  * Manages drawer navigation and item selection.
  * <p>
@@ -186,7 +186,7 @@
     }
 
     /**
-     * A {@link android.support.v4.widget.DrawerLayout.DrawerListener} specifically to be used when
+     * A {@link androidx.drawerlayout.widget.DrawerLayout.DrawerListener} specifically to be used when
      * the play queue has been shown in the drawer. When the drawer is closed following this
      * display, this listener will reset the drawer to display the root view.
      */
diff --git a/src/com/android/car/media/drawer/MediaItemsFetcher.java b/src/com/android/car/media/drawer/MediaItemsFetcher.java
index 36c01c0..2dabd7e 100644
--- a/src/com/android/car/media/drawer/MediaItemsFetcher.java
+++ b/src/com/android/car/media/drawer/MediaItemsFetcher.java
@@ -21,14 +21,14 @@
 import android.text.TextUtils;
 import android.view.View;
 
+import androidx.car.drawer.CarDrawerAdapter;
+import androidx.car.drawer.DrawerItemViewHolder;
+
 import com.android.car.apps.common.BitmapDownloader;
 import com.android.car.apps.common.BitmapWorkerOptions;
 import com.android.car.apps.common.UriUtils;
 import com.android.car.media.R;
 
-import androidx.car.drawer.CarDrawerAdapter;
-import androidx.car.drawer.DrawerItemViewHolder;
-
 /**
  * Component that handles fetching of items for {@link MediaDrawerAdapter}.
  * <p>
diff --git a/src/com/android/car/media/drawer/MediaQueueItemsFetcher.java b/src/com/android/car/media/drawer/MediaQueueItemsFetcher.java
index 4603dfd..301b4f8 100644
--- a/src/com/android/car/media/drawer/MediaQueueItemsFetcher.java
+++ b/src/com/android/car/media/drawer/MediaQueueItemsFetcher.java
@@ -22,7 +22,9 @@
 import android.media.session.MediaSession;
 import android.media.session.PlaybackState;
 import android.os.Handler;
-import android.support.annotation.Nullable;
+
+import androidx.annotation.Nullable;
+import androidx.car.drawer.DrawerItemViewHolder;
 
 import com.android.car.media.MediaPlaybackModel;
 import com.android.car.media.R;
@@ -31,8 +33,6 @@
 import java.util.Collections;
 import java.util.List;
 
-import androidx.car.drawer.DrawerItemViewHolder;
-
 /**
  * {@link MediaItemsFetcher} implementation that fetches items from the {@link MediaController}'s
  * currently playing queue.