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:
Doris Ling
2017-06-21 11:40:37 -07:00
parent 648e31c283
commit fa58cfca6e
3 changed files with 45 additions and 1 deletions

View File

@@ -21,6 +21,8 @@ import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -442,6 +444,33 @@ public class DashboardAdapterTest {
assertThat(itemView.getChildCount()).isEqualTo(1);
}
@Test
public void testSuggestioDismissed_notOnlySuggestion_doNothing() {
final DashboardAdapter adapter = spy(new DashboardAdapter(mContext, null, null));
adapter.setCategoriesAndSuggestions(
new ArrayList<>(), makeSuggestions("pkg1", "pkg2", "pkg3"));
final DashboardData dashboardData = adapter.mDashboardData;
reset(adapter); // clear interactions tracking
adapter.onSuggestionDismissed();
assertThat(adapter.mDashboardData).isEqualTo(dashboardData);
verify(adapter, never()).notifyDashboardDataChanged(any());
}
@Test
public void testSuggestioDismissed_onlySuggestion_updateDashboardData() {
DashboardAdapter adapter = spy(new DashboardAdapter(mContext, null, null));
adapter.setCategoriesAndSuggestions(new ArrayList<>(), makeSuggestions("pkg1"));
final DashboardData dashboardData = adapter.mDashboardData;
reset(adapter); // clear interactions tracking
adapter.onSuggestionDismissed();
assertThat(adapter.mDashboardData).isNotEqualTo(dashboardData);
verify(adapter).notifyDashboardDataChanged(any());
}
private List<Tile> makeSuggestions(String... pkgNames) {
final List<Tile> suggestions = new ArrayList<>();
for (String pkgName : pkgNames) {