Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 740a650d authored by Jason Monk's avatar Jason Monk
Browse files

Change colors to allow transport of more generic ints

This is in preparation for sliders, also add some hints/types that
will be used for sliders.

Test: atest cts/tests/tests/slice
Bug: 68378584
Change-Id: I8f6a8bb7c80854b51c421a437318975f517a2169
parent 454c831d
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -7006,11 +7006,14 @@ package android.app.slice {
    field public static final java.lang.String HINT_LARGE = "large";
    field public static final java.lang.String HINT_LIST = "list";
    field public static final java.lang.String HINT_LIST_ITEM = "list_item";
    field public static final java.lang.String HINT_MAX = "max";
    field public static final java.lang.String HINT_NO_TINT = "no_tint";
    field public static final java.lang.String HINT_PARTIAL = "partial";
    field public static final java.lang.String HINT_SELECTED = "selected";
    field public static final java.lang.String HINT_TITLE = "title";
    field public static final java.lang.String SUBTYPE_COLOR = "color";
    field public static final java.lang.String SUBTYPE_MESSAGE = "message";
    field public static final java.lang.String SUBTYPE_SLIDER = "slider";
    field public static final java.lang.String SUBTYPE_SOURCE = "source";
  }
@@ -7019,12 +7022,14 @@ package android.app.slice {
    ctor public Slice.Builder(android.app.slice.Slice.Builder);
    method public android.app.slice.Slice.Builder addAction(android.app.PendingIntent, android.app.slice.Slice);
    method public android.app.slice.Slice.Builder addAction(android.app.PendingIntent, android.app.slice.Slice, java.lang.String);
    method public android.app.slice.Slice.Builder addColor(int, java.lang.String, java.lang.String...);
    method public android.app.slice.Slice.Builder addColor(int, java.lang.String, java.util.List<java.lang.String>);
    method public deprecated android.app.slice.Slice.Builder addColor(int, java.lang.String, java.lang.String...);
    method public deprecated android.app.slice.Slice.Builder addColor(int, java.lang.String, java.util.List<java.lang.String>);
    method public android.app.slice.Slice.Builder addHints(java.lang.String...);
    method public android.app.slice.Slice.Builder addHints(java.util.List<java.lang.String>);
    method public android.app.slice.Slice.Builder addIcon(android.graphics.drawable.Icon, java.lang.String, java.lang.String...);
    method public android.app.slice.Slice.Builder addIcon(android.graphics.drawable.Icon, java.lang.String, java.util.List<java.lang.String>);
    method public android.app.slice.Slice.Builder addInt(int, java.lang.String, java.lang.String...);
    method public android.app.slice.Slice.Builder addInt(int, java.lang.String, java.util.List<java.lang.String>);
    method public android.app.slice.Slice.Builder addRemoteInput(android.app.RemoteInput, java.lang.String, java.util.List<java.lang.String>);
    method public android.app.slice.Slice.Builder addRemoteInput(android.app.RemoteInput, java.lang.String, java.lang.String...);
    method public android.app.slice.Slice.Builder addSubSlice(android.app.slice.Slice);
@@ -7040,10 +7045,11 @@ package android.app.slice {
  public final class SliceItem implements android.os.Parcelable {
    method public int describeContents();
    method public android.app.PendingIntent getAction();
    method public int getColor();
    method public deprecated int getColor();
    method public java.lang.String getFormat();
    method public java.util.List<java.lang.String> getHints();
    method public android.graphics.drawable.Icon getIcon();
    method public int getInt();
    method public android.app.RemoteInput getRemoteInput();
    method public android.app.slice.Slice getSlice();
    method public java.lang.String getSubType();
@@ -7053,8 +7059,9 @@ package android.app.slice {
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.app.slice.SliceItem> CREATOR;
    field public static final java.lang.String FORMAT_ACTION = "action";
    field public static final java.lang.String FORMAT_COLOR = "color";
    field public static final deprecated java.lang.String FORMAT_COLOR = "color";
    field public static final java.lang.String FORMAT_IMAGE = "image";
    field public static final java.lang.String FORMAT_INT = "int";
    field public static final java.lang.String FORMAT_REMOTE_INPUT = "input";
    field public static final java.lang.String FORMAT_SLICE = "slice";
    field public static final java.lang.String FORMAT_TEXT = "text";
+36 −1
Original line number Diff line number Diff line
@@ -143,6 +143,11 @@ public final class Slice implements Parcelable {
     * OS and should not be cached by apps.
     */
    public static final String HINT_PARTIAL     = "partial";
    /**
     * A hint representing that this item is the max value possible for the slice containing this.
     * Used to indicate the maximum integer value for a {@link #SUBTYPE_SLIDER}.
     */
    public static final String HINT_MAX = "max";

    /**
     * Key to retrieve an extra added to an intent when a control is changed.
@@ -158,6 +163,14 @@ public final class Slice implements Parcelable {
     * Subtype to tag the source (i.e. sender) of a {@link #SUBTYPE_MESSAGE}.
     */
    public static final String SUBTYPE_SOURCE = "source";
    /**
     * Subtype to tag an item as representing a color.
     */
    public static final String SUBTYPE_COLOR = "color";
    /**
     * Subtype to tag an item represents a slider.
     */
    public static final String SUBTYPE_SLIDER = "slider";

    private final SliceItem[] mItems;
    private final @SliceHint String[] mHints;
@@ -389,9 +402,10 @@ public final class Slice implements Parcelable {
         * Add a color to the slice being constructed
         * @param subType Optional template-specific type information
         * @see {@link SliceItem#getSubType()}
         * @deprecated will be removed once supportlib updates
         */
        public Builder addColor(int color, @Nullable String subType, @SliceHint String... hints) {
            mItems.add(new SliceItem(color, SliceItem.FORMAT_COLOR, subType, hints));
            mItems.add(new SliceItem(color, SliceItem.FORMAT_INT, subType, hints));
            return this;
        }

@@ -399,12 +413,33 @@ public final class Slice implements Parcelable {
         * Add a color to the slice being constructed
         * @param subType Optional template-specific type information
         * @see {@link SliceItem#getSubType()}
         * @deprecated will be removed once supportlib updates
         */
        public Builder addColor(int color, @Nullable String subType,
                @SliceHint List<String> hints) {
            return addColor(color, subType, hints.toArray(new String[hints.size()]));
        }

        /**
         * Add a color to the slice being constructed
         * @param subType Optional template-specific type information
         * @see {@link SliceItem#getSubType()}
         */
        public Builder addInt(int value, @Nullable String subType, @SliceHint String... hints) {
            mItems.add(new SliceItem(value, SliceItem.FORMAT_INT, subType, hints));
            return this;
        }

        /**
         * Add a color to the slice being constructed
         * @param subType Optional template-specific type information
         * @see {@link SliceItem#getSubType()}
         */
        public Builder addInt(int value, @Nullable String subType,
                @SliceHint List<String> hints) {
            return addInt(value, subType, hints.toArray(new String[hints.size()]));
        }

        /**
         * Add a timestamp to the slice being constructed
         * @param subType Optional template-specific type information
+19 −7
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ import java.util.List;
 * <li>{@link #FORMAT_TEXT}</li>
 * <li>{@link #FORMAT_IMAGE}</li>
 * <li>{@link #FORMAT_ACTION}</li>
 * <li>{@link #FORMAT_COLOR}</li>
 * <li>{@link #FORMAT_INT}</li>
 * <li>{@link #FORMAT_TIMESTAMP}</li>
 * <li>{@link #FORMAT_REMOTE_INPUT}</li>
 *
@@ -62,7 +62,7 @@ public final class SliceItem implements Parcelable {
            FORMAT_TEXT,
            FORMAT_IMAGE,
            FORMAT_ACTION,
            FORMAT_COLOR,
            FORMAT_INT,
            FORMAT_TIMESTAMP,
            FORMAT_REMOTE_INPUT,
    })
@@ -89,7 +89,12 @@ public final class SliceItem implements Parcelable {
     */
    public static final String FORMAT_ACTION = "action";
    /**
     * A {@link SliceItem} that contains a Color int.
     * A {@link SliceItem} that contains an int.
     */
    public static final String FORMAT_INT = "int";
    /**
     * A {@link SliceItem} that contains an int.
     * @deprecated to be removed
     */
    public static final String FORMAT_COLOR = "color";
    /**
@@ -159,7 +164,7 @@ public final class SliceItem implements Parcelable {
     * <li>{@link #FORMAT_TEXT}</li>
     * <li>{@link #FORMAT_IMAGE}</li>
     * <li>{@link #FORMAT_ACTION}</li>
     * <li>{@link #FORMAT_COLOR}</li>
     * <li>{@link #FORMAT_INT}</li>
     * <li>{@link #FORMAT_TIMESTAMP}</li>
     * <li>{@link #FORMAT_REMOTE_INPUT}</li>
     * @see #getSubType() ()
@@ -216,7 +221,14 @@ public final class SliceItem implements Parcelable {
    }

    /**
     * @return The color held by this {@link #FORMAT_COLOR} SliceItem
     * @return The color held by this {@link #FORMAT_INT} SliceItem
     */
    public int getInt() {
        return (Integer) mObj;
    }

    /**
     * @deprecated to be removed.
     */
    public int getColor() {
        return (Integer) mObj;
@@ -318,7 +330,7 @@ public final class SliceItem implements Parcelable {
            case FORMAT_TEXT:
                TextUtils.writeToParcel((CharSequence) obj, dest, flags);
                break;
            case FORMAT_COLOR:
            case FORMAT_INT:
                dest.writeInt((Integer) obj);
                break;
            case FORMAT_TIMESTAMP:
@@ -339,7 +351,7 @@ public final class SliceItem implements Parcelable {
                return new Pair<>(
                        PendingIntent.CREATOR.createFromParcel(in),
                        Slice.CREATOR.createFromParcel(in));
            case FORMAT_COLOR:
            case FORMAT_INT:
                return in.readInt();
            case FORMAT_TIMESTAMP:
                return in.readLong();