diff options
| author | Brian Stack <bstack@google.com> | 2021-02-18 17:01:06 -0800 |
|---|---|---|
| committer | Brian Stack <bstack@google.com> | 2021-03-10 12:10:11 -0800 |
| commit | 23d41b8f0fcf11b3579934a26adcb41287818e82 (patch) | |
| tree | 132dc6b0783720132c0133045f2b0f6f66fcd859 /core/java/android | |
| parent | 78bce9af5b73c9bec2cc21f0b96e04b85774c6aa (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.java | 11 | ||||
| -rw-r--r-- | core/java/android/uwb/UwbManager.java | 5 |
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); |
