diff options
| -rw-r--r-- | core/java/android/companion/CompanionDeviceManager.java | 65 |
1 files changed, 21 insertions, 44 deletions
diff --git a/core/java/android/companion/CompanionDeviceManager.java b/core/java/android/companion/CompanionDeviceManager.java index 879656a89233..672e343959cb 100644 --- a/core/java/android/companion/CompanionDeviceManager.java +++ b/core/java/android/companion/CompanionDeviceManager.java @@ -76,6 +76,7 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; +import java.util.function.BiConsumer; import java.util.function.Consumer; /** @@ -909,34 +910,20 @@ public final class CompanionDeviceManager { } /** - * Listener for any changes to the list of attached transports. - * - * @see com.android.server.companion.transport.Transport - * - * @hide - */ - public interface OnTransportsChangedListener { - /** - * Invoked when a transport is attached or detached. - * - * @param associations all the associations which have connected transports. - */ - void onTransportsChanged(@NonNull List<AssociationInfo> associations); - } - - /** * Adds a listener for any changes to the list of attached transports. - * {@link OnTransportsChangedListener#onTransportsChanged(List)} will be triggered with a list - * of existing transports when a transport is detached or a new transport is attached. + * Registered listener will be triggered with a list of existing transports when a transport + * is detached or a new transport is attached. * + * @param executor The executor which will be used to invoke the listener. + * @param listener Called when a transport is attached or detached. Contains the updated list of + * associations which have connected transports. * @see com.android.server.companion.transport.Transport - * * @hide */ @RequiresPermission(android.Manifest.permission.USE_COMPANION_TRANSPORTS) public void addOnTransportsChangedListener( @NonNull @CallbackExecutor Executor executor, - @NonNull OnTransportsChangedListener listener) { + @NonNull Consumer<List<AssociationInfo>> listener) { final OnTransportsChangedListenerProxy proxy = new OnTransportsChangedListenerProxy( executor, listener); try { @@ -955,7 +942,7 @@ public final class CompanionDeviceManager { */ @RequiresPermission(android.Manifest.permission.USE_COMPANION_TRANSPORTS) public void removeOnTransportsChangedListener( - @NonNull OnTransportsChangedListener listener) { + @NonNull Consumer<List<AssociationInfo>> listener) { final OnTransportsChangedListenerProxy proxy = new OnTransportsChangedListenerProxy( null, listener); try { @@ -983,28 +970,18 @@ public final class CompanionDeviceManager { } /** - * Listener that triggers a callback when a message is received through a connected transport. - * - * @see #addOnMessageReceivedListener(Executor, int, OnMessageReceivedListener) - * - * @hide - */ - public interface OnMessageReceivedListener { - /** - * Called when a message is received. - */ - void onMessageReceived(int associationId, @NonNull byte[] data); - } - - /** - * Adds a listener to trigger callbacks when messages of given type are received. + * Adds a listener that triggers when messages of given type are received. * + * @param executor The executor which will be used to invoke the listener. + * @param messageType Message type to be subscribed to. + * @param listener Called when a message is received. Contains the association ID of the message + * sender and the message payload as a byte array. * @hide */ @RequiresPermission(android.Manifest.permission.USE_COMPANION_TRANSPORTS) public void addOnMessageReceivedListener( @NonNull @CallbackExecutor Executor executor, int messageType, - @NonNull OnMessageReceivedListener listener) { + @NonNull BiConsumer<Integer, byte[]> listener) { final OnMessageReceivedListenerProxy proxy = new OnMessageReceivedListenerProxy( executor, listener); try { @@ -1021,7 +998,7 @@ public final class CompanionDeviceManager { */ @RequiresPermission(android.Manifest.permission.USE_COMPANION_TRANSPORTS) public void removeOnMessageReceivedListener(int messageType, - @NonNull OnMessageReceivedListener listener) { + @NonNull BiConsumer<Integer, byte[]> listener) { final OnMessageReceivedListenerProxy proxy = new OnMessageReceivedListenerProxy( null, listener); try { @@ -1596,34 +1573,34 @@ public final class CompanionDeviceManager { private static class OnTransportsChangedListenerProxy extends IOnTransportsChangedListener.Stub { private final Executor mExecutor; - private final OnTransportsChangedListener mListener; + private final Consumer<List<AssociationInfo>> mListener; private OnTransportsChangedListenerProxy(Executor executor, - OnTransportsChangedListener listener) { + Consumer<List<AssociationInfo>> listener) { mExecutor = executor; mListener = listener; } @Override public void onTransportsChanged(@NonNull List<AssociationInfo> associations) { - mExecutor.execute(() -> mListener.onTransportsChanged(associations)); + mExecutor.execute(() -> mListener.accept(associations)); } } private static class OnMessageReceivedListenerProxy extends IOnMessageReceivedListener.Stub { private final Executor mExecutor; - private final OnMessageReceivedListener mListener; + private final BiConsumer<Integer, byte[]> mListener; private OnMessageReceivedListenerProxy(Executor executor, - OnMessageReceivedListener listener) { + BiConsumer<Integer, byte[]> listener) { mExecutor = executor; mListener = listener; } @Override public void onMessageReceived(int associationId, byte[] data) { - mExecutor.execute(() -> mListener.onMessageReceived(associationId, data)); + mExecutor.execute(() -> mListener.accept(associationId, data)); } } |