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.
17 #include <setting-reset.h>
18 #include <ITapiModem.h>
19 #include <TapiUtility.h>
20 #include <tapi_common.h>
23 #define UG_MODULE_API __attribute__ ((visibility("default")))
26 static void setting_reset_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
29 SettingResetUG *ad = (SettingResetUG *) data;
30 setting_view_update(&setting_view_reset_main, ad);
33 static void *setting_reset_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
34 service_h service, void *priv)
36 setting_retvm_if((!priv), NULL, "!priv");
38 SettingResetUG *resetUG = priv;
41 resetUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
42 resetUG->win_get = (Evas_Object *) ug_get_window();
44 evas_object_show(resetUG->win_main_layout);
45 resetUG->evas = evas_object_evas_get(resetUG->win_main_layout);
47 setting_retvm_if(resetUG->win_main_layout == NULL, NULL,
48 "cannot get main window ");
50 setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
52 setting_create_Gendial_itc("multiline/1text", &(resetUG->itc_1text));
53 setting_create_Gendial_itc("dialogue/bg/1icon", &(resetUG->itc_1icon));
55 /* creating a view. */
56 setting_view_node_table_register(&setting_view_reset_main, NULL);
57 setting_view_node_table_register(&setting_view_reset_settings, &setting_view_reset_main);
58 setting_view_node_set_cur_view(&setting_view_reset_main);
60 setting_view_create(&setting_view_reset_main, (void *)resetUG);
61 evas_object_event_callback_add(resetUG->win_main_layout,
63 setting_reset_ug_cb_resize, resetUG);
64 return resetUG->ly_main;
67 static void setting_reset_ug_on_start(ui_gadget_h ug, service_h service,
72 static void setting_reset_ug_on_pause(ui_gadget_h ug, service_h service,
77 static void setting_reset_ug_on_resume(ui_gadget_h ug, service_h service,
82 static void setting_reset_ug_on_destroy(ui_gadget_h ug, service_h service,
86 setting_retm_if((!priv), "!priv");
87 SettingResetUG *resetUG = priv;
89 evas_object_event_callback_del(resetUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_reset_ug_cb_resize); /* fix flash issue for gallery */
91 /* delete the allocated objects. */
92 setting_view_destroy(&setting_view_reset_settings, resetUG);
93 setting_view_destroy(&setting_view_reset_main, resetUG);
95 if (NULL != ug_get_layout(resetUG->ug)) {
96 evas_object_hide((Evas_Object *) ug_get_layout(resetUG->ug));
97 evas_object_del((Evas_Object *) ug_get_layout(resetUG->ug));
103 static void setting_reset_ug_on_message(ui_gadget_h ug, service_h msg,
104 service_h service, void *priv)
109 static void setting_reset_ug_on_event(ui_gadget_h ug, enum ug_event event,
110 service_h service, void *priv)
113 setting_retm_if(!priv, "!priv");
114 SettingResetUG *ad = (SettingResetUG *) priv;
116 case UG_EVENT_LOW_MEMORY:
118 case UG_EVENT_LOW_BATTERY:
120 case UG_EVENT_LANG_CHANGE:
122 /* navigation item in reset setting view */
123 Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
125 elm_object_item_text_set(navi_it, _(RESET_SETTINGS_STR));
127 /* navigation item in reset main view */
128 navi_it = elm_naviframe_bottom_item_get(ad->navi_bar);
130 elm_object_item_text_set(navi_it, _("IDS_COM_BODY_RESET"));
132 if (ad->main_scroller)
134 elm_genlist_realized_items_update(ad->main_scroller);
136 SETTING_TRACE("ad->main_scroller:%p", ad->main_scroller);
140 Elm_Object_Item *item = NULL;
141 item = elm_toolbar_first_item_get(ad->controllbar);
144 #if SUPPORT_BOTTOM_BTNS
145 elm_object_item_text_set(item, _("IDS_COM_BODY_RESET"));
147 Evas_Object *eo_btn = elm_object_item_part_content_get(item, "object");
148 setting_retm_if(eo_btn == NULL, "get eo_lbtn failed");
149 elm_object_text_set(eo_btn, _("IDS_COM_SK_CANCEL"));
153 item = elm_toolbar_last_item_get(ad->controllbar);
156 #if SUPPORT_BOTTOM_BTNS
157 elm_object_item_text_set(item, _("IDS_COM_SK_CANCEL"));
159 Evas_Object *eo_btn = elm_object_item_part_content_get(item, "object");
160 setting_retm_if(eo_btn == NULL, "get eo_lbtn failed");
161 elm_object_text_set(eo_btn, _("IDS_COM_BODY_RESET"));
165 Evas_Object *sub_layout = elm_object_part_content_get(ad->view_layout, "elm.swallow.contents");
168 Evas_Object *select_all_layout = elm_object_part_content_get(sub_layout, "search_bar");
169 if (select_all_layout) {
170 elm_object_part_text_set(select_all_layout, "elm.text", _(KeyStr_Select_All));
175 elm_genlist_realized_items_update(ad->reset_list);
177 // setting_reset_result_popup_update(ad);
182 case UG_EVENT_ROTATE_PORTRAIT:
184 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
186 case UG_EVENT_ROTATE_LANDSCAPE:
188 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
190 case UG_EVENT_REGION_CHANGE:
197 static void setting_reset_ug_on_key_event(ui_gadget_h ug,
198 enum ug_key_event event,
199 service_h service, void *priv)
204 case UG_KEY_EVENT_END:
212 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
215 SettingResetUG *resetUG = calloc(1, sizeof(SettingResetUG));
216 setting_retvm_if(!resetUG, -1, "Create SettingResetUG obj failed");
218 ops->create = setting_reset_ug_on_create;
219 ops->start = setting_reset_ug_on_start;
220 ops->pause = setting_reset_ug_on_pause;
221 ops->resume = setting_reset_ug_on_resume;
222 ops->destroy = setting_reset_ug_on_destroy;
223 ops->message = setting_reset_ug_on_message;
224 ops->event = setting_reset_ug_on_event;
225 ops->key_event = setting_reset_ug_on_key_event;
227 ops->opt = UG_OPT_INDICATOR_ENABLE;
232 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
235 struct SettingResetUG *resetUG;
236 setting_retm_if(!ops, "ops == NULL");
243 /* ***************************************************
247 ***************************************************/
249 static void __ask_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
251 if (btn_type(obj) == POPUP_RESPONSE_OK) {
252 elm_exit();//exit the Setting app
256 SettingResetUG *ad = data;
258 evas_object_del(ad->ask_popup);
259 ad->ask_popup = NULL;
264 void setting_reset_result_popup_resp_cb(void *data, Evas_Object *obj, void *event_info)
268 SettingResetUG *ad = data;
269 if (btn_type(obj) == POPUP_RESPONSE_OK) {
272 evas_object_del(ad->notify);
276 if (ad->old_notify) {
277 evas_object_del(ad->old_notify);
278 ad->old_notify = NULL;
284 * language change makes B/S on resetting "Language&Region UG"
286 void setting_reset_result_popup_update(void *data)
291 SettingResetUG *ad = data;
293 elm_object_part_text_set(ad->notify, "title,text", _(RESET_RESULT_STR));
294 Evas_Object *btn = elm_object_part_content_get(ad->notify, "button1");
295 elm_object_style_set(btn, "popup_button/default");
298 elm_object_text_set(btn, _("IDS_COM_SK_OK"));
300 Evas_Object *genlist = elm_object_content_get(ad->notify);
303 elm_genlist_realized_items_update(genlist);
304 elm_object_content_set(ad->notify, genlist);
306 //evas_object_show(ad->notify);
312 static void __tapi_flight_mode_cb(TapiHandle *handle, int result, void *data, void *user_data)
315 SETTING_TRACE("result:%d", result);
317 int setting_reset_flight_mode()
320 TapiHandle *handle = tel_init(NULL);
322 SETTING_TRACE_ERROR("tel_init error");
325 //if callback is NULL,it will return failed directly.
326 if (tel_set_flight_mode(handle, TAPI_POWER_FLIGHT_MODE_LEAVE, __tapi_flight_mode_cb, NULL) == 0) {
327 #if SUPPORT_RUN_SYSTEM_COMMAND
328 ret = excuteCmd(SETTING_POSTINST_FILE, 1, "flightmode");
330 ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, FALSE);
333 SETTING_TRACE_ERROR("tel_set_flight_mode error");
337 if (tel_deinit(handle) != 0) {
338 SETTING_TRACE_ERROR("tel_deinit error");
343 int setting_reset_rotation_lock(void)
345 #if SUPPORT_RUN_SYSTEM_COMMAND
346 return excuteCmd(SETTING_POSTINST_FILE, 1, "rotationLock");
348 return vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, FALSE);