Add logic to get the numbers of all notification 85/163585/5
authorSeungha Son <seungha.son@samsung.com>
Tue, 12 Dec 2017 07:03:42 +0000 (16:03 +0900)
committerSeungha Son <seungha.son@samsung.com>
Thu, 14 Dec 2017 11:01:37 +0000 (20:01 +0900)
related patch
 -notification : https://review.tizen.org/gerrit/#/c/163584/
 -tizenfx : https://review.tizen.org/gerrit/#/c/163969/

Signed-off-by: Seungha Son <seungha.son@samsung.com>
Change-Id: I9454a850c757daf73fa9302b07392f46a0fcb085

include/notification_service.h
src/notification_service.c

index 4519141..5f16cc2 100755 (executable)
@@ -27,6 +27,7 @@ int notification_del_noti_multiple(GVariant *parameters, GVariant **reply_body,
 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);
+int notification_get_noti_all_count(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_update_noti_setting(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_update_noti_sys_setting(GVariant *parameters, GVariant **reply_body, uid_t uid);
 int notification_load_noti_by_tag(GVariant *parameters, GVariant **reply_body, uid_t uid);
index fedb44d..3fb9d0c 100755 (executable)
@@ -133,6 +133,8 @@ static void _noti_dbus_method_call_handler(GDBusConnection *conn,
                ret = notification_del_noti_multiple(parameters, &reply_body, uid);
        } else if (g_strcmp0(method_name, "get_noti_count") == 0) {
                ret = notification_get_noti_count(parameters, &reply_body, uid);
+       } else if (g_strcmp0(method_name, "get_noti_all_count") == 0) {
+               ret = notification_get_noti_all_count(parameters, &reply_body, uid);
        } else if (g_strcmp0(method_name, "update_noti_setting") == 0) {
                ret = notification_update_noti_setting(parameters, &reply_body, uid);
        } else if (g_strcmp0(method_name, "update_noti_sys_setting") == 0) {
@@ -272,6 +274,12 @@ int notification_register_dbus_interface()
                        "          <arg type='i' name='ret_count' direction='out'/>"
                        "        </method>"
 
+                       "        <method name='get_noti_all_count'>"
+                       "          <arg type='i' name='type' direction='in'/>"
+                       "          <arg type='i' name='uid' direction='in'/>"
+                       "          <arg type='i' name='ret_count' direction='out'/>"
+                       "        </method>"
+
                        "        <method name='update_noti_setting'>"
                        "          <arg type='s' name='pkgname' direction='in'/>"
                        "          <arg type='s' name='app_id' direction='in'/>"
@@ -1410,6 +1418,37 @@ int notification_get_noti_count(GVariant *parameters, GVariant **reply_body, uid
        return ret;
 }
 
+/* get_noti_count */
+int notification_get_noti_all_count(GVariant *parameters, GVariant **reply_body, uid_t uid)
+{
+       int ret;
+       int noti_count = 0;
+       int type;
+       uid_t param_uid;
+
+       g_variant_get(parameters, "(ii)", &type, &param_uid);
+       ret = _validate_and_set_param_uid_with_uid(uid, &param_uid);
+       if (ret != NOTIFICATION_ERROR_NONE) {
+               ERR("Failed to validate uid [%d]", ret);
+               return NOTIFICATION_ERROR_IO_ERROR;
+       }
+
+       ret = notification_noti_get_all_count(type, &noti_count, param_uid);
+       if (ret != NOTIFICATION_ERROR_NONE) {
+               ERR("Failed to get count [%d]", ret);
+               return ret;
+       }
+
+       *reply_body = g_variant_new("(i)", noti_count);
+       if (*reply_body == NULL) {
+               ERR("Failed to make reply_body");
+               return NOTIFICATION_ERROR_OUT_OF_MEMORY;
+       }
+
+       INFO("The numbers of all notification count is [%d]", noti_count);
+       return ret;
+}
+
 /* update_noti_setting */
 int notification_update_noti_setting(GVariant *parameters, GVariant **reply_body, uid_t uid)
 {