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

Commit 02ff50b0 authored by Arthur Ishiguro's avatar Arthur Ishiguro
Browse files

Implements onNanoAppAborted callback

Bug: 67734082
Bug: 31049861
Test: Fake a handleAppAbort callback at the HAL implementation for
walleye, run a test app that registers a client callback, and verify
client receives the onNanoAppAborted callback.
Change-Id: Ic1ab3a1ef0f903a9aad04f732dac1a04f3fc5169
parent b5c1fe39
Loading
Loading
Loading
Loading
+20 −3
Original line number Original line Diff line number Diff line
@@ -179,7 +179,7 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
    }
    }


    /**
    /**
     * Handles a nanoapp load event.
     * Notifies the client of a nanoapp load event if the connection is open.
     *
     *
     * @param nanoAppId the ID of the nanoapp that was loaded.
     * @param nanoAppId the ID of the nanoapp that was loaded.
     */
     */
@@ -195,7 +195,7 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
    }
    }


    /**
    /**
     * Handles a nanoapp unload event.
     * Notifies the client of a nanoapp unload event if the connection is open.
     *
     *
     * @param nanoAppId the ID of the nanoapp that was unloaded.
     * @param nanoAppId the ID of the nanoapp that was unloaded.
     */
     */
@@ -211,7 +211,7 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
    }
    }


    /**
    /**
     * Handles a hub reset for this client.
     * Notifies the client of a hub reset event if the connection is open.
     */
     */
    /* package */ void onHubReset() {
    /* package */ void onHubReset() {
        if (mConnectionOpen.get()) {
        if (mConnectionOpen.get()) {
@@ -223,4 +223,21 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
            }
            }
        }
        }
    }
    }

    /**
     * Notifies the client of a nanoapp abort event if the connection is open.
     *
     * @param nanoAppId the ID of the nanoapp that aborted
     * @param abortCode the nanoapp specific abort code
     */
    /* package */ void onNanoAppAborted(long nanoAppId, int abortCode) {
        if (mConnectionOpen.get()) {
            try {
                mCallbackInterface.onNanoAppAborted(nanoAppId, abortCode);
            } catch (RemoteException e) {
                Log.e(TAG, "RemoteException while calling onNanoAppAborted on client"
                        + " (host endpoint ID = " + mHostEndPointId + ")", e);
            }
        }
    }
}
}
+14 −11
Original line number Original line Diff line number Diff line
@@ -149,34 +149,37 @@ import java.util.function.Consumer;
    }
    }


    /**
    /**
     * Handles a nanoapp load event.
     * @param contextHubId the ID of the hub where the nanoapp was loaded
     *
     * @param nanoAppId    the ID of the nanoapp that was loaded
     * @param contextHubId the ID of the hub where the nanoapp was loaded.
     * @param nanoAppId    the ID of the nanoapp that was loaded.
     */
     */
    /* package */ void onNanoAppLoaded(int contextHubId, long nanoAppId) {
    /* package */ void onNanoAppLoaded(int contextHubId, long nanoAppId) {
        forEachClientOfHub(contextHubId, client -> client.onNanoAppLoaded(nanoAppId));
        forEachClientOfHub(contextHubId, client -> client.onNanoAppLoaded(nanoAppId));
    }
    }


    /**
    /**
     * Handles a nanoapp unload event.
     * @param contextHubId the ID of the hub where the nanoapp was unloaded
     *
     * @param nanoAppId    the ID of the nanoapp that was unloaded
     * @param contextHubId the ID of the hub where the nanoapp was unloaded.
     * @param nanoAppId    the ID of the nanoapp that was unloaded.
     */
     */
    /* package */ void onNanoAppUnloaded(int contextHubId, long nanoAppId) {
    /* package */ void onNanoAppUnloaded(int contextHubId, long nanoAppId) {
        forEachClientOfHub(contextHubId, client -> client.onNanoAppUnloaded(nanoAppId));
        forEachClientOfHub(contextHubId, client -> client.onNanoAppUnloaded(nanoAppId));
    }
    }


    /**
    /**
     * Handles a hub reset.
     * @param contextHubId the ID of the hub that has reset
     *
     * @param contextHubId the ID of the hub that has reset.
     */
     */
    /* package */ void onHubReset(int contextHubId) {
    /* package */ void onHubReset(int contextHubId) {
        forEachClientOfHub(contextHubId, client -> client.onHubReset());
        forEachClientOfHub(contextHubId, client -> client.onHubReset());
    }
    }


    /**
     * @param contextHubId the ID of the hub that contained the nanoapp that aborted
     * @param nanoAppId the ID of the nanoapp that aborted
     * @param abortCode the nanoapp specific abort code
     */
    /* package */ void onNanoAppAborted(int contextHubId, long nanoAppId, int abortCode) {
        forEachClientOfHub(contextHubId, client -> client.onNanoAppAborted(nanoAppId, abortCode));
    }

    /**
    /**
     * Creates a new ContextHubClientBroker object for a client and registers it with the client
     * Creates a new ContextHubClientBroker object for a client and registers it with the client
     * manager.
     * manager.
+1 −1
Original line number Original line Diff line number Diff line
@@ -583,7 +583,7 @@ public class ContextHubService extends IContextHubService.Stub {
     * @param abortCode    the nanoapp-specific abort code
     * @param abortCode    the nanoapp-specific abort code
     */
     */
    private void handleAppAbortCallback(int contextHubId, long nanoAppId, int abortCode) {
    private void handleAppAbortCallback(int contextHubId, long nanoAppId, int abortCode) {
        // TODO(b/31049861): Implement this
        mClientManager.onNanoAppAborted(contextHubId, nanoAppId, abortCode);
    }
    }


    /**
    /**