Loading src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +12 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); } } Loading @@ -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, Loading tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */); } Loading Loading @@ -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) Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +12 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); } } Loading @@ -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, Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */); } Loading Loading @@ -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) Loading