* @{
*/
-
-/**
- * @internal
- * @brief Enumeration for Badge Action.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- */
-enum badge_action {
- BADGE_ACTION_CREATE = 0, /**< @internal Badge created */
- BADGE_ACTION_REMOVE, /**< @internal Badge removed */
- BADGE_ACTION_UPDATE, /**< @internal Badge updated */
- BADGE_ACTION_CHANGED_DISPLAY, /**< @internal The display option of the badge changed */
- BADGE_ACTION_SERVICE_READY, /**< @internal The badge service is ready */
-};
-
-
-/**
- * @internal
- * @brief Called to retrieve the badge existence.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @param[in] app_id The name of the application
- * @param[in] count The count of the badge
- * @param[in] data The user data passed from the foreach function
- * @pre badge_foreach_existed() will invoke this callback.
- * @see badge_foreach_existed()
- */
-typedef void (*badge_cb)(const char *app_id, unsigned int count, void *data);
-
-
-/**
- * @internal
- * @brief Called when the badge information is changed.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @param[in] action The type of the change
- * @param[in] app_id The name of the application
- * @param[in] count The count of the badge
- * @param[in] data The user data passed from the callback register function
- * @pre badge_register_changed_cb() will invoke this callback.
- * @see badge_unregister_changed_cb()
- */
-typedef void (*badge_change_cb)(unsigned int action, const char *app_id,
- unsigned int count, void *data);
-
/**
- * @internal
- * @brief Retrieves all existing badges.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @deprecated Deprecated since 2.4 Use badge_add instead.
+ * @brief Creates a badge for the application itself.
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
- * @param[in] callback The callback function
- * @param[in] data The user data to be passed to the callback function
+ * @details Creates new badge to display.
+ * @param[in] writable_app_id The id of application which is authorized to change the badge
* @return #BADGE_ERROR_NONE if success, other value if failure
* @retval BADGE_ERROR_NONE Success
* @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
* @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_FROM_DB Error form DB
- * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
- * @retval BADGE_ERROR_NOT_EXIST Not exist
+ * @retval BADGE_ERROR_IO_ERROR Error from I/O
+ * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready
* @see #badge_error_e
- * @see badge_get_count()
- * @see badge_is_existing()
- */
-int badge_foreach_existed(badge_cb callback, void *data);
+ * @par Sample code:
+ * @code
+#include <badge.h>
+...
+{
+ int err = BADGE_ERROR_NONE;
-/**
- * @internal
- * @brief Registers a callback function to receive badge change event.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @privlevel public
- * @privilege %http://tizen.org/privilege/notification
- * @param[in] callback The callback function
- * @param[in] data The user data to be passed to the callback function
- * @return #BADGE_ERROR_NONE if success, other value if failure
- * @retval BADGE_ERROR_NONE Success
- * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
- * @see #badge_error_e
- * @see badge_new()
- * @see badge_remove()
- * @see badge_set_count()
- */
-int badge_register_changed_cb(badge_change_cb callback, void *data);
+ err = badge_new(app_id);
+ if(err != BADGE_ERROR_NONE) {
+ return;
+ }
-/**
- * @internal
- * @brief Unregisters a callback function to receive badge change event.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @privlevel public
- * @privilege %http://tizen.org/privilege/notification
- * @param[in] callback The callback function
- * @return #BADGE_ERROR_NONE if success, other value if failure
- * @retval BADGE_ERROR_NONE Success
- * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_NOT_EXIST Not exist
- * @see #badge_error_e
- * @see badge_register_changed_cb()
+}
+ * @endcode
*/
-int badge_unregister_changed_cb(badge_change_cb callback);
+int badge_new(const char *writable_app_id);
-/**
- * @internal
- * @brief This function checks whether badge service is ready
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @privlevel public
- * @privilege %http://tizen.org/privilege/notification
- * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
- * @return 1 if badge service is ready, other value if badge service isn't ready
- * @exception BADGE_ERROR_NONE Success
- * @exception BADGE_ERROR_SERVICE_NOT_READY Service is not ready
- */
-int badge_is_service_ready(void);
-/**
- * @internal
- * @brief This function adds deferred task. the registered task will be executed when badge service become ready
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @privlevel public
- * @privilege %http://tizen.org/privilege/notification
- * @param[in] badge_add_deferred_task The callback function
- * @param[in] user_data The user data to be passed to the callback function
- * @return #BADGE_ERROR_NONE if success, other value if failure
- * @retval BADGE_ERROR_NONE Success
- * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
- * @see #badge_error_e
- * @see badge_is_service_ready()
- */
-int badge_add_deferred_task(
- void (*badge_add_deferred_task)(void *data), void *user_data);
/**
- * @internal
- * @brief This function removes deferred task.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @brief Creates a badge for the application specified by the badge_app_id.
+ * @remarks Creating and updating a badge of the other application is allowed only when both applications are signed with the same certificate.
+ * @since_tizen 2.4
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
- * @param[in] badge_add_deferred_task The callback function
- * @return #BADGE_ERROR_NONE if success, other value if failure
- * @retval BADGE_ERROR_NONE Success
- * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @see #badge_error_e
- * @see badge_is_service_ready()
- */
-int badge_del_deferred_task(
- void (*badge_add_deferred_task)(void *data));
-
-/**
- * @brief Creates a badge for the application itself.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
- * @privlevel public
- * @privilege %http://tizen.org/privilege/notification
- * @details Creates new badge to display.
- * @param[in] writable_app_id The id of application which is authorized to change the badge
- * @return #BADGE_ERROR_NONE if success, other value if failure
- * @retval BADGE_ERROR_NONE Success
- * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_IO_ERROR Error from I/O
- * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready
+ * @param[in] badge_app_id The id of the application for which the badge will be created. This parameter can be null when creating a badge for itself.
+ * @return #BADGE_ERROR_NONE If success, other value if failure
+ * @retval #BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval #BADGE_ERROR_IO_ERROR Error from I/O
+ * @retval #BADGE_ERROR_SERVICE_NOT_READY Service is not ready
+ * @retval #BADGE_ERROR_INVALID_PACKAGE The caller application is not signed with the certificate of the badge_app_id
* @see #badge_error_e
* @par Sample code:
* @code
{
int err = BADGE_ERROR_NONE;
- err = badge_new(app_id);
+ err = badge_add("org.tizen.email");
if(err != BADGE_ERROR_NONE) {
return;
}
-
}
* @endcode
*/
-int badge_new(const char *writable_app_id);
+int badge_add(const char *badge_app_id);
/**
* @brief Removes the badge for the designated application.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @param[in] app_id The name of the designated application
/**
* @brief Sets badge count for the designated application.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @param[in] app_id The name of the designated application
/**
* @brief Gets badge count for the designated application.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @param[in] app_id The name of the designated application
/**
* @brief Sets the display option for the designated application.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @param[in] app_id The name of the designated application
/**
* @brief Gets the display option for the designated application.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @param[in] app_id The name of the designated application
int badge_get_display(const char *app_id, unsigned int *is_display);
/**
- * @internal
- * @brief Tests if the badge for the designated application exists or not.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @brief Callback function for getting result of badge_foreach.
+ * @since_tizen 2.4
+ * @param[in] app_id The id of the application
+ * @param[in] count The count of the badge
+ * @param[in] user_data The user data passed from the badge_foreach function
+ * @return true to continue with the next iteration of the loop, false to break out of the loop
+ * @pre badge_foreach() will invoke this callback.
+ * @see badge_foreach()
+ */
+typedef bool (*badge_foreach_cb)(const char *app_id, unsigned int count, void *user_data);
+
+
+/**
+ * @brief Retrieves all existing badges.
+ * @since_tizen 2.4
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
- * @param[in] app_id The name of the designated application
- * @param[out] existing The bool value of badge existence status
+ * @param[in] callback The callback function
+ * @param[in] user_data The user data to be passed to the callback function
* @return #BADGE_ERROR_NONE if success, other value if failure
* @retval BADGE_ERROR_NONE Success
* @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
* @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
- * @retval BADGE_ERROR_FROM_DB Error from DB
+ * @retval BADGE_ERROR_FROM_DB Error form DB
+ * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
* @retval BADGE_ERROR_NOT_EXIST Not exist
- * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready
* @see #badge_error_e
- * @see badge_new()
- * @see badge_remove()
- * @par Sample code:
- * @code
-#include <badge.h>
-...
-{
- int err = BADGE_ERROR_NONE;
- bool exist;
-
- err = badge_is_existing(app_id, &exist);
- if(err != BADGE_ERROR_NONE) {
- return;
- }
+ * @see badge_foreach_cb()
+ */
+int badge_foreach(badge_foreach_cb callback, void *user_data);
-}
- * @endcode
+/**
+ * @brief Enumeration for Badge Action.
+ * @since_tizen 2.4
*/
-int badge_is_existing(const char *app_id, bool *existing);
+enum badge_action {
+ BADGE_ACTION_CREATE = 0, /**< Badge created */
+ BADGE_ACTION_REMOVE, /**< Badge removed */
+ BADGE_ACTION_UPDATE, /**< Badge updated */
+ BADGE_ACTION_CHANGED_DISPLAY, /**< The display option of the badge changed */
+ BADGE_ACTION_SERVICE_READY, /**< The badge service is ready */
+};
+/**
+ * @brief Called when the badge information is changed.
+ * @since_tizen 2.4
+ * @param[in] action The type of the change. Refer #badge_action
+ * @param[in] app_id The name of the application
+ * @param[in] count The count of the badge
+ * @param[in] user_data The user data passed from the callback register function
+ * @pre badge_register_changed_cb() will invoke this callback.
+ * @see badge_unregister_changed_cb()
+ */
+typedef void (*badge_change_cb)(unsigned int action, const char *app_id,
+ unsigned int count, void *user_data);
+/**
+ * @brief Registers a callback function to receive badge change event.
+ * @since_tizen 2.4
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] callback The callback function
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
+ * @see #badge_error_e
+ * @see badge_new()
+ * @see badge_remove()
+ * @see badge_set_count()
+ */
+int badge_register_changed_cb(badge_change_cb callback, void *user_data);
+/**
+ * @brief Unregisters a callback function to receive badge change event.
+ * @since_tizen 2.4
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] callback The callback function
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval BADGE_ERROR_NOT_EXIST Not exist
+ * @see #badge_error_e
+ * @see badge_register_changed_cb()
+ */
+int badge_unregister_changed_cb(badge_change_cb callback);
/**
* @}
#define EXPORT_API __attribute__ ((visibility("default")))
#endif
+#ifndef DEPRECATED
+#define DEPRECATED __attribute__((deprecated))
+#endif
+
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct _badge_h badge_h;
+
+/**
+ * @internal
+ * @brief This function checks whether badge service is ready
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
+ * @return 1 if badge service is ready, other value if badge service isn't ready
+ * @exception BADGE_ERROR_NONE Success
+ * @exception BADGE_ERROR_SERVICE_NOT_READY Service is not ready
+ */
+int badge_is_service_ready(void);
+
+/**
+ * @internal
+ * @brief This function adds deferred task. the registered task will be executed when badge service become ready
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] badge_add_deferred_task The callback function
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
+ * @see #badge_error_e
+ * @see badge_is_service_ready()
+ */
+int badge_add_deferred_task(
+ void (*badge_add_deferred_task)(void *data), void *user_data);
+
+/**
+ * @internal
+ * @brief This function removes deferred task.
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] badge_add_deferred_task The callback function
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @see #badge_error_e
+ * @see badge_is_service_ready()
+ */
+int badge_del_deferred_task(
+ void (*badge_add_deferred_task)(void *data));
+
+/**
+ * @internal
+ * @brief Tests if the badge for the designated application exists or not.
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] app_id The name of the designated application
+ * @param[out] existing The bool value of badge existence status
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval BADGE_ERROR_FROM_DB Error from DB
+ * @retval BADGE_ERROR_NOT_EXIST Not exist
+ * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready
+ * @see #badge_error_e
+ * @see badge_new()
+ * @see badge_remove()
+ * @par Sample code:
+ * @code
+#include <badge.h>
+...
+{
+ int err = BADGE_ERROR_NONE;
+ bool exist;
+
+ err = badge_is_existing(app_id, &exist);
+ if(err != BADGE_ERROR_NONE) {
+ return;
+ }
+
+}
+ * @endcode
+ */
+int badge_is_existing(const char *app_id, bool *existing);
+
char *_badge_get_pkgname_by_pid(void);
int _badge_is_existing(const char *pkgname, bool *existing);
-int _badge_foreach_existed(badge_cb callback, void *data);
+int _badge_foreach_existed(badge_foreach_cb callback, void *data);
int _badge_insert(badge_h *badge);
/**
* @internal
* @brief Creates a badge for the designated package.
- * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
+ * @since_tizen 2.3
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
* @details Creates new badge to display.
*/
int badge_setting_property_get(const char *pkgname, const char *property, char **value);
+/**
+ * @internal
+ * @brief Called to retrieve the badge existence.
+ * @since_tizen 2.4
+ * @param[in] app_id The name of the application
+ * @param[in] count The count of the badge
+ * @param[in] user_data The user data passed from the foreach function
+ * @pre badge_foreach_existed() will invoke this callback.
+ * @see badge_foreach_existed()
+ */
+typedef void (*badge_cb)(const char *app_id, unsigned int count, void *user_data) DEPRECATED;
+
+
+/**
+ * @internal
+ * @brief Retrieves all existing badges.
+ * @since_tizen 2.4
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/notification
+ * @param[in] callback The callback function
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return #BADGE_ERROR_NONE if success, other value if failure
+ * @retval BADGE_ERROR_NONE Success
+ * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method
+ * @retval BADGE_ERROR_FROM_DB Error form DB
+ * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval BADGE_ERROR_NOT_EXIST Not exist
+ * @see #badge_error_e
+ * @see badge_get_count()
+ * @see badge_is_existing()
+ */
+int badge_foreach_existed(badge_cb callback, void *user_data) DEPRECATED;
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
#include <stdlib.h>
#include <stdarg.h>
+#include <package_manager.h>
#include "badge.h"
#include "badge_log.h"
}
EXPORT_API
+int badge_add(const char *badge_app_id)
+{
+ char *caller = NULL;
+ int err = BADGE_ERROR_NONE;
+
+ caller = _badge_get_pkgname_by_pid();
+ if (!caller) {
+ ERR("fail to get caller pkgname");
+ return BADGE_ERROR_PERMISSION_DENIED;
+ }
+
+ if (badge_app_id == NULL) {
+ badge_app_id = caller;
+ }
+ else {
+ int pkgmgr_ret = PACKAGE_MANAGER_ERROR_NONE;
+ package_manager_compare_result_type_e compare_result = PACKAGE_MANAGER_COMPARE_MISMATCH;
+
+ pkgmgr_ret = package_manager_compare_app_cert_info(badge_app_id, caller, &compare_result);
+
+ if (pkgmgr_ret != PACKAGE_MANAGER_ERROR_NONE || compare_result != PACKAGE_MANAGER_COMPARE_MATCH) {
+ err = BADGE_ERROR_INVALID_PACKAGE;
+ goto out;
+ }
+ }
+
+ err = badge_ipc_request_insert(badge_app_id, caller, caller);
+
+out:
+ if (caller)
+ free(caller);
+ return err;
+}
+
+EXPORT_API
int badge_remove(const char *app_id)
{
char *caller = NULL;
int result = BADGE_ERROR_NONE;
+ bool existing = false;
if (app_id == NULL) {
return BADGE_ERROR_INVALID_PARAMETER;
}
+ result = _badge_is_existing(app_id, &existing);
+
+ if (result != BADGE_ERROR_NONE) {
+ ERR("_badge_is_existing failed [%x]", result);
+ goto out;
+ }
+
+ if (existing == false) {
+ ERR("app_id is not exist [%s]", app_id);
+ result = BADGE_ERROR_NOT_EXIST;
+ goto out;
+ }
+
caller = _badge_get_pkgname_by_pid();
if (!caller) {
ERR("fail to get caller pkgname");
- return BADGE_ERROR_PERMISSION_DENIED;
+ result = BADGE_ERROR_PERMISSION_DENIED;
+ goto out;
}
result = badge_ipc_request_delete(app_id, caller);
- free(caller);
+out :
+ if (caller)
+ free(caller);
return result;
}
EXPORT_API
int badge_foreach_existed(badge_cb callback, void *data)
{
- return _badge_foreach_existed(callback, data);
+ return _badge_foreach_existed((badge_foreach_cb)callback, data);
+}
+
+EXPORT_API
+int badge_foreach(badge_foreach_cb callback, void *user_data)
+{
+ return _badge_foreach_existed(callback, user_data);
}
EXPORT_API
{
char *caller = NULL;
int result = BADGE_ERROR_NONE;
+ bool existing = false;
if (app_id == NULL) {
return BADGE_ERROR_INVALID_PARAMETER;
}
+ result = _badge_is_existing(app_id, &existing);
+
+ if (result != BADGE_ERROR_NONE) {
+ ERR("_badge_is_existing failed [%x]", result);
+ goto out;
+ }
+
+ if (existing == false) {
+ ERR("app_id is not exist [%s]", app_id);
+ result = BADGE_ERROR_NOT_EXIST;
+ goto out;
+ }
+
caller = _badge_get_pkgname_by_pid();
if (!caller) {
ERR("fail to get caller pkgname");
- return BADGE_ERROR_PERMISSION_DENIED;
+ result = BADGE_ERROR_PERMISSION_DENIED;
+ goto out;
}
result = badge_ipc_request_set_count(app_id, caller, count);
-
- free(caller);
+out:
+ if (caller)
+ free(caller);
return result;
}
{
char *caller = NULL;
int result = BADGE_ERROR_NONE;
+ bool existing = false;
if (app_id == NULL) {
return BADGE_ERROR_INVALID_PARAMETER;
}
+ result = _badge_is_existing(app_id, &existing);
+
+ if (result != BADGE_ERROR_NONE) {
+ ERR("_badge_is_existing failed [%x]", result);
+ goto out;
+ }
+
+ if (existing == false) {
+ ERR("app_id is not exist [%s]", app_id);
+ result = BADGE_ERROR_NOT_EXIST;
+ goto out;
+ }
+
caller = _badge_get_pkgname_by_pid();
if (!caller) {
ERR("fail to get caller pkgname");
- return BADGE_ERROR_PERMISSION_DENIED;
+ result = BADGE_ERROR_PERMISSION_DENIED;
+ goto out;
}
result = badge_ipc_request_set_display(app_id, caller, is_display);
- free(caller);
+out :
+ if (caller)
+ free(caller);
return result;
}