2 * Copyright (c) 2012 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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.
23 #include <app_preference.h>
26 #include "languages.h"
31 #define SOUND_ON FALSE
32 #define VIBRATION_ON FALSE
33 #define PREVIEW_ON FALSE
34 #define AUTOPUNCTUATE_ON TRUE
35 #define FLOATING_MODE FALSE
38 #define VIBRATION_ON FALSE
39 #define PREVIEW_ON FALSE
40 #define AUTOPUNCTUATE_ON TRUE
41 #define FLOATING_MODE FALSE
44 #define VIBRATION_ON FALSE
45 #define PREVIEW_ON TRUE
46 #define AUTOPUNCTUATE_ON FALSE
47 #define FLOATING_MODE FALSE
50 CONFIG_VALUES::CONFIG_VALUES()
52 keypad_mode = KEYPAD_MODE_QTY; // keypad_mode
53 prediction_on = FALSE; // prediction_on
54 auto_capitalise = TRUE;
55 auto_punctuate = AUTOPUNCTUATE_ON;
57 vibration_on = VIBRATION_ON;
58 preview_on = PREVIEW_ON;
59 floating_mode = FALSE;
60 first_guideset = FALSE;
61 first_guidechange = FALSE;
62 number_tutorial_enable = TRUE;
63 symbol_tutorial_enable = FALSE;
67 static CONFIG_VALUES g_config_values;
69 CONFIG_VALUES* get_config_values()
71 return &g_config_values;
74 void read_ise_config_string(const char *key, std::string &value)
76 char *pref_str = NULL;
79 ret = preference_get_string(key, &pref_str);
81 if (ret == PREFERENCE_ERROR_NONE)
82 value.assign(pref_str, strlen(pref_str));
88 void read_ise_config_int(const char *key, sclint &config_variable, sclint default_value)
90 sclint integer_value = default_value;
91 preference_get_int(key, &integer_value);
92 config_variable = integer_value;
95 void read_ise_config_bool(const char *key, sclboolean &config_variable, sclint default_value)
97 sclint value = default_value;
98 preference_get_int(key, &value);
99 config_variable = value;
102 void read_ise_keypad_mode()
105 read_ise_config_int(ISE_CONFIG_KEYPAD_MODE, value, KEYPAD_MODE_QTY);
106 CONFIG_VALUES *config_values = get_config_values();
107 if (config_values) config_values->keypad_mode = static_cast<KEYPAD_MODE>(value);
110 void read_ise_prediction_mode()
113 read_ise_config_bool(ISE_CONFIG_PREDICTION_ON, value, false);
114 CONFIG_VALUES *config_values = get_config_values();
115 if (config_values) config_values->prediction_on = value;
118 void read_ise_autocapital_mode()
121 read_ise_config_bool(ISE_CONFIG_AUTO_CAPITALISE, value, true);
122 CONFIG_VALUES *config_values = get_config_values();
123 if (config_values) config_values->auto_capitalise = value;
126 void read_ise_enabled_languages()
128 CONFIG_VALUES *config_values = get_config_values();
129 if (!config_values) return;
131 std::string string_value;
134 read_ise_config_string(ISE_CONFIG_ENABLED_LANGUAGES, string_value);
135 if (string_value.length() > 0) {
136 std::stringstream ss(string_value);
137 std::istream_iterator<std::string> begin(ss);
138 std::istream_iterator<std::string> end;
139 std::vector<std::string> vstrings(begin, end);
140 config_values->enabled_languages = vstrings;
144 config_values->enabled_languages.push_back("English");
145 config_values->enabled_languages.push_back("Korean");
149 void read_ise_selected_language()
151 CONFIG_VALUES *config_values = get_config_values();
152 if (!config_values) return;
154 std::string string_value;
157 read_ise_config_string(ISE_CONFIG_SELECTED_LANGUAGE, string_value);
158 if (string_value.length() > 0) {
159 config_values->selected_language = string_value;
163 config_values->selected_language = std::string("English");
167 void read_ise_autopunctuation_mode()
170 read_ise_config_bool(ISE_CONFIG_AUTO_PUNCTUATE, value, AUTOPUNCTUATE_ON);
171 CONFIG_VALUES *config_values = get_config_values();
172 if (config_values) config_values->auto_punctuate = value;
175 void read_ise_sound_mode()
178 read_ise_config_bool(ISE_CONFIG_SOUND_ON, value, SOUND_ON);
179 CONFIG_VALUES *config_values = get_config_values();
180 if (config_values) config_values->sound_on = value;
183 void read_ise_vibration_mode()
186 read_ise_config_bool(ISE_CONFIG_VIBRATION_ON, value, VIBRATION_ON);
187 CONFIG_VALUES *config_values = get_config_values();
188 if (config_values) config_values->vibration_on = value;
191 void read_ise_character_preview_mode()
194 read_ise_config_bool(ISE_CONFIG_PREVIEW_ON, value, PREVIEW_ON);
195 CONFIG_VALUES *config_values = get_config_values();
196 if (config_values) config_values->preview_on = value;
199 void read_ise_setting_guide_popup_mode()
202 read_ise_config_bool(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING, value, false);
203 CONFIG_VALUES *config_values = get_config_values();
204 if (config_values) config_values->first_guideset = value;
207 void read_ise_language_guide_popup_mode()
210 read_ise_config_bool(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE, value, false);
211 CONFIG_VALUES *config_values = get_config_values();
212 if (config_values) config_values->first_guidechange = value;
215 void read_ise_number_tutorial_popup_mode()
218 read_ise_config_bool(ISE_CONFIG_NUMBER_TUTORIAL_POPUP, value, true);
219 CONFIG_VALUES *config_values = get_config_values();
220 if (config_values) config_values->number_tutorial_enable = value;
223 void read_ise_symbol_tutorial_popup_mode()
226 read_ise_config_bool(ISE_CONFIG_SYMBOL_TUTORIAL_POPUP, value, false);
227 CONFIG_VALUES *config_values = get_config_values();
228 if (config_values) config_values->symbol_tutorial_enable = value;
231 void read_ise_floating_mode()
234 read_ise_config_bool(ISE_CONFIG_FLOATING_MODE, value, FLOATING_MODE);
235 CONFIG_VALUES *config_values = get_config_values();
236 if (config_values) config_values->floating_mode = value;
239 void read_ise_config_values()
242 read_ise_keypad_mode();
245 read_ise_prediction_mode();
247 /* enabled languages */
248 read_ise_enabled_languages();
250 /* Selected languages */
251 read_ise_selected_language();
254 read_ise_autocapital_mode();
256 /* auto punctuation */
257 read_ise_autopunctuation_mode();
260 read_ise_sound_mode();
263 read_ise_vibration_mode();
265 /* character preview */
266 read_ise_character_preview_mode();
268 /* guide popup for setting */
269 read_ise_setting_guide_popup_mode();
271 /* guide popup for language change */
272 read_ise_language_guide_popup_mode();
274 /* tutorial for number is enabled or not */
275 read_ise_number_tutorial_popup_mode();
277 /* tutorial for symbol is enabled or not */
278 read_ise_symbol_tutorial_popup_mode();
281 read_ise_floating_mode();
284 void write_ise_config_values()
286 CONFIG_VALUES *config_values = get_config_values();
287 if (!config_values) return;
289 std::string string_value;
290 preference_set_int(ISE_CONFIG_KEYPAD_MODE, config_values->keypad_mode);
291 preference_set_int(ISE_CONFIG_PREDICTION_ON, config_values->prediction_on);
293 for (std::vector<std::string>::iterator it = config_values->enabled_languages.begin();
294 it != config_values->enabled_languages.end();std::advance(it, 1)) {
299 preference_set_string(ISE_CONFIG_ENABLED_LANGUAGES, string_value.c_str());
300 preference_set_string(ISE_CONFIG_SELECTED_LANGUAGE, config_values->selected_language.c_str());
301 preference_set_int(ISE_CONFIG_AUTO_CAPITALISE, config_values->auto_capitalise);
302 preference_set_int(ISE_CONFIG_AUTO_PUNCTUATE, config_values->auto_punctuate);
303 preference_set_int(ISE_CONFIG_SOUND_ON, config_values->sound_on);
304 preference_set_int(ISE_CONFIG_VIBRATION_ON, config_values->vibration_on);
305 preference_set_int(ISE_CONFIG_PREVIEW_ON, config_values->preview_on);
306 preference_set_int(ISE_CONFIG_FLOATING_MODE, config_values->floating_mode);
307 preference_set_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING, config_values->first_guideset);
308 preference_set_int(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE, config_values->first_guidechange);
309 preference_set_int(ISE_CONFIG_NUMBER_TUTORIAL_POPUP, config_values->number_tutorial_enable);
310 preference_set_int(ISE_CONFIG_SYMBOL_TUTORIAL_POPUP, config_values->symbol_tutorial_enable);
311 preference_set_int(ISE_CLEAR_DATA_ON, config_values->dataclear);
314 void erase_ise_config_values()
316 preference_remove(ISE_CONFIG_KEYPAD_MODE);
317 preference_remove(ISE_CONFIG_PREDICTION_ON);
318 preference_remove(ISE_CONFIG_ENABLED_LANGUAGES);
319 preference_remove(ISE_CONFIG_SELECTED_LANGUAGE);
320 preference_remove(ISE_CONFIG_AUTO_CAPITALISE);
321 preference_remove(ISE_CONFIG_AUTO_PUNCTUATE);
322 preference_remove(ISE_CONFIG_SOUND_ON);
323 preference_remove(ISE_CONFIG_VIBRATION_ON);
324 preference_remove(ISE_CONFIG_PREVIEW_ON);
325 preference_remove(ISE_CONFIG_FLOATING_MODE);
326 preference_remove(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_SETTING);
327 preference_remove(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE);
328 preference_remove(ISE_CONFIG_NUMBER_TUTORIAL_POPUP);
329 preference_remove(ISE_CONFIG_SYMBOL_TUTORIAL_POPUP);
332 void reset_ise_config_values()
334 CONFIG_VALUES *config_values = get_config_values();
335 if (!config_values) return;
337 config_values->keypad_mode = KEYPAD_MODE_QTY;
338 config_values->prediction_on = FALSE;
339 config_values->selected_language = "English";
340 config_values->enabled_languages.clear();
341 config_values->enabled_languages.push_back("English");
342 config_values->auto_capitalise = TRUE;
343 config_values->auto_punctuate = AUTOPUNCTUATE_ON;
344 config_values->sound_on = SOUND_ON;
345 config_values->vibration_on = VIBRATION_ON;
346 config_values->preview_on = PREVIEW_ON;
347 config_values->floating_mode = FALSE;
348 config_values->first_guideset = FALSE;
349 config_values->first_guidechange = FALSE;
350 config_values->number_tutorial_enable = TRUE;
351 config_values->symbol_tutorial_enable = FALSE;
353 write_ise_config_values();
356 void clear_ise_data_values()
358 CONFIG_VALUES *config_values = get_config_values();
359 if (!config_values) return;
361 config_values->dataclear = TRUE;
363 write_ise_config_values();