Dismiss suggestion when close button is clicked.

- add handling to the suggestion card to dismiss the suggestion when
the close button is clicked.

Bug: 70573674
Test: make RunSettingsRoboTests
Change-Id: I8155efc326242abde753a633009e2579a9b3aa9b
This commit is contained in:
Doris Ling
2018-01-23 12:08:50 -08:00
parent 35a7f0d642
commit 0e32252111
3 changed files with 14 additions and 12 deletions

View File

@@ -151,13 +151,10 @@ public class DashboardAdapterV2 extends RecyclerView.Adapter<DashboardAdapterV2.
if (list.size() == 1) { if (list.size() == 1) {
// The only suggestion is dismissed, and the the empty suggestion container will // The only suggestion is dismissed, and the the empty suggestion container will
// remain as the dashboard item. Need to refresh the dashboard list. // remain as the dashboard item. Need to refresh the dashboard list.
final DashboardDataV2 prevData = mDashboardData; setSuggestions(null);
mDashboardData = new DashboardDataV2.Builder(prevData)
.setSuggestions(null)
.build();
notifyDashboardDataChanged(prevData);
} else { } else {
mSuggestionAdapter.removeSuggestion(suggestion); mSuggestionAdapter.removeSuggestion(suggestion);
notifyItemChanged(0, null);
} }
} }

View File

@@ -55,6 +55,7 @@ public class SuggestionAdapterV2 extends RecyclerView.Adapter<DashboardItemHolde
private final MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
private final IconCache mCache; private final IconCache mCache;
private final ArrayList<String> mSuggestionsShownLogged; private final ArrayList<String> mSuggestionsShownLogged;
private final SuggestionFeatureProvider mSuggestionFeatureProvider;
private final SuggestionControllerMixin mSuggestionControllerMixin; private final SuggestionControllerMixin mSuggestionControllerMixin;
private final Callback mCallback; private final Callback mCallback;
private final CardConfig mConfig; private final CardConfig mConfig;
@@ -75,6 +76,7 @@ public class SuggestionAdapterV2 extends RecyclerView.Adapter<DashboardItemHolde
mCache = new IconCache(context); mCache = new IconCache(context);
final FeatureFactory factory = FeatureFactory.getFactory(context); final FeatureFactory factory = FeatureFactory.getFactory(context);
mMetricsFeatureProvider = factory.getMetricsFeatureProvider(); mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
mSuggestionFeatureProvider = factory.getSuggestionFeatureProvider(context);
mCallback = callback; mCallback = callback;
if (savedInstanceState != null) { if (savedInstanceState != null) {
mSuggestions = savedInstanceState.getParcelableArrayList(STATE_SUGGESTION_LIST); mSuggestions = savedInstanceState.getParcelableArrayList(STATE_SUGGESTION_LIST);
@@ -129,13 +131,13 @@ public class SuggestionAdapterV2 extends RecyclerView.Adapter<DashboardItemHolde
final ImageView closeButton = holder.itemView.findViewById(R.id.close_button); final ImageView closeButton = holder.itemView.findViewById(R.id.close_button);
if (closeButton != null) { if (closeButton != null) {
if (mCallback != null) {
closeButton.setOnClickListener(v -> { closeButton.setOnClickListener(v -> {
mSuggestionFeatureProvider.dismissSuggestion(
mContext, mSuggestionControllerMixin, suggestion);
if (mCallback != null) {
mCallback.onSuggestionClosed(suggestion); mCallback.onSuggestionClosed(suggestion);
});
} else {
closeButton.setOnClickListener(null);
} }
});
} }
View clickHandler = holder.itemView; View clickHandler = holder.itemView;

View File

@@ -200,7 +200,10 @@ public class SuggestionAdapterV2Test {
mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0); mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
mSuggestionHolder.itemView.findViewById(R.id.close_button).performClick(); mSuggestionHolder.itemView.findViewById(R.id.close_button).performClick();
verify(callback).onSuggestionClosed(suggestions.get(0)); final Suggestion suggestion = suggestions.get(0);
verify(mFeatureFactory.suggestionsFeatureProvider).dismissSuggestion(
mActivity, mSuggestionControllerMixin, suggestion);
verify(callback).onSuggestionClosed(suggestion);
} }
private void setupSuggestions(Context context, List<Suggestion> suggestions) { private void setupSuggestions(Context context, List<Suggestion> suggestions) {