diff options
| author | Makoto Onuki <omakoto@google.com> | 2016-04-16 15:18:38 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-16 15:18:39 +0000 |
| commit | e2be9f4a670198edbe9b1c42422d6d429b8a21f6 (patch) | |
| tree | f121b8257fe1d9f7105648a7e41fe2fb28a0e90a /core/java/android | |
| parent | 0b1a203830f49b8998692873c161a8fb7c7ab9cb (diff) | |
| parent | be73a8068ff3babe5b0a4f12656731ba8eea6149 (diff) | |
Merge "ShortcutManager: Categories should be Set, not List." into nyc-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/content/pm/ShortcutInfo.java | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/core/java/android/content/pm/ShortcutInfo.java b/core/java/android/content/pm/ShortcutInfo.java index a9000155bc00..9b1d0f7d05bd 100644 --- a/core/java/android/content/pm/ShortcutInfo.java +++ b/core/java/android/content/pm/ShortcutInfo.java @@ -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) { |
