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

Commit d489acb2 authored by Jason Chiu's avatar Jason Chiu
Browse files

Remove the feature flag of contextual home V2

Bug: 159393461
Test: robotest & rebuild
Change-Id: If5f030b4c8bd5ef61bb722da9ae7f3ace0ac6e0e
parent 5bd41e57
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,5 +29,4 @@ public class FeatureFlags {
    public static final String CONTROLLER_ENHANCEMENT = "settings_controller_loading_enhancement";
    public static final String CONDITIONAL_CARDS = "settings_conditionals";
    public static final String TETHER_ALL_IN_ONE = "settings_tether_all_in_one";
    public static final String CONTEXTUAL_HOME2 = "settings_contextual_home2";
}
+1 −25
Original line number Diff line number Diff line
@@ -19,14 +19,11 @@ package com.android.settings.homepage.contextualcards;
import static com.android.settings.homepage.contextualcards.ContextualCardLoader.CARD_CONTENT_LOADER_ID;
import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.STICKY_VALUE;
import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE;
import static com.android.settings.slices.CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;

import static java.util.stream.Collectors.groupingBy;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.text.format.DateUtils;
@@ -55,7 +52,6 @@ import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -85,8 +81,6 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
    static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards";

    private static final String TAG = "ContextualCardManager";
    private static final List<Uri> STICKY_CARDS =
            Arrays.asList(CONTEXTUAL_WIFI_SLICE_URI, BLUETOOTH_DEVICES_SLICE_URI);

    private final Context mContext;
    private final Lifecycle mLifecycle;
@@ -364,30 +358,12 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo

    private List<ContextualCard> getCardsWithStickyViewType(List<ContextualCard> cards) {
        final List<ContextualCard> result = new ArrayList<>(cards);
        int replaceCount = 0;
        for (int index = 0; index < result.size(); index++) {
            final ContextualCard card = cards.get(index);
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2)) {
            if (card.getCategory() == STICKY_VALUE) {
                result.set(index, card.mutate().setViewType(
                        SliceContextualCardRenderer.VIEW_TYPE_STICKY).build());
            }
                continue;
            }

            if (replaceCount > STICKY_CARDS.size() - 1) {
                break;
            }

            if (card.getCardType() != ContextualCard.CardType.SLICE) {
                continue;
            }

            if (STICKY_CARDS.contains(card.getSliceUri())) {
                result.set(index, card.mutate().setViewType(
                        SliceContextualCardRenderer.VIEW_TYPE_STICKY).build());
                replaceCount++;
            }
        }
        return result;
    }
+0 −84
Original line number Diff line number Diff line
@@ -610,7 +610,6 @@ public class ContextualCardManagerTest {

    @Test
    public void getCardsWithViewType_hasOneStickySlice_shouldHaveOneStickyCard() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2, true);
        final List<ContextualCard> cards = new ArrayList<>();
        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString()));
        cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
@@ -627,89 +626,6 @@ public class ContextualCardManagerTest {
        assertThat(result.get(1).getViewType()).isEqualTo(VIEW_TYPE_FULL_WIDTH);
    }

    @Test
    public void getCardsWithViewType_hasWifiSlice_shouldHaveOneStickyCard() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2, false);
        final List<ContextualCard> cards = new ArrayList<>();
        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString()));
        cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
        final List<Integer> categories = Arrays.asList(
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
        );
        final List<ContextualCard> cardListWithWifi = buildCategoriedCards(cards, categories);

        final List<ContextualCard> result = mManager.getCardsWithViewType(cardListWithWifi);

        assertThat(result).hasSize(cards.size());
        assertThat(result.get(0).getViewType()).isEqualTo(VIEW_TYPE_STICKY);
        assertThat(result.get(1).getViewType()).isEqualTo(VIEW_TYPE_FULL_WIDTH);
    }

    @Test
    public void getCardsWithViewType_hasBluetoothDeviceSlice_shouldHaveOneStickyCard() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2, false);
        final List<ContextualCard> cards = new ArrayList<>();
        cards.add(buildContextualCard(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI.toString()));
        cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
        final List<Integer> categories = Arrays.asList(
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
        );
        final List<ContextualCard> cardListWithBT = buildCategoriedCards(cards, categories);

        final List<ContextualCard> result = mManager.getCardsWithViewType(cardListWithBT);

        assertThat(result).hasSize(cards.size());
        assertThat(result.get(0).getViewType()).isEqualTo(VIEW_TYPE_STICKY);
        assertThat(result.get(1).getViewType()).isEqualTo(VIEW_TYPE_FULL_WIDTH);
    }

    @Test
    public void getCardsWithViewType_hasWifiAndBtDeviceSlice_shouldHaveTwoStickyCards() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2, false);
        final List<ContextualCard> cards = new ArrayList<>();
        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString()));
        cards.add(buildContextualCard(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI.toString()));
        cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
        final List<Integer> categories = Arrays.asList(
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
        );
        final List<ContextualCard> cardListWithWifiBT = buildCategoriedCards(cards, categories);

        final List<ContextualCard> result = mManager.getCardsWithViewType(cardListWithWifiBT);

        assertThat(result).hasSize(cards.size());
        assertThat(result.stream()
                .filter(card -> card.getViewType() == VIEW_TYPE_STICKY)
                .count())
                .isEqualTo(2);
    }

    @Test
    public void getCardsWithViewType_noWifiOrBtDeviceSlice_shouldNotHaveStickyCard() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONTEXTUAL_HOME2, false);
        final List<Integer> categories = Arrays.asList(
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
                ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
        );
        final List<ContextualCard> cardListWithoutWifiBT =
                buildCategoriedCards(getContextualCardList(), categories);

        final List<ContextualCard> result = mManager.getCardsWithViewType(cardListWithoutWifiBT);

        assertThat(result).hasSize(cardListWithoutWifiBT.size());
        assertThat(result.stream()
                .filter(card -> card.getViewType() == VIEW_TYPE_STICKY)
                .count())
                .isEqualTo(0);
    }

    @Test
    public void getCardsToKeep_hasSavedCard_shouldResetSavedCards() {
        final List<String> savedCardNames = new ArrayList<>();