2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #define UG_MODULE_API __attribute__ ((visibility("default")))
21 #include <Elementary.h>
22 #include <ui-gadget-module.h>
26 #include "cst-common.h"
27 #include "cst-debug.h"
28 #include "cst-common-string.h"
29 #include "cst-tapi-request.h"
30 #include "cst-call-setting.h"
33 static Evas_Object *__cst_create_content(Evas_Object *parent, CstUgData_t *ugd)
35 ENTER(__cst_create_content);
38 Evas_Object *l_button;
39 retv_if(parent == NULL, NULL);
41 nf = elm_naviframe_add(parent);
46 elm_object_part_content_set(ugd->base, "elm.swallow.content", nf);
47 _cst_create_call_setting(ugd);
54 static Evas_Object *__cst_create_fullview(Evas_Object *parent, CstUgData_t *ugd)
56 ENTER(__cst_create_fullview);
59 /* Create Full view */
60 base = elm_layout_add(parent);
64 elm_layout_theme_set(base, "layout", "application", "default");
65 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66 elm_win_resize_object_add(parent, base);
68 evas_object_show(base);
74 static Evas_Object *__cst_create_frameview(Evas_Object *parent, CstUgData_t *ugd)
76 ENTER(__cst_create_frameview);
77 Evas_Object *base = NULL;
82 static Evas_Object *__cst_create_bg(Evas_Object *parent)
84 ENTER(__cst_create_bg);
85 Evas_Object *bg = elm_bg_add(parent);
86 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
87 elm_win_resize_object_add(parent, bg);
93 static void *__cst_on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
95 ENTER(__cst_on_create);
96 Evas_Object *parent, *content;
105 bindtextdomain(UGNAME, "/opt/ug/res/locale");
107 parent = ug_get_parent_layout(ug);
108 ugd->win_main = parent;
109 retv_if(parent == NULL, NULL);
110 ugd->back_button = NULL;
111 ugd->req_queue = NULL;
113 // Register the telephony ss events
114 _cst_ciss_register_tel_event(ugd);
116 ugd->bg = __cst_create_bg(parent);
117 elm_object_style_set(ugd->bg, "transparent");
118 elm_object_style_set(ugd->bg, "group_list");
120 if (mode == UG_MODE_FULLVIEW)
121 ugd->base = __cst_create_fullview(parent, ugd);
123 ugd->base = __cst_create_frameview(parent, ugd);
126 content = __cst_create_content(parent, ugd);
127 elm_object_part_content_set(ugd->base, "elm.swallow.content", content);
130 elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
132 DBG("scale factor=%f", elm_config_scale_get());
136 static void __cst_on_start(struct ui_gadget *ug, bundle *data, void *priv)
140 static void __cst_on_pause(struct ui_gadget *ug, bundle *data, void *priv)
145 static void __cst_on_resume(struct ui_gadget *ug, bundle *data, void *priv)
150 static void __cst_on_destroy(struct ui_gadget *ug, bundle *data, void *priv)
152 ENTER(__cst_on_destroy);
161 if (ugd->req_queue) {
163 CallSettingReq_t *req;
165 EINA_LIST_FOREACH(ugd->req_queue, l, req) {
168 ugd->req_queue = eina_list_free(ugd->req_queue);
171 if (ugd->popup != NULL) {
172 evas_object_del(ugd->popup);
176 _cst_ciss_deregister_tel_event(ugd);
179 evas_object_del(ugd->bg);
184 evas_object_del(ugd->base);
190 static void __cst_on_message(struct ui_gadget *ug, bundle *msg, bundle *data, void *priv)
194 static void __cst_on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle *data, void *priv)
196 ENTER(__cst_on_key_event);
206 case UG_KEY_EVENT_END:
207 if (ugd->popup != NULL) {
208 DBG("popup=0x%p", ugd->popup);
209 evas_object_del(ugd->popup);
211 } else if (ugd->back_button != NULL) {
212 DBG("back_button = 0x%p", ugd->back_button);
213 evas_object_smart_callback_call(ugd->back_button, "clicked", NULL);
215 DBG("Error: No action is defined for END KEY EVENT, popup=0x%p, back_button=0x%p", ugd->popup, ugd->back_button);
220 DBG("Unknown Event Detected, event=%d", event);
225 static void __cst_on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, void *priv)
227 ENTER(__cst_on_event);
229 case UG_EVENT_LOW_MEMORY:
230 DBG("UG_EVENT_LOW_MEMORY");
232 case UG_EVENT_LOW_BATTERY:
233 DBG("UG_EVENT_LOW_BATTERY");
235 case UG_EVENT_LANG_CHANGE:
236 DBG("UG_EVENT_LANG_CHANGE");
238 case UG_EVENT_ROTATE_PORTRAIT:
239 DBG("UG_EVENT_ROTATE_PORTRAIT");
241 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
242 DBG("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN");
244 case UG_EVENT_ROTATE_LANDSCAPE:
245 DBG("UG_EVENT_ROTATE_LANDSCAPE");
247 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
248 DBG("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN");
256 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
258 ENTER(UG_MODULE_INIT);
265 ugd = calloc(1, sizeof(CstUgData_t));
269 ops->create = __cst_on_create;
270 ops->start = __cst_on_start;
271 ops->pause = __cst_on_pause;
272 ops->resume = __cst_on_resume;
273 ops->destroy = __cst_on_destroy;
274 ops->message = __cst_on_message;
275 ops->event = __cst_on_event;
276 ops->key_event = __cst_on_key_event;
278 ops->opt = UG_OPT_INDICATOR_ENABLE;
283 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
285 ENTER(UG_MODULE_EXIT);
298 * Reset function to 'reset' the settings of the UG, it will be invoked by 'Reset' UG
303 UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
305 ENTER(setting_plugin_reset);
308 ret += vconf_set_int(VCONFKEY_CISSAPPL_SHOW_MY_NUMBER_INT, CST_CLI_BY_NETWORK);
311 ret += vconf_set_bool(VCONFKEY_CISSAPPL_PREFIX_DIAL_BOOL, EINA_FALSE);
312 ret += vconf_set_int(VCONFKEY_CISSAPPL_PREFIX_DIAL_INT, 0);
313 ret += vconf_set_int(VCONFKEY_CISSAPPL_PREFIX_DIAL_VALUE_INT, 0);
314 ret += vconf_set_str(VCONFKEY_CISSAPPL_PREFIX_DIAL_NUM1_STR, "");
315 ret += vconf_set_str(VCONFKEY_CISSAPPL_PREFIX_DIAL_NUM2_STR, "");
316 ret += vconf_set_str(VCONFKEY_CISSAPPL_PREFIX_DIAL_NUM3_STR, "");
317 ret += vconf_set_str(VCONFKEY_CISSAPPL_PREFIX_DIAL_NUM4_STR, "");
318 ret += vconf_set_str(VCONFKEY_CISSAPPL_PREFIX_DIAL_NUM5_STR, "");
320 ret += vconf_set_bool(VCONFKEY_CISSAPPL_CALL_CONNECT_TONE_BOOL, EINA_FALSE);
321 ret += vconf_set_bool(VCONFKEY_CISSAPPL_MINUTE_MINDER_BOOL, EINA_FALSE);
322 ret += vconf_set_bool(VCONFKEY_CISSAPPL_CALL_END_TONE_BOOL, EINA_FALSE);
324 ret += vconf_set_int(VCONFKEY_CISSAPPL_ALERT_ON_CALL_INT, CST_ALERTS_ON_CALL_OFF);
326 ret += vconf_set_bool(VCONFKEY_CISSAPPL_VOICE_AUTO_REDIAL_BOOL, EINA_FALSE);
327 ret += vconf_set_bool(VCONFKEY_CISSAPPL_VIDEO_AUTO_REDIAL_BOOL, EINA_FALSE);