summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorBrian Stack <bstack@google.com>2021-02-18 17:01:06 -0800
committerBrian Stack <bstack@google.com>2021-03-10 12:10:11 -0800
commit23d41b8f0fcf11b3579934a26adcb41287818e82 (patch)
tree132dc6b0783720132c0133045f2b0f6f66fcd859 /core/java/android
parent78bce9af5b73c9bec2cc21f0b96e04b85774c6aa (diff)
Return CancellationSignal when opening UWB session
Returns a CancellationSignal instead of an AutoCloseable when calling UwbManager#openRangingSession per API feedback. Bug: 180396069 Test: atest UwbManagerTests CtsUwbTestCases Change-Id: I74482c56d1a3686b570c90e7d3c11e45ec2f0adc Merged-In: I74482c56d1a3686b570c90e7d3c11e45ec2f0adc
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/uwb/RangingManager.java11
-rw-r--r--core/java/android/uwb/UwbManager.java5
2 files changed, 11 insertions, 5 deletions
diff --git a/core/java/android/uwb/RangingManager.java b/core/java/android/uwb/RangingManager.java
index c0d818774ba0..5e75a629ff39 100644
--- a/core/java/android/uwb/RangingManager.java
+++ b/core/java/android/uwb/RangingManager.java
@@ -17,6 +17,7 @@
package android.uwb;
import android.annotation.NonNull;
+import android.os.CancellationSignal;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.util.Log;
@@ -44,9 +45,11 @@ public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
* @param executor {@link Executor} to run callbacks
* @param callbacks {@link RangingSession.Callback} to associate with the {@link RangingSession}
* that is being opened.
- * @return a new {@link RangingSession}
+ * @return a {@link CancellationSignal} that may be used to cancel the opening of the
+ * {@link RangingSession}.
*/
- public RangingSession openSession(@NonNull PersistableBundle params, @NonNull Executor executor,
+ public CancellationSignal openSession(@NonNull PersistableBundle params,
+ @NonNull Executor executor,
@NonNull RangingSession.Callback callbacks) {
SessionHandle sessionHandle;
try {
@@ -66,7 +69,9 @@ public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
RangingSession session =
new RangingSession(executor, callbacks, mAdapter, sessionHandle);
mRangingSessionTable.put(sessionHandle, session);
- return session;
+ CancellationSignal cancellationSignal = new CancellationSignal();
+ cancellationSignal.setOnCancelListener(() -> session.close());
+ return cancellationSignal;
}
}
diff --git a/core/java/android/uwb/UwbManager.java b/core/java/android/uwb/UwbManager.java
index 63a6d058f358..844bbbe7970b 100644
--- a/core/java/android/uwb/UwbManager.java
+++ b/core/java/android/uwb/UwbManager.java
@@ -25,6 +25,7 @@ import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
+import android.os.CancellationSignal;
import android.os.IBinder;
import android.os.PersistableBundle;
import android.os.RemoteException;
@@ -228,14 +229,14 @@ public final class UwbManager {
* @param callbacks {@link RangingSession.Callback} to associate with the
* {@link RangingSession} that is being opened.
*
- * @return an {@link AutoCloseable} that is able to be used to close or cancel the opening of a
+ * @return an {@link CancellationSignal} that is able to be used to cancel the opening of a
* {@link RangingSession} that has been requested through {@link #openRangingSession}
* but has not yet been made available by
* {@link RangingSession.Callback#onOpened(RangingSession)}.
*/
@NonNull
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
- public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
+ public CancellationSignal openRangingSession(@NonNull PersistableBundle parameters,
@NonNull @CallbackExecutor Executor executor,
@NonNull RangingSession.Callback callbacks) {
return mRangingManager.openSession(parameters, executor, callbacks);