Change signal name and handler 34/197234/5
authormk5004.lee <mk5004.lee@samsung.com>
Thu, 10 Jan 2019 08:59:13 +0000 (17:59 +0900)
committermk5004.lee <mk5004.lee@samsung.com>
Fri, 11 Jan 2019 02:22:03 +0000 (11:22 +0900)
- del_noti_multiple_by_viewer -> del_noti_by_display_applist

Change-Id: I3f7348aca486f4d815afda6da1acd51ddb11f056
Signed-off-by: mk5004.lee <mk5004.lee@samsung.com>
include/notification_service.h
src/notification_service.c

index 8060814..f837d79 100755 (executable)
@@ -26,7 +26,7 @@ int notification_update_noti(GVariant *parameters, GVariant **reply_body,
 int notification_refresh_noti(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_del_noti_single(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_del_noti_multiple(GVariant *parameters, GVariant **reply_body, uid_t uid);
-int notification_del_noti_multiple_by_viewer(GVariant *parameters, GVariant **reply_body, uid_t uid);
+int notification_del_noti_by_display_applist(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_set_noti_property(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_get_noti_property(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_get_noti_count(GVariant *parameters, GVariant **reply_body, uid_t uid);
index eccbe51..b7bfc3f 100755 (executable)
@@ -195,8 +195,8 @@ static void _noti_dbus_method_call_handler(GDBusConnection *conn,
                ret = notification_check_event_receiver(parameters, &reply_body);
        } else if (g_strcmp0(method_name, "reset_event_handler") == 0) {
                ret = notification_reset_event_receiver(parameters, &reply_body, sender);
-       } else if (g_strcmp0(method_name, "del_noti_multiple_by_viewer") == 0) {
-               ret = notification_del_noti_multiple_by_viewer(parameters, &reply_body, uid);
+       } else if (g_strcmp0(method_name, "del_noti_by_display_applist") == 0) {
+               ret = notification_del_noti_by_display_applist(parameters, &reply_body, uid);
        }
 
        if (ret == NOTIFICATION_ERROR_NONE) {
@@ -397,8 +397,8 @@ int notification_register_dbus_interface(void)
                        "          <arg type='i' name='priv_id' direction='in'/>"
                        "        </method>"
 
-                       "        <method name='del_noti_multiple_by_viewer'>"
-                       "          <arg type='i' name='viewer' direction='in'/>"
+                       "        <method name='del_noti_by_display_applist'>"
+                       "          <arg type='i' name='display_applist' direction='in'/>"
                        "          <arg type='i' name='uid' direction='in'/>"
                        "          <arg type='i' name='priv_id' direction='out'/>"
                        "        </method>"
@@ -1548,61 +1548,84 @@ int notification_del_noti_multiple(GVariant *parameters, GVariant **reply_body,
        return ret;
 }
 
-int notification_del_noti_multiple_by_viewer(GVariant *parameters,
+static void __free_deleted_list_info(gpointer data)
+{
+       notification_deleted_list_info_s *info =
+                               (notification_deleted_list_info_s *)data;
+
+       if (info == NULL)
+               return;
+
+       if (info->app_id)
+               free(info->app_id);
+
+       free(info);
+}
+
+int notification_del_noti_by_display_applist(GVariant *parameters,
                        GVariant **reply_body, uid_t uid)
 {
        int ret;
-       int viewer;
+       int display_applist = 0;
        int deleted_num;
        GList *deleted_list = NULL;
        GList *iter_list = NULL;
        GVariant *deleted_noti_list;
        GVariantBuilder *builder;
        uid_t param_uid;
+       notification_deleted_list_info_s *info = NULL;
 
-       g_variant_get(parameters, "(ii)", &viewer, &param_uid);
+       g_variant_get(parameters, "(ii)", &display_applist, &param_uid);
 
        ret = _validate_and_set_param_uid_with_uid(uid, &param_uid);
        if (ret != NOTIFICATION_ERROR_NONE)
                return ret;
 
-       ret = notification_noti_delete_all_by_viewer(viewer, &deleted_num,
-                               &deleted_list, param_uid);
+       ret = notification_noti_delete_by_display_applist(display_applist,
+                               &deleted_num, &deleted_list, param_uid);
        if (ret != NOTIFICATION_ERROR_NONE) {
                ERR("Failed to delete notifications [%d]", ret);
                if (deleted_list != NULL)
-                       free(deleted_list);
+                       g_list_free_full(deleted_list, __free_deleted_list_info);
                return ret;
        }
 
        if (deleted_num > 0) {
                builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
 
-               iter_list = deleted_list;
+               iter_list = g_list_first(deleted_list);
                while(iter_list) {
-                       g_variant_builder_add(builder, "(i)",
-                                       GPOINTER_TO_INT(iter_list->data));
+                       info = iter_list->data;
+                       g_variant_builder_add(builder, "(i)", info->priv_id);
+                       notification_remove_private_sharing(info->app_id, info->priv_id, param_uid);
+                       __delete_sender_info(info->priv_id);
                        iter_list = g_list_next(iter_list);
                }
-
-               if (iter_list)
-                       g_list_free(iter_list);
-
-               if (deleted_list)
-                       g_list_free(deleted_list);
+               g_list_free_full(deleted_list, __free_deleted_list_info);
 
                deleted_noti_list = g_variant_new("(a(i)ii)", builder,
                                                deleted_num, param_uid);
                g_variant_builder_unref(builder);
 
                ret = send_notify(deleted_noti_list,
-                       "delete_multiple_by_viewer_notify", &_monitoring_hash,
+                       "delete_by_display_applist_notify", &_monitoring_hash,
                        PROVIDER_NOTI_INTERFACE_NAME, param_uid);
                g_variant_unref(deleted_noti_list);
                if (ret != NOTIFICATION_ERROR_NONE) {
                        ERR("Failed to send notify [%d]", ret);
                        return ret;
                }
+
+               if (default_viewer != NULL) {
+                       ret = notification_launch_default_viewer(default_viewer,
+                               NOTIFICATION_PRIV_ID_NONE,
+                               NOTIFICATION_OP_DELETE_ALL,
+                               param_uid);
+                       if (ret != NOTIFICATION_ERROR_NONE) {
+                               ERR("Failed to launch default viewer [%d]", ret);
+                               ret = NOTIFICATION_ERROR_NONE;
+                       }
+               }
        }
 
        *reply_body = g_variant_new("(i)", deleted_num);