Loading src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +7 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; /** Loading Loading @@ -132,8 +133,13 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo // except Conditional cards, all other cards are from the database. So when the map sent // here is empty, we only keep Conditional cards. if (cardTypes.isEmpty()) { final Set<Integer> conditionalCardTypes = new TreeSet() {{ add(ContextualCard.CardType.CONDITIONAL); add(ContextualCard.CardType.CONDITIONAL_HEADER); add(ContextualCard.CardType.CONDITIONAL_FOOTER); }}; cardsToKeep = mContextualCards.stream() .filter(card -> card.getCardType() == ContextualCard.CardType.CONDITIONAL) .filter(card -> conditionalCardTypes.contains(card.getCardType())) .collect(Collectors.toList()); } else { cardsToKeep = mContextualCards.stream() Loading tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +28 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.content.Context; import android.net.Uri; import android.util.ArrayMap; import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionHeaderContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionalContextualCard; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading Loading @@ -70,7 +72,7 @@ public class ContextualCardManagerTest { } @Test public void onContextualCardUpdated_emtpyMapWithExistingCards_shouldOnlyKeepConditionalCard() { public void onContextualCardUpdated_emptyMapWithExistingCards_shouldOnlyKeepConditionalCard() { mManager.mContextualCards.add(new ConditionalContextualCard.Builder().build()); mManager.mContextualCards.add( buildContextualCard(TEST_SLICE_URI)); Loading @@ -84,6 +86,31 @@ public class ContextualCardManagerTest { .isEqualTo(ContextualCard.CardType.CONDITIONAL); } @Test public void onContextualCardUpdated_hasEmptyMap_shouldKeepConditionalHeaderCard() { mManager.mContextualCards.add(new ConditionHeaderContextualCard.Builder().build()); mManager.setListener(mListener); mManager.onContextualCardUpdated(new ArrayMap<>()); assertThat(mManager.mContextualCards).hasSize(1); assertThat(mManager.mContextualCards.get(0).getCardType()) .isEqualTo(ContextualCard.CardType.CONDITIONAL_HEADER); } @Test public void onContextualCardUpdated_hasEmptyMap_shouldKeepConditionalFooterCard() { mManager.mContextualCards.add(new ConditionFooterContextualCard.Builder().build()); mManager.setListener(mListener); mManager.onContextualCardUpdated(new ArrayMap<>()); assertThat(mManager.mContextualCards).hasSize(1); assertThat(mManager.mContextualCards.get(0).getCardType()) .isEqualTo(ContextualCard.CardType.CONDITIONAL_FOOTER); } private ContextualCard buildContextualCard(String sliceUri) { return new ContextualCard.Builder() .setName("test_name") Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +7 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; /** Loading Loading @@ -132,8 +133,13 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo // except Conditional cards, all other cards are from the database. So when the map sent // here is empty, we only keep Conditional cards. if (cardTypes.isEmpty()) { final Set<Integer> conditionalCardTypes = new TreeSet() {{ add(ContextualCard.CardType.CONDITIONAL); add(ContextualCard.CardType.CONDITIONAL_HEADER); add(ContextualCard.CardType.CONDITIONAL_FOOTER); }}; cardsToKeep = mContextualCards.stream() .filter(card -> card.getCardType() == ContextualCard.CardType.CONDITIONAL) .filter(card -> conditionalCardTypes.contains(card.getCardType())) .collect(Collectors.toList()); } else { cardsToKeep = mContextualCards.stream() Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +28 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.content.Context; import android.net.Uri; import android.util.ArrayMap; import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionHeaderContextualCard; import com.android.settings.homepage.contextualcards.conditional.ConditionalContextualCard; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading Loading @@ -70,7 +72,7 @@ public class ContextualCardManagerTest { } @Test public void onContextualCardUpdated_emtpyMapWithExistingCards_shouldOnlyKeepConditionalCard() { public void onContextualCardUpdated_emptyMapWithExistingCards_shouldOnlyKeepConditionalCard() { mManager.mContextualCards.add(new ConditionalContextualCard.Builder().build()); mManager.mContextualCards.add( buildContextualCard(TEST_SLICE_URI)); Loading @@ -84,6 +86,31 @@ public class ContextualCardManagerTest { .isEqualTo(ContextualCard.CardType.CONDITIONAL); } @Test public void onContextualCardUpdated_hasEmptyMap_shouldKeepConditionalHeaderCard() { mManager.mContextualCards.add(new ConditionHeaderContextualCard.Builder().build()); mManager.setListener(mListener); mManager.onContextualCardUpdated(new ArrayMap<>()); assertThat(mManager.mContextualCards).hasSize(1); assertThat(mManager.mContextualCards.get(0).getCardType()) .isEqualTo(ContextualCard.CardType.CONDITIONAL_HEADER); } @Test public void onContextualCardUpdated_hasEmptyMap_shouldKeepConditionalFooterCard() { mManager.mContextualCards.add(new ConditionFooterContextualCard.Builder().build()); mManager.setListener(mListener); mManager.onContextualCardUpdated(new ArrayMap<>()); assertThat(mManager.mContextualCards).hasSize(1); assertThat(mManager.mContextualCards.get(0).getCardType()) .isEqualTo(ContextualCard.CardType.CONDITIONAL_FOOTER); } private ContextualCard buildContextualCard(String sliceUri) { return new ContextualCard.Builder() .setName("test_name") Loading