#include <isf_control.h>
#include <algorithm>
#include <inputmethod_manager.h>
+#include <vconf.h>
#define IM_SETTING_LIST_POPUP_VIEW_TITLE "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
#endif
#ifdef _WEARABLE
+static void _active_keyboard_changed_cb(keynode_t* node, void* data)
+{
+ im_setting_list_load_active_ime_info();
+ if (group_radio != NULL) {
+ elm_radio_value_set(group_radio, g_active_ime_id);
+ }
+}
+
static char *
im_setting_list_default_keyboard_title_text_get(void *data, Evas_Object *obj, const char *part)
{
eext_rotary_object_event_activated_set(ad->main_circle_genlist, EINA_TRUE);
#endif
- return EINA_TRUE;
+ vconf_ignore_key_changed(VCONFKEY_ISF_ACTIVE_KEYBOARD_UUID, _active_keyboard_changed_cb);
+
+return EINA_TRUE;
}
static void im_setting_list_screen_create(void *data)
elm_atspi_accessible_name_set(navi_it, dgettext(PACKAGE, IM_SETTING_LIST_POPUP_VIEW_TITLE));
#endif
elm_naviframe_item_pop_cb_set(navi_it, _pop_cb, ad);
+
+ vconf_notify_key_changed(VCONFKEY_ISF_ACTIVE_KEYBOARD_UUID, _active_keyboard_changed_cb, data);
}
#endif
#include <tzplatform_config.h>
#include <inputmethod_manager.h>
#include <package_manager.h>
+#include <vconf.h>
#include "isf_control.h"
delete cb_data;
}
+static void _active_keyboard_changed_cb(keynode_t* node, void* data)
+{
+ appdata *ad = (appdata *)data;
+ int active_ime_index = im_setting_list_get_active_ime_index();
+
+ if (g_active_ime_index != active_ime_index) {
+ g_active_ime_index = active_ime_index;
+ if (g_active_ime_index < 0 || g_active_ime_index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. g_active_ime_index : %d, g_ime_info_list.size() : %d\n", g_active_ime_index, g_ime_info_list.size());
+ return;
+ }
+
+ /* Default keyboard selector */
+ snprintf(item_text[0].main_text, sizeof(item_text[0].main_text), "%s", IM_SETTING_LIST_DEFAULT_KEYBOARD);
+#ifdef _WEARABLE
+ if(g_ime_info_list.size() > 1)
+ snprintf(item_text[0].sub_text, sizeof(item_text[0].sub_text), "<color=#4CABFF>%s</color>", g_ime_info_list[g_active_ime_index].label);
+ else
+#endif
+ snprintf(item_text[0].sub_text, sizeof(item_text[0].sub_text), "%s", g_ime_info_list[g_active_ime_index].label);
+
+ if(ad->genlist) {
+ Elm_Object_Item *item = elm_genlist_first_item_get(ad->genlist);
+ list_item_text *item_data = NULL;
+ while (item) {
+ item_data = (list_item_text*)elm_object_item_data_get(item);
+ elm_genlist_item_update (item);
+ if (item_data && strncmp (item_data->main_text, IM_SETTING_LIST_KEYBOARD_SETTING, sizeof(item_data->main_text)) == 0)
+ elm_object_item_disabled_set(item, !(g_ime_info_list[g_active_ime_index].has_option));
+ item = elm_genlist_item_next_get (item);
+ }
+ }
+ }
+}
+
static void set_popup_message(Evas_Object *obj, int index)
{
char chFormatMsg[255] = {'\0'};
package_manager_destroy(pkgmgr);
pkgmgr = NULL;
}
+
+ vconf_ignore_key_changed(VCONFKEY_ISF_ACTIVE_KEYBOARD_UUID, _active_keyboard_changed_cb);
}
void im_setting_list_update_window(void *data)
im_setting_list_list_create(ad);
evas_object_show(ad->win);
+
+ vconf_notify_key_changed(VCONFKEY_ISF_ACTIVE_KEYBOARD_UUID, _active_keyboard_changed_cb, data);
}
void