Changed to post noti when called unregister dnd app 72/319872/1
authorSukhyungKang <shine.kang@samsung.com>
Tue, 5 Nov 2024 04:10:56 +0000 (13:10 +0900)
committerSukhyungKang <shine.kang@samsung.com>
Tue, 5 Nov 2024 04:10:56 +0000 (13:10 +0900)
- notification is posted when the unregister dnd app api is called.

Change-Id: I856b979269098c68d61194a59fec6598df25b31c
Signed-off-by: SukhyungKang <shine.kang@samsung.com>
notification/include/notification_ipc.h
notification/src/notification_internal.c
notification/src/notification_ipc.c

index 9ba73427d5dc0dbf815bbedd5675fc87e85c43fb..a1749c684663d8abbecaaece9425926275c10535 100644 (file)
@@ -111,6 +111,7 @@ int notification_ipc_socket_read(int fd, char *buffer, unsigned int nbytes);
 int notification_ipc_event_monitor_init(void);
 
 int notification_ipc_request_register_dnd_app(uid_t uid, pid_t pid);
+int notification_ipc_request_unregister_dnd_app(uid_t uid, pid_t pid);
 
 #ifdef __cplusplus
 }
index 4d43df14d2a9845b74e20eb9f8854bd3bdd33802..e170a3a70d97afeff370b38e84eb32c96406e186 100644 (file)
@@ -2423,14 +2423,29 @@ out:
 
 EXPORT_API int notification_unregister_do_not_disturb_app(void)
 {
+       int ret;
+
        WARN("unregister dnd app");
 
+       __notification_mutex_lock();
+
+       ret = notification_ipc_request_unregister_dnd_app(getuid(), getpid());
+       if (ret != NOTIFICATION_ERROR_NONE) {
+               ERR("failed to unregister dnd app");
+               __notification_mutex_unlock();
+               return ret;
+       }
+
        _disturb_callback = NULL;
 
        if (__noti_event_cb_list == NULL)
                notification_ipc_event_monitor_fini();
 
-       return NOTIFICATION_ERROR_NONE;
+       __notification_mutex_unlock();
+
+       WARN("unregister dnd app done");
+
+       return ret;
 }
 
 void notification_call_disturb_cb(void)
index f3c08c96643187e7cf82f7c735e75db96749e807..1dee2079d72a3aee7cc202b55662c3f02748401e 100644 (file)
@@ -2763,3 +2763,27 @@ int notification_ipc_request_register_dnd_app(uid_t uid, pid_t pid)
 
        return ret;
 }
+
+int notification_ipc_request_unregister_dnd_app(uid_t uid, pid_t pid)
+{
+       int ret;
+       GVariant *body;
+       GDBusMessage *reply = NULL;
+
+       WARN("request unregister dnd app");
+       ret = _dbus_init();
+       if (ret != NOTIFICATION_ERROR_NONE) {
+               ERR("Failed to init dbus connection[%d]", ret);
+               return ret;
+       }
+
+       body = g_variant_new("(ii)", uid, pid);
+
+       ret = _send_sync_noti(body, &reply, "unregister_dnd_app");
+       if (reply)
+               g_object_unref(reply);
+
+       WARN("send sync noti [%d]", ret);
+
+       return ret;
+}