diff options
| author | 2018-04-10 23:23:43 +0000 | |
|---|---|---|
| committer | 2018-04-10 23:23:43 +0000 | |
| commit | ae42e1d0c2bb16b0d6d443fac8d104157d49fa14 (patch) | |
| tree | 8d4a4f1fa0a18983a68ddb7f0bf55b00d702c4b6 | |
| parent | ae4518c73673f3f88c9752ad23532e884f0aaed3 (diff) | |
| parent | e2a04b3ea41ebec00afe50db89846920235f23cf (diff) | |
Merge "List<SliceSpec> -> Set<SliceSpec>" into pi-dev
| -rw-r--r-- | api/current.txt | 15 | ||||
| -rw-r--r-- | core/java/android/app/slice/Slice.java | 47 | ||||
| -rw-r--r-- | core/java/android/app/slice/SliceManager.java | 29 | ||||
| -rw-r--r-- | core/java/android/app/slice/SliceProvider.java | 9 |
4 files changed, 41 insertions, 59 deletions
diff --git a/api/current.txt b/api/current.txt index 423e0ae6df69..c14a8a726ac6 100644 --- a/api/current.txt +++ b/api/current.txt @@ -7206,8 +7206,6 @@ package android.app.slice { public final class Slice implements android.os.Parcelable { ctor protected Slice(android.os.Parcel); - method public static deprecated android.app.slice.Slice bindSlice(android.content.ContentResolver, android.net.Uri, java.util.List<android.app.slice.SliceSpec>); - method public static deprecated android.app.slice.Slice bindSlice(android.content.Context, android.content.Intent, java.util.List<android.app.slice.SliceSpec>); method public int describeContents(); method public java.util.List<java.lang.String> getHints(); method public java.util.List<android.app.slice.SliceItem> getItems(); @@ -7297,15 +7295,17 @@ package android.app.slice { } public class SliceManager { - method public android.app.slice.Slice bindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); - method public android.app.slice.Slice bindSlice(android.content.Intent, java.util.List<android.app.slice.SliceSpec>); + method public android.app.slice.Slice bindSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>); + method public deprecated android.app.slice.Slice bindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); + method public android.app.slice.Slice bindSlice(android.content.Intent, java.util.Set<android.app.slice.SliceSpec>); method public int checkSlicePermission(android.net.Uri, int, int); method public java.util.List<android.net.Uri> getPinnedSlices(); - method public java.util.List<android.app.slice.SliceSpec> getPinnedSpecs(android.net.Uri); + method public java.util.Set<android.app.slice.SliceSpec> getPinnedSpecs(android.net.Uri); method public java.util.Collection<android.net.Uri> getSliceDescendants(android.net.Uri); method public void grantSlicePermission(java.lang.String, android.net.Uri); method public android.net.Uri mapIntentToUri(android.content.Intent); - method public void pinSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); + method public void pinSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>); + method public deprecated void pinSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); method public void revokeSlicePermission(java.lang.String, android.net.Uri); method public void unpinSlice(android.net.Uri); field public static final java.lang.String CATEGORY_SLICE = "android.app.slice.category.SLICE"; @@ -7325,7 +7325,8 @@ package android.app.slice { method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]); method public final java.lang.String getType(android.net.Uri); method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues); - method public android.app.slice.Slice onBindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); + method public android.app.slice.Slice onBindSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>); + method public deprecated android.app.slice.Slice onBindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>); method public android.app.PendingIntent onCreatePermissionRequest(android.net.Uri); method public java.util.Collection<android.net.Uri> onGetSliceDescendants(android.net.Uri); method public android.net.Uri onMapIntentToUri(android.content.Intent); diff --git a/core/java/android/app/slice/Slice.java b/core/java/android/app/slice/Slice.java index bf3398ad3c73..4336f184cad7 100644 --- a/core/java/android/app/slice/Slice.java +++ b/core/java/android/app/slice/Slice.java @@ -21,19 +21,13 @@ import android.annotation.Nullable; import android.annotation.StringDef; import android.app.PendingIntent; import android.app.RemoteInput; -import android.content.ContentResolver; -import android.content.Context; -import android.content.IContentProvider; -import android.content.Intent; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; -import android.os.RemoteException; import com.android.internal.util.ArrayUtils; -import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -575,45 +569,4 @@ public final class Slice implements Parcelable { } return sb.toString(); } - - /** - * @deprecated TO BE REMOVED. - */ - @Deprecated - public static @Nullable Slice bindSlice(ContentResolver resolver, - @NonNull Uri uri, @NonNull List<SliceSpec> supportedSpecs) { - Preconditions.checkNotNull(uri, "uri"); - IContentProvider provider = resolver.acquireProvider(uri); - if (provider == null) { - throw new IllegalArgumentException("Unknown URI " + uri); - } - try { - Bundle extras = new Bundle(); - extras.putParcelable(SliceProvider.EXTRA_BIND_URI, uri); - extras.putParcelableArrayList(SliceProvider.EXTRA_SUPPORTED_SPECS, - new ArrayList<>(supportedSpecs)); - final Bundle res = provider.call(resolver.getPackageName(), SliceProvider.METHOD_SLICE, - null, extras); - Bundle.setDefusable(res, true); - if (res == null) { - return null; - } - return res.getParcelable(SliceProvider.EXTRA_SLICE); - } catch (RemoteException e) { - // Arbitrary and not worth documenting, as Activity - // Manager will kill this process shortly anyway. - return null; - } finally { - resolver.releaseProvider(provider); - } - } - - /** - * @deprecated TO BE REMOVED. - */ - @Deprecated - public static @Nullable Slice bindSlice(Context context, @NonNull Intent intent, - @NonNull List<SliceSpec> supportedSpecs) { - return context.getSystemService(SliceManager.class).bindSlice(intent, supportedSpecs); - } } diff --git a/core/java/android/app/slice/SliceManager.java b/core/java/android/app/slice/SliceManager.java index 3b73174cf88e..dc09f12db6f6 100644 --- a/core/java/android/app/slice/SliceManager.java +++ b/core/java/android/app/slice/SliceManager.java @@ -40,6 +40,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import android.os.UserHandle; +import android.util.ArraySet; import android.util.Log; import com.android.internal.util.Preconditions; @@ -49,6 +50,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; /** * Class to handle interactions with {@link Slice}s. @@ -126,7 +128,7 @@ public class SliceManager { * @see Intent#ACTION_ASSIST * @see Intent#CATEGORY_HOME */ - public void pinSlice(@NonNull Uri uri, @NonNull List<SliceSpec> specs) { + public void pinSlice(@NonNull Uri uri, @NonNull Set<SliceSpec> specs) { try { mService.pinSlice(mContext.getPackageName(), uri, specs.toArray(new SliceSpec[specs.size()]), mToken); @@ -136,6 +138,14 @@ public class SliceManager { } /** + * @deprecated TO BE REMOVED + */ + @Deprecated + public void pinSlice(@NonNull Uri uri, @NonNull List<SliceSpec> specs) { + pinSlice(uri, new ArraySet<>(specs)); + } + + /** * Remove a pin for a slice. * <p> * If the slice has no other pins/callbacks then the slice will be unpinned. @@ -175,9 +185,10 @@ public class SliceManager { * into account all clients and returns only specs supported by all. * @see SliceSpec */ - public @NonNull List<SliceSpec> getPinnedSpecs(Uri uri) { + public @NonNull Set<SliceSpec> getPinnedSpecs(Uri uri) { try { - return Arrays.asList(mService.getPinnedSpecs(uri, mContext.getPackageName())); + return new ArraySet<>(Arrays.asList(mService.getPinnedSpecs(uri, + mContext.getPackageName()))); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -226,7 +237,7 @@ public class SliceManager { * @return The Slice provided by the app or null if none is given. * @see Slice */ - public @Nullable Slice bindSlice(@NonNull Uri uri, @NonNull List<SliceSpec> supportedSpecs) { + public @Nullable Slice bindSlice(@NonNull Uri uri, @NonNull Set<SliceSpec> supportedSpecs) { Preconditions.checkNotNull(uri, "uri"); ContentResolver resolver = mContext.getContentResolver(); try (ContentProviderClient provider = resolver.acquireContentProviderClient(uri)) { @@ -251,6 +262,14 @@ public class SliceManager { } /** + * @deprecated TO BE REMOVED + */ + @Deprecated + public @Nullable Slice bindSlice(@NonNull Uri uri, @NonNull List<SliceSpec> supportedSpecs) { + return bindSlice(uri, new ArraySet<>(supportedSpecs)); + } + + /** * Turns a slice intent into a slice uri. Expects an explicit intent. * <p> * This goes through a several stage resolution process to determine if any slice @@ -337,7 +356,7 @@ public class SliceManager { * @see Intent */ public @Nullable Slice bindSlice(@NonNull Intent intent, - @NonNull List<SliceSpec> supportedSpecs) { + @NonNull Set<SliceSpec> supportedSpecs) { Preconditions.checkNotNull(intent, "intent"); Preconditions.checkArgument(intent.getComponent() != null || intent.getPackage() != null || intent.getData() != null, diff --git a/core/java/android/app/slice/SliceProvider.java b/core/java/android/app/slice/SliceProvider.java index fe5742d6da38..d369272d84c6 100644 --- a/core/java/android/app/slice/SliceProvider.java +++ b/core/java/android/app/slice/SliceProvider.java @@ -44,6 +44,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; /** * A SliceProvider allows an app to provide content to be displayed in system spaces. This content @@ -197,6 +198,14 @@ public abstract class SliceProvider extends ContentProvider { * @see {@link Slice}. * @see {@link Slice#HINT_PARTIAL} */ + public Slice onBindSlice(Uri sliceUri, Set<SliceSpec> supportedSpecs) { + return onBindSlice(sliceUri, new ArrayList<>(supportedSpecs)); + } + + /** + * @deprecated TO BE REMOVED + */ + @Deprecated public Slice onBindSlice(Uri sliceUri, List<SliceSpec> supportedSpecs) { return null; } |