* @since_tizen 5.5
* @privlevel public
* @privilege %http://tizen.org/privilege/notification
- * @param[in] viewer Combination value of display list
+ * @param[in] display_applist Combination value of display list
* @return #NOTIFICATION_ERROR_NONE on success, other value on failure
* @retval #NOTIFICATION_ERROR_NONE Success
* @retval #NOTIFICATION_ERROR_INVALID_PARAMETER Invalid input value
* @retval #NOTIFICATION_ERROR_SERVICE_NOT_READY No response from notification service
* @par Sample code:
* @code
-#include <notification.h>
+#include <notification_internal.h>
...
{
- noti_err = notification_delete_all_by_viewer(NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY);
+ noti_err = notification_delete_by_display_applist(NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY);
if (noti_err != NOTIFICATION_ERROR_NONE) {
return;
}
}
* @endcode
*/
-int notification_delete_all_by_viewer(int viewer);
-int notification_delete_all_by_viewer_for_uid(int viewer, uid_t uid);
+int notification_delete_by_display_applist(int display_applist);
+int notification_delete_by_display_applist_for_uid(int display_applist, uid_t uid);
/**
* @}
int notification_ipc_request_refresh(uid_t uid);
int notification_ipc_request_delete_multiple(notification_type_e type,
char *app_id, uid_t uid);
-int notification_ipc_request_delete_multiple_by_viewer(int viewer, uid_t uid);
+int notification_ipc_request_delete_by_display_applist(int display_applist, uid_t uid);
int notification_ipc_request_delete_single(notification_type_e type,
char *app_id, int priv_id, uid_t uid);
int notification_ipc_update_setting(notification_setting_h setting, uid_t uid);
#define TAG_TYPE_INVALID -1
#define TAG_TYPE_TIME 1
+struct _notification_deleted_list_info {
+ int priv_id;
+ char *app_id;
+};
+
+typedef struct _notification_deleted_list_info notification_deleted_list_info_s;
+
int notification_noti_set_tag(const char *tag, char *value, char *buf, int buf_len);
char *notification_noti_strip_tag(const char *tagged_str);
int notification_noti_delete_by_priv_id_get_changes(const char *app_id, int priv_id,
int *num_changes, uid_t uid);
-int notification_noti_delete_all_by_viewer(int viewer, int *deleted_num,
- GList **deleted_list, uid_t uid);
+int notification_noti_delete_by_display_applist(int display_applist,
+ int *deleted_num, GList **deleted_list, uid_t uid);
int notification_noti_get_count(notification_type_e type,
const char *app_id,
}
-int notification_delete_all_by_viewer_for_uid(int viewer, uid_t uid)
+int notification_delete_by_display_applist_for_uid(int display_applist, uid_t uid)
{
- int ret;
-
- if (viewer < NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY)
+ if (display_applist < NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY)
return NOTIFICATION_ERROR_INVALID_PARAMETER;
- ret = notification_ipc_request_delete_multiple_by_viewer(viewer, uid);
-
- return ret;
+ return notification_ipc_request_delete_by_display_applist(display_applist, uid);
}
-EXPORT_API int notification_delete_all_by_viewer(int viewer)
+EXPORT_API int notification_delete_by_display_applist(int display_applist)
{
- return notification_delete_all_by_viewer_for_uid(viewer, getuid());
+ return notification_delete_by_display_applist_for_uid(display_applist, getuid());
}
-
}
/* LCOV_EXCL_STOP */
-static void _delete_multiple_by_viewer_notify(GVariant *parameters)
+static void _delete_by_display_applist_notify(GVariant *parameters)
{
int *buf;
int idx = 0;
ERR("Invalid number to delete");
return;
}
+
DBG("Deleted count[%d]", num);
buf = (int *)malloc(sizeof(int) * num);
_delete_single_notify(parameters);
else if (g_strcmp0(signal_name, "delete_multiple_notify") == 0)
_delete_multiple_notify(parameters);
- else if (g_strcmp0(signal_name, "delete_multiple_by_viewer_notify") == 0)
- _delete_multiple_by_viewer_notify(parameters);
else if (g_strcmp0(signal_name, "refresh_noti_notify") == 0)
_refresh_noti_notify(parameters);
else if (g_strcmp0(signal_name, "change_dnd_notify") == 0)
_change_dnd_notify(parameters);
+ else if (g_strcmp0(signal_name, "delete_by_display_applist_notify") == 0)
+ _delete_by_display_applist_notify(parameters);
}
/* LCOV_EXCL_STOP */
return result;
}
-int notification_ipc_request_delete_multiple_by_viewer(int viewer, uid_t uid)
+int notification_ipc_request_delete_by_display_applist(int display_applist, uid_t uid)
{
int result;
int num_deleted;
return result;
}
- body = g_variant_new("(ii)", viewer, uid);
+ body = g_variant_new("(ii)", display_applist, uid);
- result = _send_sync_noti(body, &reply, "del_noti_multiple_by_viewer");
+ result = _send_sync_noti(body, &reply, "del_noti_by_display_applist");
if (result == NOTIFICATION_ERROR_NONE) {
reply_body = g_dbus_message_get_body(reply);
g_variant_get(reply_body, "(i)", &num_deleted);
return ret;
}
-EXPORT_API int notification_noti_delete_all_by_viewer(int viewer,
+EXPORT_API int notification_noti_delete_by_display_applist(int display_applist,
int *deleted_num, GList **deleted_list, uid_t uid)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
+ notification_deleted_list_info_s *info = NULL;
char *query = NULL;
int cnt = 0;
int priv_id;
int ret;
+ if (display_applist < NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY)
+ return NOTIFICATION_ERROR_INVALID_PARAMETER;
+
db = notification_db_open();
if (!db)
return get_last_result();
if (deleted_num != NULL)
*deleted_num = 0;
- query = sqlite3_mprintf("SELECT priv_id FROM noti_list "
+ query = sqlite3_mprintf("SELECT priv_id, caller_app_id FROM noti_list "
"WHERE (display_applist & %d) = %d "
- "AND uid = %d", viewer, viewer, uid);
+ "AND uid = %d", display_applist, display_applist, uid);
if (query == NULL) {
/* LCOV_EXCL_START */
ret = NOTIFICATION_ERROR_OUT_OF_MEMORY;
while (sqlite3_step(stmt) == SQLITE_ROW) {
priv_id = sqlite3_column_int(stmt, 0);
+ if (deleted_list != NULL) {
+ info = (notification_deleted_list_info_s *)calloc(1,
+ sizeof(notification_deleted_list_info_s));
+ if (info == NULL) {
+ /* LCOV_EXCL_START */
+ ERR("Failed to alloc memory");
+ ret = NOTIFICATION_ERROR_OUT_OF_MEMORY;
+ goto err;
+ /* LCOV_EXCL_STOP */
+ }
+
+ info->priv_id = priv_id;
+ info->app_id = notification_db_column_text(stmt, 1);
+
+ *deleted_list = g_list_append(*deleted_list, info);
+ }
+
+ if (query) {
+ sqlite3_free(query);
+ query = NULL;
+ }
+
query = sqlite3_mprintf("DELETE FROM noti_list "
"WHERE priv_id = %d", priv_id);
goto err;
}
- if (deleted_list != NULL) {
- *deleted_list = g_list_append(*deleted_list,
- GINT_TO_POINTER(priv_id));
- }
-
cnt++;
}