Initialize Tizen 2.3
[apps/home/settings.git] / setting-memory / src / setting-memory.c
1 /*
2  * setting
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
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
8  *
9  *     http://floralicense.org/license/
10  *
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.
16  */
17
18 /**
19  *@defgroup setting-memory
20  *UG creation code for setting-memory
21  */
22
23 #include <setting-memory.h>
24
25 #ifndef UG_MODULE_API
26 #define UG_MODULE_API __attribute__ ((visibility("default")))
27 #endif
28
29 static void setting_memory_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
30                                         void *event_info)
31 {
32         SettingMemoryUG *ad = (SettingMemoryUG *) data;
33         setting_view_update(&setting_view_memory_default_memory, ad);
34 }
35
36 static void *setting_memory_ug_on_create(ui_gadget_h ug,
37                                          enum ug_mode mode, service_h service,
38                                          void *priv)
39 {
40         SETTING_TRACE_BEGIN;
41         setting_retvm_if((!priv), NULL, "!priv");
42
43         SettingMemoryUG *memoryUG = priv;
44         memoryUG->ug = ug;
45
46         memoryUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
47         memoryUG->win_get = (Evas_Object *) ug_get_window();
48         evas_object_show(memoryUG->win_main_layout);
49         memoryUG->evas = evas_object_evas_get(memoryUG->win_main_layout);
50
51         setting_retvm_if(memoryUG->win_main_layout == NULL, NULL,
52                          "cannot get main window ");
53
54         /* register view node table */
55         setting_view_node_table_intialize();
56
57         setting_view_node_table_register(&setting_view_memory_default_memory, NULL);
58
59         setting_create_Gendial_itc("dialogue/1text.1icon.2",
60                                    &(memoryUG->itc_1text_1icon_2));
61         setting_create_Gendial_itc("dialogue/title",
62                                    &(memoryUG->itc_group_item));
63         setting_create_Gendial_itc("dialogue/1text", &(memoryUG->itc_1text));
64         setting_create_Gendial_itc("1text.1icon.2",
65                                    &(memoryUG->itc_1text_1icon));
66         setting_create_Gendial_itc("select_all", &(memoryUG->itc_sel_all));
67
68         setting_create_Gendial_itc("dialogue/2text.3/expandable",
69                                    &(memoryUG->itc_2text_3_parent));
70         setting_create_Gendial_itc("dialogue/1text.1icon/expandable2",
71                                    &(memoryUG->itc_1icon_1text_sub));
72         setting_create_Gendial_itc("dialogue/2text.2",
73                                    &(memoryUG->itc_2text_2));
74
75         memoryUG->itc_seperator.item_style = "dialogue/separator";
76         memoryUG->itc_seperator.func.text_get = NULL;
77         memoryUG->itc_seperator.func.content_get = NULL;
78         memoryUG->itc_seperator.func.state_get = NULL;
79         memoryUG->itc_seperator.func.del = NULL;
80
81         SETTING_TRACE_DEBUG("[DBG] set current view");
82
83         /*  creating a view. */
84         setting_view_node_set_cur_view(&setting_view_memory_default_memory);
85         setting_view_create(&setting_view_memory_default_memory, (void *)memoryUG);
86         evas_object_event_callback_add(memoryUG->win_main_layout,
87                                        EVAS_CALLBACK_RESIZE,
88                                        setting_memory_ug_cb_resize, memoryUG);
89         return memoryUG->ly_main;
90 }
91
92 static void setting_memory_ug_on_start(ui_gadget_h ug, service_h service,
93                                        void *priv)
94 {
95 }
96
97 static void setting_memory_ug_on_pause(ui_gadget_h ug, service_h service,
98                                        void *priv)
99 {
100 }
101
102 static void setting_memory_ug_on_resume(ui_gadget_h ug, service_h service,
103                                         void *priv)
104 {
105         SETTING_TRACE_BEGIN;
106         setting_retm_if((!ug || !priv), "!ug || !priv");
107         //SettingMemoryUG *ad = priv;
108
109         // Need to update the mem. status view in resuming the view
110
111         SETTING_TRACE_END;
112 }
113
114 static void setting_memory_ug_on_destroy(ui_gadget_h ug, service_h service,
115                                          void *priv)
116 {
117         SETTING_TRACE_BEGIN;
118         setting_retm_if((!priv), "!priv");
119         SettingMemoryUG *memoryUG = priv;
120
121         evas_object_event_callback_del(memoryUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_memory_ug_cb_resize);   /* fix flash issue for gallery */
122         memoryUG->ug = ug;
123
124         /*  delete the allocated objects. */
125
126         if (TRUE == setting_view_memory_default_memory.is_create) {
127                 setting_view_destroy(&setting_view_memory_default_memory, memoryUG);
128         }
129
130         if (NULL != ug_get_layout(memoryUG->ug)) {
131                 evas_object_hide((Evas_Object *) ug_get_layout(memoryUG->ug));
132                 evas_object_del((Evas_Object *) ug_get_layout(memoryUG->ug));
133         }
134
135         SETTING_TRACE_END;
136 }
137
138 static void setting_memory_ug_on_message(ui_gadget_h ug, service_h msg,
139                                          service_h service, void *priv)
140 {
141         SETTING_TRACE_BEGIN;
142 }
143
144 static void setting_memory_ug_on_event(ui_gadget_h ug,
145                                        enum ug_event event, service_h service,
146                                        void *priv)
147 {
148         SETTING_TRACE_BEGIN;
149         switch (event) {
150         case UG_EVENT_LOW_MEMORY:
151                 break;
152         case UG_EVENT_LOW_BATTERY:
153                 break;
154         case UG_EVENT_LANG_CHANGE:
155                 break;
156         case UG_EVENT_ROTATE_PORTRAIT:
157                 break;
158         case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
159                 break;
160         case UG_EVENT_ROTATE_LANDSCAPE:
161                 break;
162         case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
163                 break;
164         case UG_EVENT_REGION_CHANGE:
165                 break;
166         default:
167                 break;
168         }
169 }
170
171 static void setting_memory_ug_on_key_event(ui_gadget_h ug,
172                                            enum ug_key_event event,
173                                            service_h service, void *priv)
174 {
175         SETTING_TRACE_BEGIN;
176         if (!ug)
177                 return;
178         SettingMemoryUG *ad = (SettingMemoryUG *) priv;
179
180         switch (event) {
181         case UG_KEY_EVENT_END:
182                 {
183                         if (ad->wait_timer) {
184                                 ecore_timer_del(ad->wait_timer);
185                                 ad->wait_timer = NULL;
186                         }
187
188                         if (ad->progress_bar_timer) {
189                                 ecore_timer_del(ad->progress_bar_timer);
190                                 ad->progress_bar_timer = NULL;
191                         }
192                         if (ad->popup_timer) {
193                                 ecore_timer_del(ad->popup_timer);
194                                 ad->popup_timer = NULL;
195                         }
196
197                         if (elm_naviframe_top_item_get(ad->navi_bar) ==
198                            elm_naviframe_bottom_item_get(ad->navi_bar)) {
199                                 ug_destroy_me(ug);
200                         } else {
201                                 /* elm_naviframe_item_pop(ad->navi_bar); */
202                                 setting_view_cb_at_endKey(ad);
203                         }
204                 }
205                 break;
206
207         default:
208                 break;
209         }
210 }
211
212 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
213 {
214         SETTING_TRACE_BEGIN;
215         SettingMemoryUG *memoryUG = calloc(1, sizeof(SettingMemoryUG));
216         setting_retvm_if(!memoryUG, -1, "Create SettingMemoryUG obj failed");
217
218         ops->create = setting_memory_ug_on_create;
219         ops->start = setting_memory_ug_on_start;
220         ops->pause = setting_memory_ug_on_pause;
221         ops->resume = setting_memory_ug_on_resume;
222         ops->destroy = setting_memory_ug_on_destroy;
223         ops->message = setting_memory_ug_on_message;
224         ops->event = setting_memory_ug_on_event;
225         ops->key_event = setting_memory_ug_on_key_event;
226         ops->priv = memoryUG;
227         ops->opt = UG_OPT_INDICATOR_ENABLE;
228
229         return 0;
230 }
231
232 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
233 {
234         SETTING_TRACE_BEGIN;
235         struct SettingMemoryUG *memoryUG;
236         setting_retm_if(!ops, "ops == NULL");
237
238         memoryUG = ops->priv;
239         if (memoryUG)
240                 FREE(memoryUG);
241 }
242
243 /**
244 * Reset function to 'reset' the settings of the UG, it will be invoked by 'Reset' UG
245 *
246 * @param[in] data
247 * @param[in] priv
248 */
249 UG_MODULE_API int setting_plugin_reset(service_h service, void *priv)
250 {
251         SETTING_TRACE_BEGIN;
252         int ret = 0;
253 #if SUPPORT_RUN_SYSTEM_COMMAND
254         ret += excuteCmd(SETTING_POSTINST_FILE, 1, "memory");
255 #else
256         int value = SETTING_DEF_MEMORY_PHONE;
257         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_WAP_INT, value);
258         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_BLUETOOTH_INT, value);
259         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_CAMERA_INT, value);
260
261         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_VOICE_RECORDER_INT, value);
262         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_FM_RADIO_INT, value);
263         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_ALL_SHARE_INT, value);
264         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_ADOBE_AIR_INT, value);
265         ret += vconf_set_int(VCONFKEY_SETAPPL_DEFAULT_MEM_DVB_H_INT, value);
266 #endif
267         return ret;
268 }
269
270