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

Commit 81d194ed authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make contextual card count configurable."

parents be9bd728 72da4a81
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.util.Log;

import androidx.annotation.NonNull;
@@ -50,6 +51,8 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>

    @VisibleForTesting
    static final int DEFAULT_CARD_COUNT = 3;
    @VisibleForTesting
    static final String CONTEXTUAL_CARD_COUNT = "contextual_card_count";
    static final int CARD_CONTENT_LOADER_ID = 1;

    private static final String TAG = "ContextualCardLoader";
@@ -130,8 +133,9 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
        final List<ContextualCard> hiddenCards = new ArrayList<>();

        final int size = eligibleCards.size();
        final int cardCount = getCardCount();
        for (int i = 0; i < size; i++) {
            if (i < DEFAULT_CARD_COUNT) {
            if (i < cardCount) {
                visibleCards.add(eligibleCards.get(i));
            } else {
                hiddenCards.add(eligibleCards.get(i));
@@ -149,6 +153,14 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
        return visibleCards;
    }

    @VisibleForTesting
    int getCardCount() {
        // Return the card count if Settings.Global has KEY_CONTEXTUAL_CARD_COUNT key,
        // otherwise return the default one.
        return Settings.Global.getInt(mContext.getContentResolver(),
                CONTEXTUAL_CARD_COUNT, DEFAULT_CARD_COUNT);
    }

    @VisibleForTesting
    Cursor getContextualCardsFromProvider() {
        return CardDatabaseHelper.getInstance(mContext).getContextualCards();
+15 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.Uri;
import android.provider.Settings;

import com.android.settings.R;
import com.android.settings.slices.CustomSliceRegistry;
@@ -110,6 +111,20 @@ public class ContextualCardLoaderTest {
                eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW), any(String.class));
    }

    @Test
    public void getCardCount_noConfiguredCardCount_returnDefaultCardCount() {
        assertThat(mContextualCardLoader.getCardCount()).isEqualTo(DEFAULT_CARD_COUNT);
    }

    @Test
    public void getCardCount_hasConfiguredCardCount_returnConfiguredCardCount() {
        int configCount = 4;
        Settings.Global.putLong(mContext.getContentResolver(),
                ContextualCardLoader.CONTEXTUAL_CARD_COUNT, configCount);

        assertThat(mContextualCardLoader.getCardCount()).isEqualTo(configCount);
    }

    private List<ContextualCard> getContextualCardList() {
        final List<ContextualCard> cards = new ArrayList<>();
        cards.add(new ContextualCard.Builder()