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

This commit is contained in:
TreeHugger Robot
2019-12-16 10:36:49 +00:00
committed by Android (Google) Code Review
2 changed files with 36 additions and 5 deletions

View File

@@ -28,6 +28,7 @@ import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.text.format.DateUtils; import android.text.format.DateUtils;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
@@ -38,6 +39,7 @@ import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader; import androidx.loader.content.Loader;
import com.android.settings.R; 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.conditional.ConditionalCardController;
import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils; import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils;
import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer; import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
@@ -80,10 +82,6 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
private static final String TAG = "ContextualCardManager"; 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 Context mContext;
private final Lifecycle mLifecycle; private final Lifecycle mLifecycle;
private final List<LifecycleObserver> mLifecycleObservers; private final List<LifecycleObserver> mLifecycleObservers;
@@ -114,7 +112,7 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
mSavedCards = savedInstanceState.getStringArrayList(KEY_CONTEXTUAL_CARDS); mSavedCards = savedInstanceState.getStringArrayList(KEY_CONTEXTUAL_CARDS);
} }
//for data provided by Settings //for data provided by Settings
for (@ContextualCard.CardType int cardType : SETTINGS_CARDS) { for (@ContextualCard.CardType int cardType : getSettingsCards()) {
setupController(cardType); 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 @VisibleForTesting
void setupController(@ContextualCard.CardType int cardType) { void setupController(@ContextualCard.CardType int cardType) {
final ContextualCardController controller = mControllerRendererPool.getController(mContext, final ContextualCardController controller = mControllerRendererPool.getController(mContext,

View File

@@ -39,7 +39,9 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.util.ArrayMap; 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.ConditionContextualCardController;
import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
import com.android.settings.homepage.contextualcards.conditional.ConditionHeaderContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionHeaderContextualCard;
@@ -83,6 +85,7 @@ public class ContextualCardManagerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, true);
mManager = new ContextualCardManager(mContext, mLifecycle, null /* bundle */); mManager = new ContextualCardManager(mContext, mLifecycle, null /* bundle */);
} }
@@ -124,6 +127,27 @@ public class ContextualCardManagerTest {
assertThat(actual).containsExactlyElementsIn(expected); 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 @Test
public void setupController_notLifecycleObserverInstance_shouldNotAttachToLifecycle() { public void setupController_notLifecycleObserverInstance_shouldNotAttachToLifecycle() {
// 3 invocations in constructor(ContextualCardManager, Conditional and LegacySuggestion) // 3 invocations in constructor(ContextualCardManager, Conditional and LegacySuggestion)