Evas_Object *done_button; /**< @brief "Done" button displayed on the top of naviframe.*/
Elm_Object_Item *navi_item; /**< @brief Naviframe item.*/
Ecore_Thread *init_thread; /**< @brief A thread for lazy initiation. */
+ Elm_Object_Item *dnd_check_item;/**< @brief Genlist item "Do not disturb" */
} ug_data;
/**
*/
void update_system_settings();
-
+/**
+ *@brief Free system settings.
+ */
+void free_system_setting();
#endif /* __SYS_SETTING_INFO_H__ */
NOTISET_TRACE_BEGIN;
int value = 0;
notification_system_setting_get_dnd_allow_exceptions(get_system_setting(), NOTIFICATION_DND_ALLOWED_CALLS, &value);
+ free_system_setting();
return items[value];
}
if (check_state) {
int value = 0;
notification_system_setting_get_dnd_allow_exceptions(get_system_setting(), NOTIFICATION_DND_ALLOWED_CALLS, &value);
+ free_system_setting();
if (value == NOTIFICATION_DND_ALLOWED_CALLS_CONTACT)
set_do_not_show_contact_popup_again(false);
else if (value == NOTIFICATION_DND_ALLOWED_CALLS_FAVORITE)
gl_selected_cb, /* select smart callback */
ugName); /* smart callback user data */
+ if(ugName && !strcmp(ugName, "do-not-disturb"))
+ g_ug_data->dnd_check_item = gen_item;
+
if (style && !strcmp(style, "group_index"))
elm_genlist_item_select_mode_set(gen_item, ELM_OBJECT_SELECT_MODE_NONE);
elm_genlist_item_class_free(itc);
ugd->init_thread = NULL;
}
+static void _dnd_state_changed(void *user_data, int do_not_disturb)
+{
+ NOTISET_TRACE_BEGIN;
+ ug_data *ugd = (ug_data *)user_data;
+ ret_if(!ugd);
+
+ elm_genlist_item_update(ugd->dnd_check_item);
+}
+
static void _create_do_not_disturb_view(void *data)
{
NOTISET_TRACE_BEGIN;
- ug_data *ugd = (ug_data *) data;
+ ug_data *ugd = (ug_data *)data;
ret_if(!ugd);
+ notification_register_system_setting_dnd_changed_cb(_dnd_state_changed, ugd);
+
/* back Button */
Evas_Object *back_btn = elm_button_add(ugd->naviframe);
elm_object_style_set(back_btn, "naviframe/back_btn/default");
remove_apps_noti_allowed_list();
remove_apps_noti_blocked_list();
update_apps_settings_info();
- update_system_settings();
free(ugd);
}
bool do_not_disturb = false;
notification_system_setting_get_do_not_disturb(get_system_setting(), &do_not_disturb);
+ free_system_setting();
NOTISET_DBG("do_not_disturb [%d]\n", do_not_disturb);
return do_not_disturb;
{
lock_screen_content_level_e value = SHOW_ALL_CONTENT;
notification_system_setting_get_lock_screen_content(get_system_setting(), &value);
+ free_system_setting();
return value;
}
end_time_p.saved_time.tm_sec = 0;
notification_system_setting_dnd_schedule_get_start_time(get_system_setting(), &start_time_p.saved_time.tm_hour, &start_time_p.saved_time.tm_min);
-
notification_system_setting_dnd_schedule_get_end_time(get_system_setting(), &end_time_p.saved_time.tm_hour, &end_time_p.saved_time.tm_min);
+ free_system_setting();
start_time_p.default_time = start_time_p.saved_time;
end_time_p.default_time = end_time_p.saved_time;
int res = 0;
notification_system_setting_dnd_schedule_get_day(get_system_setting(), &res);
+ free_system_setting();
default_dnd_schedule_weekday = res;
new_dnd_schedule_weekday = res;
bool set_schedule = false;
notification_system_setting_dnd_schedule_get_enabled(get_system_setting(), &set_schedule);
+ free_system_setting();
NOTISET_DBG("get_schedule [%d]\n", set_schedule);
return set_schedule;
calc_label_size(cc->label);
cc->change_color = !cc->change_color;
-
+ save_dnd_weekday(new_dnd_schedule_weekday);
+ ecore_main_loop_iterate(); /* update_system_settings work slow, so we use ui at first */
update_system_settings();
}
notification_system_setting_dnd_schedule_get_end_time(get_system_setting(), &dt.saved_time.tm_hour, &dt.saved_time.tm_min);
end_time_p = dt;
}
+ free_system_setting();
char *timeFormat = get_time_format() == time_format_12H ? TIME_12_FORMAT : TIME_24_FORMAT;
if (is_start_time_item) {
ug_data *ugd = (ug_data *)data;
bool update_ui = false;
if (new_dnd_schedule_weekday != default_dnd_schedule_weekday) {
- save_dnd_weekday(new_dnd_schedule_weekday);
update_ui = true;
}
if (!same_time(&start_time_p.saved_time, &start_time_p.default_time)) {
- save_date_time(&start_time_p);
update_ui = true;
}
if (!same_time(&end_time_p.saved_time, &end_time_p.default_time)) {
- save_date_time(&end_time_p);
update_ui = true;
}
}
}
+void free_system_setting()
+{
+ if (system_setting)
+ {
+ notification_system_setting_free_system_setting(system_setting);
+ system_setting = NULL;
+ }
+}
+