int notification_noti_get_package_template(notification_h noti, char *pkgname, char *template_name);
int notification_noti_delete_template(const char *pkgname);
+int notification_get_default_viewer(const char *path, char **default_viewer);
+int notification_launch_default_viewer(const char *default_viewer, int priv_id);
+
#endif /* __NOTIFICATION_NOTI_H__ */
#include <package_manager.h>
#include <app_control_internal.h>
#include <bundle_internal.h>
+#include <iniparser.h>
#include <notification.h>
#include <notification_internal.h>
return ret;
}
+
+EXPORT_API int notification_get_default_viewer(const char *path, char **default_viewer)
+{
+ char *viewer = NULL;
+ dictionary *dict = NULL;
+
+ if (access(path, F_OK) != 0) {
+ NOTIFICATION_ERR("can't access file_path(%s)", path);
+ return -1;
+ }
+
+ dict = iniparser_load(path);
+ if (!dict) {
+ NOTIFICATION_ERR("can't load file");
+ return -1;
+ }
+
+ viewer = iniparser_getstring(dict, "Notification:DefaultViewer", NULL);
+ if (viewer != NULL)
+ *default_viewer = strdup(viewer);
+
+ iniparser_freedict(dict);
+
+ return 0;
+}
+
+EXPORT_API int notification_launch_default_viewer(const char *default_viewer, int priv_id)
+{
+ int ret;
+ char buf[32] = {0,};
+ app_control_h app_control = NULL;
+
+ ret = app_control_create(&app_control);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NOTIFICATION_ERR("app_control_create failed [%x]", ret);
+ goto out;
+ }
+
+ ret = app_control_set_app_id(app_control, default_viewer);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NOTIFICATION_ERR("app_control_set_app_id failed [%x]", ret);
+ goto out;
+ }
+
+ snprintf(buf, sizeof(buf), "%d", priv_id);
+
+ ret = app_control_add_extra_data(app_control, "NOTIFICATION_PRIVATE_ID", buf);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NOTIFICATION_ERR("app_control_set_extra_data failed [%x]", ret);
+ goto out;
+ }
+
+ ret = app_control_send_launch_request(app_control, NULL, NULL);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NOTIFICATION_ERR("app_control_send_launch_request failed [%x]", ret);
+ goto out;
+ }
+
+out:
+ if (app_control)
+ app_control_destroy(app_control);
+
+ return ret;
+}