Merge "Some code cleanup"
This commit is contained in:
committed by
Android (Google) Code Review
commit
89f57048a0
@@ -94,19 +94,6 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
}
|
||||
};
|
||||
|
||||
private View.OnClickListener mConditionClickListener = new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Condition condition = (Condition) v.getTag();
|
||||
//TODO: get rid of setTag/getTag
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
|
||||
condition.getMetricsConstant());
|
||||
condition.onPrimaryClick();
|
||||
}
|
||||
};
|
||||
|
||||
public DashboardAdapter(Context context, Bundle savedInstanceState,
|
||||
List<Condition> conditions, SuggestionParser suggestionParser,
|
||||
SuggestionDismissController.Callback callback) {
|
||||
@@ -129,7 +116,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
suggestions = savedInstanceState.getParcelableArrayList(STATE_SUGGESTION_LIST);
|
||||
category = savedInstanceState.getParcelable(STATE_CATEGORY_LIST);
|
||||
suggestionConditionMode = savedInstanceState.getInt(
|
||||
STATE_SUGGESTION_CONDITION_MODE, suggestionConditionMode);
|
||||
STATE_SUGGESTION_CONDITION_MODE, suggestionConditionMode);
|
||||
mSuggestionsShownLogged = savedInstanceState.getStringArrayList(
|
||||
STATE_SUGGESTIONS_SHOWN_LOGGED);
|
||||
} else {
|
||||
@@ -249,7 +236,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
break;
|
||||
case R.layout.suggestion_condition_container:
|
||||
onBindConditionAndSuggestion(
|
||||
(SuggestionAndConditionContainerHolder) holder, position);
|
||||
(SuggestionAndConditionContainerHolder) holder, position);
|
||||
break;
|
||||
case R.layout.suggestion_condition_header:
|
||||
onBindSuggestionConditionHeader((SuggestionAndConditionHeaderHolder) holder,
|
||||
@@ -262,7 +249,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND, false);
|
||||
DashboardData prevData = mDashboardData;
|
||||
mDashboardData = new DashboardData.Builder(prevData).setSuggestionConditionMode(
|
||||
DashboardData.HEADER_MODE_COLLAPSED).build();
|
||||
DashboardData.HEADER_MODE_COLLAPSED).build();
|
||||
notifyDashboardDataChanged(prevData);
|
||||
mRecyclerView.scrollToPosition(SUGGESTION_CONDITION_HEADER_POSITION);
|
||||
});
|
||||
@@ -335,11 +322,11 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
}
|
||||
for (Tile suggestion : suggestions) {
|
||||
final String suggestionId = mSuggestionFeatureProvider.getSuggestionIdentifier(
|
||||
mContext, suggestion);
|
||||
mContext, suggestion);
|
||||
if (!mSuggestionsShownLogged.contains(suggestionId)) {
|
||||
mMetricsFeatureProvider.action(
|
||||
mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
|
||||
suggestionId);
|
||||
mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
|
||||
suggestionId);
|
||||
mSuggestionsShownLogged.add(suggestionId);
|
||||
}
|
||||
}
|
||||
@@ -350,9 +337,9 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
SuggestionConditionHeaderData data) {
|
||||
final int curMode = mDashboardData.getSuggestionConditionMode();
|
||||
final int nextMode = data.hiddenSuggestionCount > 0 && data.conditionCount > 0
|
||||
&& curMode != DashboardData.HEADER_MODE_SUGGESTION_EXPANDED
|
||||
? DashboardData.HEADER_MODE_SUGGESTION_EXPANDED
|
||||
: DashboardData.HEADER_MODE_FULLY_EXPANDED;
|
||||
&& curMode != DashboardData.HEADER_MODE_SUGGESTION_EXPANDED
|
||||
? DashboardData.HEADER_MODE_SUGGESTION_EXPANDED
|
||||
: DashboardData.HEADER_MODE_FULLY_EXPANDED;
|
||||
final boolean moreSuggestions = data.hiddenSuggestionCount > 0;
|
||||
final boolean hasConditions = data.conditionCount > 0;
|
||||
if (data.conditionCount > 0) {
|
||||
@@ -377,22 +364,22 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
if (curMode == DashboardData.HEADER_MODE_COLLAPSED) {
|
||||
if (data.conditionCount > 0) {
|
||||
holder.summary.setText(mContext.getResources().getQuantityString(
|
||||
R.plurals.suggestions_collapsed_summary,
|
||||
data.hiddenSuggestionCount, data.hiddenSuggestionCount));
|
||||
R.plurals.suggestions_collapsed_summary,
|
||||
data.hiddenSuggestionCount, data.hiddenSuggestionCount));
|
||||
} else {
|
||||
holder.title.setText(mContext.getResources().getQuantityString(
|
||||
R.plurals.suggestions_collapsed_title,
|
||||
data.hiddenSuggestionCount, data.hiddenSuggestionCount));
|
||||
R.plurals.suggestions_collapsed_title,
|
||||
data.hiddenSuggestionCount, data.hiddenSuggestionCount));
|
||||
holder.title.setTextColor(Color.BLACK);
|
||||
holder.summary.setText(null);
|
||||
}
|
||||
} else if (curMode == DashboardData.HEADER_MODE_DEFAULT) {
|
||||
if (data.conditionCount > 0) {
|
||||
holder.summary.setText(mContext.getString(
|
||||
R.string.suggestions_summary, data.hiddenSuggestionCount));
|
||||
R.string.suggestions_summary, data.hiddenSuggestionCount));
|
||||
} else {
|
||||
holder.title.setText(mContext.getString(
|
||||
R.string.suggestions_more_title, data.hiddenSuggestionCount));
|
||||
R.string.suggestions_more_title, data.hiddenSuggestionCount));
|
||||
holder.title.setTextColor(Color.BLACK);
|
||||
holder.summary.setText(null);
|
||||
}
|
||||
@@ -400,7 +387,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
} else if (data.conditionCount > 1) {
|
||||
holder.summary.setTextColor(Utils.getColorAccent(mContext));
|
||||
holder.summary.setText(
|
||||
mContext.getString(R.string.condition_summary, data.conditionCount));
|
||||
mContext.getString(R.string.condition_summary, data.conditionCount));
|
||||
} else {
|
||||
holder.summary.setText(null);
|
||||
}
|
||||
@@ -413,16 +400,16 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
holder.itemView.setPadding(0, padding, 0, padding);
|
||||
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
if (moreSuggestions ) {
|
||||
if (moreSuggestions) {
|
||||
logSuggestions();
|
||||
} else if (hasConditions) {
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND, true);
|
||||
MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND, true);
|
||||
}
|
||||
DashboardData prevData = mDashboardData;
|
||||
final boolean wasCollapsed = curMode == DashboardData.HEADER_MODE_COLLAPSED;
|
||||
mDashboardData = new DashboardData.Builder(prevData)
|
||||
.setSuggestionConditionMode(nextMode).build();
|
||||
.setSuggestionConditionMode(nextMode).build();
|
||||
notifyDashboardDataChanged(prevData);
|
||||
if (wasCollapsed) {
|
||||
mRecyclerView.scrollToPosition(SUGGESTION_CONDITION_HEADER_POSITION);
|
||||
@@ -439,13 +426,13 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
if (position == SUGGESTION_CONDITION_HEADER_POSITION
|
||||
&& suggestions != null && suggestions.size() > 0) {
|
||||
mSuggestionAdapter = new SuggestionAdapter(mContext, (List<Tile>)
|
||||
mDashboardData.getItemEntityByPosition(position), mSuggestionsShownLogged);
|
||||
mDashboardData.getItemEntityByPosition(position), mSuggestionsShownLogged);
|
||||
mSuggestionDismissHandler = new SuggestionDismissController(mContext,
|
||||
holder.data, mSuggestionParser, mCallback);
|
||||
holder.data, mSuggestionParser, mCallback);
|
||||
holder.data.setAdapter(mSuggestionAdapter);
|
||||
} else {
|
||||
ConditionAdapter adapter = new ConditionAdapter(mContext,
|
||||
(List<Condition>) mDashboardData.getItemEntityByPosition(position),
|
||||
(List<Condition>) mDashboardData.getItemEntityByPosition(position),
|
||||
mDashboardData.getSuggestionConditionMode());
|
||||
adapter.addDismissHandling(holder.data);
|
||||
holder.data.setAdapter(adapter);
|
||||
@@ -454,19 +441,13 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
}
|
||||
|
||||
private void onBindTile(DashboardItemHolder holder, Tile tile) {
|
||||
if (tile.remoteViews != null) {
|
||||
final ViewGroup itemView = (ViewGroup) holder.itemView;
|
||||
itemView.removeAllViews();
|
||||
itemView.addView(tile.remoteViews.apply(itemView.getContext(), itemView));
|
||||
holder.icon.setImageDrawable(mCache.getIcon(tile.icon));
|
||||
holder.title.setText(tile.title);
|
||||
if (!TextUtils.isEmpty(tile.summary)) {
|
||||
holder.summary.setText(tile.summary);
|
||||
holder.summary.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.icon.setImageDrawable(mCache.getIcon(tile.icon));
|
||||
holder.title.setText(tile.title);
|
||||
if (!TextUtils.isEmpty(tile.summary)) {
|
||||
holder.summary.setText(tile.summary);
|
||||
holder.summary.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.summary.setVisibility(View.GONE);
|
||||
}
|
||||
holder.summary.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -507,7 +488,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
}
|
||||
outState.putStringArrayList(STATE_SUGGESTIONS_SHOWN_LOGGED, mSuggestionsShownLogged);
|
||||
outState.putInt(STATE_SUGGESTION_CONDITION_MODE,
|
||||
mDashboardData.getSuggestionConditionMode());
|
||||
mDashboardData.getSuggestionConditionMode());
|
||||
}
|
||||
|
||||
private void updateConditionIcons(List<Icon> icons, ViewGroup parent) {
|
||||
@@ -519,7 +500,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
parent.removeAllViews();
|
||||
for (int i = 1, size = icons.size(); i < size; i++) {
|
||||
ImageView icon = (ImageView) inflater.inflate(
|
||||
R.layout.condition_header_icon, parent, false);
|
||||
R.layout.condition_header_icon, parent, false);
|
||||
icon.setImageIcon(icons.get(i));
|
||||
parent.addView(icon);
|
||||
}
|
||||
|
@@ -171,30 +171,6 @@ public class DashboardData {
|
||||
return POSITION_NOT_FOUND;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the count of suggestions to display
|
||||
*
|
||||
* The displayable count mainly depends on the {@link #mSuggestionConditionMode}
|
||||
* and the size of suggestions list.
|
||||
*
|
||||
* When in default mode, displayable count couldn't be larger than
|
||||
* {@link #DEFAULT_SUGGESTION_COUNT}.
|
||||
*
|
||||
* When in expanded mode, display all the suggestions.
|
||||
*
|
||||
* @return the count of suggestions to display
|
||||
*/
|
||||
public int getDisplayableSuggestionCount() {
|
||||
final int suggestionSize = sizeOf(mSuggestions);
|
||||
if (mSuggestionConditionMode == HEADER_MODE_COLLAPSED) {
|
||||
return 0;
|
||||
}
|
||||
if (mSuggestionConditionMode == HEADER_MODE_DEFAULT) {
|
||||
return Math.min(DEFAULT_SUGGESTION_COUNT, suggestionSize);
|
||||
}
|
||||
return suggestionSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add item into list when {@paramref add} is true.
|
||||
*
|
||||
@@ -280,7 +256,7 @@ public class DashboardData {
|
||||
if (conditions == null) {
|
||||
return null;
|
||||
}
|
||||
List<Condition> result = new ArrayList<Condition>();
|
||||
List<Condition> result = new ArrayList<>();
|
||||
final int size = conditions == null ? 0 : conditions.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
final Condition condition = conditions.get(i);
|
||||
@@ -482,7 +458,7 @@ public class DashboardData {
|
||||
conditionCount = sizeOf(conditions);
|
||||
this.hiddenSuggestionCount = hiddenSuggestionCount;
|
||||
title = conditionCount > 0 ? conditions.get(0).getTitle() : null;
|
||||
conditionIcons = new ArrayList<Icon>();
|
||||
conditionIcons = new ArrayList<>();
|
||||
for (int i = 0; conditions != null && i < conditions.size(); i++) {
|
||||
final Condition condition = conditions.get(i);
|
||||
conditionIcons.add(condition.getIcon());
|
||||
|
Reference in New Issue
Block a user