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.
17 #include <setting-common-data-slp-setting.h>
18 #include <Elementary.h>
19 #include <setting-common-data-error.h>
20 #include <setting-debug.h>
23 #include <openssl/sha.h>
38 typedef struct vconf_node
40 int key; /** vconf id definded in Setting app */
41 const char* vconf_key; /** vconf string defined in libslp-setting */
42 vconftype type; /** BOOL, INT, STRING */
43 vconfval value; /** variable by union */
47 /** bool vconf table */
48 static VconfNode g_btable[] = {
50 {BOOL_SLP_SETTING_POWER_ON_LOCK, VCONFKEY_SETAPPL_STATE_POWER_ON_LOCK_BOOL, eBOOL, {0}}, // node[0]
51 {BOOL_SLP_SETTING_SIMPLE_PASSWORD, VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, eBOOL, {0}}, // node[0]
52 {BOOL_SLP_SETTING_PRIVACY_LOCK, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_BOOL, eBOOL, {0}}, // node[0]
53 {BOOL_SLP_SETTING_MOBILE_TRACKER,VCONFKEY_SETAPPL_FIND_MY_MOBILE_SIM_CHANGE_ALERT_BOOL, eBOOL, {0}},
54 {BOOL_SLP_SETTING_SIM_LOCK, VCONFKEY_SETAPPL_STATE_SIM_LOCK_BOOL, eBOOL, {0}},
55 {BOOL_SLP_SETTING_PIN_LOCK, VCONFKEY_SETAPPL_STATE_PIN_LOCK_BOOL, eBOOL, {0}},
56 {BOOL_SLP_SETTING_FIXED_DIALING_MODE, NULL, eBOOL,{0}},
57 {BOOL_SLP_SETTING_PRIVACY_LOCK_SELECT_ALL, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_SELECT_ALL_BOOL, eBOOL,{0}},
58 {BOOL_SLP_SETTING_PRIVACY_LOCK_MESSAGE, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_MESSAGE_BOOL, eBOOL,{0}},
60 {BOOL_SLP_SETTING_PRIVACY_LOCK_MY_FILES, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_MY_FILES_BOOL, eBOOL,{0}},
61 {BOOL_SLP_SETTING_PRIVACY_LOCK_CALLLOG, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_CALL_LOG_BOOL, eBOOL,{0}},
62 {BOOL_SLP_SETTING_PRIVACY_LOCK_CONTACT, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_CONTACT_BOOL, eBOOL,{0}},
63 {BOOL_SLP_SETTING_PRIVACY_LOCK_CALENDAR, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_CALENDAR_BOOL, eBOOL,{0}},
64 {BOOL_SLP_SETTING_PRIVACY_LOCK_MEMO, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_MEMO_BOOL, eBOOL,{0}},
65 {BOOL_SLP_SETTING_PRIVACY_LOCK_EMAIL, VCONFKEY_SETAPPL_STATE_PRIVACY_LOCK_EMAIL_BOOL, eBOOL,{0}},
66 {BOOL_SLP_SETTING_AUTOMATIC_TIME_UPDATE, VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, eBOOL,{0}},
67 {BOOL_SLP_SETTING_DST, VCONFKEY_SETAPPL_STATE_DST_BOOL, eBOOL,{0}},
68 {BOOL_SLP_SETTING_TICKER_NOTI_DISPLAY_CONTENT, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_DISPLAY_CONTENT_BOOL, eBOOL,{0}},
69 {BOOL_SLP_SETTING_TICKER_NOTI_RECV_SMS, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_SMS_BOOL, eBOOL,{0}},
71 {BOOL_SLP_SETTING_TICKER_NOTI_RECV_MMS_NOTI, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_MMS_NOTI_BOOL, eBOOL,{0}},
72 {BOOL_SLP_SETTING_TICKER_NOTI_RECV_MMS, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_MMS_BOOL, eBOOL,{0}},
73 {BOOL_SLP_SETTING_TICKER_NOTI_RECV_VOICEMAIL, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_VOICEMAIL_BOOL, eBOOL,{0}},
74 {BOOL_SLP_SETTING_TICKER_NOTI_RECV_EMAIL, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_EMAIL_BOOL, eBOOL,{0}},
75 {BOOL_SLP_SETTING_TICKER_NOTI_MSG_DELIVERY_REPORT, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MSG_DELIVERY_REPORT_BOOL, eBOOL,{0}},
76 {BOOL_SLP_SETTING_TICKER_NOTI_MSG_READ_REPORT, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MSG_READ_REPORT_BOOL, eBOOL,{0}},
77 {BOOL_SLP_SETTING_TICKER_NOTI_APP_DOWNLOADED, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_APP_DOWNLOADED_BOOL, eBOOL,{0}},
78 {BOOL_SLP_SETTING_TICKER_NOTI_FILE_DOWNLOADED, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_FILE_DOWNLOADED_BOOL, eBOOL,{0}},
79 {BOOL_SLP_SETTING_TICKER_NOTI_IM, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_IM_BOOL, eBOOL,{0}},
80 {BOOL_SLP_SETTING_TICKER_NOTI_FACE_BOOK, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_FACE_BOOK_BOOL, eBOOL,{0}},
82 {BOOL_SLP_SETTING_TICKER_NOTI_MY_SPACE, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MY_SPACE_BOOL, eBOOL,{0}},
83 {BOOL_SLP_SETTING_TICKER_NOTI_TWITTER, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_TWITTER_BOOL, eBOOL,{0}},
84 {BOOL_SLP_SETTING_TICKER_NOTI_MESSAGES, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MESSAGES_BOOL, eBOOL,{0}},
85 {BOOL_SLP_SETTING_TICKER_NOTI_VMAIL, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_VMAIL_BOOL, eBOOL,{0}},
86 {BOOL_SLP_SETTING_TICKER_NOTI_EMAIL, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_EMAIL_BOOL, eBOOL,{0}},
87 {BOOL_SLP_SETTING_TICKER_NOTI_SEVENEMAIL, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_RECV_SEVEN_EMAIL_BOOL, eBOOL,{0}},
88 {BOOL_SLP_SETTING_TICKER_NOTI_SNS, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_SNS_BOOL, eBOOL,{0}},
89 {BOOL_SLP_SETTING_TICKER_NOTI_FILE_TRAN, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_FILE_TRAN_BOOL, eBOOL,{0}},
90 {BOOL_SLP_SETTING_TICKER_NOTI_OSP, VCONFKEY_SETAPPL_STATE_TICKER_NOTI_OSP_BOOL, eBOOL,{0}},
91 {BOOL_SLP_SETTING_TRANSACTION_TRACKING, VCONFKEY_SETAPPL_STATE_TRANSACTION_TRACKING_BOOL, eBOOL,{0}},
93 {BOOL_SLP_SETTING_EXPIRY_REMINDER, VCONFKEY_SETAPPL_STATE_EXPIRY_REMINDER_BOOL, eBOOL,{0}},
94 {BOOL_SLP_SETTING_TVOUT_AUTOFULL_SCREEN, VCONFKEY_SETAPPL_TVOUT_AUTOFULL_SCREEN_BOOL, eBOOL,{0}},
95 {BOOL_SLP_SETTING_ADAPTIVE_MENU_ORDER, VCONFKEY_SETAPPL_STATE_ADAPTIVE_MENU_ORDER_BOOL, eBOOL,{0}},
96 {BOOL_SLP_SETTING_DATA_ROAMING, VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, eBOOL,{0}},
97 {BOOL_SLP_SETTING_TOUCH_PANEL_AUTOLOCK, VCONFKEY_SETAPPL_STATE_TOUCH_PANEL_AUTOLOCK_BOOL, eBOOL,{0}},
98 {BOOL_SLP_SETTING_USE_NETWORK_BY_WIDGETS, VCONFKEY_SETAPPL_STATE_USE_NETWORK_BY_WIDGETS_BOOL, eBOOL,{0}},
99 {BOOL_SLP_SETTING_AUTOMATIC_BRIGHTNESS, VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_BOOL, eBOOL,{0}}, /* set by manul or not. 0:manul, 1:not */
100 {BOOL_SLP_SETTING_ASK_ON_CONNECTION, NULL, eBOOL,{0}}, /* nothing */
101 {BOOL_SLP_SETTING_USB_DEBUG_MODE, VCONFKEY_SETAPPL_USB_DEBUG_MODE, eBOOL,{0}},
103 {BOOL_SLP_SETTING_USE_PACKET_DATA, VCONFKEY_3G_ENABLE, eBOOL,{0}},
104 {BOOL_SLP_SETTING_LAUNCH_IMAGE,VCONFKEY_LAUNCH_EFFECT, eBOOL,{0}},
105 {BOOL_SLP_SETTING_ACCESSIBILITY_ACCESSIBILITY, VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY, eBOOL,{0}},
106 {BOOL_SLP_SETTING_ACCESSIBILITY_HIGH_CONTRAST, VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, eBOOL,{0}},
107 {BOOL_SLP_SETTING_ACCESSIBILITY_SCREEN_ZOOM, VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_ZOOM, eBOOL,{0}},
108 {BOOL_SLP_SETTING_ACCESSIBILITY_ASSISTIVE_LIGHT, VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, eBOOL,{0}},
109 {BOOL_SLP_SETTING_ACCESSIBILITY_MONO_AUDIO, VCONFKEY_SETAPPL_ACCESSIBILITY_MONO_AUDIO, eBOOL,{0}},
110 {BOOL_SLP_SETTING_ACCESSIBILITY_ACCEPT_CALL, VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, eBOOL,{0}},
111 {BOOL_SLP_SETTING_ACCESSIBILITY_POWERKEY_END_CALLS, VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, eBOOL,{0}},
114 /** int vconf table */
115 static VconfNode g_itable[] = {
116 {INT_SLP_SETTING_LCD_BRIGHTNESS, VCONFKEY_SETAPPL_LCD_BRIGHTNESS, eINT, {0}},
117 {INT_SLP_SETTING_LCD_TIMEOUT_NORMAL,VCONFKEY_SYSMAN_LCD_TIMEOUT_NORMAL, eINT, {0}},
118 {INT_SLP_SETTING_LCD_TIMEOUT_NORMAL_BACKUP,VCONFKEY_LCD_TIMEOUT_NORMA_BACKUP, eINT, {0}},
119 {INT_SLP_SETTING_SELECT_NETWORK,VCONFKEY_SETAPPL_SELECT_NETWORK_INT, eINT, {0}},
121 {INT_SLP_SETTING_NETWORK_MODE,VCONFKEY_SETAPPL_NETWORK_MODE_INT, eINT, {0}},
122 {INT_SLP_SETTING_REGIONFORMAT_TIME1224,VCONFKEY_REGIONFORMAT_TIME1224, eINT, {0}},
123 {INT_SLP_SETTING_DATE_FORMAT,VCONFKEY_SETAPPL_DATE_FORMAT_INT, eINT, {0}},
124 {INT_SLP_SETTING_WEEK_FORMAT,VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, eINT, {0}},
125 /* CALL_ALERT_TYPE */
126 {INT_SLP_SETTING_CALL_ALERT_TYPE, NULL, eINT, {0}},
127 {INT_SLP_SETTING_NORMAL_CALL_ALERT_TYPE, NULL, eINT, {0}},
128 {INT_SLP_SETTING_SILENT_CALL_ALERT_TYPE, NULL, eINT, {0}},
129 {INT_SLP_SETTING_DRIVING_CALL_ALERT_TYPE, NULL, eINT, {0}},
130 {INT_SLP_SETTING_MEETING_CALL_ALERT_TYPE, NULL, eINT, {0}},
131 {INT_SLP_SETTING_OUTDOOR_CALL_ALERT_TYPE, NULL, eINT, {0}},
133 {INT_SLP_SETTING_CALL_ALERT_VIB, VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT, eINT, {0}},
134 {INT_SLP_SETTING_NORMAL_CALL_ALERT_VIB, NULL, eINT, {0}},
135 {INT_SLP_SETTING_SILENT_CALL_ALERT_VIB, NULL, eINT, {0}},
136 {INT_SLP_SETTING_DRIVING_CALL_ALERT_VIB, NULL, eINT, {0}},
137 {INT_SLP_SETTING_MEETING_CALL_ALERT_VIB, NULL, eINT, {0}},
138 {INT_SLP_SETTING_OUTDOOR_CALL_ALERT_VIB, NULL, eINT, {0}},
141 {INT_SLP_SETTING_CALL_ALERT_VOLUME, NULL, eINT, {0}},
143 {INT_SLP_SETTING_MSG_ALERT_TYPE, NULL, eINT, {0}},
144 {INT_SLP_SETTING_NORMAL_MSG_ALERT_TYPE, NULL, eINT, {0}},
145 {INT_SLP_SETTING_SILENT_MSG_ALERT_TYPE, NULL, eINT, {0}},
146 {INT_SLP_SETTING_DRIVING_MSG_ALERT_TYPE, NULL, eINT, {0}},
147 {INT_SLP_SETTING_MEETING_MSG_ALERT_TYPE, NULL, eINT, {0}},
148 {INT_SLP_SETTING_OUTDOOR_MSG_ALERT_TYPE, NULL, eINT, {0}},
150 {INT_SLP_SETTING_MSG_ALERT_VIB, NULL, eINT, {0}},
151 {INT_SLP_SETTING_NORMAL_MSG_ALERT_VIB, NULL, eINT, {0}},
152 {INT_SLP_SETTING_SILENT_MSG_ALERT_VIB, NULL, eINT, {0}},
153 {INT_SLP_SETTING_DRIVING_MSG_ALERT_VIB, NULL, eINT, {0}},
154 {INT_SLP_SETTING_MEETING_MSG_ALERT_VIB, NULL, eINT, {0}},
155 {INT_SLP_SETTING_OUTDOOR_MSG_ALERT_VIB, NULL, eINT, {0}},
158 {INT_SLP_SETTING_MSG_ALERT_REPEAT,VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, eINT, {0}},
159 {INT_SLP_SETTING_EMAIL_ALERT_REPEAT,VCONFKEY_SETAPPL_NOTI_EMAIL_ALERT_REP_TYPE_INT, eINT, {0}},
160 {INT_SLP_SETTING_CALENDAR_ALERT_REPEAT,VCONFKEY_SETAPPL_NOTI_CALENDAR_ALERT_REP_TYPE_INT, eINT, {0}},
163 {INT_SLP_SETTING_MSG_ALERT_VOLUME, NULL, eINT, {0}},
164 {INT_SLP_SETTING_SYS_TOUCH_SOUND, NULL, eINT, {0}},
165 {INT_SLP_SETTING_SYS_TOUCH_SOUND_VOLUME, NULL, eINT, {0}},
166 {INT_SLP_SETTING_FONT_SIZE,VCONFKEY_SETAPPL_FONT_SIZE_INT, eINT, {0}},
167 {INT_SLP_SETTING_FONT_TYPE,VCONFKEY_SETAPPL_FONT_TYPE_INT, eINT, {0}},
168 {INT_SLP_SETTING_TVOUT_TVSYSTEM,VCONFKEY_SETAPPL_TVOUT_TVSYSTEM_INT, eINT, {0}},
169 {INT_SLP_SETTING_TVOUT_RESOLUTION,VCONFKEY_SETAPPL_TVOUT_RESOLUTION_INT, eINT, {0}},
170 {INT_SLP_SETTING_TVOUT_SCREENSIZE,VCONFKEY_SETAPPL_TVOUT_SCREENSIZE_INT, eINT, {0}},
171 {INT_SLP_SETTING_TVOUT_ROTATION,VCONFKEY_SETAPPL_TVOUT_ROTATION_INT, eINT, {0}},
172 {INT_SLP_SETTING_LANG,VCONFKEY_SETAPPL_LANG_INT, eINT, {0}},
173 {INT_SLP_SETTING_BT_STATUS,VCONFKEY_BT_STATUS, eINT, {0}},
174 {INT_SLP_SETTING_WIFI_STATUS,VCONFKEY_WIFI_STATE, eINT, {0}},
175 {INT_SLP_SETTING_MOBILE_AP_STATUS,VCONFKEY_MOBILE_HOTSPOT_MODE, eINT, {0}},
176 {INT_SLP_SETTING_VIB_FEEDBACK,VCONFKEY_SETAPPL_VIB_FEEDBACK_INT, eINT, {0}},
177 {INT_SLP_SETTING_ROAMING_NETWORK,VCONFKEY_SETAPPL_ROAMING_NETWORK_INT, eINT, {0}},
178 {INT_SLP_SETTING_USB_MODE,VCONFKEY_SETAPPL_USB_MODE_INT, eINT, {0}},
180 {INT_SLP_SETTING_MENUSCREEN_VIEWTYPE, NULL, eINT, {0}},
181 {INT_SLP_SETTING_TASKSWITCHER_VIEWTYPE,VCONFKEY_TASKSWITCHER_VIEWTYPE, eINT, {0}},
184 {INT_SLP_SETTING_DEFAULT_MEM_WAP,VCONFKEY_SETAPPL_DEFAULT_MEM_WAP_INT, eINT, {0}},
185 {INT_SLP_SETTING_DEFAULT_MEM_BLUETOOTH,VCONFKEY_SETAPPL_DEFAULT_MEM_BLUETOOTH_INT, eINT, {0}},
186 {INT_SLP_SETTING_DEFAULT_MEM_CAMERA,VCONFKEY_SETAPPL_DEFAULT_MEM_CAMERA_INT, eINT, {0}},
187 {INT_SLP_SETTING_DEFAULT_MEM_VOICE_RECORDER,VCONFKEY_SETAPPL_DEFAULT_MEM_VOICE_RECORDER_INT, eINT, {0}},
188 {INT_SLP_SETTING_DEFAULT_MEM_FM_RADIO,VCONFKEY_SETAPPL_DEFAULT_MEM_FM_RADIO_INT, eINT, {0}},
189 {INT_SLP_SETTING_DEFAULT_MEM_ALL_SHARE,VCONFKEY_SETAPPL_DEFAULT_MEM_ALL_SHARE_INT, eINT, {0}},
190 {INT_SLP_SETTING_DEFAULT_MEM_ADOBE_AIR,VCONFKEY_SETAPPL_DEFAULT_MEM_ADOBE_AIR_INT, eINT, {0}},
193 {INT_SLP_SETTING_MOBILE_TRACKER_RECIPIENT_ONE_INDEX,NULL, eINT, {0}},
194 {INT_SLP_SETTING_MOBILE_TRACKER_RECIPIENT_TWO_INDEX,NULL, eINT, {0}},
195 {INT_SLP_SETTING_MOBILE_TRACKER_RECIPIENT_THREE_INDEX,NULL, eINT, {0}},
196 {INT_SLP_SETTING_MOBILE_TRACKER_RECIPIENT_FOUR_INDEX,NULL, eINT, {0}},
197 {INT_SLP_SETTING_MOBILE_TRACKER_RECIPIENT_FIVE_INDEX,NULL, eINT, {0}},
199 /* special type. this type check multi slp key. */
200 {INT_SLP_SETTING_SPECIAL_FONT, NULL, eINT, {0}},
201 {INT_SLP_SETTING_SPECIAL_BRIGHTNESS, NULL, eINT, {0}},
204 {INT_SLP_SETTING_SIM_SLOT,VCONFKEY_TELEPHONY_SIM_SLOT, eINT, {0}},
205 {INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT,VCONFKEY_SETAPPL_PHONE_LOCK_ATTEMPTS_LEFT_INT, eINT, {0}},
206 {INT_SLP_SETTING_SIM_LOCK_ATTEMPTS_LEFT,VCONFKEY_SETAPPL_SIM_LOCK_ATTEMPTS_LEFT_INT, eINT, {0}},
208 // accessibility setting
209 {INT_SLP_SETTING_ACCESSIBILITY_ENABLE_AUTO_ANSWER, VCONFKEY_CISSAPPL_ANSWERING_MODE_INT, eINT,{0}},
210 {INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, eINT, {0}},
211 {INT_SLP_SETTING_ACCESSIBILITY_FONT_STYLE,VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_STYLE, eINT, {0}},
212 {INT_SLP_SETTING_ACCESSIBILITY_AUTO_ANSWER, VCONFKEY_CISSAPPL_ANSWERING_MODE_TIME_INT, eINT, {0}},
213 {INT_SLP_SETTING_ACCESSIBILITY_POWER_KEY_HOLD, VCONFKEY_SETAPPL_ACCESSIBILITY_POWER_KEY_HOLD, eINT, {0}},
215 {INT_SLP_SETTING_POWERSAVING_AT, VCONFKEY_SETAPPL_POWERSAVING_AT, eINT, {0}},
216 {INT_SLP_SETTING_POWERSAVING_SCREEN_TIMEOUT, VCONFKEY_SETAPPL_POWERSAVING_SCREEN_TIMEOUT, eINT, {0}},
220 /** string vconf table */
221 static VconfNode g_ctable[] = {
222 { STR_SLP_LIST_PHONE_PASSWORD, NULL, eSTRING,/* union*/ },
223 { STR_SLP_LIST_PRIVACY_PASSWORD, VCONFKEY_SETAPPL_PRIVACY_PASSWD_STR, eSTRING, },
224 { STR_SLP_SETTING_CALL_RINGTONE_PATH, NULL, eSTRING, },
225 { STR_SLP_SETTING_MSG_RINGTONE_PATH, NULL, eSTRING, },
226 { STR_SLP_SETTING_SYS_RINGTONE_PATH, NULL, eSTRING, },
227 { STR_SLP_LIST_MOBILE_CONTACT_ONE,NULL, eSTRING, },
228 { STR_SLP_LIST_MOBILE_CONTACT_TWO,NULL, eSTRING, },
229 { STR_SLP_LIST_MOBILE_CONTACT_THREE,NULL, eSTRING, },
230 { STR_SLP_LIST_MOBILE_CONTACT_FOUR,NULL, eSTRING, },
231 { STR_SLP_LIST_MOBILE_CONTACT_FIVE,NULL, eSTRING, },
232 { STR_SLP_LIST_MOBILE_CONTACT_SENDER,VCONFKEY_SETAPPL_FIND_MY_MOBILE_SENDER_STR, eSTRING, },
233 { STR_SLP_LIST_MOBILE_CONTACT_MESSAGE,VCONFKEY_SETAPPL_FIND_MY_MOBILE_MESSAGE_STR, eSTRING, },
234 { STR_SLP_LIST_MOBILE_SIM_ICCID,NULL, eSTRING, },
235 { STR_SLP_SETTING_WALLPAPER_PATH,VCONFKEY_BGSET, eSTRING, },
236 { STR_SLP_SETTING_LOCK_WALLPAPER_PATH,VCONFKEY_IDLE_LOCK_BGSET, eSTRING, },
237 { STR_SLP_SETTING_THEME_NAME, "db/setting/selected_theme", eSTRING, },
238 { STR_SLP_SETTING_PHONE_LOCK_TIMESTAMP,VCONFKEY_SETAPPL_PHONE_LOCK_TIMESTAMP_STR, eSTRING, },
239 { STR_SLP_SETTING_SIM_LOCK_TIMESTAMP,VCONFKEY_SETAPPL_SIM_LOCK_TIMESTAMP_STR, eSTRING, },
243 int set_vconf(VconfNode node,VconfNode *result)
253 ret = vconf_set_bool(node.vconf_key, node.value.b);
254 result->type = eBOOL;
255 result->value.b = node.value.b;
256 SETTING_TRACE("KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result->key, result->vconf_key, result->type, result->value.b);
259 SETTING_TRACE("begin case eINT");
260 ret = vconf_set_int(node.vconf_key, node.value.i);
262 result->value.i = node.value.i;
263 SETTING_TRACE("KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result->key, result->vconf_key, result->type, result->value.i);
264 SETTING_TRACE("end case eINT");
267 if (node.key == STR_SLP_LIST_PHONE_PASSWORD) {
268 ret = setting_store_init_password(node.value.c);
270 ret = vconf_set_str(node.vconf_key, node.value.c);
272 result->type = eSTRING;
273 result->value.c = node.value.c;
274 SETTING_TRACE("KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result->key, result->vconf_key, result->type, result->value.c);
277 SETTING_TRACE(">>>>>>>>>> node.type is NOT DEFINED");
281 //SETTING_TRACE("KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result->key, result->vconf_key, result->type, result->value.i);
286 int get_vconf(VconfNode node, VconfNode* result)
290 char md_result[SHA256_DIGEST_LENGTH];
291 memset(md_result, 0x0, SHA256_DIGEST_LENGTH);
299 ret = vconf_get_bool(node.vconf_key, &(node.value.b));
300 result->type = eBOOL;
301 result->value.b = node.value.b;
304 ret = vconf_get_int(node.vconf_key, &(node.value.i));
306 result->value.i = node.value.i;
309 if (node.key == STR_SLP_LIST_PHONE_PASSWORD)
311 node.value.c = (char*)malloc(sizeof(char) * SHA256_DIGEST_LENGTH);
313 memset(node.value.c, 0x0, SHA256_DIGEST_LENGTH);
315 SETTING_TRACE_ERROR(" malloc filed : eSTRING, node.value.c ");
316 ret = SETTING_RETURN_FAIL;
320 if (setting_read_password(md_result) == 0) {
321 memcpy(node.value.c, md_result, SHA256_DIGEST_LENGTH); /* un-safe */
323 result->type = eSTRING;
324 result->value.c = node.value.c;
325 ret = SETTING_RETURN_SUCCESS;
328 ret = SETTING_RETURN_FAIL;
332 node.value.c = vconf_get_str(node.vconf_key);
333 SETTING_TRACE("string type ---> %s ", node.value.c);
334 result->type = eSTRING;
335 result->value.c = node.value.c;
336 ret = SETTING_RETURN_SUCCESS;
340 SETTING_TRACE_ERROR(">>>>>>>>>>>>>>>>>>>>>>> get vconf ERROR : %s ", node.vconf_key );
346 int setting_set_bool_slp_key(setting_bool_slp_list key, int value, int *err)
349 int ret = SETTING_RETURN_FAIL;
352 if (key < 0 || key >= SETTING_BOOL_SLP_LIST_MAX) {
353 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
358 g_btable[key].value.b = value;
359 ret = set_vconf(g_btable[key],&result);
361 SETTING_TRACE("setting_set_bool ::: KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result.key, result.vconf_key, result.type, result.value.b);
366 int setting_get_bool_slp_key(setting_bool_slp_list key, int *value, int *err)
369 int ret = SETTING_RETURN_FAIL;
372 if (key < 0 || key >= SETTING_BOOL_SLP_LIST_MAX) {
373 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
374 SETTING_TRACE_ERROR(" <<<<<<<< key is invalid >>>>>>>>>>>>> ");
378 ret = get_vconf(g_btable[key], &result);
379 //*value = g_btable[key].value.b;
380 *value = result.value.b;
385 int setting_set_int_slp_key(setting_int_slp_list key, int value, int *err)
388 int ret = SETTING_RETURN_FAIL;
391 if (key < 0 || key >= SETTING_INT_SLP_LIST_MAX) {
392 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
393 SETTING_TRACE(">>> key is invalid ");
398 g_itable[key].value.i = value;
399 ret = set_vconf(g_itable[key],&result);
401 SETTING_TRACE("setting_set_int ::: KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result.key, result.vconf_key, result.type, result.value.i);
406 /* return -1: fail cannot use err to check the result, return value instead*/
407 int setting_get_int_slp_key(setting_int_slp_list key, int *value, int *err)
410 int ret = SETTING_RETURN_FAIL;
413 if (key < 0 || key >= SETTING_INT_SLP_LIST_MAX) {
414 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
419 ret = get_vconf(g_itable[key], &result);
420 //*value = g_itable[key].value.i;
421 *value = result.value.i;
428 int setting_get_string_slp_key(setting_str_slp_list key, char *value, int *err)
431 int ret = SETTING_RETURN_FAIL;
434 if (key < 0 || key >= STR_SLP_LIST_MAX || NULL == value) {
435 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
439 /** @todo check memory leack when passwork checking */
441 ret = get_vconf(g_ctable[key], &result);
445 safeCopyStr(value, result.value.c, strlen(result.value.c));
446 SETTING_TRACE(">>>>>>>> %s <<<<<<<<", value);
447 FREE(result.value.c);
449 SETTING_TRACE("get_vconf is failed");
456 int setting_set_string_slp_key(setting_str_slp_list key, char *value, int *err)
458 int ret = SETTING_RETURN_FAIL;
461 if (key < 0 || key >= STR_SLP_LIST_MAX) {
462 *err = SETTING_GENERAL_ERR_WRONG_PARAMETER;
467 g_ctable[key].value.c = value;
468 ret = set_vconf(g_ctable[key], &result);
469 g_ctable[key].value.c = "";
471 SETTING_TRACE("setting_set_str ::: KEY:%d VCONF_KEY=%s TYPE=%d VALUE=%d ", result.key, result.vconf_key, result.type, result.value.c);
476 /** @todo don't use i18n string directly. */
477 static const setting_lang_entry lang_table[] = {
478 { SETTING_LANG_AUTOMATIC, "auto", "Automatic"},
479 { SETTING_LANG_KOREA, "ko_KR.UTF-8", "한국어"},
480 { SETTING_LANG_ENGLISH, "en_US.UTF-8", "English"},
481 { SETTING_LANG_CHINA, "zh_CN.UTF-8", "简体中文"},
482 { SETTING_LANG_CANTONESE, "zh_HK.UTF-8", "繁體中文(香港)"},
483 { SETTING_LANG_TAIWAN, "zh_TW.UTF-8", "繁體中文(台灣)"},
484 { SETTING_LANG_GERMAN, "de_DE.UTF-8", "Deutsch"},
485 { SETTING_LANG_DUTCH, "nl_NL.UTF-8", "Nederlands"},
486 { SETTING_LANG_SPAINISH, "es_ES.UTF-8", "Español"},
487 { SETTING_LANG_PORTUGUESE, "pt_PT.UTF-8", "Português"},
488 { SETTING_LANG_GREEK, "el_GR.UTF-8", "Eλληνικά"},
489 { SETTING_LANG_ITALIAN, "it_IT.UTF-8", "Italiano"},
490 { SETTING_LANG_FRENCH, "fr_FR.UTF-8", "Français"},
491 { SETTING_LANG_TURKISH, "tr_TR.UTF-8", "Türkçe"},
492 { SETTING_LANG_JAPAN, "ja_JP.UTF-8", "にほんご"},
493 { SETTING_LANG_RUSSIAN, "ru_RU.UTF-8", "Россию"},
496 setting_lang_entry* setting_get_language_table()
498 return (setting_lang_entry*)lang_table;
501 //////////////////////////////////////////////////////////////////////////////////////////
502 int setting_store_init_password(char *in)
506 char md[SHA256_DIGEST_LENGTH];
508 int ret = SETTING_RETURN_FAIL;
510 SHA256_Init(&context);
511 SHA256_Update(&context, (char *)in, strlen(in));
512 SHA256_Final((unsigned char *)md, &context);
515 SETTING_TRACE("input: [%s]\n", in);
516 SETTING_TRACE("output: [");
517 for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
518 SETTING_TRACE("%02x", md[i]);
519 SETTING_TRACE("]\n");
522 /* create a file or store a data */
526 fp = fopen(PWD_FILE, "w+");
528 ret_fw = fwrite(md, 1, SHA256_DIGEST_LENGTH, fp);
529 SETTING_TRACE_DEBUG("fwrite() wrote %d chars.", ret_fw);
530 if(ret_fw == SHA256_DIGEST_LENGTH)
534 ret = SETTING_RETURN_SUCCESS;
538 SETTING_TRACE("ERR: pwd file is not exist \n");
544 int setting_read_password(char *md_result)
549 fp = fopen(PWD_FILE, "r");
551 fread(md_result, sizeof(char), SHA256_DIGEST_LENGTH, fp);
554 SETTING_TRACE("ERR: pwd file is not exist \n");
555 return SETTING_RETURN_FAIL;
559 SETTING_TRACE("output from file: [");
560 for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
561 SETTING_TRACE("%02x", md_result[i]);
562 SETTING_TRACE("]\n");
568 int setting_compare_password(char *md_result, const char *in_later)
571 SHA256_CTX context_later;
572 char md_later[SHA256_DIGEST_LENGTH];
573 int ret = SETTING_RETURN_FAIL;
575 SHA256_Init(&context_later);
576 SHA256_Update(&context_later, (char *)in_later, strlen(in_later));
577 SHA256_Final((unsigned char *)md_later, &context_later);
579 SETTING_TRACE(" :[ %25s ]", in_later);
581 if (0 == memcmp(md_later, md_result, SHA256_DIGEST_LENGTH)) {
582 SETTING_TRACE("two passwords are same \n");
585 SETTING_TRACE("two passwords are different \n");