Merge "Add dream descriptions to dream settings UI." into tm-dev
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.dream;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.VectorDrawable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -45,8 +46,8 @@ public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||
* View holder for each {@link IDreamItem}.
|
||||
*/
|
||||
private class DreamViewHolder extends RecyclerView.ViewHolder {
|
||||
private final ImageView mIconView;
|
||||
private final TextView mTitleView;
|
||||
private final TextView mSummaryView;
|
||||
private final ImageView mPreviewView;
|
||||
private final ImageView mPreviewPlaceholderView;
|
||||
private final Button mCustomizeButton;
|
||||
@@ -57,8 +58,8 @@ public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||
mContext = context;
|
||||
mPreviewView = view.findViewById(R.id.preview);
|
||||
mPreviewPlaceholderView = view.findViewById(R.id.preview_placeholder);
|
||||
mIconView = view.findViewById(R.id.icon);
|
||||
mTitleView = view.findViewById(R.id.title_text);
|
||||
mSummaryView = view.findViewById(R.id.summary_text);
|
||||
mCustomizeButton = view.findViewById(R.id.customize_button);
|
||||
}
|
||||
|
||||
@@ -68,6 +69,14 @@ public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||
public void bindView(IDreamItem item, int position) {
|
||||
mTitleView.setText(item.getTitle());
|
||||
|
||||
final CharSequence summary = item.getSummary();
|
||||
if (TextUtils.isEmpty(summary)) {
|
||||
mSummaryView.setVisibility(View.GONE);
|
||||
} else {
|
||||
mSummaryView.setText(summary);
|
||||
mSummaryView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
final Drawable previewImage = item.getPreviewImage();
|
||||
if (previewImage != null) {
|
||||
mPreviewView.setImageDrawable(previewImage);
|
||||
@@ -82,7 +91,10 @@ public class DreamAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||
icon.setTint(Utils.getColorAttrDefaultColor(mContext,
|
||||
com.android.internal.R.attr.colorAccentPrimaryVariant));
|
||||
}
|
||||
mIconView.setImageDrawable(icon);
|
||||
final int iconSize = mContext.getResources().getDimensionPixelSize(
|
||||
R.dimen.dream_item_icon_size);
|
||||
icon.setBounds(0, 0, iconSize, iconSize);
|
||||
mTitleView.setCompoundDrawablesRelative(icon, null, null, null);
|
||||
|
||||
if (item.isActive()) {
|
||||
mLastSelectedPos = position;
|
||||
|
@@ -111,6 +111,11 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
return mDreamInfo.caption;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
return mDreamInfo.description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getIcon() {
|
||||
return mDreamInfo.icon;
|
||||
|
@@ -18,23 +18,52 @@ package com.android.settings.dream;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Interface representing a dream item to be displayed.
|
||||
*/
|
||||
public interface IDreamItem {
|
||||
/**
|
||||
* Gets the title of this dream.
|
||||
*/
|
||||
CharSequence getTitle();
|
||||
|
||||
/**
|
||||
* Gets the summary of this dream, or null if the dream doesn't provide one.
|
||||
*/
|
||||
@Nullable
|
||||
CharSequence getSummary();
|
||||
|
||||
/**
|
||||
* Gets the icon for the dream.
|
||||
*/
|
||||
Drawable getIcon();
|
||||
|
||||
/**
|
||||
* Callback which can be implemented to handle clicks on this dream.
|
||||
*/
|
||||
void onItemClicked();
|
||||
|
||||
/**
|
||||
* Callback which can be implemented to handle the customization of this dream.
|
||||
*/
|
||||
default void onCustomizeClicked() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the preview image of this dream.
|
||||
*/
|
||||
Drawable getPreviewImage();
|
||||
|
||||
/**
|
||||
* Returns whether or not this dream is currently active.
|
||||
*/
|
||||
boolean isActive();
|
||||
|
||||
/**
|
||||
* Returns whether to allow customization of this dream or not.
|
||||
*/
|
||||
default boolean allowCustomization() {
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user