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
This commit is contained in:
@@ -12415,7 +12415,7 @@ package android.uwb {
|
|||||||
public final class UwbManager {
|
public final class UwbManager {
|
||||||
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
|
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public AutoCloseable openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
|
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.CancellationSignal openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
|
||||||
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
|
||||||
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.os.CancellationSignal;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -44,9 +45,11 @@ public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
|
|||||||
* @param executor {@link Executor} to run callbacks
|
* @param executor {@link Executor} to run callbacks
|
||||||
* @param callbacks {@link RangingSession.Callback} to associate with the {@link RangingSession}
|
* @param callbacks {@link RangingSession.Callback} to associate with the {@link RangingSession}
|
||||||
* that is being opened.
|
* 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) {
|
@NonNull RangingSession.Callback callbacks) {
|
||||||
SessionHandle sessionHandle;
|
SessionHandle sessionHandle;
|
||||||
try {
|
try {
|
||||||
@@ -66,7 +69,9 @@ public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
|
|||||||
RangingSession session =
|
RangingSession session =
|
||||||
new RangingSession(executor, callbacks, mAdapter, sessionHandle);
|
new RangingSession(executor, callbacks, mAdapter, sessionHandle);
|
||||||
mRangingSessionTable.put(sessionHandle, session);
|
mRangingSessionTable.put(sessionHandle, session);
|
||||||
return session;
|
CancellationSignal cancellationSignal = new CancellationSignal();
|
||||||
|
cancellationSignal.setOnCancelListener(() -> session.close());
|
||||||
|
return cancellationSignal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.annotation.SuppressLint;
|
|||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.annotation.SystemService;
|
import android.annotation.SystemService;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.CancellationSignal;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -228,14 +229,14 @@ public final class UwbManager {
|
|||||||
* @param callbacks {@link RangingSession.Callback} to associate with the
|
* @param callbacks {@link RangingSession.Callback} to associate with the
|
||||||
* {@link RangingSession} that is being opened.
|
* {@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}
|
* {@link RangingSession} that has been requested through {@link #openRangingSession}
|
||||||
* but has not yet been made available by
|
* but has not yet been made available by
|
||||||
* {@link RangingSession.Callback#onOpened(RangingSession)}.
|
* {@link RangingSession.Callback#onOpened(RangingSession)}.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
|
public CancellationSignal openRangingSession(@NonNull PersistableBundle parameters,
|
||||||
@NonNull @CallbackExecutor Executor executor,
|
@NonNull @CallbackExecutor Executor executor,
|
||||||
@NonNull RangingSession.Callback callbacks) {
|
@NonNull RangingSession.Callback callbacks) {
|
||||||
return mRangingManager.openSession(parameters, executor, callbacks);
|
return mRangingManager.openSession(parameters, executor, callbacks);
|
||||||
|
|||||||
Reference in New Issue
Block a user