Merge "Clean-up settings slices" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d0888e9e5b
@@ -24,11 +24,11 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_
|
|||||||
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
|
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
|
||||||
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
|
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
|
||||||
|
|
||||||
|
import android.annotation.ColorInt;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.provider.SettingsSlicesContract;
|
import android.provider.SettingsSlicesContract;
|
||||||
@@ -41,6 +41,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SubSettings;
|
import com.android.settings.SubSettings;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.SliderPreferenceController;
|
import com.android.settings.core.SliderPreferenceController;
|
||||||
import com.android.settings.core.TogglePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
@@ -67,9 +68,6 @@ public class SliceBuilderUtils {
|
|||||||
|
|
||||||
private static final String TAG = "SliceBuilder";
|
private static final String TAG = "SliceBuilder";
|
||||||
|
|
||||||
// A Slice should not be store for longer than 60,000 milliseconds / 1 minute.
|
|
||||||
public static final long SLICE_TTL_MILLIS = 60000;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build a Slice from {@link SliceData}.
|
* Build a Slice from {@link SliceData}.
|
||||||
*
|
*
|
||||||
@@ -239,13 +237,15 @@ public class SliceBuilderUtils {
|
|||||||
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||||
|
@ColorInt final int color = Utils.getColorAccent(context);
|
||||||
final TogglePreferenceController toggleController =
|
final TogglePreferenceController toggleController =
|
||||||
(TogglePreferenceController) controller;
|
(TogglePreferenceController) controller;
|
||||||
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
final SliceAction sliceAction = getToggleAction(context, sliceData,
|
||||||
toggleController.isChecked());
|
toggleController.isChecked());
|
||||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||||
|
|
||||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||||
|
.setAccentColor(color)
|
||||||
.addRow(rowBuilder -> rowBuilder
|
.addRow(rowBuilder -> rowBuilder
|
||||||
.setTitle(sliceData.getTitle())
|
.setTitle(sliceData.getTitle())
|
||||||
.setSubtitle(subtitleText)
|
.setSubtitle(subtitleText)
|
||||||
@@ -261,9 +261,11 @@ public class SliceBuilderUtils {
|
|||||||
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||||
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
|
||||||
|
@ColorInt final int color = Utils.getColorAccent(context);
|
||||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||||
|
|
||||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||||
|
.setAccentColor(color)
|
||||||
.addRow(rowBuilder -> rowBuilder
|
.addRow(rowBuilder -> rowBuilder
|
||||||
.setTitle(sliceData.getTitle())
|
.setTitle(sliceData.getTitle())
|
||||||
.setSubtitle(subtitleText)
|
.setSubtitle(subtitleText)
|
||||||
@@ -279,11 +281,13 @@ public class SliceBuilderUtils {
|
|||||||
final PendingIntent actionIntent = getSliderAction(context, sliceData);
|
final PendingIntent actionIntent = getSliderAction(context, sliceData);
|
||||||
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource());
|
||||||
|
@ColorInt final int color = Utils.getColorAccent(context);
|
||||||
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
final SliceAction primaryAction = new SliceAction(contentIntent, icon,
|
||||||
sliceData.getTitle());
|
sliceData.getTitle());
|
||||||
final List<String> keywords = buildSliceKeywords(sliceData);
|
final List<String> keywords = buildSliceKeywords(sliceData);
|
||||||
|
|
||||||
return new ListBuilder(context, sliceData.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
|
||||||
|
.setAccentColor(color)
|
||||||
.addInputRange(builder -> builder
|
.addInputRange(builder -> builder
|
||||||
.setTitle(sliceData.getTitle())
|
.setTitle(sliceData.getTitle())
|
||||||
.setMax(sliderController.getMaxSteps())
|
.setMax(sliderController.getMaxSteps())
|
||||||
@@ -351,6 +355,7 @@ public class SliceBuilderUtils {
|
|||||||
BasePreferenceController controller) {
|
BasePreferenceController controller) {
|
||||||
final String title = data.getTitle();
|
final String title = data.getTitle();
|
||||||
final List<String> keywords = buildSliceKeywords(data);
|
final List<String> keywords = buildSliceKeywords(data);
|
||||||
|
@ColorInt final int color = Utils.getColorAccent(context);
|
||||||
final String summary;
|
final String summary;
|
||||||
final SliceAction primaryAction;
|
final SliceAction primaryAction;
|
||||||
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
|
||||||
@@ -376,7 +381,8 @@ public class SliceBuilderUtils {
|
|||||||
primaryAction = new SliceAction(getSettingsIntent(context), icon, title);
|
primaryAction = new SliceAction(getSettingsIntent(context), icon, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ListBuilder(context, data.getUri(), SLICE_TTL_MILLIS)
|
return new ListBuilder(context, data.getUri(), ListBuilder.INFINITY)
|
||||||
|
.setAccentColor(color)
|
||||||
.addRow(builder -> builder
|
.addRow(builder -> builder
|
||||||
.setTitle(title)
|
.setTitle(title)
|
||||||
.setSubtitle(summary)
|
.setSubtitle(summary)
|
||||||
|
@@ -17,6 +17,8 @@
|
|||||||
package com.android.settings.testutils;
|
package com.android.settings.testutils;
|
||||||
|
|
||||||
import static android.app.slice.Slice.HINT_TITLE;
|
import static android.app.slice.Slice.HINT_TITLE;
|
||||||
|
import static android.app.slice.Slice.SUBTYPE_COLOR;
|
||||||
|
import static android.app.slice.SliceItem.FORMAT_INT;
|
||||||
import static android.app.slice.SliceItem.FORMAT_TEXT;
|
import static android.app.slice.SliceItem.FORMAT_TEXT;
|
||||||
|
|
||||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||||
@@ -37,11 +39,13 @@ import java.util.Set;
|
|||||||
import androidx.slice.Slice;
|
import androidx.slice.Slice;
|
||||||
import androidx.slice.SliceItem;
|
import androidx.slice.SliceItem;
|
||||||
import androidx.slice.SliceMetadata;
|
import androidx.slice.SliceMetadata;
|
||||||
|
import androidx.slice.builders.ListBuilder;
|
||||||
import androidx.slice.core.SliceAction;
|
import androidx.slice.core.SliceAction;
|
||||||
import androidx.slice.core.SliceQuery;
|
import androidx.slice.core.SliceQuery;
|
||||||
|
|
||||||
import android.support.v4.graphics.drawable.IconCompat;
|
import android.support.v4.graphics.drawable.IconCompat;
|
||||||
|
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.slices.SettingsSliceProvider;
|
import com.android.settings.slices.SettingsSliceProvider;
|
||||||
import com.android.settings.slices.SliceBuilderUtils;
|
import com.android.settings.slices.SliceBuilderUtils;
|
||||||
import com.android.settings.slices.SliceData;
|
import com.android.settings.slices.SliceData;
|
||||||
@@ -59,10 +63,19 @@ public class SliceTester {
|
|||||||
* - Correct intent
|
* - Correct intent
|
||||||
* - Correct title
|
* - Correct title
|
||||||
* - Correct keywords
|
* - Correct keywords
|
||||||
|
* - TTL
|
||||||
|
* - Color
|
||||||
*/
|
*/
|
||||||
public static void testSettingsIntentSlice(Context context, Slice slice, SliceData sliceData) {
|
public static void testSettingsIntentSlice(Context context, Slice slice, SliceData sliceData) {
|
||||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||||
|
|
||||||
|
final long sliceTTL = metadata.getExpiry();
|
||||||
|
assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
|
||||||
|
|
||||||
|
final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
|
||||||
|
final int color = colorItem.getInt();
|
||||||
|
assertThat(color).isEqualTo(Utils.getColorAccent(context));
|
||||||
|
|
||||||
final List<SliceAction> toggles = metadata.getToggles();
|
final List<SliceAction> toggles = metadata.getToggles();
|
||||||
assertThat(toggles).isEmpty();
|
assertThat(toggles).isEmpty();
|
||||||
|
|
||||||
@@ -83,13 +96,22 @@ public class SliceTester {
|
|||||||
* - Correct content intent
|
* - Correct content intent
|
||||||
* - Correct title
|
* - Correct title
|
||||||
* - Correct keywords
|
* - Correct keywords
|
||||||
|
* - TTL
|
||||||
|
* - Color
|
||||||
*/
|
*/
|
||||||
public static void testSettingsToggleSlice(Context context, Slice slice, SliceData sliceData) {
|
public static void testSettingsToggleSlice(Context context, Slice slice, SliceData sliceData) {
|
||||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||||
|
|
||||||
|
final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
|
||||||
|
final int color = colorItem.getInt();
|
||||||
|
assertThat(color).isEqualTo(Utils.getColorAccent(context));
|
||||||
|
|
||||||
final List<SliceAction> toggles = metadata.getToggles();
|
final List<SliceAction> toggles = metadata.getToggles();
|
||||||
assertThat(toggles).hasSize(1);
|
assertThat(toggles).hasSize(1);
|
||||||
|
|
||||||
|
final long sliceTTL = metadata.getExpiry();
|
||||||
|
assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
|
||||||
|
|
||||||
final SliceAction mainToggleAction = toggles.get(0);
|
final SliceAction mainToggleAction = toggles.get(0);
|
||||||
|
|
||||||
final IconCompat expectedToggleIcon = IconCompat.createWithResource(context,
|
final IconCompat expectedToggleIcon = IconCompat.createWithResource(context,
|
||||||
@@ -117,13 +139,22 @@ public class SliceTester {
|
|||||||
* - No intent
|
* - No intent
|
||||||
* - Correct title
|
* - Correct title
|
||||||
* - Correct keywords
|
* - Correct keywords
|
||||||
|
* - TTL
|
||||||
|
* - Color
|
||||||
*/
|
*/
|
||||||
public static void testSettingsSliderSlice(Context context, Slice slice, SliceData sliceData) {
|
public static void testSettingsSliderSlice(Context context, Slice slice, SliceData sliceData) {
|
||||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||||
|
|
||||||
|
final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
|
||||||
|
final int color = colorItem.getInt();
|
||||||
|
assertThat(color).isEqualTo(Utils.getColorAccent(context));
|
||||||
|
|
||||||
final IconCompat expectedToggleIcon = IconCompat.createWithResource(context,
|
final IconCompat expectedToggleIcon = IconCompat.createWithResource(context,
|
||||||
sliceData.getIconResource());
|
sliceData.getIconResource());
|
||||||
|
|
||||||
|
final long sliceTTL = metadata.getExpiry();
|
||||||
|
assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
|
||||||
|
|
||||||
// Check primary intent
|
// Check primary intent
|
||||||
final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
|
final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
|
||||||
assertThat(primaryPendingIntent).isEqualTo(
|
assertThat(primaryPendingIntent).isEqualTo(
|
||||||
@@ -141,11 +172,20 @@ public class SliceTester {
|
|||||||
* - Correct title
|
* - Correct title
|
||||||
* - Correct intent
|
* - Correct intent
|
||||||
* - Correct keywords
|
* - Correct keywords
|
||||||
|
* - Color
|
||||||
|
* - TTL
|
||||||
*/
|
*/
|
||||||
public static void testSettingsUnavailableSlice(Context context, Slice slice,
|
public static void testSettingsUnavailableSlice(Context context, Slice slice,
|
||||||
SliceData sliceData) {
|
SliceData sliceData) {
|
||||||
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
final SliceMetadata metadata = SliceMetadata.from(context, slice);
|
||||||
|
|
||||||
|
final long sliceTTL = metadata.getExpiry();
|
||||||
|
assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
|
||||||
|
|
||||||
|
final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
|
||||||
|
final int color = colorItem.getInt();
|
||||||
|
assertThat(color).isEqualTo(Utils.getColorAccent(context));
|
||||||
|
|
||||||
final List<SliceAction> toggles = metadata.getToggles();
|
final List<SliceAction> toggles = metadata.getToggles();
|
||||||
assertThat(toggles).isEmpty();
|
assertThat(toggles).isEmpty();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user