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
}
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)
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;
+}