Merge "Stop showing battery card in homepage"
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
@@ -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)
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user