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-memory-main.h>
18 #define VCONFKEY_MEMORY_STATUS "memory/msg/ready"
20 static int setting_memory_main_create(void *cb);
21 static int setting_memory_main_destroy(void *cb);
22 static int setting_memory_main_update(void *cb);
23 static int setting_memory_main_cleanup(void *cb);
25 setting_view setting_view_memory_main = {
26 .create = setting_memory_main_create,
27 .destroy = setting_memory_main_destroy,
28 .update = setting_memory_main_update,
29 .cleanup = setting_memory_main_cleanup,
32 static void setting_memory_main_mouse_up_Gendial_list_cb(void *data,
35 static void setting_memory_main_click_softkey_back(void *data,
38 static void setting_memory_main_memory_status_change_cb(keynode_t *key,
41 /*******************************************
45 ******************************************/
47 static int setting_memory_main_create(void *cb)
50 SettingMemoryUG *ad = (SettingMemoryUG *) cb;
52 Evas_Object *scroller;
55 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
57 _("IDS_ST_BODY_MEMORY"),
58 S_("IDS_COM_BODY_BACK"),
60 setting_memory_main_click_softkey_back,
63 retvm_if(ad->ly_main == NULL, -1, "Can't create main layout");
65 Elm_Object_Item *item = NULL;;
67 elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
68 ELM_GENLIST_ITEM_NONE, NULL, NULL);
69 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
71 // [UI] Default Memory
72 setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
73 setting_memory_main_mouse_up_Gendial_list_cb,
74 ad, SWALLOW_Type_INVALID, NULL, NULL,
76 "IDS_ST_BODY_MEMORYSETTINGS_DEFAULT_MEMORY",
80 setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
81 setting_memory_main_mouse_up_Gendial_list_cb,
82 ad, SWALLOW_Type_INVALID, NULL, NULL,
83 0, "IDS_ST_BODY_MEMORY_STATUS", NULL,
85 setting_view_memory_main.is_create = 1;
86 return SETTING_RETURN_SUCCESS;
89 static int setting_memory_main_destroy(void *cb)
92 setting_view_memory_main.is_create = 0;
94 SettingMemoryUG *ad = (SettingMemoryUG *) cb;
95 vconf_ignore_key_changed(VCONFKEY_MEMORY_STATUS,
96 setting_memory_main_memory_status_change_cb);
97 evas_object_del(ad->ly_main);
102 static int setting_memory_main_update(void *cb)
105 SettingMemoryUG *ad = (SettingMemoryUG *) cb;
106 evas_object_show(ad->ly_main);
111 static int setting_memory_main_cleanup(void *cb)
114 /* SettingMemoryUG *ad = (SettingMemoryUG *)cb; */
115 /* evas_object_hide(ad->ly_main); */
120 /*********************************************
124 *********************************************/
126 setting_memory_main_memory_status_change_cb(keynode_t *key, void *data)
129 SettingMemoryUG *ad = data;
130 int status = vconf_keynode_get_bool(key);
131 /* char *vconf_name = vconf_keynode_get_name(key); */
134 if (ad->msg_intial_popup != NULL) {
135 evas_object_del(ad->msg_intial_popup);
136 ad->msg_intial_popup = NULL;
138 vconf_ignore_key_changed(VCONFKEY_MEMORY_STATUS,
139 setting_memory_main_memory_status_change_cb);
140 setting_view_change(&setting_view_memory_main,
141 &setting_view_memory_status, ad);
146 setting_memory_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
150 setting_retm_if(data == NULL, "Data parameter is NULL");
152 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
153 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
154 elm_genlist_item_selected_set(item, 0);
155 Setting_GenGroupItem_Data *list_item =
156 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
158 SettingMemoryUG *ad = (SettingMemoryUG *) data;
160 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
163 ("IDS_ST_BODY_MEMORYSETTINGS_DEFAULT_MEMORY",
164 list_item->keyStr)) {
165 setting_view_change(&setting_view_memory_main,
166 &setting_view_memory_default_memory, ad);
167 } else if (!safeStrCmp("IDS_ST_BODY_MEMORY_STATUS", list_item->keyStr)) {
168 /* check if msg server is ready */
169 int val = 0; /* intial value is 0(not ready) */
170 vconf_get_bool(VCONFKEY_MEMORY_STATUS, &val);
172 if (1 != val) { /* not ready */
175 vconf_notify_key_changed(VCONFKEY_MEMORY_STATUS,
176 setting_memory_main_memory_status_change_cb,
178 setting_retm_if(ret < 0, "%s notifications Failed(%d)",
179 VCONFKEY_MEMORY_STATUS, ret);
181 ad->msg_intial_popup =
182 setting_create_popup_without_btn(ad, ad->win_get,
183 NULL, _(SETTING_MEMORY_MSG_SERVER_POPUP_INFO_MSG),
184 NULL, 0, TRUE, TRUE);
187 setting_view_change(&setting_view_memory_main,
188 &setting_view_memory_status, ad);
191 SETTING_TRACE("Invalid selection");
196 setting_memory_main_click_softkey_back(void *data, Evas_Object *obj,
201 retm_if(data == NULL, "data == NULL");
203 SettingMemoryUG *ad = (SettingMemoryUG *) data;
205 /* Send destroy request */
206 ug_destroy_me(ad->ug);