Loading src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +14 −46 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -52,11 +50,17 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> private static final String TAG = "ContextualCardLoader"; private Context mContext; 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(); } } }; private Context mContext; ContextualCardLoader(Context context) { super(context); Loading Loading @@ -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()) { Loading Loading @@ -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)) Loading Loading @@ -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; } 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); } }; } No newline at end of file src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java +1 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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()) Loading @@ -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) Loading tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java +1 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +14 −46 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -52,11 +50,17 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> private static final String TAG = "ContextualCardLoader"; private Context mContext; 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(); } } }; private Context mContext; ContextualCardLoader(Context context) { super(context); Loading Loading @@ -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()) { Loading Loading @@ -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)) Loading Loading @@ -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; } 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); } }; } No newline at end of file
src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java +1 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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()) Loading @@ -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) Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java +1 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() Loading