Merge "Remove the feature flag of contextual home V2" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e8e4e4bafc
@@ -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";
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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<>();
|
||||
|
Reference in New Issue
Block a user