Refresh the dashboard UI when swiping away the only suggestion.
In the new suggestion UI, the suggestions are listed inside the suggestion container instead of individual dashboard items. When there is only a single suggestion shown, and that is being swiped away, the actual list for the suggestions will handle the swipe and remove that list item from the list. However, the top level container will remain until next time the dashboard list is being refreshed. Explicitly set the suggestions to null to force refreshing of the dashboard UI. Change-Id: I37f8c8f5a813a5c56f4f2f46103fdbb66ce97fcd Fix: 62639824 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -264,6 +264,19 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
notifyDashboardDataChanged(prevData);
|
||||
}
|
||||
|
||||
public void onSuggestionDismissed() {
|
||||
final List<Tile> suggestions = mDashboardData.getSuggestions();
|
||||
if (suggestions != null && suggestions.size() == 1) {
|
||||
// The only suggestion is dismissed, and the the empty suggestion container will
|
||||
// remain as the dashboard item. Need to refresh the dashboard list.
|
||||
final DashboardData prevData = mDashboardData;
|
||||
mDashboardData = new DashboardData.Builder(prevData)
|
||||
.setSuggestions(null)
|
||||
.build();
|
||||
notifyDashboardDataChanged(prevData);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifySummaryChanged(Tile tile) {
|
||||
final int position = mDashboardData.getPositionByTile(tile);
|
||||
@@ -449,7 +462,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
return (Tile) getItem(getItemId(position));
|
||||
}
|
||||
|
||||
private void notifyDashboardDataChanged(DashboardData prevData) {
|
||||
@VisibleForTesting
|
||||
void notifyDashboardDataChanged(DashboardData prevData) {
|
||||
if (mFirstFrameDrawn && prevData != null) {
|
||||
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DashboardData
|
||||
.ItemsDataDiffCallback(prevData.getItemList(), mDashboardData.getItemList()));
|
||||
|
Reference in New Issue
Block a user