Merge "Stop showing battery card in homepage"

This commit is contained in:
Fan Zhang
2018-11-27 18:18:48 +00:00
committed by Android (Google) Code Review
3 changed files with 16 additions and 68 deletions

View File

@@ -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;
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);
}
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;
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();
}
}
};
}
}

View File

@@ -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)
@@ -78,4 +70,4 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
return cards;
}
}
}

View File

@@ -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()
@@ -224,4 +212,4 @@ public class ContextualCardLoaderTest {
.build());
return cards;
}
}
}