Add a new API to unregister app context status event 76/125776/5
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 18 Apr 2017 23:47:18 +0000 (08:47 +0900)
committerHwanKyu Jhun <h.jhun@samsung.com>
Fri, 21 Apr 2017 00:32:18 +0000 (17:32 -0700)
Adds:
 - app_manager_unset_app_context_status_cb()

Requires:
 - https://review.tizen.org/gerrit/#/c/125775/

Change-Id: I5ed2330c2f2eb16c74da10ca8a7247f653ee0c9f
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
include/app_manager_extension.h
src/app_context.c
src/app_manager.c
src/app_manager_internal.h

index 98b8fc9..74a9c3e 100644 (file)
@@ -167,6 +167,19 @@ int app_manager_attach_window(const char *parent_app_id, const char *child_app_i
  */
 int app_manager_detach_window(const char *app_id);
 
+/*
+ * @brief Unregisters the callback function.
+ * @since_tizen 3.0
+ * @param[in]   callback        The registered callback function
+ * @param[in]  appid           The registered appid
+ * @return     @c 0 on success,
+ *             otherwise a negative error value
+ * @retval     #APP_MANAGER_ERROR_NONE                 Successful
+ * @retval     #APP_MANAGER_ERROR_INVALID_PARAMETER    Invalid parameter
+ * @see app_manager_app_context_status_cb()
+ */
+int app_manager_unset_app_context_status_cb(app_manager_app_context_status_cb callback, const char *appid);
+
 /**
  * @}
  */
index c312ced..6929337 100644 (file)
@@ -817,3 +817,21 @@ int app_context_get_app_context_by_pid(pid_t pid, app_context_h *app_context)
 
        return ret;
 }
+
+int app_context_unset_status_cb(app_manager_app_context_status_cb callback, const char *appid)
+{
+       struct status_listen_info *info;
+
+       if (callback == NULL || appid == NULL)
+               return APP_MANAGER_ERROR_INVALID_PARAMETER;
+
+       info = __find_status_listen_info(callback, appid);
+       if (info == NULL)
+               return APP_MANAGER_ERROR_INVALID_PARAMETER;
+
+       status_listen_list = g_list_remove(status_listen_list, info);
+       aul_ignore_app_status(info->handle);
+       __destroy_status_listen_info(info);
+
+       return APP_MANAGER_ERROR_NONE;
+}
index 335fe7e..85a3f1e 100644 (file)
@@ -618,3 +618,14 @@ API int app_manager_detach_window(const char *app_id)
 
        return APP_MANAGER_ERROR_NONE;
 }
+
+API int app_manager_unset_app_context_status_cb(app_manager_app_context_status_cb callback, const char *appid)
+{
+       int ret;
+
+       ret = app_context_unset_status_cb(callback, appid);
+       if (ret != APP_MANAGER_ERROR_NONE)
+               return app_manager_error(ret, __FUNCTION__, NULL);
+
+       return APP_MANAGER_ERROR_NONE;
+}
index dd76ef8..1394ad6 100644 (file)
@@ -76,4 +76,6 @@ int convert_status_type(int status_type);
 
 void remove_app_manager_event_info_list(app_manager_event_info *head);
 
+int app_context_unset_status_cb(app_manager_app_context_status_cb callback, const char *appid);
+
 #endif /* __TIZEN_APPFW_APP_MANAGER_INTERNAL_H */