Allow other layouts to be passed into the dream view adatper.

This will let the OOBE flow use a different layout than the regular
Settings view.

Bug: 221227402
Test: locally on device
Change-Id: I27545b7dad1d789adcae8589480d29bc5231c98c
This commit is contained in:
Lucas Silva
2022-02-24 16:31:40 +00:00
parent c7709aebb3
commit 5e91b7eab3
2 changed files with 9 additions and 5 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.dream; package com.android.settings.dream;
import android.annotation.LayoutRes;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.graphics.drawable.VectorDrawable; import android.graphics.drawable.VectorDrawable;
@@ -40,6 +41,7 @@ import java.util.List;
*/ */
public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final List<IDreamItem> mItemList; private final List<IDreamItem> mItemList;
private final @LayoutRes int mLayoutRes;
private int mLastSelectedPos = -1; private int mLastSelectedPos = -1;
/** /**
@@ -116,15 +118,16 @@ public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
} }
} }
public DreamAdapter(List<IDreamItem> itemList) { public DreamAdapter(@LayoutRes int layoutRes, List<IDreamItem> itemList) {
mItemList = itemList; mItemList = itemList;
mLayoutRes = layoutRes;
} }
@NonNull @NonNull
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()) View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.dream_preference_layout, viewGroup, false); .inflate(mLayoutRes, viewGroup, false);
return new DreamViewHolder(view, viewGroup.getContext()); return new DreamViewHolder(view, viewGroup.getContext());
} }

View File

@@ -74,9 +74,10 @@ public class DreamPickerController extends BasePreferenceController {
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mAdapter = new DreamAdapter(mDreamInfos.stream() mAdapter = new DreamAdapter(R.layout.dream_preference_layout,
.map(DreamItem::new) mDreamInfos.stream()
.collect(Collectors.toList())); .map(DreamItem::new)
.collect(Collectors.toList()));
final LayoutPreference pref = screen.findPreference(getPreferenceKey()); final LayoutPreference pref = screen.findPreference(getPreferenceKey());
if (pref == null) { if (pref == null) {