Merge "Only show Condtionals when the feature flag is on."
This commit is contained in:
committed by
Android (Google) Code Review
commit
d04ad97133
@@ -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,
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user