Update code to match new CarUiRecyclerView design

Bug: 199201019
Test: Manually
Change-Id: I835f63773a5083df321ca667027d4f20ea9349fd
(cherry picked from commit 29963f87cb5483e543e8bf3b724c2d64e01484d0)
Merged-In: I835f63773a5083df321ca667027d4f20ea9349fd
diff --git a/src/com/android/car/media/BrowseViewController.java b/src/com/android/car/media/BrowseViewController.java
index c1869e4..337e5bc 100644
--- a/src/com/android/car/media/BrowseViewController.java
+++ b/src/com/android/car/media/BrowseViewController.java
@@ -32,7 +32,6 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProviders;
-import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.car.apps.common.util.ViewUtils;
@@ -46,6 +45,7 @@
 import com.android.car.media.common.source.MediaSource;
 import com.android.car.ui.FocusArea;
 import com.android.car.ui.baselayout.Insets;
+import com.android.car.ui.recyclerview.CarUiRecyclerView;
 import com.android.car.uxr.LifeCycleObserverUxrContentLimiter;
 import com.android.car.uxr.UxrContentLimiterImpl;
 
@@ -69,7 +69,7 @@
     private final boolean mDisplayMediaItems;
     private final LifeCycleObserverUxrContentLimiter mUxrContentLimiter;
     private final View mContent;
-    private final RecyclerView mBrowseList;
+    private final CarUiRecyclerView mBrowseList;
     private final ImageView mErrorIcon;
     private final TextView mMessage;
     private final LimitedBrowseAdapter mLimitedBrowseAdapter;
@@ -187,9 +187,8 @@
         mBrowseList.addItemDecoration(new GridSpacingItemDecoration(
                 activity.getResources().getDimensionPixelSize(R.dimen.grid_item_spacing)));
 
-        GridLayoutManager manager = (GridLayoutManager) mBrowseList.getLayoutManager();
         BrowseAdapter browseAdapter = new BrowseAdapter(mBrowseList.getContext());
-        mLimitedBrowseAdapter = new LimitedBrowseAdapter(browseAdapter, manager,
+        mLimitedBrowseAdapter = new LimitedBrowseAdapter(mBrowseList, browseAdapter,
                 mBrowseAdapterObserver);
         mBrowseList.setAdapter(mLimitedBrowseAdapter);
 
@@ -362,16 +361,16 @@
         int duration = mFadeDuration;
         if (items == null) {
             mMessage.setText(getErrorMessage());
-            ViewUtils.hideViewAnimated(mBrowseList, duration);
+            ViewUtils.hideViewAnimated(mBrowseList.getView(), duration);
             ViewUtils.showViewAnimated(mMessage, duration);
             ViewUtils.showViewAnimated(mErrorIcon, duration);
         } else if (items.isEmpty()) {
             mMessage.setText(R.string.nothing_to_play);
-            ViewUtils.hideViewAnimated(mBrowseList, duration);
+            ViewUtils.hideViewAnimated(mBrowseList.getView(), duration);
             ViewUtils.hideViewAnimated(mErrorIcon, duration);
             ViewUtils.showViewAnimated(mMessage, duration);
         } else {
-            ViewUtils.showViewAnimated(mBrowseList, duration);
+            ViewUtils.showViewAnimated(mBrowseList.getView(), duration);
             ViewUtils.hideViewAnimated(mErrorIcon, duration);
             ViewUtils.hideViewAnimated(mMessage, duration);
         }
diff --git a/src/com/android/car/media/MediaActivityController.java b/src/com/android/car/media/MediaActivityController.java
index be1371f..deda8e1 100644
--- a/src/com/android/car/media/MediaActivityController.java
+++ b/src/com/android/car/media/MediaActivityController.java
@@ -446,7 +446,8 @@
         CarUiRecyclerView carUiRecyclerView =
                 controller.getContent().findViewById(R.id.browse_list);
         if (carUiRecyclerView != null && carUiRecyclerView instanceof LazyLayoutView
-                && !carUiRecyclerView.hasFocus() && !carUiRecyclerView.isInTouchMode()) {
+                && !carUiRecyclerView.getView().hasFocus()
+                && !carUiRecyclerView.getView().isInTouchMode()) {
             LazyLayoutView lazyLayoutView = (LazyLayoutView) carUiRecyclerView;
             com.android.car.ui.utils.ViewUtils.initFocus(lazyLayoutView);
         }
@@ -456,18 +457,18 @@
             @Nullable ViewAnimEndListener listener) {
         CarUiRecyclerView carUiRecyclerView = content.findViewById(R.id.browse_list);
         if (carUiRecyclerView != null && carUiRecyclerView instanceof LazyLayoutView
-                && !carUiRecyclerView.isInTouchMode()) {
+                && !carUiRecyclerView.getView().isInTouchMode()) {
             // If a CarUiRecyclerView is about to hide and it has focus, park the focus on the
             // FocusParkingView before hiding the CarUiRecyclerView. Otherwise hiding the focused
             // view will cause the Android framework to move focus to another view, causing visual
             // jank.
-            if (!show && carUiRecyclerView.hasFocus()) {
+            if (!show && carUiRecyclerView.getView().hasFocus()) {
                 mFpv.performAccessibilityAction(ACTION_FOCUS, null);
             }
             // If a new CarUiRecyclerView is about to show and there is no view focused or the
             // FocusParkingView is focused, restore focus in the new CarUiRecyclerView.
             if (show) {
-                View focusedView = carUiRecyclerView.getRootView().findFocus();
+                View focusedView = carUiRecyclerView.getView().getRootView().findFocus();
                 if (focusedView == null || focusedView instanceof FocusParkingView) {
                     LazyLayoutView lazyLayoutView = (LazyLayoutView) carUiRecyclerView;
                     com.android.car.ui.utils.ViewUtils.initFocus(lazyLayoutView);
diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java
index fb157e6..2d12807 100644
--- a/src/com/android/car/media/PlaybackFragment.java
+++ b/src/com/android/car/media/PlaybackFragment.java
@@ -55,6 +55,7 @@
 import com.android.car.media.common.source.MediaSourceViewModel;
 import com.android.car.media.widgets.AppBarController;
 import com.android.car.ui.core.CarUi;
+import com.android.car.ui.recyclerview.CarUiRecyclerView;
 import com.android.car.ui.recyclerview.ContentLimiting;
 import com.android.car.ui.recyclerview.ScrollingLimitedViewHolder;
 import com.android.car.ui.toolbar.MenuItem;
@@ -86,7 +87,7 @@
     private View mControlBarScrim;
     private PlaybackControlsActionBar mPlaybackControls;
     private QueueItemsAdapter mQueueAdapter;
-    private RecyclerView mQueue;
+    private CarUiRecyclerView mQueue;
     private ViewGroup mSeekBarContainer;
     private SeekBar mSeekBar;
     private List<View> mViewsToHideForCustomActions;
diff --git a/src/com/android/car/media/browse/LimitedBrowseAdapter.java b/src/com/android/car/media/browse/LimitedBrowseAdapter.java
index 6d3c6a7..ee0a7f7 100644
--- a/src/com/android/car/media/browse/LimitedBrowseAdapter.java
+++ b/src/com/android/car/media/browse/LimitedBrowseAdapter.java
@@ -22,6 +22,8 @@
 
 import com.android.car.media.R;
 import com.android.car.media.common.MediaItemMetadata;
+import com.android.car.ui.recyclerview.CarUiGridLayoutStyle;
+import com.android.car.ui.recyclerview.CarUiRecyclerView;
 import com.android.car.ui.recyclerview.DelegatingContentLimitingAdapter;
 
 import java.util.List;
@@ -31,21 +33,23 @@
  */
 public class LimitedBrowseAdapter extends DelegatingContentLimitingAdapter<BrowseViewHolder> {
 
+    private final CarUiRecyclerView mRecyclerView;
     private final BrowseAdapter mBrowseAdapter;
-    private final GridLayoutManager mLayoutManager;
     private final int mMaxSpanSize;
 
     @Nullable private String mAnchorId;
 
-    public LimitedBrowseAdapter(BrowseAdapter browseAdapter, GridLayoutManager manager,
+    public LimitedBrowseAdapter(CarUiRecyclerView recyclerView, BrowseAdapter browseAdapter,
             BrowseAdapter.Observer browseAdapterObserver) {
         super(browseAdapter, R.id.browse_list_uxr_config);
 
+        mRecyclerView = recyclerView;
         mBrowseAdapter = browseAdapter;
-        mLayoutManager = manager;
-        mMaxSpanSize = manager.getSpanCount();
 
-        mLayoutManager.setSpanSizeLookup(mSpanSizeLookup);
+        CarUiGridLayoutStyle layoutStyle = (CarUiGridLayoutStyle) mRecyclerView.getLayoutStyle();
+        mMaxSpanSize = layoutStyle.getSpanCount();
+        layoutStyle.setSpanSizeLookup(mSpanSizeLookup);
+        mRecyclerView.setLayoutStyle(layoutStyle);
         mBrowseAdapter.registerObserver(browseAdapterObserver);
         mBrowseAdapter.setOnListChangedListener(((previousList, currentList) -> {
             updateUnderlyingDataChanged(currentList.size(), validateAnchor());
@@ -119,17 +123,17 @@
     }
 
     private int getFirstVisibleItemPosition() {
-        int firstItem = mLayoutManager.findFirstCompletelyVisibleItemPosition();
+        int firstItem = mRecyclerView.findFirstCompletelyVisibleItemPosition();
         if (firstItem == RecyclerView.NO_POSITION) {
-            firstItem = mLayoutManager.findFirstVisibleItemPosition();
+            firstItem = mRecyclerView.findFirstVisibleItemPosition();
         }
         return firstItem;
     }
 
     private int getLastVisibleItemPosition() {
-        int lastItem = mLayoutManager.findLastCompletelyVisibleItemPosition();
+        int lastItem = mRecyclerView.findLastCompletelyVisibleItemPosition();
         if (lastItem == RecyclerView.NO_POSITION) {
-            lastItem = mLayoutManager.findLastVisibleItemPosition();
+            lastItem = mRecyclerView.findLastVisibleItemPosition();
         }
         return lastItem;
     }