Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8b34c64 authored by Jason Chiu's avatar Jason Chiu Committed by Android (Google) Code Review
Browse files

Merge "[DO NOT MERGE] Fix the blank space on contextual card loading timeout" into rvc-qpr-dev

parents 434bffe9 4753adfb
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -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;
+27 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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());
@@ -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());
@@ -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();