#include <iostream>
#include <algorithm>
#include <strings.h>
+#include <inputmethod_manager.h>
+#include <dlog.h>
class ime_info_compare
{
ime_info_list.push_back(user[i]);
}
}
+
+bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int &active_ime_id)
+{
+ bool result = true;
+ std::vector<ime_info_s> active_ime_info_list_preinstall;
+ std::vector<ime_info_s> active_ime_info_list_user;
+ active_ime_info_list.clear();
+ char *active_ime_appid = NULL;
+
+ int ret = ime_manager_get_active_ime(&active_ime_appid);
+ if (ret == IME_MANAGER_ERROR_NONE)
+ LOGD("get active ime : %s\n", active_ime_appid);
+ else {
+ LOGW("Failed to get active ime. error : %d\n", ret);
+ result = false;
+ }
+
+ ime_info_s *info = NULL;
+ int cnt = isf_control_get_all_ime_info(&info);
+ if (info)
+ {
+ for (int i = 0; i < cnt; ++i)
+ {
+ SECURE_LOGD("%s %s %d %d %d\n", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
+ if (info[i].is_enabled && info[i].is_preinstalled) {
+ active_ime_info_list_preinstall.push_back(info[i]);
+ } else if (info[i].is_enabled) {
+ active_ime_info_list_user.push_back(info[i]);
+ }
+ }
+ free(info);
+ }
+
+ im_setting_sort_ime_info(active_ime_info_list_preinstall, active_ime_info_list_user, active_ime_info_list);
+ for (unsigned int i = 0; i < active_ime_info_list.size(); ++i)
+ {
+ if (active_ime_appid && (!strcmp(active_ime_appid, active_ime_info_list[i].appid)))
+ {
+ active_ime_id = i;
+ }
+ }
+
+ if (active_ime_appid)
+ {
+ free(active_ime_appid);
+ }
+
+ return result;
+}
void im_setting_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user, std::vector<ime_info_s> &ime_info_list);
+bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int &active_ime_id);
+
#endif
static int selected_index = 0;
-static void im_setting_list_load_active_ime_info(void)
-{
- std::vector<ime_info_s> active_ime_info_list_preinstall;
- std::vector<ime_info_s> active_ime_info_list_user;
- g_active_ime_info_list.clear();
- char *active_ime_appid = NULL;
-
- int ret = ime_manager_get_active_ime(&active_ime_appid);
- if (ret == IME_MANAGER_ERROR_NONE)
- LOGD("get active ime : %s\n", active_ime_appid);
- else
- LOGW("Failed to get active ime. error : %d\n", ret);
-
- ime_info_s *info = NULL;
- int cnt = isf_control_get_all_ime_info(&info);
- if (info)
- {
- for (int i = 0; i < cnt; ++i)
- {
- SECURE_LOGD("%s %s %d %d %d\n", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
- if (info[i].is_enabled && info[i].is_preinstalled) {
- active_ime_info_list_preinstall.push_back(info[i]);
- } else if (info[i].is_enabled) {
- active_ime_info_list_user.push_back(info[i]);
- }
- }
- free(info);
- }
-
- im_setting_sort_ime_info(active_ime_info_list_preinstall, active_ime_info_list_user, g_active_ime_info_list);
- for (unsigned int i = 0; i < g_active_ime_info_list.size(); ++i)
- {
- if (active_ime_appid && (!strcmp(active_ime_appid, g_active_ime_info_list[i].appid)))
- {
- g_active_ime_id = i;
- }
- }
-
- if (active_ime_appid)
- {
- free(active_ime_appid);
- }
-}
-
static void im_setting_list_update_radio_state(Elm_Object_Item *item, Evas_Object *obj, int index)
{
if (index < 0 || index >= (int)g_active_ime_info_list.size()) {
appdata *ad = (appdata *)data;
if (!ad)
return;
- im_setting_list_load_active_ime_info();
+
+ im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
im_setting_list_update_window(ad);
}
static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
{
- im_setting_list_load_active_ime_info();
+ im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
elm_genlist_realized_items_update(obj);
}
#ifdef _WEARABLE
static void _active_keyboard_changed_cb(keynode_t* node, void* data)
{
- im_setting_list_load_active_ime_info();
+ im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
if (group_radio != NULL) {
elm_radio_value_set(group_radio, g_active_ime_id);
}
if (!ad || !ad->win)
return;
- im_setting_list_load_active_ime_info();
+ im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
+
#ifdef _WEARABLE
im_setting_list_screen_create(data);
#else
return bg;
}
-static void im_setting_list_load_ime_info(void)
-{
- std::vector<ime_info_s> ime_info_list_preinstall;
- std::vector<ime_info_s> ime_info_list_user;
- ime_info_s *info = NULL;
- g_ime_info_list.clear();
- int cnt = isf_control_get_all_ime_info(&info);
- if (info) {
- for (int i = 0; i < cnt; ++i)
- {
- SECURE_LOGD("%s %s %d %d %d\n", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
- if (info[i].is_preinstalled) {
- ime_info_list_preinstall.push_back(info[i]);
- } else {
- ime_info_list_user.push_back(info[i]);
- }
- }
- free(info);
- } else {
- LOGW("isf_control_get_all_ime_info failed\n");
- }
- im_setting_sort_ime_info(ime_info_list_preinstall, ime_info_list_user, g_ime_info_list);
-}
-
static int im_setting_list_get_active_ime_index(void)
{
char *active_ime_appid = NULL;
static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
{
/* Reload ime list for getting translated IME name */
- im_setting_list_load_ime_info();
+ im_setting_load_ime_info(g_ime_info_list, g_active_ime_index);
/* Set translated active IME name */
snprintf(item_text[0].sub_text, sizeof(item_text[0].sub_text), "%s", g_ime_info_list[g_active_ime_index].label);
Evas_Object *ck = elm_check_add(obj);
elm_object_style_set(ck, "on&off");
elm_check_state_set(ck, g_gen_item_data[index].chk_status);
+#ifdef _MOBILE
elm_object_disabled_set(ck, g_ime_info_list[index].is_preinstalled || (index == g_active_ime_index));
-#ifndef _MOBILE
+#else
elm_object_disabled_set(ck, EINA_TRUE);
#endif
evas_object_propagate_events_set(ck, EINA_FALSE);
appdata *ad = (appdata *)data;
if (!ad)
return;
- im_setting_list_load_ime_info();
+
+ im_setting_load_ime_info(g_ime_info_list, g_active_ime_index);
im_setting_list_add_ime(ad);
}
im_setting_list_text_domain_set();
ad->win = im_setting_list_main_window_create(PACKAGE, ad->app_type);
im_setting_list_bg_create(ad->win);
- im_setting_list_load_ime_info();
+ im_setting_load_ime_info(g_ime_info_list, g_active_ime_index);
if (!pkgmgr) {
int ret = package_manager_create(&pkgmgr);
return eo;
}
-static void im_setting_selector_load_ime_info(void)
-{
- std::vector<ime_info_s> ime_info_list_preinstall;
- std::vector<ime_info_s> ime_info_list_user;
- g_ime_info_list.clear();
- char *active_ime_appid = NULL;
-
- int ret = ime_manager_get_active_ime(&active_ime_appid);
- if (ret == IME_MANAGER_ERROR_NONE)
- LOGD("get active ime : %s\n", active_ime_appid);
- else
- LOGW("Failed to get active ime. error : %d\n", ret);
-
- ime_info_s *info = NULL;
- int cnt = isf_control_get_all_ime_info(&info);
- if (info)
- {
- for (int i = 0; i < cnt; ++i)
- {
- SECURE_LOGD("%s %s %d %d %d\n", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
- if (info[i].is_enabled && info[i].is_preinstalled) {
- ime_info_list_preinstall.push_back(info[i]);
- } else if (info[i].is_enabled) {
- ime_info_list_user.push_back(info[i]);
- }
- }
- free(info);
- }
-
- im_setting_sort_ime_info(ime_info_list_preinstall, ime_info_list_user, g_ime_info_list);
- for (unsigned int i = 0; i < g_ime_info_list.size(); ++i)
- {
- if (active_ime_appid && (!strcmp(active_ime_appid, g_ime_info_list[i].appid)))
- {
- g_active_ime_id = i;
- }
- }
-
- if (active_ime_appid)
- {
- free(active_ime_appid);
- }
-}
-
#ifndef _WEARABLE
static void im_setting_selector_select_keyboard_cb(void *data, Evas_Object *obj, void *event_info)
{
return;
im_setting_selector_text_domain_set();
ad->win = im_setting_selector_main_window_create(PACKAGE);
- im_setting_selector_load_ime_info();
+ im_setting_load_ime_info(g_ime_info_list, g_active_ime_id);
#ifdef _WEARABLE
im_setting_selector_screen_create(ad);
#else