diff options
| author | Jason Monk <jmonk@google.com> | 2018-03-08 11:31:26 -0500 |
|---|---|---|
| committer | Jason Monk <jmonk@google.com> | 2018-04-10 20:25:51 -0400 |
| commit | 2d3932eb4df005b8ebb630ad89cd9a804fdd9ede (patch) | |
| tree | fe750d18b59635dc868845645c2c64a93f99e515 /core/java | |
| parent | 9107b53c6d8f6d930733f2c23bede1c547f9f500 (diff) | |
List<SliceSpec> -> Set<SliceSpec>
Test: update-api
Bug: 73123786
Change-Id: I5668023eda0efcadf40a20259a92624e6680659f
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/slice/Slice.java | 47 | ||||
| -rw-r--r-- | core/java/android/app/slice/SliceManager.java | 39 | ||||
| -rw-r--r-- | core/java/android/app/slice/SliceProvider.java | 9 |
3 files changed, 43 insertions, 52 deletions
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..dc8a3b92eaa9 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, @@ -388,6 +407,16 @@ public class SliceManager { } /** + * @deprecated TO BE REMOVED. + */ + @Deprecated + @Nullable + public Slice bindSlice(@NonNull Intent intent, + @NonNull List<SliceSpec> supportedSpecs) { + return bindSlice(intent, new ArraySet<>(supportedSpecs)); + } + + /** * Determine whether a particular process and user ID has been granted * permission to access a specific slice URI. * 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; } |
