Loading src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +11 −2 Original line number Diff line number Diff line Loading @@ -266,6 +266,15 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo SettingsEnums.ACTION_CONTEXTUAL_CARD_LOAD_TIMEOUT, SettingsEnums.SETTINGS_HOMEPAGE, null /* key */, (int) loadTime /* value */); // display a card on timeout if the one-card space is pre-allocated if (!cards.isEmpty() && ContextualCardLoader.getCardCount(mContext) == 1) { onContextualCardUpdated(cards.stream() .collect(groupingBy(ContextualCard::getCardType))); metricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW, ContextualCardLogUtils.buildCardListLog(cards)); } } // only log homepage display upon a fresh launch final long totalTime = System.currentTimeMillis() - mStartTime; Loading tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.homepage.contextualcards; import static com.android.settings.homepage.contextualcards.ContextualCardLoader.CONTEXTUAL_CARD_COUNT; import static com.android.settings.homepage.contextualcards.ContextualCardManager.KEY_CONTEXTUAL_CARDS; import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH; import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH; Loading Loading @@ -307,7 +308,7 @@ public class ContextualCardManagerTest { } @Test public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() { public void onFinishCardLoading_fastLoad_shouldUpdateContextualCard() { mManager.mStartTime = System.currentTimeMillis(); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); Loading @@ -318,7 +319,7 @@ public class ContextualCardManagerTest { } @Test public void onFinishCardLoading_slowLoad_shouldSkipOnContextualCardUpdated() { public void onFinishCardLoading_slowLoadAndNoCard_shouldNotUpdateContextualCard() { mManager.mStartTime = 0; final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); Loading @@ -328,6 +329,30 @@ public class ContextualCardManagerTest { verify(manager, never()).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_slowLoadAndNotPreAllocateSpace_shouldNotUpdateContextualCard() { mManager.mStartTime = 0; Settings.Global.putInt(mContext.getContentResolver(), CONTEXTUAL_CARD_COUNT, 3); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); manager.onFinishCardLoading(Arrays.asList(buildContextualCard(TEST_SLICE_URI))); verify(manager, never()).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_slowLoadAndPreAllocateSpace_shouldUpdateContextualCard() { mManager.mStartTime = 0; Settings.Global.putInt(mContext.getContentResolver(), CONTEXTUAL_CARD_COUNT, 1); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); manager.onFinishCardLoading(Arrays.asList(buildContextualCard(TEST_SLICE_URI))); verify(manager).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_newLaunch_twoLoadedCards_shouldShowTwoCards() { mManager.mStartTime = System.currentTimeMillis(); Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +11 −2 Original line number Diff line number Diff line Loading @@ -266,6 +266,15 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo SettingsEnums.ACTION_CONTEXTUAL_CARD_LOAD_TIMEOUT, SettingsEnums.SETTINGS_HOMEPAGE, null /* key */, (int) loadTime /* value */); // display a card on timeout if the one-card space is pre-allocated if (!cards.isEmpty() && ContextualCardLoader.getCardCount(mContext) == 1) { onContextualCardUpdated(cards.stream() .collect(groupingBy(ContextualCard::getCardType))); metricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW, ContextualCardLogUtils.buildCardListLog(cards)); } } // only log homepage display upon a fresh launch final long totalTime = System.currentTimeMillis() - mStartTime; Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.homepage.contextualcards; import static com.android.settings.homepage.contextualcards.ContextualCardLoader.CONTEXTUAL_CARD_COUNT; import static com.android.settings.homepage.contextualcards.ContextualCardManager.KEY_CONTEXTUAL_CARDS; import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH; import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH; Loading Loading @@ -307,7 +308,7 @@ public class ContextualCardManagerTest { } @Test public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() { public void onFinishCardLoading_fastLoad_shouldUpdateContextualCard() { mManager.mStartTime = System.currentTimeMillis(); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); Loading @@ -318,7 +319,7 @@ public class ContextualCardManagerTest { } @Test public void onFinishCardLoading_slowLoad_shouldSkipOnContextualCardUpdated() { public void onFinishCardLoading_slowLoadAndNoCard_shouldNotUpdateContextualCard() { mManager.mStartTime = 0; final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); Loading @@ -328,6 +329,30 @@ public class ContextualCardManagerTest { verify(manager, never()).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_slowLoadAndNotPreAllocateSpace_shouldNotUpdateContextualCard() { mManager.mStartTime = 0; Settings.Global.putInt(mContext.getContentResolver(), CONTEXTUAL_CARD_COUNT, 3); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); manager.onFinishCardLoading(Arrays.asList(buildContextualCard(TEST_SLICE_URI))); verify(manager, never()).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_slowLoadAndPreAllocateSpace_shouldUpdateContextualCard() { mManager.mStartTime = 0; Settings.Global.putInt(mContext.getContentResolver(), CONTEXTUAL_CARD_COUNT, 1); final ContextualCardManager manager = spy(mManager); doNothing().when(manager).onContextualCardUpdated(anyMap()); manager.onFinishCardLoading(Arrays.asList(buildContextualCard(TEST_SLICE_URI))); verify(manager).onContextualCardUpdated(anyMap()); } @Test public void onFinishCardLoading_newLaunch_twoLoadedCards_shouldShowTwoCards() { mManager.mStartTime = System.currentTimeMillis(); Loading