Loading src/com/android/settings/dashboard/DashboardData.java +13 −6 Original line number Diff line number Diff line Loading @@ -222,15 +222,22 @@ public class DashboardData { final int hiddenSuggestion = hasSuggestions ? sizeOf(mSuggestions) - sizeOf(suggestions) : 0; final boolean hasSuggestionAndCollapsed = hasSuggestions && mSuggestionConditionMode == HEADER_MODE_COLLAPSED; final boolean onlyHasConditionAndCollapsed = !hasSuggestions && hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED; /* Top suggestion/condition header. This will be present when there is any suggestion * and the mode is collapsed, or it only has conditions and the mode is not fully * expanded. */ * and the mode is collapsed */ addToItemList(new SuggestionConditionHeaderData(conditions, hiddenSuggestion), R.layout.suggestion_condition_header, STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER, hasSuggestionAndCollapsed); /* Use mid header if there is only condition & it's in collapsed mode */ addToItemList(new SuggestionConditionHeaderData(conditions, hiddenSuggestion), R.layout.suggestion_condition_header, STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER, hasSuggestions && mSuggestionConditionMode == HEADER_MODE_COLLAPSED || !hasSuggestions && hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED); STABLE_ID_SUGGESTION_CONDITION_MIDDLE_HEADER, onlyHasConditionAndCollapsed); /* Suggestion container. This is the card view that contains the list of suggestions. * This will be added whenever the suggestion list is not empty */ Loading tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java +39 −9 Original line number Diff line number Diff line Loading @@ -16,6 +16,13 @@ package com.android.settings.dashboard; import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_CONTAINER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONDITION_FOOTER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONTAINER; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.support.annotation.NonNull; import android.support.v7.util.DiffUtil; import android.support.v7.util.ListUpdateCallback; Loading @@ -41,15 +48,6 @@ import java.util.Collections; import java.util.List; import java.util.Objects; import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_CONTAINER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONDITION_FOOTER; import static com.android.settings.dashboard.DashboardData .STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONTAINER; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(RobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class DashboardDataTest { Loading Loading @@ -216,6 +214,38 @@ public class DashboardDataTest { mDashboardDataWithTwoConditions, testResultData); } @Test public void testDiffUtil_RemoveOneSuggestion_causeItemRemoveAndChange() { //Build testResultData final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>(); testResultData.add(new ListUpdateResult.ResultData( ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 0, 1)); testResultData.add(new ListUpdateResult.ResultData( ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 1, 1)); // Build DashboardData final List<Condition> oneItemConditions = new ArrayList<>(); when(mTestCondition.shouldShow()).thenReturn(true); oneItemConditions.add(mTestCondition); final List<Tile> suggestions = new ArrayList<>(); mTestSuggestion.title = TEST_SUGGESTION_TITLE; suggestions.add(mTestSuggestion); final DashboardData oldData = new DashboardData.Builder() .setConditions(oneItemConditions) .setCategory(mDashboardCategory) .setSuggestions(suggestions) .setSuggestionConditionMode(DashboardData.HEADER_MODE_DEFAULT) .build(); final DashboardData newData = new DashboardData.Builder() .setConditions(oneItemConditions) .setSuggestions(null) .setCategory(mDashboardCategory) .setSuggestionConditionMode(DashboardData.HEADER_MODE_DEFAULT) .build(); testDiffUtil(oldData, newData, testResultData); } @Test public void testDiffUtil_DeleteAllData_ResultDataOneDeleted() { //Build testResultData Loading Loading
src/com/android/settings/dashboard/DashboardData.java +13 −6 Original line number Diff line number Diff line Loading @@ -222,15 +222,22 @@ public class DashboardData { final int hiddenSuggestion = hasSuggestions ? sizeOf(mSuggestions) - sizeOf(suggestions) : 0; final boolean hasSuggestionAndCollapsed = hasSuggestions && mSuggestionConditionMode == HEADER_MODE_COLLAPSED; final boolean onlyHasConditionAndCollapsed = !hasSuggestions && hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED; /* Top suggestion/condition header. This will be present when there is any suggestion * and the mode is collapsed, or it only has conditions and the mode is not fully * expanded. */ * and the mode is collapsed */ addToItemList(new SuggestionConditionHeaderData(conditions, hiddenSuggestion), R.layout.suggestion_condition_header, STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER, hasSuggestionAndCollapsed); /* Use mid header if there is only condition & it's in collapsed mode */ addToItemList(new SuggestionConditionHeaderData(conditions, hiddenSuggestion), R.layout.suggestion_condition_header, STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER, hasSuggestions && mSuggestionConditionMode == HEADER_MODE_COLLAPSED || !hasSuggestions && hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED); STABLE_ID_SUGGESTION_CONDITION_MIDDLE_HEADER, onlyHasConditionAndCollapsed); /* Suggestion container. This is the card view that contains the list of suggestions. * This will be added whenever the suggestion list is not empty */ Loading
tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java +39 −9 Original line number Diff line number Diff line Loading @@ -16,6 +16,13 @@ package com.android.settings.dashboard; import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_CONTAINER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONDITION_FOOTER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONTAINER; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.support.annotation.NonNull; import android.support.v7.util.DiffUtil; import android.support.v7.util.ListUpdateCallback; Loading @@ -41,15 +48,6 @@ import java.util.Collections; import java.util.List; import java.util.Objects; import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_CONTAINER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONDITION_FOOTER; import static com.android.settings.dashboard.DashboardData .STABLE_ID_SUGGESTION_CONDITION_TOP_HEADER; import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONTAINER; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(RobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class DashboardDataTest { Loading Loading @@ -216,6 +214,38 @@ public class DashboardDataTest { mDashboardDataWithTwoConditions, testResultData); } @Test public void testDiffUtil_RemoveOneSuggestion_causeItemRemoveAndChange() { //Build testResultData final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>(); testResultData.add(new ListUpdateResult.ResultData( ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 0, 1)); testResultData.add(new ListUpdateResult.ResultData( ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 1, 1)); // Build DashboardData final List<Condition> oneItemConditions = new ArrayList<>(); when(mTestCondition.shouldShow()).thenReturn(true); oneItemConditions.add(mTestCondition); final List<Tile> suggestions = new ArrayList<>(); mTestSuggestion.title = TEST_SUGGESTION_TITLE; suggestions.add(mTestSuggestion); final DashboardData oldData = new DashboardData.Builder() .setConditions(oneItemConditions) .setCategory(mDashboardCategory) .setSuggestions(suggestions) .setSuggestionConditionMode(DashboardData.HEADER_MODE_DEFAULT) .build(); final DashboardData newData = new DashboardData.Builder() .setConditions(oneItemConditions) .setSuggestions(null) .setCategory(mDashboardCategory) .setSuggestionConditionMode(DashboardData.HEADER_MODE_DEFAULT) .build(); testDiffUtil(oldData, newData, testResultData); } @Test public void testDiffUtil_DeleteAllData_ResultDataOneDeleted() { //Build testResultData Loading