From: Sang Il Lee Date: Thu, 12 Dec 2019 02:31:32 +0000 (+0900) Subject: InputMethod Setting UI update on keyboard changing request. X-Git-Tag: submit/tizen/20191218.023222~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6272377355cfbc436927ff5de39aec890882f86b;p=platform%2Fcore%2Fuifw%2Finputmethod-setting.git InputMethod Setting UI update on keyboard changing request. Change-Id: I989d620d54a96494df45f89a877d292fa5e662d9 Signed-off-by: Sang-Il Lee --- diff --git a/im_setting_list/CMakeLists.txt b/im_setting_list/CMakeLists.txt index 108edb0..c803ff5 100644 --- a/im_setting_list/CMakeLists.txt +++ b/im_setting_list/CMakeLists.txt @@ -16,7 +16,7 @@ pkg_check_modules(pkgs REQUIRED capi-appfw-application isf elementary efl-extension dlog capi-ui-inputmethod-manager - capi-appfw-package-manager + capi-appfw-package-manager vconf ) FOREACH(flag ${pkgs_CFLAGS}) diff --git a/im_setting_list/input_method_setting_list_popup_view.cpp b/im_setting_list/input_method_setting_list_popup_view.cpp index b50caab..689173f 100644 --- a/im_setting_list/input_method_setting_list_popup_view.cpp +++ b/im_setting_list/input_method_setting_list_popup_view.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #define IM_SETTING_LIST_POPUP_VIEW_TITLE "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB" @@ -368,6 +369,14 @@ static Evas_Object *im_setting_list_popup_create(void *data) #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) { @@ -382,7 +391,9 @@ static Eina_Bool _pop_cb(void *data, Elm_Object_Item *it) 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) @@ -437,6 +448,8 @@ 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 diff --git a/im_setting_list/input_method_setting_list_ui.cpp b/im_setting_list/input_method_setting_list_ui.cpp index eed3d37..f7c5bd6 100644 --- a/im_setting_list/input_method_setting_list_ui.cpp +++ b/im_setting_list/input_method_setting_list_ui.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "isf_control.h" @@ -263,6 +264,41 @@ static void _popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_inf 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), "%s", 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'}; @@ -931,6 +967,8 @@ void im_setting_list_app_terminate(void *data) 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) @@ -990,6 +1028,8 @@ im_setting_list_app_create(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 diff --git a/packaging/org.tizen.inputmethod-setting.spec b/packaging/org.tizen.inputmethod-setting.spec index 79d6351..a80aa7d 100644 --- a/packaging/org.tizen.inputmethod-setting.spec +++ b/packaging/org.tizen.inputmethod-setting.spec @@ -16,6 +16,7 @@ BuildRequires: pkgconfig(efl-extension) BuildRequires: pkgconfig(libtzplatform-config) BuildRequires: pkgconfig(capi-ui-inputmethod-manager) BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(vconf) Requires: %{name}-compat = %{version}-%{release} # This if/endif is for GBM build optimization. This usage does not affect # The unified build (profile is undefined) as it will return TRUE always.