summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Raphael Kim <raphk@google.com> 2024-01-19 00:27:36 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-01-19 00:27:36 +0000
commit95d8a087ef467b737a160f623bc5fc0791eec22b (patch)
tree7df34f241258329ac5d9cfc5577e94bd1a63a716
parent8848f964b61b2386f697b9a1eff43965a69776d7 (diff)
parent290eb22af339d604d20da111909af0076fe241be (diff)
Merge "[V][CDM] Replace transport listener and message listener with functional interfaces" into main
-rw-r--r--core/java/android/companion/CompanionDeviceManager.java65
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));
}
}