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.ContentProviderClient;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@@ -35,7 +34,6 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.slice.Slice;
|
import androidx.slice.Slice;
|
||||||
|
|
||||||
import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
|
|
||||||
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
||||||
import com.android.settings.wifi.WifiSlice;
|
import com.android.settings.wifi.WifiSlice;
|
||||||
import com.android.settingslib.utils.AsyncLoaderCompat;
|
import com.android.settingslib.utils.AsyncLoaderCompat;
|
||||||
@@ -52,11 +50,17 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
|
|
||||||
private static final String TAG = "ContextualCardLoader";
|
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 {
|
private Context mContext;
|
||||||
void onFinishCardLoading(List<ContextualCard> contextualCards);
|
|
||||||
}
|
|
||||||
|
|
||||||
ContextualCardLoader(Context context) {
|
ContextualCardLoader(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
@@ -86,9 +90,7 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
public List<ContextualCard> loadInBackground() {
|
public List<ContextualCard> loadInBackground() {
|
||||||
final List<ContextualCard> result = new ArrayList<>();
|
final List<ContextualCard> result = new ArrayList<>();
|
||||||
try (Cursor cursor = getContextualCardsFromProvider()) {
|
try (Cursor cursor = getContextualCardsFromProvider()) {
|
||||||
if (cursor.getCount() == 0) {
|
if (cursor.getCount() > 0) {
|
||||||
result.addAll(createStaticCards());
|
|
||||||
} else {
|
|
||||||
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
|
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
|
||||||
final ContextualCard card = new ContextualCard(cursor);
|
final ContextualCard card = new ContextualCard(cursor);
|
||||||
if (card.isCustomCard()) {
|
if (card.isCustomCard()) {
|
||||||
@@ -130,24 +132,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
return CardDatabaseHelper.getInstance(mContext).getContextualCards();
|
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
|
@VisibleForTesting
|
||||||
List<ContextualCard> filterEligibleCards(List<ContextualCard> candidates) {
|
List<ContextualCard> filterEligibleCards(List<ContextualCard> candidates) {
|
||||||
return candidates.stream().filter(card -> isCardEligibleToDisplay(card))
|
return candidates.stream().filter(card -> isCardEligibleToDisplay(card))
|
||||||
@@ -191,23 +175,7 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
|||||||
.count();
|
.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getAppVersionCode() {
|
public interface CardContentLoaderListener {
|
||||||
try {
|
void onFinishCardLoading(List<ContextualCard> contextualCards);
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
@@ -20,7 +20,6 @@ import static android.provider.SettingsSlicesContract.KEY_WIFI;
|
|||||||
|
|
||||||
import android.annotation.Nullable;
|
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.BatteryFixSlice;
|
||||||
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
||||||
import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
|
import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
|
||||||
@@ -44,12 +43,6 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
|
|||||||
.setCardName(KEY_WIFI)
|
.setCardName(KEY_WIFI)
|
||||||
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
||||||
.build();
|
.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 =
|
final ContextualCard connectedDeviceCard =
|
||||||
ContextualCard.newBuilder()
|
ContextualCard.newBuilder()
|
||||||
.setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString())
|
.setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString())
|
||||||
@@ -70,7 +63,6 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
|
|||||||
.build();
|
.build();
|
||||||
final ContextualCardList cards = ContextualCardList.newBuilder()
|
final ContextualCardList cards = ContextualCardList.newBuilder()
|
||||||
.addCard(wifiCard)
|
.addCard(wifiCard)
|
||||||
.addCard(batteryInfoCard)
|
|
||||||
.addCard(connectedDeviceCard)
|
.addCard(connectedDeviceCard)
|
||||||
.addCard(lowStorageCard)
|
.addCard(lowStorageCard)
|
||||||
.addCard(batteryFixCard)
|
.addCard(batteryFixCard)
|
||||||
|
@@ -40,7 +40,6 @@ import org.robolectric.RuntimeEnvironment;
|
|||||||
import org.robolectric.shadows.ShadowContentResolver;
|
import org.robolectric.shadows.ShadowContentResolver;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -60,17 +59,6 @@ public class ContextualCardLoaderTest {
|
|||||||
mProvider);
|
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
|
@Test
|
||||||
public void isCardEligibleToDisplay_customCard_returnTrue() {
|
public void isCardEligibleToDisplay_customCard_returnTrue() {
|
||||||
final ContextualCard customCard = new ContextualCard.Builder()
|
final ContextualCard customCard = new ContextualCard.Builder()
|
||||||
|
Reference in New Issue
Block a user