3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.1 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #include <setting-reset-main.h>
22 #define RESULT_FONT_SIZE 28//18
23 #define ITEM_NAME_FONT_SIZE 35//22
25 static int setting_reset_main_create(void *cb);
26 static int setting_reset_main_destroy(void *cb);
27 static int setting_reset_main_update(void *cb);
28 static int setting_reset_main_cleanup(void *cb);
30 setting_view setting_view_reset_main = {
31 .create = setting_reset_main_create,
32 .destroy = setting_reset_main_destroy,
33 .update = setting_reset_main_update,
34 .cleanup = setting_reset_main_cleanup,
37 static void setting_reset_main_click_softkey_cancel_cb(void *data,
40 #if SUPPORT_RESET_DETAILS
41 static void setting_reset_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info);
44 /* ***************************************************
48 ***************************************************/
49 static int setting_reset_main_create(void *cb)
53 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
55 SettingResetUG *ad = (SettingResetUG *) cb;
56 Evas_Object *scroller = NULL;
57 #if SIMPLY_SUPPORT_ALL_RESET
59 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
61 _("IDS_COM_BODY_RESET"),
62 _("IDS_COM_BODY_BACK"), NULL,
63 setting_reset_main_click_softkey_cancel_cb,
67 setting_create_Gendial_field_def(scroller, &(ad->itc_1text), NULL,
68 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
69 NULL, NULL, 0, RESET_ALL_DESC,
71 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
72 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
74 Setting_GenGroupItem_Data *item_data =
75 (Setting_GenGroupItem_Data *) calloc(1,
77 (Setting_GenGroupItem_Data));
78 setting_retvm_if(!item_data, SETTING_RETURN_FAIL, "calloc failed");
79 item_data->userdata = ad;
80 item_data->keyStr = (char *)g_strdup(RESET_ALL);
81 item_data->swallow_type = SWALLOW_Type_1BUTTON;
83 item_data->chk_change_cb = __reset_all_button_cb;
84 item_data->item = elm_genlist_item_append(scroller, &(ad->itc_1icon), item_data, NULL,
85 ELM_GENLIST_ITEM_NONE,
87 setting_view_reset_main.is_create = 1;
88 ad->main_scroller = scroller;
89 return SETTING_RETURN_SUCCESS;
92 #if SUPPORT_RESET_DETAILS
94 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
96 _("IDS_COM_BODY_RESET"),
97 _("IDS_COM_BODY_BACK"), NULL,
98 setting_reset_main_click_softkey_cancel_cb,
102 Elm_Object_Item *item = NULL;;
105 elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
106 ELM_GENLIST_ITEM_NONE, NULL, NULL);
107 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
109 /* 1. Reset settings */
110 setting_create_Gendial_field_def(scroller, &itc_1text,
111 setting_reset_main_mouse_up_Gendial_list_cb,ad,
112 SWALLOW_Type_INVALID,
114 0, RESET_SETTINGS_STR, NULL, NULL);
115 #if SUPPORT_SIM_CARD_PROFILE
116 /* 2. SIM card profile settings */
118 int is_sim_profile_enabled = csc_svc_sim_auto_setting_chk_feature_enable();
120 int value = VCONFKEY_TELEPHONY_SIM_UNKNOWN;
121 setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
122 if (is_sim_profile_enabled && VCONFKEY_TELEPHONY_SIM_INSERTED == value) {
123 setting_create_Gendial_field_def(scroller, &itc_1text,
124 setting_reset_main_mouse_up_Gendial_list_cb,ad,
125 SWALLOW_Type_INVALID,
127 0, SIM_CARD_PROFILE_SETTINGS_STR, NULL, NULL);
129 SETTING_TRACE("is_sim_profile_enabled:%d", is_sim_profile_enabled);
130 SETTING_TRACE("value:%d", value);
133 SETTING_TRACE("TARGET MACRO disabled");
140 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
141 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
142 NULL, NULL, 0, RESET_ALL_DESC,
145 setting_view_reset_main.is_create = 1;
146 ad->main_scroller = scroller;
147 return SETTING_RETURN_SUCCESS;
151 #if SUPPORT_RESET_OLD
152 Evas_Object *navi_bar = NULL;
154 Evas_Object *controllbar = NULL;
156 Evas_Object *view_layout = elm_layout_add(ad->win_main_layout);
157 elm_layout_file_set(view_layout, SETTING_THEME_EDJ_NAME,
159 evas_object_size_hint_weight_set(view_layout, EVAS_HINT_EXPAND, 0.0);
161 /* Evas_Object * win_layout, Evas_Object * win_obj */
163 setting_create_layout_navi_bar(ad->win_main_layout, ad->win_get,
164 _("IDS_COM_BODY_RESET"),
165 _("IDS_COM_SK_CANCEL"),
166 _("IDS_COM_BODY_RESET"), NULL,
167 setting_reset_main_click_softkey_cancel_cb,
168 setting_reset_main_click_softkey_reset_cb,
169 NULL, ad, view_layout, &navi_bar,
171 elm_object_item_disabled_set(elm_toolbar_last_item_get
172 (controllbar), EINA_TRUE);
174 /* ******************************************create frame */
175 Setting_Done_List_Data *list_data = &(ad->list_data); /* define a handle */
177 list_data->win_main = ad->ly_main;
178 list_data->UG_data = ad;
179 list_data->ly_parent = view_layout;
180 list_data->controllbar = controllbar;
183 list_data->chk_items[idx++].item_name = KeyStr_Select_All;
190 for (; i < setting_cfg_get_category_length(); i++) {
191 SETTING_TRACE("group is:%s", _(setting_cfg_get_category_name(i)));
193 for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
194 /*SETTING_TRACE("i:%d\tj:%d", i, j);*/
195 if (Cfg_Item_unResetable ==
196 setting_cfg_get_resetable_flag_idx(i, j))
200 list_data->chk_items[idx].ug_args = ug_args =
201 setting_cfg_get_ug_args_idx(i, j);
202 list_data->chk_items[idx].item_name = item_name =
203 setting_cfg_get_keyname_idx(i, j);
205 SETTING_TRACE("process %s:\t%s",_(item_name), ug_args);
210 list_data->cur_item_num = idx;
211 SETTING_TRACE("list_data->cur_item_num:%d", list_data->cur_item_num);
212 scroller = setting_create_done_list(list_data);
213 elm_object_part_content_set(view_layout, "elm.swallow.contents", scroller);
215 ad->view_layout = view_layout;
216 ad->navi_bar = navi_bar;
217 ad->controllbar = controllbar;
218 /* *******************************************update info */
220 setting_view_reset_main.is_create = 1;
221 ad->itc_1text.func.text_get = __result_gl_text_get;
222 return SETTING_RETURN_SUCCESS;
226 static int setting_reset_main_destroy(void *cb)
230 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
232 SettingResetUG *ad = (SettingResetUG *) cb;
234 evas_object_del(ad->notify);
237 if (ad->old_notify) {
238 evas_object_del(ad->old_notify);
239 ad->old_notify = NULL;
241 if (ad->pop_progress)
243 evas_object_del(ad->pop_progress);
244 ad->pop_progress = NULL;
249 evas_object_del(ad->ask_popup);
250 ad->ask_popup = NULL;
254 ecore_animator_del(ad->animator);
258 if (ad->ly_main != NULL) {
259 evas_object_del(ad->ly_main);
260 setting_view_reset_main.is_create = 0;
263 return SETTING_RETURN_SUCCESS;
266 static int setting_reset_main_update(void *cb)
270 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
272 SettingResetUG *ad = (SettingResetUG *) cb;
274 if (ad->ly_main != NULL) {
275 evas_object_show(ad->ly_main);
278 return SETTING_RETURN_SUCCESS;
281 static int setting_reset_main_cleanup(void *cb)
285 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
287 SettingResetUG *ad = (SettingResetUG *) cb;
289 if (ad->ly_main != NULL) {
290 evas_object_hide(ad->ly_main);
293 return SETTING_RETURN_SUCCESS;
296 static void setting_reset_reboot_resp_cb(void *data, Evas_Object *obj,
300 int response_type = btn_type(obj);
301 if (POPUP_RESPONSE_OK == response_type) { // OK cliked
302 csc_svc_sim_auto_setting_clear_active_operator();
304 sysman_request_reboot();
306 } else if (POPUP_RESPONSE_CANCEL == response_type) { // cancel clicked
310 SettingResetUG *ad = data;
313 evas_object_del(ad->pop);
318 #if SUPPORT_RESET_DETAILS
320 setting_reset_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info)
323 setting_retm_if(data == NULL, "Data parameter is NULL");
325 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
326 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
327 elm_genlist_item_selected_set(item, 0);
329 Setting_GenGroupItem_Data *list_item =
330 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
332 SettingResetUG *ad = (SettingResetUG *) data;
334 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
336 if (!safeStrCmp(RESET_SETTINGS_STR, list_item->keyStr))
338 setting_view_change(&setting_view_reset_main, &setting_view_reset_settings, ad);
340 #if SUPPORT_SIM_CARD_PROFILE
341 else if (!safeStrCmp(SIM_CARD_PROFILE_SETTINGS_STR, list_item->keyStr))
343 SETTING_TRACE("SIM-CARD PROFILE");
345 ad->pop = setting_create_popup_with_btn(ad, ad->win_get, NULL,
346 _("IDS_ST_BODY_RESET_SIM_CARD_PROFILE_SETTINGS_TO_DEFAULT_AND_SELECT_ANOTHER_SERVICE_PROVIDER_MSG"),
347 //setting_time_reboot_resp_cb,
348 setting_reset_reboot_resp_cb,
350 dgettext("sys_string", "IDS_COM_SK_OK"),
351 _("IDS_COM_SK_CANCEL"));
360 setting_reset_main_click_softkey_cancel_cb(void *data, Evas_Object *obj,
365 retm_if(data == NULL, "Data parameter is NULL");
367 SettingResetUG *ad = (SettingResetUG *) data;
368 if (ad->list_data.selInfoPop) {
369 evas_object_del(ad->list_data.selInfoPop);
370 ad->list_data.selInfoPop = NULL;
372 /* Send destroy request */
373 ug_destroy_me(ad->ug);