Only show Condtionals when the feature flag is on.
We plan to deprecate Settings Conditionals as it seems duplicated with quick settings. For now, we set the default value of this flag to false to disalbe it. OEMs could still enalbe this feature by setting the flag on. Bug: 142927361 Test: robotests Change-Id: Ifaf710caf0045cb185b3a8c3b04f1ce537f67896
This commit is contained in:
@@ -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,
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user