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

Commit e2be9f4a authored by Makoto Onuki's avatar Makoto Onuki Committed by Android (Google) Code Review
Browse files

Merge "ShortcutManager: Categories should be Set, not List." into nyc-dev

parents 0b1a2038 be73a806
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -10050,7 +10050,7 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public java.util.Set<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
@@ -10083,7 +10083,7 @@ package android.content.pm {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.Set<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
+2 −2
Original line number Diff line number Diff line
@@ -10450,7 +10450,7 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public java.util.Set<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
@@ -10483,7 +10483,7 @@ package android.content.pm {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.Set<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
+2 −2
Original line number Diff line number Diff line
@@ -10061,7 +10061,7 @@ package android.content.pm {
  public final class ShortcutInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getActivityComponent();
    method public java.util.List<java.lang.String> getCategories();
    method public java.util.Set<java.lang.String> getCategories();
    method public android.os.PersistableBundle getExtras();
    method public int getIconResourceId();
    method public java.lang.String getId();
@@ -10094,7 +10094,7 @@ package android.content.pm {
    ctor public ShortcutInfo.Builder(android.content.Context);
    method public android.content.pm.ShortcutInfo build();
    method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.Set<java.lang.String>);
    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
    method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String);
+30 −10
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.util.ArraySet;

import com.android.internal.util.Preconditions;

@@ -36,6 +37,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

// TODO Enhance javadoc
/**
@@ -132,7 +134,7 @@ public final class ShortcutInfo implements Parcelable {
    private String mText;

    @NonNull
    private List<String> mCategories;
    private ArraySet<String> mCategories;

    /**
     * Intent *with extras removed*.
@@ -192,8 +194,8 @@ public final class ShortcutInfo implements Parcelable {
        updateTimestamp();
    }

    private <T> ArrayList<T> clone(List<T> source) {
        return (source == null) ? null : new ArrayList<>(source);
    private <T> ArraySet<T> clone(Set<T> source) {
        return (source == null) ? null : new ArraySet<>(source);
    }

    /**
@@ -346,7 +348,7 @@ public final class ShortcutInfo implements Parcelable {

        private String mText;

        private List<String> mCategories;
        private Set<String> mCategories;

        private Intent mIntent;

@@ -433,7 +435,7 @@ public final class ShortcutInfo implements Parcelable {
         * @see #SHORTCUT_CATEGORY_CONVERSATION
         */
        @NonNull
        public Builder setCategories(List<String> categories) {
        public Builder setCategories(Set<String> categories) {
            mCategories = categories;
            return this;
        }
@@ -539,7 +541,7 @@ public final class ShortcutInfo implements Parcelable {
     * Return the categories.
     */
    @Nullable
    public List<String> getCategories() {
    public Set<String> getCategories() {
        return mCategories;
    }

@@ -733,8 +735,6 @@ public final class ShortcutInfo implements Parcelable {
        mIcon = source.readParcelable(cl);
        mTitle = source.readString();
        mText = source.readString();
        mCategories = new ArrayList<>();
        source.readStringList(mCategories);
        mIntent = source.readParcelable(cl);
        mIntentPersistableExtras = source.readParcelable(cl);
        mWeight = source.readInt();
@@ -743,6 +743,16 @@ public final class ShortcutInfo implements Parcelable {
        mFlags = source.readInt();
        mIconResourceId = source.readInt();
        mBitmapPath = source.readString();

        int N = source.readInt();
        if (N == 0) {
            mCategories = null;
        } else {
            mCategories = new ArraySet<>(N);
            for (int i = 0; i < N; i++) {
                mCategories.add(source.readString().intern());
            }
        }
    }

    @Override
@@ -754,7 +764,7 @@ public final class ShortcutInfo implements Parcelable {
        dest.writeParcelable(mIcon, flags);
        dest.writeString(mTitle);
        dest.writeString(mText);
        dest.writeStringList(mCategories);

        dest.writeParcelable(mIntent, flags);
        dest.writeParcelable(mIntentPersistableExtras, flags);
        dest.writeInt(mWeight);
@@ -763,6 +773,16 @@ public final class ShortcutInfo implements Parcelable {
        dest.writeInt(mFlags);
        dest.writeInt(mIconResourceId);
        dest.writeString(mBitmapPath);

        if (mCategories != null) {
            final int N = mCategories.size();
            dest.writeInt(N);
            for (int i = 0; i < N; i++) {
                dest.writeString(mCategories.valueAt(i));
            }
        } else {
            dest.writeInt(0);
        }
    }

    public static final Creator<ShortcutInfo> CREATOR =
@@ -859,7 +879,7 @@ public final class ShortcutInfo implements Parcelable {
    /** @hide */
    public ShortcutInfo(
            @UserIdInt int userId, String id, String packageName, ComponentName activityComponent,
            Icon icon, String title, String text, List<String> categories, Intent intent,
            Icon icon, String title, String text, Set<String> categories, Intent intent,
            PersistableBundle intentPersistableExtras,
            int weight, PersistableBundle extras, long lastChangedTimestamp,
            int flags, int iconResId, String bitmapPath) {
+11 −4
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;

/**
@@ -493,7 +494,7 @@ class ShortcutPackage extends ShortcutPackageItem {
        }

        {
            final List<String> cat = si.getCategories();
            final Set<String> cat = si.getCategories();
            if (cat != null && cat.size() > 0) {
                out.startTag(null, TAG_CATEGORIES);
                XmlUtils.writeStringArrayXml(cat.toArray(new String[cat.size()]),
@@ -567,7 +568,7 @@ class ShortcutPackage extends ShortcutPackageItem {
        int flags;
        int iconRes;
        String bitmapPath;
        String[] categories = null;
        ArraySet<String> categories = null;

        id = ShortcutService.parseStringAttribute(parser, ATTR_ID);
        activityComponent = ShortcutService.parseComponentNameAttribute(parser,
@@ -607,15 +608,21 @@ class ShortcutPackage extends ShortcutPackageItem {
                case TAG_STRING_ARRAY_XMLUTILS:
                    if (NAME_CATEGORIES.equals(ShortcutService.parseStringAttribute(parser,
                            ATTR_NAME_XMLUTILS))) {
                        categories = XmlUtils.readThisStringArrayXml(parser, TAG_STRING_ARRAY_XMLUTILS, null);
                        final String[] ar = XmlUtils.readThisStringArrayXml(
                                parser, TAG_STRING_ARRAY_XMLUTILS, null);
                        categories = new ArraySet<>(ar.length);
                        for (int i = 0; i < ar.length; i++) {
                            categories.add(ar[i]);
                        }
                    }
                    continue;
            }
            throw ShortcutService.throwForInvalidTag(depth, tag);
        }

        return new ShortcutInfo(
                userId, id, packageName, activityComponent, /* icon =*/ null, title, text,
                (categories == null ? null : Arrays.asList(categories)), intent,
                categories, intent,
                intentPersistableExtras, weight, extras, lastChangedTimestamp, flags,
                iconRes, bitmapPath);
    }
Loading