Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f070569 authored by Fan Zhang's avatar Fan Zhang Committed by android-build-merger
Browse files

Merge "Use "mid" stable id for condition cards conditionally." into oc-mr1-dev

am: a42e9351

Change-Id: I21dc2b1866a7f9b0bef5eae84887780a985e1884
parents 3a01adad a42e9351
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -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 */
+39 −9
Original line number Diff line number Diff line
@@ -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;
@@ -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 {
@@ -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