From 4ef50bc2d48e816624dde2311ac25796a31fad9c Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 22 Jan 2018 10:52:23 -0500 Subject: Fix registerSliceCallback to match api guidelines Deprecate the old ones, they will be removed once supportlib updates. Test: update-api Bug: 68378571 Change-Id: I2f91fb05bc0de074c5aee7ca59025bd4d35bf95a --- api/current.txt | 7 +++-- core/java/android/app/slice/SliceManager.java | 45 +++++++++++---------------- 2 files changed, 22 insertions(+), 30 deletions(-) diff --git a/api/current.txt b/api/current.txt index bb4c383e4c9a..31379cd6de1f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -7180,9 +7180,10 @@ package android.app.slice { method public java.util.List getPinnedSpecs(android.net.Uri); method public java.util.Collection getSliceDescendants(android.net.Uri); method public void pinSlice(android.net.Uri, java.util.List); - method public void registerSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback, java.util.List); - method public void registerSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback, java.util.List, android.os.Handler); - method public void registerSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback, java.util.List, java.util.concurrent.Executor); + method public deprecated void registerSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback, java.util.List); + method public deprecated void registerSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback, java.util.List, java.util.concurrent.Executor); + method public void registerSliceCallback(android.net.Uri, java.util.List, android.app.slice.SliceManager.SliceCallback); + method public void registerSliceCallback(android.net.Uri, java.util.List, java.util.concurrent.Executor, android.app.slice.SliceManager.SliceCallback); method public void unpinSlice(android.net.Uri); method public void unregisterSliceCallback(android.net.Uri, android.app.slice.SliceManager.SliceCallback); } diff --git a/core/java/android/app/slice/SliceManager.java b/core/java/android/app/slice/SliceManager.java index 09c420c3e66a..2fa9d8e0882f 100644 --- a/core/java/android/app/slice/SliceManager.java +++ b/core/java/android/app/slice/SliceManager.java @@ -16,6 +16,7 @@ package android.app.slice; +import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemService; @@ -90,21 +91,21 @@ public class SliceManager { } /** - * Adds a callback to a specific slice uri. - *

- * This is a convenience that performs a few slice actions at once. It will put - * the slice in a pinned state since there is a callback attached. It will also - * listen for content changes, when a content change observes, the android system - * will bind the new slice and provide it to all registered {@link SliceCallback}s. - * - * @param uri The uri of the slice being listened to. - * @param callback The listener that should receive the callbacks. - * @param specs The list of supported {@link SliceSpec}s of the callback. - * @see SliceProvider#onSlicePinned(Uri) + * @deprecated TO BE REMOVED. */ + @Deprecated public void registerSliceCallback(@NonNull Uri uri, @NonNull SliceCallback callback, @NonNull List specs) { - registerSliceCallback(uri, callback, specs, Handler.getMain()); + registerSliceCallback(uri, specs, mContext.getMainExecutor(), callback); + } + + /** + * @deprecated TO BE REMOVED. + */ + @Deprecated + public void registerSliceCallback(@NonNull Uri uri, @NonNull SliceCallback callback, + @NonNull List specs, Executor executor) { + registerSliceCallback(uri, specs, executor, callback); } /** @@ -120,19 +121,9 @@ public class SliceManager { * @param specs The list of supported {@link SliceSpec}s of the callback. * @see SliceProvider#onSlicePinned(Uri) */ - public void registerSliceCallback(@NonNull Uri uri, @NonNull SliceCallback callback, - @NonNull List specs, Handler handler) { - try { - mService.addSliceListener(uri, mContext.getPackageName(), - getListener(uri, callback, new ISliceListener.Stub() { - @Override - public void onSliceUpdated(Slice s) throws RemoteException { - handler.post(() -> callback.onSliceUpdated(s)); - } - }), specs.toArray(new SliceSpec[specs.size()])); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + public void registerSliceCallback(@NonNull Uri uri, @NonNull List specs, + @NonNull SliceCallback callback) { + registerSliceCallback(uri, specs, mContext.getMainExecutor(), callback); } /** @@ -148,8 +139,8 @@ public class SliceManager { * @param specs The list of supported {@link SliceSpec}s of the callback. * @see SliceProvider#onSlicePinned(Uri) */ - public void registerSliceCallback(@NonNull Uri uri, @NonNull SliceCallback callback, - @NonNull List specs, Executor executor) { + public void registerSliceCallback(@NonNull Uri uri, @NonNull List specs, + @NonNull @CallbackExecutor Executor executor, @NonNull SliceCallback callback) { try { mService.addSliceListener(uri, mContext.getPackageName(), getListener(uri, callback, new ISliceListener.Stub() { -- cgit v1.2.3-59-g8ed1b