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

Commit d04ad971 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Only show Condtionals when the feature flag is on."

parents d955ebcd 9bda9af1
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.os.Bundle;
import android.provider.Settings;
import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.widget.BaseAdapter;

@@ -38,6 +39,7 @@ import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;

import com.android.settings.R;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.conditional.ConditionalCardController;
import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils;
import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
@@ -80,10 +82,6 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo

    private static final String TAG = "ContextualCardManager";

    //The list for Settings Custom Card
    private static final int[] SETTINGS_CARDS =
            {ContextualCard.CardType.CONDITIONAL, ContextualCard.CardType.LEGACY_SUGGESTION};

    private final Context mContext;
    private final Lifecycle mLifecycle;
    private final List<LifecycleObserver> mLifecycleObservers;
@@ -114,7 +112,7 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
            mSavedCards = savedInstanceState.getStringArrayList(KEY_CONTEXTUAL_CARDS);
        }
        //for data provided by Settings
        for (@ContextualCard.CardType int cardType : SETTINGS_CARDS) {
        for (@ContextualCard.CardType int cardType : getSettingsCards()) {
            setupController(cardType);
        }
    }
@@ -139,6 +137,15 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
        }
    }

    @VisibleForTesting
    int[] getSettingsCards() {
        if (!FeatureFlagUtils.isEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS)) {
            return new int[]{ContextualCard.CardType.LEGACY_SUGGESTION};
        }
        return new int[]
                {ContextualCard.CardType.CONDITIONAL, ContextualCard.CardType.LEGACY_SUGGESTION};
    }

    @VisibleForTesting
    void setupController(@ContextualCard.CardType int cardType) {
        final ContextualCardController controller = mControllerRendererPool.getController(mContext,
+24 −0
Original line number Diff line number Diff line
@@ -39,7 +39,9 @@ import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.util.ArrayMap;
import android.util.FeatureFlagUtils;

import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
import com.android.settings.homepage.contextualcards.conditional.ConditionHeaderContextualCard;
@@ -83,6 +85,7 @@ public class ContextualCardManagerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, true);
        mManager = new ContextualCardManager(mContext, mLifecycle, null /* bundle */);
    }

@@ -124,6 +127,27 @@ public class ContextualCardManagerTest {
        assertThat(actual).containsExactlyElementsIn(expected);
    }

    @Test
    public void getSettingsCards_conditionalsEnabled_shouldContainLegacyAndConditionals() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, true);
        final int[] expected = {ContextualCard.CardType.CONDITIONAL,
                ContextualCard.CardType.LEGACY_SUGGESTION};

        final int[] actual = mManager.getSettingsCards();

        assertThat(actual).isEqualTo(expected);
    }

    @Test
    public void getSettingsCards_conditionalsDisabled_shouldContainLegacy() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, false);
        final int[] expected = {ContextualCard.CardType.LEGACY_SUGGESTION};

        final int[] actual = mManager.getSettingsCards();

        assertThat(actual).isEqualTo(expected);
    }

    @Test
    public void setupController_notLifecycleObserverInstance_shouldNotAttachToLifecycle() {
        // 3 invocations in constructor(ContextualCardManager, Conditional and LegacySuggestion)