diff options
| author | 2017-12-18 21:45:50 +0000 | |
|---|---|---|
| committer | 2017-12-18 21:45:50 +0000 | |
| commit | 71d0c491cd547ac8450fba5a91bc1ecdc493648d (patch) | |
| tree | 6ee1f0c68cbf9ee7671a870264f160bdea7e348f | |
| parent | c5f607cee93ebf0ba072f80fc0e9c4cfa14ec318 (diff) | |
| parent | 02ff50b0fa5d8d5a48900eb253a55eb264cb16fb (diff) | |
Merge "Implements onNanoAppAborted callback"
3 files changed, 35 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/location/ContextHubClientBroker.java b/services/core/java/com/android/server/location/ContextHubClientBroker.java index 41d9feb97c4e..9640e042fe6a 100644 --- a/services/core/java/com/android/server/location/ContextHubClientBroker.java +++ b/services/core/java/com/android/server/location/ContextHubClientBroker.java @@ -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. */ @@ -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. */ @@ -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() { 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); + } + } + } } diff --git a/services/core/java/com/android/server/location/ContextHubClientManager.java b/services/core/java/com/android/server/location/ContextHubClientManager.java index d58a7460b23f..60b5b1f06c42 100644 --- a/services/core/java/com/android/server/location/ContextHubClientManager.java +++ b/services/core/java/com/android/server/location/ContextHubClientManager.java @@ -149,35 +149,38 @@ 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) { 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) { 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) { 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 * manager. * diff --git a/services/core/java/com/android/server/location/ContextHubService.java b/services/core/java/com/android/server/location/ContextHubService.java index b5fc9d01294b..7f88663d4e3b 100644 --- a/services/core/java/com/android/server/location/ContextHubService.java +++ b/services/core/java/com/android/server/location/ContextHubService.java @@ -573,7 +573,7 @@ public class ContextHubService extends IContextHubService.Stub { * @param abortCode the nanoapp-specific abort code */ private void handleAppAbortCallback(int contextHubId, long nanoAppId, int abortCode) { - // TODO(b/31049861): Implement this + mClientManager.onNanoAppAborted(contextHubId, nanoAppId, abortCode); } /** |