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

Commit c6b28045 authored by Fan Zhang's avatar Fan Zhang Committed by Android (Google) Code Review
Browse files

Merge "Stop showing battery card in homepage"

parents 71a25596 e11c1d03
Loading
Loading
Loading
Loading
+14 −46
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static androidx.slice.widget.SliceLiveData.SUPPORTED_SPECS;
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
@@ -35,7 +34,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.slice.Slice;

import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
import com.android.settings.wifi.WifiSlice;
import com.android.settingslib.utils.AsyncLoaderCompat;
@@ -52,11 +50,17 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>

    private static final String TAG = "ContextualCardLoader";

    private Context mContext;

    public interface CardContentLoaderListener {
        void onFinishCardLoading(List<ContextualCard> contextualCards);
    private final ContentObserver mObserver = new ContentObserver(
            new Handler(Looper.getMainLooper())) {
        @Override
        public void onChange(boolean selfChange) {
            if (isStarted()) {
                forceLoad();
            }
        }
    };

    private Context mContext;

    ContextualCardLoader(Context context) {
        super(context);
@@ -86,9 +90,7 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
    public List<ContextualCard> loadInBackground() {
        final List<ContextualCard> result = new ArrayList<>();
        try (Cursor cursor = getContextualCardsFromProvider()) {
            if (cursor.getCount() == 0) {
                result.addAll(createStaticCards());
            } else {
            if (cursor.getCount() > 0) {
                for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
                    final ContextualCard card = new ContextualCard(cursor);
                    if (card.isCustomCard()) {
@@ -130,24 +132,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
        return CardDatabaseHelper.getInstance(mContext).getContextualCards();
    }

    @VisibleForTesting
    List<ContextualCard> createStaticCards() {
        final long appVersionCode = getAppVersionCode();
        final String packageName = mContext.getPackageName();
        final double rankingScore = 0.0;
        final List<ContextualCard> result = new ArrayList();
        result.add(new ContextualCard.Builder()
                .setSliceUri(BatterySlice.BATTERY_CARD_URI)
                .setName(BatterySlice.PATH_BATTERY_INFO)
                .setPackageName(packageName)
                .setRankingScore(rankingScore)
                .setAppVersion(appVersionCode)
                .setCardType(ContextualCard.CardType.SLICE)
                .setIsHalfWidth(false)
                .build());
        return result;
    }

    @VisibleForTesting
    List<ContextualCard> filterEligibleCards(List<ContextualCard> candidates) {
        return candidates.stream().filter(card -> isCardEligibleToDisplay(card))
@@ -191,23 +175,7 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
                .count();
    }

    private long getAppVersionCode() {
        try {
            return mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),
                    0 /* flags */).getLongVersionCode();
        } catch (PackageManager.NameNotFoundException e) {
            Log.e(TAG, "Invalid package name for context", e);
        }
        return -1L;
    }

    private final ContentObserver mObserver = new ContentObserver(
            new Handler(Looper.getMainLooper())) {
        @Override
        public void onChange(boolean selfChange) {
            if (isStarted()) {
                forceLoad();
            }
    public interface CardContentLoaderListener {
        void onFinishCardLoading(List<ContextualCard> contextualCards);
    }
    };
}
 No newline at end of file
+1 −9
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import static android.provider.SettingsSlicesContract.KEY_WIFI;

import android.annotation.Nullable;

import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
@@ -44,12 +43,6 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
                        .setCardName(KEY_WIFI)
                        .setCardCategory(ContextualCard.Category.IMPORTANT)
                        .build();
        final ContextualCard batteryInfoCard =
                ContextualCard.newBuilder()
                        .setSliceUri(BatterySlice.BATTERY_CARD_URI.toString())
                        .setCardName(BatterySlice.PATH_BATTERY_INFO)
                        .setCardCategory(ContextualCard.Category.DEFAULT)
                        .build();
        final ContextualCard connectedDeviceCard =
                ContextualCard.newBuilder()
                        .setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString())
@@ -70,7 +63,6 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
                        .build();
        final ContextualCardList cards = ContextualCardList.newBuilder()
                .addCard(wifiCard)
                .addCard(batteryInfoCard)
                .addCard(connectedDeviceCard)
                .addCard(lowStorageCard)
                .addCard(batteryFixCard)
+1 −13
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowContentResolver;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@@ -60,17 +59,6 @@ public class ContextualCardLoaderTest {
                mProvider);
    }

    @Test
    public void createStaticCards_shouldContainCorrectCards() {
        final Uri batteryInfo = BatterySlice.BATTERY_CARD_URI;
        final List<Uri> expectedUris = Arrays.asList(batteryInfo);

        final List<Uri> actualCardUris = mContextualCardLoader.createStaticCards().stream().map(
                ContextualCard::getSliceUri).collect(Collectors.toList());

        assertThat(actualCardUris).containsExactlyElementsIn(expectedUris);
    }

    @Test
    public void isCardEligibleToDisplay_customCard_returnTrue() {
        final ContextualCard customCard = new ContextualCard.Builder()