Add a new API to unregister app context status event 93/126593/1 accepted/tizen/3.0/common/20170508.153026 accepted/tizen/3.0/ivi/20170508.050442 accepted/tizen/3.0/mobile/20170508.050353 accepted/tizen/3.0/tv/20170508.050414 accepted/tizen/3.0/wearable/20170508.050432 submit/tizen_3.0-common/20170508.080135 submit/tizen_3.0-common/20170508.081301 submit/tizen_3.0-common/20170508.091535 submit/tizen_3.0/20170426.044950 submit/tizen_3.0_common/20170508.091735
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 18 Apr 2017 23:47:18 +0000 (08:47 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Mon, 24 Apr 2017 08:18:02 +0000 (17:18 +0900)
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 98b8fc91066a82b3ce172424bb21b463f639c374..74a9c3e48817fd85fef38c20ee5366606f798712 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 c312ced9b5fcb8a620170859c642849f7b4a8254..6929337281c3b78938aadc5720fcea18903188b2 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 b26239cb9aec7dfd07635fff668dba84450c91f9..3f6aeb71506354beae416b4afc8b1f538ce27b11 100644 (file)
@@ -619,3 +619,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 3aae00ea6ddb2ed786823477b4c4ded87e17ff31..f9620df9dbdeeafda35a0812e2f01805e2228b9c 100644 (file)
@@ -72,5 +72,7 @@ int app_context_get_app_context_by_pid(pid_t pid, app_context_h *app_context);
 }
 #endif
 
+int app_context_unset_status_cb(app_manager_app_context_status_cb callback, const char *appid);
+
 #endif /* __TIZEN_APPFW_APP_MANAGER_INTERNAL_H */