Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a44cb2f8 authored by Arthur Ishiguro's avatar Arthur Ishiguro
Browse files

Updates session service descriptor to a string

The HAL API only accepts a string input. Updates API surface to be consistent.

Bug: 381172453
Flag: android.chre.flags.offload_api
Test: Compile
Change-Id: I2bb78356f2364d432acbd1805ca79dbed1f67fc9
parent 57a37ccd
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -5265,7 +5265,7 @@ package android.hardware.contexthub {
  @FlaggedApi("android.chre.flags.offload_api") public class HubEndpointSession implements java.lang.AutoCloseable {
    method @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public void close();
    method @Nullable public android.hardware.contexthub.HubServiceInfo getServiceInfo();
    method @Nullable public String getServiceDescriptor();
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction<java.lang.Void> sendMessage(@NonNull android.hardware.contexthub.HubMessage);
  }
@@ -5318,7 +5318,7 @@ package android.hardware.contexthub {
  @FlaggedApi("android.chre.flags.offload_api") public interface IHubEndpointLifecycleCallback {
    method public void onSessionClosed(@NonNull android.hardware.contexthub.HubEndpointSession, int);
    method @NonNull public android.hardware.contexthub.HubEndpointSessionResult onSessionOpenRequest(@NonNull android.hardware.contexthub.HubEndpointInfo, @Nullable android.hardware.contexthub.HubServiceInfo);
    method @NonNull public android.hardware.contexthub.HubEndpointSessionResult onSessionOpenRequest(@NonNull android.hardware.contexthub.HubEndpointInfo, @Nullable String);
    method public void onSessionOpened(@NonNull android.hardware.contexthub.HubEndpointSession);
  }
@@ -6324,7 +6324,7 @@ package android.hardware.location {
    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int loadNanoApp(int, @NonNull android.hardware.location.NanoApp);
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction<java.lang.Void> loadNanoApp(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.NanoAppBinary);
    method @FlaggedApi("android.chre.flags.offload_api") @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public void openSession(@NonNull android.hardware.contexthub.HubEndpoint, @NonNull android.hardware.contexthub.HubEndpointInfo);
    method @FlaggedApi("android.chre.flags.offload_api") @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public void openSession(@NonNull android.hardware.contexthub.HubEndpoint, @NonNull android.hardware.contexthub.HubEndpointInfo, @NonNull android.hardware.contexthub.HubServiceInfo);
    method @FlaggedApi("android.chre.flags.offload_api") @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public void openSession(@NonNull android.hardware.contexthub.HubEndpoint, @NonNull android.hardware.contexthub.HubEndpointInfo, @NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction<java.util.List<android.hardware.location.NanoAppState>> queryNanoApps(@NonNull android.hardware.location.ContextHubInfo);
    method @Deprecated public int registerCallback(@NonNull android.hardware.location.ContextHubManager.Callback);
    method @Deprecated public int registerCallback(android.hardware.location.ContextHubManager.Callback, android.os.Handler);
+10 −11
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ public class HubEndpoint {
                public void onSessionOpenRequest(
                        int sessionId,
                        HubEndpointInfo initiator,
                        @Nullable HubServiceInfo serviceInfo)
                        @Nullable String serviceDescriptor)
                        throws RemoteException {
                    HubEndpointSession activeSession;
                    synchronized (mLock) {
@@ -128,16 +128,16 @@ public class HubEndpoint {
                                        processSessionOpenRequestResult(
                                                sessionId,
                                                initiator,
                                                serviceInfo,
                                                serviceDescriptor,
                                                mLifecycleCallback.onSessionOpenRequest(
                                                        initiator, serviceInfo)));
                                                        initiator, serviceDescriptor)));
                    }
                }

                private void processSessionOpenRequestResult(
                        int sessionId,
                        HubEndpointInfo initiator,
                        @Nullable HubServiceInfo serviceInfo,
                        @Nullable String serviceDescriptor,
                        HubEndpointSessionResult result) {
                    if (result == null) {
                        throw new IllegalArgumentException(
@@ -145,7 +145,7 @@ public class HubEndpoint {
                    }

                    if (result.isAccepted()) {
                        acceptSession(sessionId, initiator, serviceInfo);
                        acceptSession(sessionId, initiator, serviceDescriptor);
                    } else {
                        Log.i(
                                TAG,
@@ -162,7 +162,7 @@ public class HubEndpoint {
                private void acceptSession(
                        int sessionId,
                        HubEndpointInfo initiator,
                        @Nullable HubServiceInfo serviceInfo) {
                        @Nullable String serviceDescriptor) {
                    if (mServiceToken == null || mAssignedHubEndpointInfo == null) {
                        // No longer registered?
                        return;
@@ -187,7 +187,7 @@ public class HubEndpoint {
                                        HubEndpoint.this,
                                        mAssignedHubEndpointInfo,
                                        initiator,
                                        serviceInfo);
                                        serviceDescriptor);
                        try {
                            // oneway call to notify system service that the request is completed
                            mServiceToken.openSessionRequestComplete(sessionId);
@@ -334,7 +334,6 @@ public class HubEndpoint {
            @Nullable IHubEndpointMessageCallback endpointMessageCallback,
            @NonNull Executor messageCallbackExecutor) {
        mPendingHubEndpointInfo = pendingEndpointInfo;

        mLifecycleCallback = endpointLifecycleCallback;
        mLifecycleCallbackExecutor = lifecycleCallbackExecutor;
        mMessageCallback = endpointMessageCallback;
@@ -387,7 +386,7 @@ public class HubEndpoint {
    }

    /** @hide */
    public void openSession(HubEndpointInfo destinationInfo, @Nullable HubServiceInfo serviceInfo) {
    public void openSession(HubEndpointInfo destinationInfo, @Nullable String serviceDescriptor) {
        // TODO(b/378974199): Consider refactor these assertions
        if (mServiceToken == null || mAssignedHubEndpointInfo == null) {
            // No longer registered?
@@ -397,7 +396,7 @@ public class HubEndpoint {
        HubEndpointSession newSession;
        try {
            // Request system service to assign session id.
            int sessionId = mServiceToken.openSession(destinationInfo, serviceInfo);
            int sessionId = mServiceToken.openSession(destinationInfo, serviceDescriptor);

            // Save the newly created session
            synchronized (mLock) {
@@ -407,7 +406,7 @@ public class HubEndpoint {
                                HubEndpoint.this,
                                destinationInfo,
                                mAssignedHubEndpointInfo,
                                serviceInfo);
                                serviceDescriptor);
                mActiveSessions.put(sessionId, newSession);
            }
        } catch (RemoteException e) {
+7 −7
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ public class HubEndpointSession implements AutoCloseable {
    @NonNull private final HubEndpoint mHubEndpoint;
    @NonNull private final HubEndpointInfo mInitiator;
    @NonNull private final HubEndpointInfo mDestination;
    @Nullable private final HubServiceInfo mServiceInfo;
    @Nullable private final String mServiceDescriptor;

    private final AtomicBoolean mIsClosed = new AtomicBoolean(true);

@@ -54,12 +54,12 @@ public class HubEndpointSession implements AutoCloseable {
            @NonNull HubEndpoint hubEndpoint,
            @NonNull HubEndpointInfo destination,
            @NonNull HubEndpointInfo initiator,
            @Nullable HubServiceInfo serviceInfo) {
            @Nullable String serviceDescriptor) {
        mId = id;
        mHubEndpoint = hubEndpoint;
        mDestination = destination;
        mInitiator = initiator;
        mServiceInfo = serviceInfo;
        mServiceDescriptor = serviceDescriptor;
    }

    /**
@@ -131,8 +131,8 @@ public class HubEndpointSession implements AutoCloseable {
    }

    /**
     * Get the {@link HubServiceInfo} associated with this session. Null value indicates that there
     * is no service associated to this session.
     * Get the service descriptor associated with this session. Null value indicates that there is
     * no service associated to this session.
     *
     * <p>For hub initiated sessions, the object was previously used in as an argument for open
     * request in {@link IHubEndpointLifecycleCallback#onSessionOpenRequest}.
@@ -141,8 +141,8 @@ public class HubEndpointSession implements AutoCloseable {
     * android.hardware.location.ContextHubManager#openSession}
     */
    @Nullable
    public HubServiceInfo getServiceInfo() {
        return mServiceInfo;
    public String getServiceDescriptor() {
        return mServiceDescriptor;
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -34,11 +34,12 @@ interface IContextHubEndpoint {
     * Request system service to open a session with a specific destination.
     *
     * @param destination A valid HubEndpointInfo representing the destination.
     * @param serviceDescriptor An optional descriptor of the service to scope this session to.
     *
     * @throws IllegalArgumentException If the HubEndpointInfo is not valid.
     * @throws IllegalStateException If there are too many opened sessions.
     */
    int openSession(in HubEndpointInfo destination, in @nullable HubServiceInfo serviceInfo);
    int openSession(in HubEndpointInfo destination, in @nullable String serviceDescriptor);

    /**
     * Request system service to close a specific session
+2 −2
Original line number Diff line number Diff line
@@ -29,9 +29,9 @@ oneway interface IContextHubEndpointCallback {
     *
     * @param sessionId An integer identifying the session, assigned by the initiator
     * @param initiator HubEndpointInfo representing the requester
     * @param serviceInfo Nullable HubServiceInfo representing the service associated with this session
     * @param serviceDescriptor Nullable string representing the service associated with this session
     */
    void onSessionOpenRequest(int sessionId, in HubEndpointInfo initiator, in @nullable HubServiceInfo serviceInfo);
    void onSessionOpenRequest(int sessionId, in HubEndpointInfo initiator, in @nullable String serviceDescriptor);

    /**
     * Request from system service to close a specific session
Loading