diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java index 74ff6134dcf..a50cf41a385 100644 --- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java @@ -50,7 +50,7 @@ import java.util.concurrent.TimeoutException; public class ContextualCardLoader extends AsyncLoaderCompat> { @VisibleForTesting - static final int DEFAULT_CARD_COUNT = 4; + static final int DEFAULT_CARD_COUNT = 2; static final int CARD_CONTENT_LOADER_ID = 1; private static final String TAG = "ContextualCardLoader"; @@ -141,42 +141,19 @@ public class ContextualCardLoader extends AsyncLoaderCompat } } - try { - // The maximum cards are four small cards OR - // one large card with two small cards OR - // two large cards - if (visibleCards.size() <= 2 || getNumberOfLargeCard(visibleCards) == 0) { - // four small cards - return visibleCards; - } + if (!CardContentProvider.DELETE_CARD_URI.equals(mNotifyUri)) { + final MetricsFeatureProvider metricsFeatureProvider = + FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); - if (visibleCards.size() == DEFAULT_CARD_COUNT) { - hiddenCards.add(visibleCards.remove(visibleCards.size() - 1)); - } + metricsFeatureProvider.action(mContext, + SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW, + ContextualCardLogUtils.buildCardListLog(visibleCards)); - if (getNumberOfLargeCard(visibleCards) == 1) { - // One large card with two small cards - return visibleCards; - } - - hiddenCards.add(visibleCards.remove(visibleCards.size() - 1)); - - // Two large cards - return visibleCards; - } finally { - if (!CardContentProvider.DELETE_CARD_URI.equals(mNotifyUri)) { - final MetricsFeatureProvider metricsFeatureProvider = - FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); - - metricsFeatureProvider.action(mContext, - SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW, - ContextualCardLogUtils.buildCardListLog(visibleCards)); - - metricsFeatureProvider.action(mContext, - SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW, - ContextualCardLogUtils.buildCardListLog(hiddenCards)); - } + metricsFeatureProvider.action(mContext, + SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW, + ContextualCardLogUtils.buildCardListLog(hiddenCards)); } + return visibleCards; } @VisibleForTesting @@ -208,12 +185,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat return cards; } - private int getNumberOfLargeCard(List cards) { - return (int) cards.stream() - .filter(card -> isLargeCard(card)) - .count(); - } - private boolean isLargeCard(ContextualCard card) { return card.getSliceUri().equals(CONTEXTUAL_WIFI_SLICE_URI) || card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI) diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java index c2a3aa9cc9e..b7c21b8ae88 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java @@ -60,6 +60,14 @@ public class ContextualCardLoaderTest { mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); } + @Test + public void loadInBackground_legacyMode_shouldReturnNothing() { + assertThat(mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion)) + .isTrue(); + + assertThat(mContextualCardLoader.loadInBackground()).isEmpty(); + } + @Test public void getDisplayableCards_twoEligibleCards_shouldShowAll() { final List cards = getContextualCardList().stream().limit(2) @@ -72,53 +80,16 @@ public class ContextualCardLoaderTest { } @Test - public void getDisplayableCards_fiveEligibleCardsNoLarge_shouldShowDefaultCardCount() { - final List fiveCards = getContextualCardListWithNoLargeCard(); - doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(anyList()); + public void getDisplayableCards_fourEligibleCards_shouldShowDefaultCardCount() { + final List fourCards = getContextualCardList(); + doReturn(fourCards).when(mContextualCardLoader).filterEligibleCards(anyList()); - final List result = mContextualCardLoader.getDisplayableCards( - fiveCards); + final List result = mContextualCardLoader + .getDisplayableCards(fourCards); assertThat(result).hasSize(DEFAULT_CARD_COUNT); } - @Test - public void getDisplayableCards_threeEligibleCardsOneLarge_shouldShowThreeCards() { - final List cards = getContextualCardList().stream().limit(2) - .collect(Collectors.toList()); - cards.add(new ContextualCard.Builder() - .setName("test_gesture") - .setCardType(ContextualCard.CardType.SLICE) - .setSliceUri(Uri.parse( - "content://com.android.settings.test.slices/action/gesture_pick_up")) - .build()); - doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList()); - - final List result = mContextualCardLoader.getDisplayableCards(cards); - - assertThat(result).hasSize(3); - } - - @Test - public void getDisplayableCards_threeEligibleCardsTwoLarge_shouldShowTwoCards() { - final List threeCards = getContextualCardList().stream().limit(3) - .collect(Collectors.toList()); - doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(anyList()); - - final List result = mContextualCardLoader.getDisplayableCards( - threeCards); - - assertThat(result).hasSize(2); - } - - @Test - public void loadInBackground_legacyMode_shouldReturnNothing() { - assertThat(mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion)) - .isTrue(); - - assertThat(mContextualCardLoader.loadInBackground()).isEmpty(); - } - @Test public void getDisplayableCards_refreshCardUri_shouldLogContextualCardDisplay() { mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI; @@ -167,32 +138,4 @@ public class ContextualCardLoaderTest { .build()); return cards; } - - private List getContextualCardListWithNoLargeCard() { - final List cards = new ArrayList<>(); - cards.add(new ContextualCard.Builder() - .setName("test_rotate") - .setCardType(ContextualCard.CardType.SLICE) - .setSliceUri( - Uri.parse("content://com.android.settings.test.slices/action/auto_rotate")) - .build()); - cards.add(new ContextualCard.Builder() - .setName("test_flashlight") - .setCardType(ContextualCard.CardType.SLICE) - .setSliceUri( - Uri.parse("content://com.android.settings.test.slices/action/flashlight")) - .build()); - cards.add(new ContextualCard.Builder() - .setName("test_bt") - .setCardType(ContextualCard.CardType.SLICE) - .setSliceUri(Uri.parse("content://android.settings.test.slices/action/bluetooth")) - .build()); - cards.add(new ContextualCard.Builder() - .setName("test_gesture") - .setCardType(ContextualCard.CardType.SLICE) - .setSliceUri(Uri.parse( - "content://com.android.settings.test.slices/action/gesture_pick_up")) - .build()); - return cards; - } }