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

Commit e11c1d03 authored by Yanting Yang's avatar Yanting Yang
Browse files

Stop showing battery card in homepage

In previous design, we add default card feature for "me Card". But "me
Card" is being built by another team. We have removed related cards from
default card feature in ag/5394464 but battery card. Now, remove it.

Fixes: 119819851
Test: robotests
Change-Id: I445546024c80c227abce649008ec648340577e99
parent b0bed799
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()