#include <iterator>
#include <app_preference.h>
+#include <json-glib/json-glib.h>
+#include <dlog.h>
#include "config.h"
#include "languages.h"
#define FLOATING_MODE FALSE
#endif
+#undef LOG_TAG
+#define LOG_TAG "ISE_DEFAULT"
+
CONFIG_VALUES::CONFIG_VALUES()
{
keypad_mode = KEYPAD_MODE_QTY; // keypad_mode
number_tutorial_enable = TRUE;
symbol_tutorial_enable = FALSE;
dataclear = FALSE;
+ init_flag = FALSE;
};
static CONFIG_VALUES g_config_values;
if (config_values) config_values->floating_mode = value;
}
+void read_ise_init_flag()
+{
+ sclboolean value;
+ read_ise_config_bool(ISE_CONFIG_INIT_FLAG, value, false);
+ CONFIG_VALUES *config_values = get_config_values();
+ if (config_values) config_values->init_flag = value;
+}
+
void read_ise_config_values()
{
/* keypad mode */
/* Floating mode */
read_ise_floating_mode();
+
+ /* Initialization flag */
+ read_ise_init_flag();
}
void write_ise_config_values()
preference_set_int(ISE_CONFIG_NUMBER_TUTORIAL_POPUP, config_values->number_tutorial_enable);
preference_set_int(ISE_CONFIG_SYMBOL_TUTORIAL_POPUP, config_values->symbol_tutorial_enable);
preference_set_int(ISE_CLEAR_DATA_ON, config_values->dataclear);
+ preference_set_int(ISE_CONFIG_INIT_FLAG, config_values->init_flag);
}
void erase_ise_config_values()
preference_remove(ISE_CONFIG_FIRST_GUIDELINE_POPUP_FOR_LANGUAGE_CHANGE);
preference_remove(ISE_CONFIG_NUMBER_TUTORIAL_POPUP);
preference_remove(ISE_CONFIG_SYMBOL_TUTORIAL_POPUP);
+ preference_remove(ISE_CONFIG_INIT_FLAG);
}
void reset_ise_config_values()
CONFIG_VALUES *config_values = get_config_values();
if (!config_values) return;
- config_values->keypad_mode = KEYPAD_MODE_QTY;
- config_values->prediction_on = FALSE;
- config_values->selected_language = "English";
- config_values->enabled_languages.clear();
- config_values->enabled_languages.push_back("English");
- config_values->auto_capitalise = TRUE;
- config_values->auto_punctuate = AUTOPUNCTUATE_ON;
- config_values->sound_on = SOUND_ON;
- config_values->vibration_on = VIBRATION_ON;
- config_values->preview_on = PREVIEW_ON;
- config_values->floating_mode = FALSE;
- config_values->first_guideset = FALSE;
- config_values->first_guidechange = FALSE;
- config_values->number_tutorial_enable = TRUE;
- config_values->symbol_tutorial_enable = FALSE;
+ if (access(ISE_CONFIG_FILE_PATH, F_OK) != 0 || !read_ise_config_file()) {
+ config_values->keypad_mode = KEYPAD_MODE_QTY;
+ config_values->prediction_on = FALSE;
+ config_values->selected_language = "English";
+ config_values->enabled_languages.clear();
+ config_values->enabled_languages.push_back("English");
+ config_values->auto_capitalise = TRUE;
+ config_values->auto_punctuate = AUTOPUNCTUATE_ON;
+ config_values->sound_on = SOUND_ON;
+ config_values->vibration_on = VIBRATION_ON;
+ config_values->preview_on = PREVIEW_ON;
+ config_values->floating_mode = FALSE;
+ config_values->first_guideset = FALSE;
+ config_values->first_guidechange = FALSE;
+ config_values->number_tutorial_enable = TRUE;
+ config_values->symbol_tutorial_enable = FALSE;
+ }
write_ise_config_values();
}
write_ise_config_values();
}
+
+sclboolean read_ise_config_file()
+{
+ sclboolean ret = FALSE;
+ CONFIG_VALUES *config_values = get_config_values();
+ if (!config_values) return ret;
+
+ JsonParser* parser = NULL;
+ JsonNode *root = NULL;
+ JsonObject *obj = NULL;
+ JsonObject *settings = NULL;
+ GError* err_msg = NULL;
+ JsonArray *enabled_lang_arr = NULL;
+ int arr_len = 0;
+
+ parser = json_parser_new();
+ json_parser_load_from_file(parser, ISE_CONFIG_FILE_PATH, &err_msg);
+ if (err_msg) {
+ LOGE("Failed to load configuration file. error message: %s", err_msg->message);
+ goto cleanup;
+ }
+
+ root = json_parser_get_root(parser);
+ if (!root) {
+ LOGE("Failed to get root");
+ goto cleanup;
+ }
+
+ obj = json_node_get_object(root);
+ if (!obj) {
+ LOGE("Failed to get object");
+ goto cleanup;
+ }
+
+ settings = json_object_get_object_member(obj, "default_setting");
+ if (!settings) {
+ LOGE("Failed to get object member");
+ goto cleanup;
+ }
+
+ {
+ config_values->keypad_mode = KEYPAD_MODE_QTY;
+ config_values->prediction_on = json_object_get_boolean_member(settings, "prediction_on");
+
+ config_values->enabled_languages.clear();
+ enabled_lang_arr = json_object_get_array_member(settings, "enabled_languages");
+ arr_len = json_array_get_length(enabled_lang_arr);
+ for (int i = 0; i < arr_len; i++) {
+ config_values->enabled_languages.push_back(std::string(json_array_get_string_element(enabled_lang_arr, i)));
+ }
+
+ config_values->selected_language = std::string(json_object_get_string_member(settings, "selected_language"));
+ config_values->auto_capitalise = json_object_get_boolean_member(settings, "auto_capitalise");
+ config_values->sound_on = json_object_get_boolean_member(settings, "sound_on");
+ config_values->vibration_on = json_object_get_boolean_member(settings, "vibration_on");
+ config_values->preview_on = json_object_get_boolean_member(settings, "preview_on");
+ config_values->floating_mode = json_object_get_boolean_member(settings, "floating_mode");
+ config_values->first_guideset = json_object_get_boolean_member(settings, "first_guideline_popup_for_setting");
+ config_values->first_guidechange = json_object_get_boolean_member(settings, "first_guideline_popup_for_language_change");
+ config_values->number_tutorial_enable = TRUE;
+ config_values->symbol_tutorial_enable = FALSE;
+ config_values->init_flag = TRUE;
+ write_ise_config_values();
+ ret = TRUE;
+ }
+
+cleanup:
+ if (err_msg)
+ g_error_free(err_msg);
+
+ if (parser)
+ g_object_unref(parser);
+
+ return ret;
+}
\ No newline at end of file