OSDN Git Service

android/health: Perform clean up on app unregister call
authorRavi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
Mon, 16 Jun 2014 15:01:36 +0000 (18:01 +0300)
committerSzymon Janc <szymon.janc@gmail.com>
Mon, 16 Jun 2014 16:35:57 +0000 (18:35 +0200)
android/health.c

index 55fef48..e75f726 100644 (file)
@@ -267,10 +267,21 @@ fail:
 
 static void bt_health_unregister_app(const void *buf, uint16_t len)
 {
-       DBG("Not implemented");
+       const struct hal_cmd_health_unreg_app *cmd = buf;
+       struct health_app *app;
+
+       DBG("");
+
+       app = queue_remove_if(apps, app_by_app_id, INT_TO_PTR(cmd->app_id));
+       if (!app) {
+               ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_HEALTH,
+                               HAL_OP_HEALTH_UNREG_APP, HAL_STATUS_INVALID);
+               return;
+       }
 
-       ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_HEALTH, HAL_OP_HEALTH_UNREG_APP,
-                                                       HAL_STATUS_UNSUPPORTED);
+       free_health_app(app);
+       ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_HEALTH,
+                               HAL_OP_HEALTH_UNREG_APP, HAL_STATUS_SUCCESS);
 }
 
 static void bt_health_connect_channel(const void *buf, uint16_t len)