2 * Copyright (c) 2012, 2013 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://floralicense.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.
20 #include "ug-nfc-setting-main.h"
22 static Elm_Genlist_Item_Class itc_sep;
23 static Elm_Genlist_Item_Class itc_sep_help;
24 static Elm_Genlist_Item_Class itc_helptext;
25 static Elm_Genlist_Item_Class itc_1text1icon;
28 static void __radio_changed_cb(void *data, Evas_Object *obj,
33 value = elm_radio_value_get(obj);
35 if (value == NFC_SECURE_STORAGE_MAN) {
36 if (vconf_set_int(VCONFKEY_NFC_WALLET_MODE,
37 VCONFKEY_NFC_WALLET_MODE_MANUAL)) {
38 LOGE("vconf_set_int failed");
40 } else if (value == NFC_SECURE_STORAGE_AUTO) {
41 if (vconf_set_int(VCONFKEY_NFC_WALLET_MODE,
42 VCONFKEY_NFC_WALLET_MODE_AUTOMATIC)) {
43 LOGE("vconf_set_int failed");
48 static char *__gl_text_get(void *data, Evas_Object *obj, const char *part)
50 int index = (int) data;
53 //LOGD("part:%s", part);
54 //LOGD("index:%d", index);
57 text = strdup(IDS_NFC_SECURE_STORAGE_ITEM_MAN);
58 } else if (index == 1) {
59 text = strdup(IDS_NFC_SECURE_STORAGE_ITEM_AUTO);
65 static char *__gl_text_get_des(void *data, Evas_Object *obj,
68 int index = (int) data;
71 //LOGD("part:%s", part);
72 //LOGD("index:%d", index);
75 text = strdup(IDS_NFC_SECURE_STORAGE_ITEM_MAN_DSC);
76 } else if (index == 1) {
77 text = strdup(IDS_NFC_SECURE_STORAGE_ITEM_AUTO_DSC);
83 static Evas_Object *__gl_content_get(void *data, Evas_Object *obj,
86 int index = (int) data;
87 Evas_Object *content = NULL;
88 Evas_Object *radio_group;
92 //LOGD("part:%s", part);
93 //LOGD("index:%d", index);
95 if (!strcmp(part, "elm.icon")) {
97 radio_group = evas_object_data_get(obj, "radio");
99 content = elm_radio_add(obj);
100 elm_radio_state_value_set(content,
101 NFC_SECURE_STORAGE_MAN);
102 elm_radio_group_add(content, radio_group);
103 evas_object_propagate_events_set(content, EINA_FALSE);
104 evas_object_smart_callback_add(content, "changed",
105 __radio_changed_cb, NULL);
107 if ((!vconf_get_int(VCONFKEY_NFC_WALLET_MODE, &intval)) &&
108 (intval == VCONFKEY_NFC_WALLET_MODE_MANUAL)) {
109 elm_radio_value_set(content,
110 NFC_SECURE_STORAGE_MAN);
112 } else if (index == 1) {
113 radio_group = evas_object_data_get(obj, "radio");
115 content = elm_radio_add(obj);
116 elm_radio_state_value_set(content,
117 NFC_SECURE_STORAGE_AUTO);
118 elm_radio_group_add(content, radio_group);
119 evas_object_propagate_events_set(content, EINA_FALSE);
120 evas_object_smart_callback_add(content, "changed",
121 __radio_changed_cb, NULL);
123 if ((!vconf_get_int(VCONFKEY_NFC_WALLET_MODE, &intval)) &&
124 (intval == VCONFKEY_NFC_WALLET_MODE_AUTOMATIC)) {
125 elm_radio_value_set(content,
126 NFC_SECURE_STORAGE_AUTO);
134 static void __gl_sel(void *data, Evas_Object *obj, void *event_info)
136 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
143 elm_genlist_item_selected_set(item, 0);
145 index = (int) elm_object_item_data_get(item);
146 LOGD("index:%d", index);
149 radio = elm_object_item_part_content_get(item, "elm.icon");
151 elm_radio_value_set(radio, NFC_SECURE_STORAGE_MAN);
152 if (!vconf_set_int(VCONFKEY_NFC_WALLET_MODE,
153 VCONFKEY_NFC_WALLET_MODE_MANUAL)) {
154 LOGD("vconf_set_int success");
156 } else if (index == 1) {
157 radio = elm_object_item_part_content_get(item,"elm.icon");
159 elm_radio_value_set(radio, NFC_SECURE_STORAGE_AUTO);
160 if (!vconf_set_int(VCONFKEY_NFC_WALLET_MODE,
161 VCONFKEY_NFC_WALLET_MODE_AUTOMATIC)) {
162 LOGD("vconf_set_int success");
165 elm_genlist_item_update(item);
168 static void __genlist_free_cb(void *data, Evas *e, Evas_Object *obj,
171 Evas_Object *radio_group = evas_object_data_get(obj, "radio");
174 evas_object_del(radio_group);
177 static Evas_Object *__create_secure_storage_list(void *data)
179 ugdata_t *ug_data = (ugdata_t *) data;
180 Elm_Object_Item* separator;
181 Evas_Object *genlist, *radio_group;
186 genlist = elm_genlist_add(ug_data->base_naviframe);
188 LOGE("elm_genlist_add failed");
192 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
193 evas_object_event_callback_add(genlist, EVAS_CALLBACK_FREE,
194 __genlist_free_cb, NULL);
196 radio_group = elm_radio_add(genlist);
197 elm_radio_state_value_set(radio_group, 0);
198 elm_radio_value_set(radio_group, 0);
199 evas_object_data_set(genlist, "radio", radio_group);
201 itc_sep.item_style = "dialogue/separator";
202 itc_sep.func.text_get = NULL;
203 itc_sep.func.content_get = NULL;
204 itc_sep.func.state_get = NULL;
205 itc_sep.func.del = NULL;
207 itc_sep_help.item_style = "dialogue/separator.2";
208 itc_sep_help.func.text_get = NULL;
209 itc_sep_help.func.content_get = NULL;
210 itc_sep_help.func.state_get = NULL;
211 itc_sep_help.func.del = NULL;
213 itc_1text1icon.item_style = "dialogue/1text.1icon.3";
214 itc_1text1icon.func.text_get = __gl_text_get;
215 itc_1text1icon.func.content_get = __gl_content_get;
216 itc_1text1icon.func.state_get = NULL;
217 itc_1text1icon.func.del = NULL;
219 itc_helptext.item_style = "multiline/1text";
220 itc_helptext.func.text_get = __gl_text_get_des;
221 itc_helptext.func.content_get = NULL;
222 itc_helptext.func.state_get = NULL;
223 itc_helptext.func.del = NULL;
226 separator = elm_genlist_item_append(genlist, &itc_sep, NULL, NULL,
227 ELM_GENLIST_ITEM_NONE, NULL, NULL);
228 elm_genlist_item_select_mode_set(separator,
229 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
230 elm_object_item_access_unregister(separator);
232 /* Manual item : index 0 */
233 elm_genlist_item_append(genlist, &itc_1text1icon, (void *)0, NULL,
234 ELM_GENLIST_ITEM_NONE, __gl_sel, NULL);
235 separator = elm_genlist_item_append(genlist, &itc_sep_help,
236 NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
237 elm_genlist_item_select_mode_set(separator,
238 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
239 elm_object_item_access_unregister(separator);
242 elm_genlist_item_append(genlist, &itc_helptext, (void *) 0,
243 NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
244 separator = elm_genlist_item_append(genlist, &itc_sep, NULL, NULL,
245 ELM_GENLIST_ITEM_NONE, NULL, NULL);
246 elm_genlist_item_select_mode_set(separator,
247 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
248 elm_object_item_access_unregister(separator);
250 /* Automatic item + separator */
251 elm_genlist_item_append(genlist, &itc_1text1icon, (void *)1, NULL,
252 ELM_GENLIST_ITEM_NONE, __gl_sel, NULL);
253 separator = elm_genlist_item_append(genlist, &itc_sep_help,
254 NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
255 elm_genlist_item_select_mode_set(separator,
256 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
257 elm_object_item_access_unregister(separator);
260 elm_genlist_item_append(genlist, &itc_helptext, (void *) 1,
261 NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
262 separator = elm_genlist_item_append(genlist, &itc_sep, NULL, NULL,
263 ELM_GENLIST_ITEM_NONE, NULL, NULL);
264 elm_genlist_item_select_mode_set(separator,
265 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
266 elm_object_item_access_unregister(separator);
271 static Eina_Bool __destroy_secure_storage_list(void *data,
274 ugdata_t *ug_data = (ugdata_t *)data;
276 if (ug_data && ug_data->ns_genlist) {
277 elm_genlist_realized_items_update(ug_data->ns_genlist);
283 void _ug_nfc_secure_storage_create(void *data)
285 ugdata_t *ug_data = (ugdata_t *)data;
286 Evas_Object *genlist;
289 LOGE("invalid paramater");
293 /* create setting view */
294 ug_data->ss_genlist = genlist = __create_secure_storage_list(ug_data);
299 ug_data->base_navi_it = elm_naviframe_item_push(ug_data->base_naviframe,
300 IDS_NFC_SECURE_STORAGE_HEADER, NULL, NULL, genlist, NULL);
301 elm_naviframe_item_pop_cb_set(ug_data->base_navi_it,
302 __destroy_secure_storage_list, ug_data);