Move all custom slice uris to a registry class.
Change-Id: I192320f95ac81d14c8891ce2531d603912e59f56 Fixes: 119776308 Test: robotests
This commit is contained in:
@@ -20,7 +20,6 @@ import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
import android.annotation.ColorInt;
|
||||
import android.app.PendingIntent;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
@@ -37,6 +36,7 @@ import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.connecteddevice.BluetoothDashboardFragment;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
@@ -47,16 +47,6 @@ public class BluetoothSliceBuilder {
|
||||
|
||||
private static final String TAG = "BluetoothSliceBuilder";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Bluetooth Slice.
|
||||
*/
|
||||
public static final Uri BLUETOOTH_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(SettingsSlicesContract.KEY_BLUETOOTH)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Action notifying a change on the BluetoothSlice.
|
||||
*/
|
||||
@@ -74,7 +64,7 @@ public class BluetoothSliceBuilder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Bluetooth Slice bound to {@link #BLUETOOTH_URI}.
|
||||
* Return a Bluetooth Slice bound to {@link CustomSliceRegistry#BLUETOOTH_URI}.
|
||||
* <p>
|
||||
* Note that you should register a listener for {@link #INTENT_FILTER} to get changes for
|
||||
* Bluetooth.
|
||||
@@ -92,7 +82,7 @@ public class BluetoothSliceBuilder {
|
||||
final SliceAction toggleSliceAction = new SliceAction(toggleAction, null /* actionTitle */,
|
||||
isBluetoothEnabled);
|
||||
|
||||
return new ListBuilder(context, BLUETOOTH_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(context, CustomSliceRegistry.BLUETOOTH_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
|
@@ -22,17 +22,14 @@ import static androidx.slice.builders.ListBuilder.ICON_IMAGE;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.hardware.camera2.CameraAccessException;
|
||||
import android.hardware.camera2.CameraCharacteristics;
|
||||
import android.hardware.camera2.CameraManager;
|
||||
import android.net.Uri;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.Secure;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
@@ -43,7 +40,7 @@ import androidx.slice.builders.SliceAction;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
|
||||
|
||||
@@ -54,18 +51,6 @@ public class FlashlightSliceBuilder {
|
||||
|
||||
private static final String TAG = "FlashlightSliceBuilder";
|
||||
|
||||
public static final String KEY_FLASHLIGHT = "flashlight";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Flashlight Slice.
|
||||
*/
|
||||
public static final Uri FLASHLIGHT_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY_FLASHLIGHT)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Action notifying a change on the Flashlight Slice.
|
||||
*/
|
||||
@@ -80,11 +65,9 @@ public class FlashlightSliceBuilder {
|
||||
|
||||
public static final IntentFilter INTENT_FILTER = new IntentFilter(ACTION_FLASHLIGHT_CHANGED);
|
||||
|
||||
private FlashlightSliceBuilder() {}
|
||||
private FlashlightSliceBuilder() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Flashlight Slice bound to {@link #FLASHLIGHT_URI}.
|
||||
*/
|
||||
public static Slice getSlice(Context context) {
|
||||
if (!isFlashlightAvailable(context)) {
|
||||
return null;
|
||||
@@ -93,7 +76,8 @@ public class FlashlightSliceBuilder {
|
||||
@ColorInt final int color = Utils.getColorAccentDefaultColor(context);
|
||||
final IconCompat icon =
|
||||
IconCompat.createWithResource(context, R.drawable.ic_signal_flashlight);
|
||||
return new ListBuilder(context, FLASHLIGHT_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(context, CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(context.getText(R.string.power_flashlight))
|
||||
@@ -119,7 +103,7 @@ public class FlashlightSliceBuilder {
|
||||
} catch (CameraAccessException e) {
|
||||
Log.e(TAG, "Camera couldn't set torch mode.", e);
|
||||
}
|
||||
context.getContentResolver().notifyChange(FLASHLIGHT_URI, null);
|
||||
context.getContentResolver().notifyChange(CustomSliceRegistry.FLASHLIGHT_SLICE_URI, null);
|
||||
}
|
||||
|
||||
private static String getCameraId(Context context) throws CameraAccessException {
|
||||
|
@@ -42,6 +42,9 @@ import java.util.Map;
|
||||
* Controller in charge of the battery tip group
|
||||
*/
|
||||
public class BatteryTipPreferenceController extends BasePreferenceController {
|
||||
|
||||
public static final String PREF_NAME = "battery_tip";
|
||||
|
||||
private static final String TAG = "BatteryTipPreferenceController";
|
||||
private static final int REQUEST_ANOMALY_ACTION = 0;
|
||||
private static final String KEY_BATTERY_TIPS = "key_battery_tips";
|
||||
|
@@ -34,8 +34,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.slice.Slice;
|
||||
|
||||
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settingslib.utils.AsyncLoaderCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -170,8 +169,8 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
|
||||
|
||||
private int getNumberOfLargeCard(List<ContextualCard> cards) {
|
||||
return (int) cards.stream()
|
||||
.filter(card -> card.getSliceUri().equals(WifiSlice.WIFI_URI)
|
||||
|| card.getSliceUri().equals(ConnectedDeviceSlice.CONNECTED_DEVICE_URI))
|
||||
.filter(card -> card.getSliceUri().equals(CustomSliceRegistry.WIFI_SLICE_URI)
|
||||
|| card.getSliceUri().equals(CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI))
|
||||
.count();
|
||||
}
|
||||
|
||||
|
@@ -16,16 +16,11 @@
|
||||
|
||||
package com.android.settings.homepage.contextualcards;
|
||||
|
||||
import static android.provider.SettingsSlicesContract.KEY_WIFI;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
|
||||
import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
|
||||
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
||||
import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
|
||||
import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
|
||||
import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
|
||||
import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
|
||||
|
||||
@@ -39,26 +34,26 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
|
||||
public ContextualCardList getContextualCards() {
|
||||
final ContextualCard wifiCard =
|
||||
ContextualCard.newBuilder()
|
||||
.setSliceUri(WifiSlice.WIFI_URI.toString())
|
||||
.setCardName(KEY_WIFI)
|
||||
.setSliceUri(CustomSliceRegistry.WIFI_SLICE_URI.toString())
|
||||
.setCardName(CustomSliceRegistry.WIFI_SLICE_URI.toString())
|
||||
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
||||
.build();
|
||||
final ContextualCard connectedDeviceCard =
|
||||
ContextualCard.newBuilder()
|
||||
.setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString())
|
||||
.setCardName(ConnectedDeviceSlice.PATH_CONNECTED_DEVICE)
|
||||
.setSliceUri(CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI.toString())
|
||||
.setCardName(CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI.toString())
|
||||
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
||||
.build();
|
||||
final ContextualCard lowStorageCard =
|
||||
ContextualCard.newBuilder()
|
||||
.setSliceUri(LowStorageSlice.LOW_STORAGE_URI.toString())
|
||||
.setCardName(LowStorageSlice.PATH_LOW_STORAGE)
|
||||
.setSliceUri(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString())
|
||||
.setCardName(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString())
|
||||
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
||||
.build();
|
||||
final ContextualCard batteryFixCard =
|
||||
ContextualCard.newBuilder()
|
||||
.setSliceUri(BatteryFixSlice.BATTERY_FIX_URI.toString())
|
||||
.setCardName(BatteryFixSlice.PATH_BATTERY_FIX)
|
||||
.setSliceUri(CustomSliceRegistry.BATTERY_FIX_SLICE_URI.toString())
|
||||
.setCardName(CustomSliceRegistry.BATTERY_FIX_SLICE_URI.toString())
|
||||
.setCardCategory(ContextualCard.Category.IMPORTANT)
|
||||
.build();
|
||||
final ContextualCardList cards = ContextualCardList.newBuilder()
|
||||
|
@@ -16,8 +16,9 @@
|
||||
|
||||
package com.android.settings.homepage.contextualcards.deviceinfo;
|
||||
|
||||
import static com.android.settings.slices.CustomSliceRegistry.BATTERY_INFO_SLICE_URI;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
@@ -37,7 +38,6 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.fuelgauge.BatteryInfo;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
/**
|
||||
@@ -46,20 +46,6 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
public class BatterySlice implements CustomSliceable {
|
||||
private static final String TAG = "BatterySlice";
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of battery slice.
|
||||
*/
|
||||
public static final String PATH_BATTERY_INFO = "battery_card";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Battery Slice.
|
||||
*/
|
||||
public static final Uri BATTERY_CARD_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_BATTERY_INFO)
|
||||
.build();
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
private BatteryInfo mBatteryInfo;
|
||||
@@ -69,9 +55,6 @@ public class BatterySlice implements CustomSliceable {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a {@link BatterySlice} bound to {@link #BATTERY_CARD_URI}
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
if (mBatteryInfo == null) {
|
||||
@@ -82,7 +65,7 @@ public class BatterySlice implements CustomSliceable {
|
||||
R.drawable.ic_settings_battery);
|
||||
final CharSequence title = mContext.getText(R.string.power_usage_summary_title);
|
||||
final SliceAction primarySliceAction = new SliceAction(getPrimaryAction(), icon, title);
|
||||
final Slice slice = new ListBuilder(mContext, BATTERY_CARD_URI, ListBuilder.INFINITY)
|
||||
final Slice slice = new ListBuilder(mContext, BATTERY_INFO_SLICE_URI, ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
|
||||
.addRow(new ListBuilder.RowBuilder()
|
||||
@@ -97,7 +80,7 @@ public class BatterySlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return BATTERY_CARD_URI;
|
||||
return BATTERY_INFO_SLICE_URI;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -108,12 +91,10 @@ public class BatterySlice implements CustomSliceable {
|
||||
@Override
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.power_usage_summary_title).toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_BATTERY_INFO).build();
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
PowerUsageSummary.class.getName(), PATH_BATTERY_INFO, screenTitle,
|
||||
PowerUsageSummary.class.getName(), "" /* key */, screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.homepage.contextualcards.deviceinfo;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -39,8 +38,8 @@ import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.datausage.DataUsageSummary;
|
||||
import com.android.settings.datausage.DataUsageUtils;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
|
||||
@@ -50,19 +49,6 @@ public class DataUsageSlice implements CustomSliceable {
|
||||
private static final String TAG = "DataUsageSlice";
|
||||
private static final long MILLIS_IN_A_DAY = TimeUnit.DAYS.toMillis(1);
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of data usage slice.
|
||||
*/
|
||||
public static final String PATH_DATA_USAGE = "data_usage_card";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Data usage Slice.
|
||||
*/
|
||||
public static final Uri DATA_USAGE_CARD_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_DATA_USAGE)
|
||||
.build();
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
@@ -72,12 +58,9 @@ public class DataUsageSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return DATA_USAGE_CARD_URI;
|
||||
return CustomSliceRegistry.DATA_USAGE_SLICE_URI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Data usage Slice bound to {@link #DATA_USAGE_CARD_URI}
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
@@ -87,7 +70,8 @@ public class DataUsageSlice implements CustomSliceable {
|
||||
final DataUsageController dataUsageController = new DataUsageController(mContext);
|
||||
final DataUsageController.DataUsageInfo info = dataUsageController.getDataUsageInfo();
|
||||
final ListBuilder listBuilder =
|
||||
new ListBuilder(mContext, DATA_USAGE_CARD_URI, ListBuilder.INFINITY)
|
||||
new ListBuilder(mContext, CustomSliceRegistry.DATA_USAGE_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.setHeader(new ListBuilder.HeaderBuilder().setTitle(title));
|
||||
if (DataUsageUtils.hasSim(mContext)) {
|
||||
@@ -106,12 +90,10 @@ public class DataUsageSlice implements CustomSliceable {
|
||||
@Override
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.data_usage_wifi_title).toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_DATA_USAGE).build();
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
DataUsageSummary.class.getName(), PATH_DATA_USAGE, screenTitle,
|
||||
DataUsageSummary.class.getName(), "" /* key */, screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
|
||||
private PendingIntent getPrimaryAction() {
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.homepage.contextualcards.deviceinfo;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -39,8 +38,8 @@ import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.deviceinfo.DeviceModelPreferenceController;
|
||||
import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.DeviceInfoUtils;
|
||||
|
||||
@@ -49,20 +48,6 @@ import java.util.List;
|
||||
public class DeviceInfoSlice implements CustomSliceable {
|
||||
private static final String TAG = "DeviceInfoSlice";
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of device info slice
|
||||
*/
|
||||
public static final String PATH_DEVICE_INFO = "device_info_card";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Device info Slice.
|
||||
*/
|
||||
public static final Uri DEVICE_INFO_CARD_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_DEVICE_INFO)
|
||||
.build();
|
||||
|
||||
private final Context mContext;
|
||||
private final SubscriptionManager mSubscriptionManager;
|
||||
|
||||
@@ -71,16 +56,14 @@ public class DeviceInfoSlice implements CustomSliceable {
|
||||
mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a device info slice bound to {@Link #DEVICE_INFO_CARD_URI}
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
R.drawable.ic_info_outline_24dp);
|
||||
final String title = mContext.getString(R.string.device_info_label);
|
||||
final SliceAction primaryAction = new SliceAction(getPrimaryAction(), icon, title);
|
||||
return new ListBuilder(mContext, DEVICE_INFO_CARD_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(mContext, CustomSliceRegistry.DEVICE_INFO_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor((Utils.getColorAccentDefaultColor(mContext)))
|
||||
.setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
|
||||
.addRow(new ListBuilder.RowBuilder()
|
||||
@@ -92,18 +75,16 @@ public class DeviceInfoSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return DEVICE_INFO_CARD_URI;
|
||||
return CustomSliceRegistry.DEVICE_INFO_SLICE_URI;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.device_info_label).toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_DEVICE_INFO).build();
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
MyDeviceInfoFragment.class.getName(), PATH_DEVICE_INFO, screenTitle,
|
||||
MyDeviceInfoFragment.class.getName(), "" /* key */, screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
|
||||
private PendingIntent getPrimaryAction() {
|
||||
|
@@ -17,10 +17,8 @@
|
||||
package com.android.settings.homepage.contextualcards.deviceinfo;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
@@ -28,39 +26,27 @@ import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
|
||||
// This is a slice helper class for EmergencyInfo
|
||||
public class EmergencyInfoSlice {
|
||||
/**
|
||||
* The path denotes the unique name of emergency info slice.
|
||||
*/
|
||||
public static final String PATH_EMERGENCY_INFO_CARD = "emergency_info_card";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Emergency Info Slice.
|
||||
*/
|
||||
public static final Uri EMERGENCY_INFO_CARD_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_EMERGENCY_INFO_CARD)
|
||||
.build();
|
||||
|
||||
private static final String ACTION_EDIT_EMERGENCY_INFO = "android.settings.EDIT_EMERGENCY_INFO";
|
||||
|
||||
public static Slice getSlice(Context context) {
|
||||
final ListBuilder listBuilder = new ListBuilder(context, EMERGENCY_INFO_CARD_URI,
|
||||
final ListBuilder listBuilder = new ListBuilder(context,
|
||||
CustomSliceRegistry.EMERGENCY_INFO_SLICE_URI,
|
||||
ListBuilder.INFINITY);
|
||||
listBuilder.addRow(
|
||||
new ListBuilder.RowBuilder()
|
||||
.setTitle(context.getText(R.string.emergency_info_title))
|
||||
.setSubtitle(
|
||||
context.getText(R.string.emergency_info_contextual_card_summary))
|
||||
.setPrimaryAction(generatePrimaryAction(context)));
|
||||
.setPrimaryAction(createPrimaryAction(context)));
|
||||
return listBuilder.build();
|
||||
}
|
||||
|
||||
private static SliceAction generatePrimaryAction(Context context) {
|
||||
private static SliceAction createPrimaryAction(Context context) {
|
||||
PendingIntent pendingIntent =
|
||||
PendingIntent.getActivity(
|
||||
context,
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.homepage.contextualcards.deviceinfo;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -36,8 +35,8 @@ import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.deviceinfo.StorageDashboardFragment;
|
||||
import com.android.settings.deviceinfo.storage.StorageSummaryDonutPreferenceController;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.deviceinfo.PrivateStorageInfo;
|
||||
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
@@ -45,20 +44,6 @@ import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
public class StorageSlice implements CustomSliceable {
|
||||
private static final String TAG = "StorageSlice";
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of storage slicel
|
||||
*/
|
||||
public static final String PATH_STORAGE_INFO = "storage_card";
|
||||
|
||||
/**
|
||||
* Backing Uri for the storage slice.
|
||||
*/
|
||||
public static final Uri STORAGE_CARD_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_STORAGE_INFO)
|
||||
.build();
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
public StorageSlice(Context context) {
|
||||
@@ -67,12 +52,9 @@ public class StorageSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return STORAGE_CARD_URI;
|
||||
return CustomSliceRegistry.STORAGE_SLICE_URI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a storage slice bound to {@link #STORAGE_CARD_URI}
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
@@ -80,7 +62,8 @@ public class StorageSlice implements CustomSliceable {
|
||||
final String title = mContext.getString(R.string.storage_label);
|
||||
final SliceAction primaryAction = new SliceAction(getPrimaryAction(), icon, title);
|
||||
final PrivateStorageInfo info = getPrivateStorageInfo();
|
||||
return new ListBuilder(mContext, STORAGE_CARD_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(mContext, CustomSliceRegistry.STORAGE_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
|
||||
.addRow(new ListBuilder.RowBuilder()
|
||||
@@ -93,12 +76,10 @@ public class StorageSlice implements CustomSliceable {
|
||||
@Override
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.storage_label).toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_STORAGE_INFO).build();
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
StorageDashboardFragment.class.getName(), PATH_STORAGE_INFO, screenTitle,
|
||||
StorageDashboardFragment.class.getName(), "" /* key */, screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
|
||||
private PendingIntent getPrimaryAction() {
|
||||
|
@@ -19,7 +19,6 @@ package com.android.settings.homepage.contextualcards.slices;
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
@@ -34,7 +33,6 @@ import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
@@ -42,9 +40,10 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipLoader;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBackgroundWorker;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
@@ -53,20 +52,6 @@ import java.util.List;
|
||||
|
||||
public class BatteryFixSlice implements CustomSliceable {
|
||||
|
||||
/**
|
||||
* Unique name of Battery Fix Slice.
|
||||
*/
|
||||
public static final String PATH_BATTERY_FIX = "battery_fix";
|
||||
|
||||
/**
|
||||
* Uri for Battery Fix Slice.
|
||||
*/
|
||||
public static final Uri BATTERY_FIX_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_BATTERY_FIX)
|
||||
.build();
|
||||
|
||||
@VisibleForTesting
|
||||
static final String PREFS = "battery_fix_prefs";
|
||||
@VisibleForTesting
|
||||
@@ -82,12 +67,9 @@ public class BatteryFixSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return BATTERY_FIX_URI;
|
||||
return CustomSliceRegistry.BATTERY_FIX_SLICE_URI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Slice bound to {@link #BATTERY_FIX_URI}.
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
IconCompat icon;
|
||||
@@ -109,7 +91,8 @@ public class BatteryFixSlice implements CustomSliceable {
|
||||
primaryAction = new SliceAction(getPrimaryAction(),
|
||||
icon,
|
||||
batteryTip.getTitle(mContext));
|
||||
slice = new ListBuilder(mContext, BATTERY_FIX_URI, ListBuilder.INFINITY)
|
||||
slice = new ListBuilder(mContext, CustomSliceRegistry.BATTERY_FIX_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(batteryTip.getTitle(mContext))
|
||||
@@ -125,7 +108,8 @@ public class BatteryFixSlice implements CustomSliceable {
|
||||
R.drawable.ic_battery_status_good_24dp);
|
||||
final String title = mContext.getString(R.string.power_usage_summary_title);
|
||||
primaryAction = new SliceAction(getPrimaryAction(), icon, title);
|
||||
slice = new ListBuilder(mContext, BATTERY_FIX_URI, ListBuilder.INFINITY)
|
||||
slice = new ListBuilder(mContext, CustomSliceRegistry.BATTERY_FIX_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
@@ -140,10 +124,11 @@ public class BatteryFixSlice implements CustomSliceable {
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.power_usage_summary_title)
|
||||
.toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_BATTERY_FIX).build();
|
||||
final Uri contentUri = new Uri.Builder()
|
||||
.appendPath(BatteryTipPreferenceController.PREF_NAME).build();
|
||||
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
PowerUsageSummary.class.getName(), PATH_BATTERY_FIX,
|
||||
PowerUsageSummary.class.getName(), BatteryTipPreferenceController.PREF_NAME,
|
||||
screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
|
@@ -18,7 +18,6 @@ package com.android.settings.homepage.contextualcards.slices;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
@@ -43,8 +42,8 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
|
||||
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
@@ -67,20 +66,6 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
public class ConnectedDeviceSlice implements CustomSliceable {
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of Connected device Slice.
|
||||
*/
|
||||
public static final String PATH_CONNECTED_DEVICE = "connected_device";
|
||||
|
||||
/**
|
||||
* Backing Uri for Connected device Slice.
|
||||
*/
|
||||
public static final Uri CONNECTED_DEVICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_CONNECTED_DEVICE)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* To sort the Bluetooth devices by {@link CachedBluetoothDevice}.
|
||||
* Refer compareTo method from {@link com.android.settings.bluetooth.BluetoothDevicePreference}.
|
||||
@@ -109,12 +94,9 @@ public class ConnectedDeviceSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return CONNECTED_DEVICE_URI;
|
||||
return CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Connected Device Slice bound to {@link #CONNECTED_DEVICE_URI}.
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
final IconCompat icon = IconCompat.createWithResource(mContext,
|
||||
@@ -127,7 +109,8 @@ public class ConnectedDeviceSlice implements CustomSliceable {
|
||||
final SliceAction primarySliceAction = new SliceAction(primaryActionIntent, icon,
|
||||
title);
|
||||
final ListBuilder listBuilder =
|
||||
new ListBuilder(mContext, CONNECTED_DEVICE_URI, ListBuilder.INFINITY)
|
||||
new ListBuilder(mContext, CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext));
|
||||
|
||||
// Get row builders by connected devices, e.g. Bluetooth.
|
||||
@@ -159,14 +142,12 @@ public class ConnectedDeviceSlice implements CustomSliceable {
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.connected_devices_dashboard_title)
|
||||
.toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_CONNECTED_DEVICE).build();
|
||||
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
ConnectedDeviceDashboardFragment.class.getName(), PATH_CONNECTED_DEVICE,
|
||||
ConnectedDeviceDashboardFragment.class.getName(), "" /* key */,
|
||||
screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.homepage.contextualcards.slices;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -36,8 +35,8 @@ import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.deviceinfo.StorageSettings;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.CustomSliceable;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
import com.android.settingslib.deviceinfo.PrivateStorageInfo;
|
||||
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
@@ -46,20 +45,6 @@ import java.text.NumberFormat;
|
||||
|
||||
public class LowStorageSlice implements CustomSliceable {
|
||||
|
||||
/**
|
||||
* The path denotes the unique name of Low storage Slice.
|
||||
*/
|
||||
public static final String PATH_LOW_STORAGE = "low_storage";
|
||||
|
||||
/**
|
||||
* Backing Uri for Low storage Slice.
|
||||
*/
|
||||
public static final Uri LOW_STORAGE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_LOW_STORAGE)
|
||||
.build();
|
||||
|
||||
private static final String TAG = "LowStorageSlice";
|
||||
|
||||
/**
|
||||
@@ -73,9 +58,6 @@ public class LowStorageSlice implements CustomSliceable {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Low storage Slice bound to {@link #LOW_STORAGE_URI}
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
// Get current storage percentage from StorageManager.
|
||||
@@ -108,7 +90,8 @@ public class LowStorageSlice implements CustomSliceable {
|
||||
* Slices doesn't support "Icon on the left" in header. Now we intend to start with Icon
|
||||
* right aligned. Will update the icon to left until Slices support it.
|
||||
*/
|
||||
return new ListBuilder(mContext, LOW_STORAGE_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(mContext, CustomSliceRegistry.LOW_STORAGE_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(Utils.getColorAccentDefaultColor(mContext))
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
@@ -120,7 +103,7 @@ public class LowStorageSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return LOW_STORAGE_URI;
|
||||
return CustomSliceRegistry.LOW_STORAGE_SLICE_URI;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -132,13 +115,11 @@ public class LowStorageSlice implements CustomSliceable {
|
||||
public Intent getIntent() {
|
||||
final String screenTitle = mContext.getText(R.string.storage_label)
|
||||
.toString();
|
||||
final Uri contentUri = new Uri.Builder().appendPath(PATH_LOW_STORAGE).build();
|
||||
|
||||
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
|
||||
StorageSettings.class.getName(), PATH_LOW_STORAGE,
|
||||
StorageSettings.class.getName(), "" /* key */,
|
||||
screenTitle,
|
||||
MetricsProto.MetricsEvent.SLICE)
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
|
||||
.setData(contentUri);
|
||||
.setClassName(mContext.getPackageName(), SubSettings.class.getName());
|
||||
}
|
||||
}
|
@@ -23,11 +23,9 @@ import static androidx.slice.builders.ListBuilder.ICON_IMAGE;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
@@ -39,6 +37,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
/**
|
||||
@@ -46,21 +45,11 @@ import com.android.settings.slices.SliceBuilderUtils;
|
||||
*/
|
||||
public class LocationSliceBuilder {
|
||||
|
||||
/**
|
||||
* Backing Uri for the Location Slice.
|
||||
*/
|
||||
public static final Uri LOCATION_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY_LOCATION)
|
||||
.build();
|
||||
|
||||
private LocationSliceBuilder() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Location Slice bound to {@link #LOCATION_URI}.
|
||||
* Return a Location Slice bound to {@link CustomSliceRegistry#LOCATION_SLICE_URI}.
|
||||
*/
|
||||
public static Slice getSlice(Context context) {
|
||||
final IconCompat icon = IconCompat.createWithResource(context,
|
||||
@@ -70,7 +59,8 @@ public class LocationSliceBuilder {
|
||||
final PendingIntent primaryAction = getPrimaryAction(context);
|
||||
final SliceAction primarySliceAction = new SliceAction(primaryAction, icon, title);
|
||||
|
||||
return new ListBuilder(context, LOCATION_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(context, CustomSliceRegistry.LOCATION_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
|
@@ -19,7 +19,6 @@ package com.android.settings.network.telephony;
|
||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -40,9 +39,8 @@ import androidx.slice.builders.SliceAction;
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
@@ -57,12 +55,7 @@ import java.util.concurrent.TimeoutException;
|
||||
*/
|
||||
public class Enhanced4gLteSliceHelper {
|
||||
|
||||
private static final String TAG = "Enhanced4gLteSliceHelper";
|
||||
|
||||
/**
|
||||
* Settings slice path to enhanced 4g LTE setting.
|
||||
*/
|
||||
public static final String PATH_ENHANCED_4G_LTE = "enhanced_4g_lte";
|
||||
private static final String TAG = "Enhanced4gLteSlice";
|
||||
|
||||
/**
|
||||
* Action passed for changes to enhanced 4g LTE slice (toggle).
|
||||
@@ -70,14 +63,6 @@ public class Enhanced4gLteSliceHelper {
|
||||
public static final String ACTION_ENHANCED_4G_LTE_CHANGED =
|
||||
"com.android.settings.mobilenetwork.action.ENHANCED_4G_LTE_CHANGED";
|
||||
|
||||
/**
|
||||
* Slice Uri for Enhanced 4G slice
|
||||
*/
|
||||
public static final Uri SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_ENHANCED_4G_LTE)
|
||||
.build();
|
||||
/**
|
||||
* Action for mobile network settings activity which
|
||||
* allows setting configuration for Enhanced 4G LTE
|
||||
@@ -225,8 +210,7 @@ public class Enhanced4gLteSliceHelper {
|
||||
}
|
||||
// notify change in slice in any case to get re-queried. This would result in displaying
|
||||
// appropriate message with the updated setting.
|
||||
final Uri uri = SliceBuilderUtils.getUri(PATH_ENHANCED_4G_LTE, false /*isPlatformSlice*/);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
mContext.getContentResolver().notifyChange(CustomSliceRegistry.ENHANCED_4G_SLICE_URI, null);
|
||||
}
|
||||
|
||||
private CharSequence getEnhanced4glteModeTitle(int subId) {
|
||||
|
@@ -35,6 +35,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
public class ZenModePreferenceController extends BasePreferenceController
|
||||
implements LifecycleObserver, OnResume, OnPause {
|
||||
|
||||
|
||||
public static final String ZEN_MODE_KEY = "zen_mode";
|
||||
|
||||
private SettingObserver mSettingObserver;
|
||||
private ZenModeSettings.SummaryBuilder mSummaryBuilder;
|
||||
|
||||
|
@@ -18,16 +18,16 @@ package com.android.settings.notification;
|
||||
|
||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
|
||||
import static com.android.settings.notification.ZenModePreferenceController.ZEN_MODE_KEY;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.Uri;
|
||||
import android.provider.Settings;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
@@ -39,7 +39,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
@@ -47,18 +47,6 @@ public class ZenModeSliceBuilder {
|
||||
|
||||
private static final String TAG = "ZenModeSliceBuilder";
|
||||
|
||||
private static final String ZEN_MODE_KEY = "zen_mode";
|
||||
|
||||
/**
|
||||
* Backing Uri for the Zen Mode Slice.
|
||||
*/
|
||||
public static final Uri ZEN_MODE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(ZEN_MODE_KEY)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Action notifying a change on the Zen Mode Slice.
|
||||
*/
|
||||
@@ -77,7 +65,7 @@ public class ZenModeSliceBuilder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a ZenMode Slice bound to {@link #ZEN_MODE_URI}.
|
||||
* Return a ZenMode Slice bound to {@link CustomSliceRegistry#ZEN_MODE_URI}.
|
||||
* <p>
|
||||
* Note that you should register a listener for {@link #INTENT_FILTER} to get changes for
|
||||
* ZenMode.
|
||||
@@ -93,7 +81,8 @@ public class ZenModeSliceBuilder {
|
||||
final SliceAction toggleSliceAction = new SliceAction(toggleAction, null /* actionTitle */,
|
||||
isZenModeEnabled);
|
||||
|
||||
return new ListBuilder(context, ZEN_MODE_URI, ListBuilder.INFINITY)
|
||||
return new ListBuilder(context, CustomSliceRegistry.ZEN_MODE_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
|
@@ -16,16 +16,12 @@
|
||||
|
||||
package com.android.settings.panel;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -39,14 +35,6 @@ import java.util.List;
|
||||
*/
|
||||
public class InternetConnectivityPanel implements PanelContent {
|
||||
|
||||
@VisibleForTesting
|
||||
static final Uri AIRPLANE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(SettingsSlicesContract.KEY_AIRPLANE_MODE)
|
||||
.build();
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
public static InternetConnectivityPanel create(Context context) {
|
||||
@@ -65,8 +53,8 @@ public class InternetConnectivityPanel implements PanelContent {
|
||||
@Override
|
||||
public List<Uri> getSlices() {
|
||||
final List<Uri> uris = new ArrayList<>();
|
||||
uris.add(WifiSlice.WIFI_URI);
|
||||
uris.add(AIRPLANE_URI);
|
||||
uris.add(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
uris.add(CustomSliceRegistry.AIRPLANE_URI);
|
||||
return uris;
|
||||
}
|
||||
|
||||
|
@@ -101,13 +101,13 @@ public class CustomSliceManager {
|
||||
}
|
||||
|
||||
private void addSlices() {
|
||||
mUriMap.put(WifiSlice.WIFI_URI, WifiSlice.class);
|
||||
mUriMap.put(DataUsageSlice.DATA_USAGE_CARD_URI, DataUsageSlice.class);
|
||||
mUriMap.put(DeviceInfoSlice.DEVICE_INFO_CARD_URI, DeviceInfoSlice.class);
|
||||
mUriMap.put(StorageSlice.STORAGE_CARD_URI, StorageSlice.class);
|
||||
mUriMap.put(BatterySlice.BATTERY_CARD_URI, BatterySlice.class);
|
||||
mUriMap.put(ConnectedDeviceSlice.CONNECTED_DEVICE_URI, ConnectedDeviceSlice.class);
|
||||
mUriMap.put(LowStorageSlice.LOW_STORAGE_URI, LowStorageSlice.class);
|
||||
mUriMap.put(BatteryFixSlice.BATTERY_FIX_URI, BatteryFixSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.BATTERY_INFO_SLICE_URI, BatterySlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI, ConnectedDeviceSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.DATA_USAGE_SLICE_URI, DataUsageSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.DEVICE_INFO_SLICE_URI, DeviceInfoSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.STORAGE_SLICE_URI, StorageSlice.class);
|
||||
mUriMap.put(CustomSliceRegistry.WIFI_SLICE_URI, WifiSlice.class);
|
||||
}
|
||||
}
|
||||
|
184
src/com/android/settings/slices/CustomSliceRegistry.java
Normal file
184
src/com/android/settings/slices/CustomSliceRegistry.java
Normal file
@@ -0,0 +1,184 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.slices;
|
||||
|
||||
import static android.provider.SettingsSlicesContract.KEY_LOCATION;
|
||||
import static android.provider.SettingsSlicesContract.KEY_WIFI;
|
||||
|
||||
import static com.android.settings.notification.ZenModePreferenceController.ZEN_MODE_KEY;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.net.Uri;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
||||
import com.android.settings.wifi.calling.WifiCallingSliceHelper;
|
||||
|
||||
/**
|
||||
* A registry of custom slice Uris.
|
||||
*/
|
||||
public class CustomSliceRegistry {
|
||||
|
||||
/**
|
||||
* Uri for Airplane mode Slice.
|
||||
*/
|
||||
public static final Uri AIRPLANE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(SettingsSlicesContract.KEY_AIRPLANE_MODE)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Uri for Battery Fix Slice.
|
||||
*/
|
||||
public static final Uri BATTERY_FIX_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
|
||||
.appendPath(BatteryTipPreferenceController.PREF_NAME)
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Battery info Slice.
|
||||
*/
|
||||
public static final Uri BATTERY_INFO_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
|
||||
.appendPath("battery_card")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Bluetooth Slice.
|
||||
*/
|
||||
public static final Uri BLUETOOTH_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(SettingsSlicesContract.KEY_BLUETOOTH)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Backing Uri for Connected device Slice.
|
||||
*/
|
||||
public static final Uri CONNECTED_DEVICE_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath("connected_device")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Data usage Slice.
|
||||
*/
|
||||
public static final Uri DATA_USAGE_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("data_usage_card")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Device info Slice.
|
||||
*/
|
||||
public static final Uri DEVICE_INFO_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("device_info_card")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Emergency Info Slice.
|
||||
*/
|
||||
public static final Uri EMERGENCY_INFO_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("emergency_info_card")
|
||||
.build();
|
||||
/**
|
||||
* Slice Uri for Enhanced 4G slice
|
||||
*/
|
||||
public static final Uri ENHANCED_4G_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("enhanced_4g_lte")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Flashlight Slice.
|
||||
*/
|
||||
public static final Uri FLASHLIGHT_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath("flashlight")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Location Slice.
|
||||
*/
|
||||
public static final Uri LOCATION_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY_LOCATION)
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for Low storage Slice.
|
||||
*/
|
||||
public static final Uri LOW_STORAGE_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
|
||||
.appendPath("low_storage")
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the storage slice.
|
||||
*/
|
||||
public static final Uri STORAGE_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath("storage_card")
|
||||
.build();
|
||||
/**
|
||||
* Full {@link Uri} for the Wifi Calling Slice.
|
||||
*/
|
||||
public static final Uri WIFI_CALLING_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(WifiCallingSliceHelper.PATH_WIFI_CALLING)
|
||||
.build();
|
||||
/**
|
||||
* Full {@link Uri} for the Wifi Calling Preference Slice.
|
||||
*/
|
||||
public static final Uri WIFI_CALLING_PREFERENCE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(WifiCallingSliceHelper.PATH_WIFI_CALLING_PREFERENCE)
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Wifi Slice.
|
||||
*/
|
||||
public static final Uri WIFI_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY_WIFI)
|
||||
.build();
|
||||
/**
|
||||
* Backing Uri for the Zen Mode Slice.
|
||||
*/
|
||||
public static final Uri ZEN_MODE_SLICE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(ZEN_MODE_KEY)
|
||||
.build();
|
||||
}
|
@@ -44,11 +44,8 @@ import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.flashlight.FlashlightSliceBuilder;
|
||||
import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
|
||||
import com.android.settings.location.LocationSliceBuilder;
|
||||
import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
|
||||
import com.android.settings.notification.ZenModeSliceBuilder;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
import com.android.settings.wifi.calling.WifiCallingSliceHelper;
|
||||
import com.android.settingslib.SliceBroadcastRelay;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
|
||||
@@ -175,23 +172,21 @@ public class SettingsSliceProvider extends SliceProvider {
|
||||
if (filter != null) {
|
||||
registerIntentToUri(filter, sliceUri);
|
||||
}
|
||||
ThreadUtils.postOnMainThread(() -> {
|
||||
startBackgroundWorker(sliceable);
|
||||
});
|
||||
ThreadUtils.postOnMainThread(() -> startBackgroundWorker(sliceable));
|
||||
return;
|
||||
}
|
||||
|
||||
if (ZenModeSliceBuilder.ZEN_MODE_URI.equals(sliceUri)) {
|
||||
if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
|
||||
registerIntentToUri(ZenModeSliceBuilder.INTENT_FILTER, sliceUri);
|
||||
return;
|
||||
} else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
registerIntentToUri(BluetoothSliceBuilder.INTENT_FILTER, sliceUri);
|
||||
return;
|
||||
} else if (FlashlightSliceBuilder.FLASHLIGHT_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.FLASHLIGHT_SLICE_URI.equals(sliceUri)) {
|
||||
registerIntentToUri(FlashlightSliceBuilder.INTENT_FILTER, sliceUri);
|
||||
mRegisteredUris.add(sliceUri);
|
||||
return;
|
||||
} else if (EmergencyInfoSlice.EMERGENCY_INFO_CARD_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.EMERGENCY_INFO_SLICE_URI.equals(sliceUri)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -236,30 +231,30 @@ public class SettingsSliceProvider extends SliceProvider {
|
||||
return sliceable.getSlice();
|
||||
}
|
||||
|
||||
if (WifiCallingSliceHelper.WIFI_CALLING_URI.equals(sliceUri)) {
|
||||
if (CustomSliceRegistry.WIFI_CALLING_URI.equals(sliceUri)) {
|
||||
return FeatureFactory.getFactory(getContext())
|
||||
.getSlicesFeatureProvider()
|
||||
.getNewWifiCallingSliceHelper(getContext())
|
||||
.createWifiCallingSlice(sliceUri);
|
||||
} else if (ZenModeSliceBuilder.ZEN_MODE_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
|
||||
return ZenModeSliceBuilder.getSlice(getContext());
|
||||
} else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
return BluetoothSliceBuilder.getSlice(getContext());
|
||||
} else if (LocationSliceBuilder.LOCATION_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.LOCATION_SLICE_URI.equals(sliceUri)) {
|
||||
return LocationSliceBuilder.getSlice(getContext());
|
||||
} else if (Enhanced4gLteSliceHelper.SLICE_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.ENHANCED_4G_SLICE_URI.equals(sliceUri)) {
|
||||
return FeatureFactory.getFactory(getContext())
|
||||
.getSlicesFeatureProvider()
|
||||
.getNewEnhanced4gLteSliceHelper(getContext())
|
||||
.createEnhanced4gLteSlice(sliceUri);
|
||||
} else if (WifiCallingSliceHelper.WIFI_CALLING_PREFERENCE_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI.equals(sliceUri)) {
|
||||
return FeatureFactory.getFactory(getContext())
|
||||
.getSlicesFeatureProvider()
|
||||
.getNewWifiCallingSliceHelper(getContext())
|
||||
.createWifiCallingPreferenceSlice(sliceUri);
|
||||
} else if (FlashlightSliceBuilder.FLASHLIGHT_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.FLASHLIGHT_SLICE_URI.equals(sliceUri)) {
|
||||
return FlashlightSliceBuilder.getSlice(getContext());
|
||||
} else if (EmergencyInfoSlice.EMERGENCY_INFO_CARD_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.EMERGENCY_INFO_SLICE_URI.equals(sliceUri)) {
|
||||
return EmergencyInfoSlice.getSlice(getContext());
|
||||
}
|
||||
|
||||
@@ -476,16 +471,16 @@ public class SettingsSliceProvider extends SliceProvider {
|
||||
|
||||
private List<Uri> getSpecialCasePlatformUris() {
|
||||
return Arrays.asList(
|
||||
WifiSlice.WIFI_URI,
|
||||
BluetoothSliceBuilder.BLUETOOTH_URI,
|
||||
LocationSliceBuilder.LOCATION_URI
|
||||
CustomSliceRegistry.WIFI_SLICE_URI,
|
||||
CustomSliceRegistry.BLUETOOTH_URI,
|
||||
CustomSliceRegistry.LOCATION_SLICE_URI
|
||||
);
|
||||
}
|
||||
|
||||
private List<Uri> getSpecialCaseOemUris() {
|
||||
return Arrays.asList(
|
||||
ZenModeSliceBuilder.ZEN_MODE_URI,
|
||||
FlashlightSliceBuilder.FLASHLIGHT_URI
|
||||
CustomSliceRegistry.ZEN_MODE_SLICE_URI,
|
||||
CustomSliceRegistry.FLASHLIGHT_SLICE_URI
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -62,11 +62,11 @@ public class SliceDeepLinkSpringBoard extends Activity {
|
||||
final CustomSliceable sliceable =
|
||||
customSliceManager.getSliceableFromUri(sliceUri);
|
||||
launchIntent = sliceable.getIntent();
|
||||
} else if (ZenModeSliceBuilder.ZEN_MODE_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
|
||||
launchIntent = ZenModeSliceBuilder.getIntent(this /* context */);
|
||||
} else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
launchIntent = BluetoothSliceBuilder.getIntent(this /* context */);
|
||||
} else if (LocationSliceBuilder.LOCATION_URI.equals(sliceUri)) {
|
||||
} else if (CustomSliceRegistry.LOCATION_SLICE_URI.equals(sliceUri)) {
|
||||
launchIntent = LocationSliceBuilder.getIntent(this /* context */);
|
||||
} else {
|
||||
final SlicesDatabaseAccessor slicesDatabaseAccessor =
|
||||
|
@@ -19,9 +19,10 @@ package com.android.settings.wifi;
|
||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
import static android.provider.SettingsSlicesContract.KEY_WIFI;
|
||||
|
||||
import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
@@ -30,7 +31,6 @@ import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.net.wifi.WifiSsid;
|
||||
import android.os.Bundle;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -60,16 +60,6 @@ import java.util.List;
|
||||
*/
|
||||
public class WifiSlice implements CustomSliceable {
|
||||
|
||||
/**
|
||||
* Backing Uri for the Wifi Slice.
|
||||
*/
|
||||
public static final Uri WIFI_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSlicesContract.AUTHORITY)
|
||||
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
|
||||
.appendPath(KEY_WIFI)
|
||||
.build();
|
||||
|
||||
@VisibleForTesting
|
||||
static final int DEFAULT_EXPANDED_ROW_COUNT = 3;
|
||||
|
||||
@@ -81,7 +71,7 @@ public class WifiSlice implements CustomSliceable {
|
||||
|
||||
@Override
|
||||
public Uri getUri() {
|
||||
return WIFI_URI;
|
||||
return WIFI_SLICE_URI;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,9 +82,6 @@ public class WifiSlice implements CustomSliceable {
|
||||
return filter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a Wifi Slice bound to {@link #WIFI_URI}.
|
||||
*/
|
||||
@Override
|
||||
public Slice getSlice() {
|
||||
final boolean isWifiEnabled = isWifiEnabled();
|
||||
@@ -109,7 +96,8 @@ public class WifiSlice implements CustomSliceable {
|
||||
final SliceAction toggleSliceAction = new SliceAction(toggleAction, null /* actionTitle */,
|
||||
isWifiEnabled);
|
||||
|
||||
final ListBuilder listBuilder = new ListBuilder(mContext, WIFI_URI, ListBuilder.INFINITY)
|
||||
final ListBuilder listBuilder = new ListBuilder(mContext, WIFI_SLICE_URI,
|
||||
ListBuilder.INFINITY)
|
||||
.setAccentColor(color)
|
||||
.addRow(new RowBuilder()
|
||||
.setTitle(title)
|
||||
|
@@ -18,9 +18,11 @@ package com.android.settings.wifi.calling;
|
||||
|
||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
|
||||
import static com.android.settings.slices.CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI;
|
||||
import static com.android.settings.slices.CustomSliceRegistry.WIFI_CALLING_URI;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -42,9 +44,7 @@ import com.android.ims.ImsConfig;
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SliceBuilderUtils;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
@@ -103,24 +103,6 @@ public class WifiCallingSliceHelper {
|
||||
public static final String ACTION_WIFI_CALLING_SETTINGS_ACTIVITY =
|
||||
"android.settings.WIFI_CALLING_SETTINGS";
|
||||
|
||||
/**
|
||||
* Full {@link Uri} for the Wifi Calling Slice.
|
||||
*/
|
||||
public static final Uri WIFI_CALLING_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_WIFI_CALLING)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Full {@link Uri} for the Wifi Calling Preference Slice.
|
||||
*/
|
||||
public static final Uri WIFI_CALLING_PREFERENCE_URI = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
|
||||
.appendPath(PATH_WIFI_CALLING_PREFERENCE)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Timeout for querying wifi calling setting from ims manager.
|
||||
*/
|
||||
@@ -246,7 +228,7 @@ public class WifiCallingSliceHelper {
|
||||
}
|
||||
|
||||
final boolean isWifiCallingPrefEditable = isCarrierConfigManagerKeyEnabled(
|
||||
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, subId,false);
|
||||
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, subId, false);
|
||||
final boolean isWifiOnlySupported = isCarrierConfigManagerKeyEnabled(
|
||||
CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, subId, true);
|
||||
final ImsManager imsManager = getImsManager(subId);
|
||||
@@ -414,8 +396,7 @@ public class WifiCallingSliceHelper {
|
||||
}
|
||||
// notify change in slice in any case to get re-queried. This would result in displaying
|
||||
// appropriate message with the updated setting.
|
||||
final Uri uri = SliceBuilderUtils.getUri(PATH_WIFI_CALLING, false /*isPlatformSlice*/);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
mContext.getContentResolver().notifyChange(WIFI_CALLING_URI, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -433,7 +414,7 @@ public class WifiCallingSliceHelper {
|
||||
|
||||
if (subId > SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
final boolean isWifiCallingPrefEditable = isCarrierConfigManagerKeyEnabled(
|
||||
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, subId,false);
|
||||
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, subId, false);
|
||||
final boolean isWifiOnlySupported = isCarrierConfigManagerKeyEnabled(
|
||||
CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, subId, true);
|
||||
|
||||
@@ -470,9 +451,7 @@ public class WifiCallingSliceHelper {
|
||||
|
||||
// notify change in slice in any case to get re-queried. This would result in displaying
|
||||
// appropriate message.
|
||||
final Uri uri = SliceBuilderUtils.getUri(PATH_WIFI_CALLING_PREFERENCE,
|
||||
false /*isPlatformSlice*/);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
mContext.getContentResolver().notifyChange(WIFI_CALLING_PREFERENCE_URI, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -51,7 +51,6 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.ShadowPowerManager;
|
||||
import com.android.settingslib.applications.AppUtils;
|
||||
import com.android.settingslib.applications.ApplicationsState;
|
||||
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||
@@ -93,6 +92,8 @@ public class RecentAppsPreferenceControllerTest {
|
||||
private ApplicationsState.AppEntry mAppEntry;
|
||||
@Mock
|
||||
private ApplicationInfo mApplicationInfo;
|
||||
@Mock
|
||||
private PowerManager mPowerManager;
|
||||
|
||||
private Context mContext;
|
||||
private RecentAppsPreferenceController mController;
|
||||
@@ -104,6 +105,7 @@ public class RecentAppsPreferenceControllerTest {
|
||||
doReturn(mUsageStatsManager).when(mContext).getSystemService(Context.USAGE_STATS_SERVICE);
|
||||
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
|
||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||
doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
|
||||
|
||||
mController = new RecentAppsPreferenceController(mContext, mAppState, null);
|
||||
when(mScreen.findPreference(anyString())).thenReturn(mCategory);
|
||||
@@ -199,7 +201,7 @@ public class RecentAppsPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void display_powerSaverMode_showNoRecents() {
|
||||
mContext.getSystemService(PowerManager.class).setPowerSaveMode(true);
|
||||
when(mPowerManager.isPowerSaveMode()).thenReturn(true);
|
||||
|
||||
final List<UsageStats> stats = new ArrayList<>();
|
||||
final UsageStats stat1 = new UsageStats();
|
||||
|
@@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.PowerManager;
|
||||
@@ -37,21 +39,19 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowPowerManager;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowPowerManager.class)
|
||||
public class BatterySaverButtonPreferenceControllerTest {
|
||||
|
||||
private BatterySaverButtonPreferenceController mController;
|
||||
private Context mContext;
|
||||
private Button mButtonOn;
|
||||
private Button mButtonOff;
|
||||
private PowerManager mPowerManager;
|
||||
private TwoStateButtonPreference mPreference;
|
||||
|
||||
@Mock
|
||||
private PowerManager mPowerManager;
|
||||
@Mock
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
|
||||
@@ -61,10 +61,11 @@ public class BatterySaverButtonPreferenceControllerTest {
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mButtonOn = new Button(mContext);
|
||||
mButtonOff = new Button(mContext);
|
||||
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
||||
mPreference = spy(new TwoStateButtonPreference(mContext, null /* AttributeSet */));
|
||||
ReflectionHelpers.setField(mPreference, "mButtonOn", mButtonOn);
|
||||
ReflectionHelpers.setField(mPreference, "mButtonOff", mButtonOff);
|
||||
|
||||
doReturn(mPowerManager).when(mContext).getSystemService(Context.POWER_SERVICE);
|
||||
doReturn(mPreference).when(mPreferenceScreen).findPreference(anyString());
|
||||
|
||||
mController = new BatterySaverButtonPreferenceController(mContext, "test_key");
|
||||
@@ -73,7 +74,7 @@ public class BatterySaverButtonPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_lowPowerOn_preferenceIsChecked() {
|
||||
mPowerManager.setPowerSaveMode(true);
|
||||
when(mPowerManager.isPowerSaveMode()).thenReturn(true);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
@@ -82,7 +83,7 @@ public class BatterySaverButtonPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void testUpdateState_lowPowerOff_preferenceIsUnchecked() {
|
||||
mPowerManager.setPowerSaveMode(false);
|
||||
when(mPowerManager.isPowerSaveMode()).thenReturn(false);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
@@ -93,13 +94,13 @@ public class BatterySaverButtonPreferenceControllerTest {
|
||||
public void setChecked_on_setPowerSaveMode() {
|
||||
mController.setChecked(true);
|
||||
|
||||
assertThat(mPowerManager.isPowerSaveMode()).isTrue();
|
||||
verify(mPowerManager).setPowerSaveMode(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setChecked_off_unsetPowerSaveMode() {
|
||||
mController.setChecked(false);
|
||||
|
||||
assertThat(mPowerManager.isPowerSaveMode()).isFalse();
|
||||
verify(mPowerManager).setPowerSaveMode(false);
|
||||
}
|
||||
}
|
||||
|
@@ -27,11 +27,9 @@ import static org.mockito.Mockito.spy;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
|
||||
import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
|
||||
import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -153,7 +151,7 @@ public class ContextualCardLoaderTest {
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_wifi")
|
||||
.setCardType(ContextualCard.CardType.SLICE)
|
||||
.setSliceUri(WifiSlice.WIFI_URI)
|
||||
.setSliceUri(CustomSliceRegistry.WIFI_SLICE_URI)
|
||||
.build());
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_flashlight")
|
||||
@@ -164,7 +162,7 @@ public class ContextualCardLoaderTest {
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_connected")
|
||||
.setCardType(ContextualCard.CardType.SLICE)
|
||||
.setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI)
|
||||
.setSliceUri(CustomSliceRegistry.CONNECTED_DEVICE_SLICE_URI)
|
||||
.build());
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_gesture")
|
||||
@@ -175,7 +173,7 @@ public class ContextualCardLoaderTest {
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_battery")
|
||||
.setCardType(ContextualCard.CardType.SLICE)
|
||||
.setSliceUri(BatterySlice.BATTERY_CARD_URI)
|
||||
.setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
|
||||
.build());
|
||||
return cards;
|
||||
}
|
||||
@@ -208,7 +206,7 @@ public class ContextualCardLoaderTest {
|
||||
cards.add(new ContextualCard.Builder()
|
||||
.setName("test_battery")
|
||||
.setCardType(ContextualCard.CardType.SLICE)
|
||||
.setSliceUri(BatterySlice.BATTERY_CARD_URI)
|
||||
.setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
|
||||
.build());
|
||||
return cards;
|
||||
}
|
||||
|
@@ -23,15 +23,13 @@ import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
|
||||
import android.app.slice.SliceManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
|
||||
import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
|
||||
import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
|
||||
|
||||
@@ -48,18 +46,11 @@ public class SettingsContextualCardProviderTest {
|
||||
|
||||
@Mock
|
||||
private SliceManager mSliceManager;
|
||||
private ContentResolver mResolver;
|
||||
private Uri mUri;
|
||||
private SettingsContextualCardProvider mProvider;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mResolver = RuntimeEnvironment.application.getContentResolver();
|
||||
mUri = new Uri.Builder()
|
||||
.scheme(ContentResolver.SCHEME_CONTENT)
|
||||
.authority(SettingsContextualCardProvider.CARD_AUTHORITY)
|
||||
.build();
|
||||
mProvider = spy(Robolectric.setupContentProvider(SettingsContextualCardProvider.class));
|
||||
final Context context = spy(RuntimeEnvironment.application);
|
||||
doReturn(mSliceManager).when(context).getSystemService(SliceManager.class);
|
||||
@@ -83,7 +74,7 @@ public class SettingsContextualCardProviderTest {
|
||||
final ContextualCardList cards = mProvider.getContextualCards();
|
||||
ContextualCard wifiCard = null;
|
||||
for (ContextualCard card : cards.getCardList()) {
|
||||
if (card.getSliceUri().equals(WifiSlice.WIFI_URI.toString())) {
|
||||
if (card.getSliceUri().equals(CustomSliceRegistry.WIFI_SLICE_URI.toString())) {
|
||||
wifiCard = card;
|
||||
}
|
||||
}
|
||||
|
@@ -44,6 +44,7 @@ import androidx.slice.widget.SliceLiveData;
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.slices.CustomSliceManager;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SlicesFeatureProvider;
|
||||
@@ -107,7 +108,7 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
mEnhanced4gLteSliceHelper.setDefaultVoiceSubId(-1);
|
||||
|
||||
final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
|
||||
Enhanced4gLteSliceHelper.SLICE_URI);
|
||||
CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
|
||||
|
||||
assertThat(slice).isNull();
|
||||
}
|
||||
@@ -117,7 +118,7 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(false);
|
||||
|
||||
final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
|
||||
Enhanced4gLteSliceHelper.SLICE_URI);
|
||||
CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
|
||||
|
||||
assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
assertThat(slice).isNull();
|
||||
@@ -132,7 +133,7 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||
|
||||
final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
|
||||
Enhanced4gLteSliceHelper.SLICE_URI);
|
||||
CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
|
||||
|
||||
assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testEnhanced4gLteSettingsToggleSlice(slice);
|
||||
@@ -148,7 +149,7 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
|
||||
.thenReturn(mEnhanced4gLteSliceHelper);
|
||||
|
||||
final Slice slice = mProvider.onBindSlice(Enhanced4gLteSliceHelper.SLICE_URI);
|
||||
final Slice slice = mProvider.onBindSlice(CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
|
||||
|
||||
assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testEnhanced4gLteSettingsToggleSlice(slice);
|
||||
|
@@ -21,8 +21,8 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -46,7 +46,7 @@ public class InternetConnectivityPanelTest {
|
||||
public void getSlices_containsNecessarySlices() {
|
||||
final List<Uri> uris = mPanel.getSlices();
|
||||
|
||||
assertThat(uris).containsExactly(WifiSlice.WIFI_URI,
|
||||
InternetConnectivityPanel.AIRPLANE_URI);
|
||||
assertThat(uris).containsExactly(CustomSliceRegistry.WIFI_SLICE_URI,
|
||||
CustomSliceRegistry.AIRPLANE_URI);
|
||||
}
|
||||
}
|
||||
|
@@ -48,10 +48,6 @@ import androidx.slice.SliceProvider;
|
||||
import androidx.slice.widget.SliceLiveData;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.BluetoothSliceBuilder;
|
||||
import com.android.settings.flashlight.FlashlightSliceBuilder;
|
||||
import com.android.settings.location.LocationSliceBuilder;
|
||||
import com.android.settings.notification.ZenModeSliceBuilder;
|
||||
import com.android.settings.testutils.DatabaseTestUtils;
|
||||
import com.android.settings.testutils.FakeToggleController;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
@@ -113,14 +109,14 @@ public class SettingsSliceProviderTest {
|
||||
private SliceManager mManager;
|
||||
|
||||
private static final List<Uri> SPECIAL_CASE_PLATFORM_URIS = Arrays.asList(
|
||||
WifiSlice.WIFI_URI,
|
||||
BluetoothSliceBuilder.BLUETOOTH_URI,
|
||||
LocationSliceBuilder.LOCATION_URI
|
||||
CustomSliceRegistry.WIFI_SLICE_URI,
|
||||
CustomSliceRegistry.BLUETOOTH_URI,
|
||||
CustomSliceRegistry.LOCATION_SLICE_URI
|
||||
);
|
||||
|
||||
private static final List<Uri> SPECIAL_CASE_OEM_URIS = Arrays.asList(
|
||||
ZenModeSliceBuilder.ZEN_MODE_URI,
|
||||
FlashlightSliceBuilder.FLASHLIGHT_URI
|
||||
CustomSliceRegistry.ZEN_MODE_SLICE_URI,
|
||||
CustomSliceRegistry.FLASHLIGHT_SLICE_URI
|
||||
);
|
||||
|
||||
@Before
|
||||
@@ -472,9 +468,9 @@ public class SettingsSliceProviderTest {
|
||||
|
||||
@Test
|
||||
public void bindSlice_wifiSlice_returnsWifiSlice() {
|
||||
final Slice wifiSlice = mProvider.onBindSlice(WifiSlice.WIFI_URI);
|
||||
final Slice wifiSlice = mProvider.onBindSlice(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
|
||||
assertThat(wifiSlice.getUri()).isEqualTo(WifiSlice.WIFI_URI);
|
||||
assertThat(wifiSlice.getUri()).isEqualTo(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -482,9 +478,10 @@ public class SettingsSliceProviderTest {
|
||||
Settings.Secure.putInt(
|
||||
mContext.getContentResolver(), Settings.Secure.FLASHLIGHT_AVAILABLE, 1);
|
||||
|
||||
final Slice flashlightSlice = mProvider.onBindSlice(FlashlightSliceBuilder.FLASHLIGHT_URI);
|
||||
final Slice flashlightSlice = mProvider.onBindSlice(
|
||||
CustomSliceRegistry.FLASHLIGHT_SLICE_URI);
|
||||
|
||||
assertThat(flashlightSlice.getUri()).isEqualTo(FlashlightSliceBuilder.FLASHLIGHT_URI);
|
||||
assertThat(flashlightSlice.getUri()).isEqualTo(CustomSliceRegistry.FLASHLIGHT_SLICE_URI);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -526,22 +523,22 @@ public class SettingsSliceProviderTest {
|
||||
|
||||
@Test
|
||||
public void onSlicePinned_backgroundWorker_started() {
|
||||
mProvider.onSlicePinned(WifiSlice.WIFI_URI);
|
||||
mProvider.onSlicePinned(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
|
||||
verify(ShadowWifiScanWorker.getWifiTracker()).onStart();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSlicePinned_backgroundWorker_stopped() {
|
||||
mProvider.onSlicePinned(WifiSlice.WIFI_URI);
|
||||
mProvider.onSliceUnpinned(WifiSlice.WIFI_URI);
|
||||
mProvider.onSlicePinned(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
mProvider.onSliceUnpinned(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
|
||||
verify(ShadowWifiScanWorker.getWifiTracker()).onStop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shutdown_backgroundWorker_closed() {
|
||||
mProvider.onSlicePinned(WifiSlice.WIFI_URI);
|
||||
mProvider.onSlicePinned(CustomSliceRegistry.WIFI_SLICE_URI);
|
||||
mProvider.shutdown();
|
||||
|
||||
verify(ShadowWifiScanWorker.getWifiTracker()).onDestroy();
|
||||
|
@@ -49,6 +49,7 @@ import com.android.ims.ImsConfig;
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.slices.CustomSliceManager;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.slices.SettingsSliceProvider;
|
||||
import com.android.settings.slices.SliceBroadcastReceiver;
|
||||
import com.android.settings.slices.SliceData;
|
||||
@@ -113,7 +114,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setDefaultVoiceSubId(-1);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_URI);
|
||||
|
||||
assertThat(slice).isNull();
|
||||
}
|
||||
@@ -123,7 +124,7 @@ public class WifiCallingSliceHelperTest {
|
||||
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(false);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
assertThat(slice).isNull();
|
||||
@@ -144,7 +145,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setActivationAppIntent(new Intent()); // dummy Intent
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingSettingsUnavailableSlice(slice, null,
|
||||
@@ -161,7 +162,7 @@ public class WifiCallingSliceHelperTest {
|
||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingSettingsToggleSlice(slice, null);
|
||||
@@ -177,7 +178,7 @@ public class WifiCallingSliceHelperTest {
|
||||
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
|
||||
.thenReturn(mWfcSliceHelper);
|
||||
|
||||
final Slice slice = mProvider.onBindSlice(WifiCallingSliceHelper.WIFI_CALLING_URI);
|
||||
final Slice slice = mProvider.onBindSlice(CustomSliceRegistry.WIFI_CALLING_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingSettingsToggleSlice(slice, null);
|
||||
@@ -217,7 +218,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setIsWifiCallingPrefEditable(false);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_PREFERENCE_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
assertThat(slice).isNull();
|
||||
@@ -232,7 +233,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_PREFERENCE_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingSettingsUnavailableSlice(slice, null,
|
||||
@@ -251,7 +252,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
|
||||
|
||||
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_PREFERENCE_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingPreferenceSlice(slice, null,
|
||||
@@ -271,7 +272,7 @@ public class WifiCallingSliceHelperTest {
|
||||
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
|
||||
|
||||
final Slice slice = mProvider.onBindSlice(
|
||||
WifiCallingSliceHelper.WIFI_CALLING_PREFERENCE_URI);
|
||||
CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI);
|
||||
|
||||
assertThat(mWfcSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
|
||||
testWifiCallingPreferenceSlice(slice, null,
|
||||
|
@@ -26,11 +26,6 @@ import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.filters.MediumTest;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.bluetooth.BluetoothSliceBuilder;
|
||||
import com.android.settings.location.LocationSliceBuilder;
|
||||
import com.android.settings.notification.ZenModeSliceBuilder;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -57,7 +52,8 @@ public class SliceDeepLinkSpringBoardTest {
|
||||
@Test
|
||||
@Presubmit
|
||||
public void launchesDeepLinkIntent_wifiSlice_shouldNotCrash() {
|
||||
final Intent deepLinkIntent = getSpringboardIntent(WifiSlice.WIFI_URI.toString());
|
||||
final Intent deepLinkIntent = getSpringboardIntent(
|
||||
CustomSliceRegistry.WIFI_SLICE_URI.toString());
|
||||
|
||||
mContext.startActivity(deepLinkIntent);
|
||||
}
|
||||
@@ -66,7 +62,7 @@ public class SliceDeepLinkSpringBoardTest {
|
||||
@Presubmit
|
||||
public void launchesDeepLinkIntent_bluetoothSlice_shouldNotCrash() {
|
||||
final Intent deepLinkIntent = getSpringboardIntent(
|
||||
BluetoothSliceBuilder.BLUETOOTH_URI.toString());
|
||||
CustomSliceRegistry.BLUETOOTH_URI.toString());
|
||||
|
||||
mContext.startActivity(deepLinkIntent);
|
||||
}
|
||||
@@ -75,7 +71,7 @@ public class SliceDeepLinkSpringBoardTest {
|
||||
@Presubmit
|
||||
public void launchesDeepLinkIntent_dndSlice_shouldNotCrash() {
|
||||
final Intent deepLinkIntent = getSpringboardIntent(
|
||||
ZenModeSliceBuilder.ZEN_MODE_URI.toString());
|
||||
CustomSliceRegistry.ZEN_MODE_SLICE_URI.toString());
|
||||
|
||||
mContext.startActivity(deepLinkIntent);
|
||||
}
|
||||
@@ -84,7 +80,7 @@ public class SliceDeepLinkSpringBoardTest {
|
||||
@Presubmit
|
||||
public void launchesDeepLinkIntent_locationSlice_shouldNotCrash() {
|
||||
final Intent deepLinkIntent = getSpringboardIntent(
|
||||
LocationSliceBuilder.LOCATION_URI.toString());
|
||||
CustomSliceRegistry.LOCATION_SLICE_URI.toString());
|
||||
|
||||
mContext.startActivity(deepLinkIntent);
|
||||
}
|
||||
|
Reference in New Issue
Block a user