Fix issue that newly installed IME isn't added to IME list 40/252040/3
authorInHong Han <inhong1.han@samsung.com>
Fri, 22 Jan 2021 04:51:05 +0000 (13:51 +0900)
committerInHong Han <inhong1.han@samsung.com>
Fri, 22 Jan 2021 06:32:09 +0000 (15:32 +0900)
Change-Id: Ic87abd9198cefaf0cbece606be1a29285bbc9278

common/ime_info.cpp
common/ime_info.h
im_setting_list/input_method_setting_list_popup_view.cpp
im_setting_list/input_method_setting_list_ui.cpp
im_setting_selector/input_method_setting_selector_ui.cpp

index f8629c0..c548020 100644 (file)
 #include <inputmethod_manager.h>
 #include <dlog.h>
 
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "INPUTMETHOD_SETTING_LIST"
+
 class ime_info_compare
 {
     public:
@@ -45,7 +50,7 @@ void im_setting_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<i
     }
 }
 
-bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int &active_ime_id)
+bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int &active_ime_id, bool check_enabled)
 {
     bool result = true;
     std::vector<ime_info_s>      active_ime_info_list_preinstall;
@@ -68,10 +73,11 @@ bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int
         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]);
+            if (!check_enabled || info[i].is_enabled) {
+                if (info[i].is_preinstalled)
+                    active_ime_info_list_preinstall.push_back(info[i]);
+                else
+                    active_ime_info_list_user.push_back(info[i]);
             }
         }
         free(info);
index 456ac97..0c60742 100644 (file)
@@ -22,6 +22,6 @@
 
 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);
+bool im_setting_load_ime_info(std::vector<ime_info_s> &active_ime_info_list, int &active_ime_id, bool check_enabled);
 
 #endif
index 20f3c51..2c66b16 100644 (file)
@@ -61,7 +61,7 @@ void im_setting_list_update_window_selector(void *data)
     if (!ad)
         return;
 
-    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
+    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id, true);
     im_setting_list_update_window(ad);
 }
 
@@ -121,7 +121,7 @@ static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event
 
 static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
 {
-    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
+    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id, true);
 
     elm_genlist_realized_items_update(obj);
 }
@@ -256,7 +256,7 @@ static Evas_Object *im_setting_list_popup_create(void *data)
 #ifdef _WEARABLE
 static void _active_keyboard_changed_cb(keynode_t* node, void* data)
 {
-    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
+    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id, true);
     if (group_radio != NULL) {
         elm_radio_value_set(group_radio, g_active_ime_id);
     }
@@ -364,7 +364,7 @@ im_setting_list_popup_view_create(void *data)
     if (!ad || !ad->win)
         return;
 
-    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id);
+    im_setting_load_ime_info(g_active_ime_info_list, g_active_ime_id, true);
 
 #ifdef _WEARABLE
     im_setting_list_screen_create(data);
index c4ee427..48c6d95 100644 (file)
@@ -442,7 +442,7 @@ static Evas_Object *im_setting_list_naviframe_create(Evas_Object* parent)
 static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
 {
     /* Reload ime list for getting translated IME name */
-    im_setting_load_ime_info(g_ime_info_list, g_active_ime_index);
+    im_setting_load_ime_info(g_ime_info_list, g_active_ime_index, false);
 
     /* 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);
@@ -904,7 +904,7 @@ void im_setting_list_update_window(void *data)
     if (!ad)
         return;
 
-    im_setting_load_ime_info(g_ime_info_list, g_active_ime_index);
+    im_setting_load_ime_info(g_ime_info_list, g_active_ime_index, false);
     im_setting_list_add_ime(ad);
 }
 
@@ -938,7 +938,7 @@ im_setting_list_app_create(void *data)
     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_load_ime_info(g_ime_info_list, g_active_ime_index);
+    im_setting_load_ime_info(g_ime_info_list, g_active_ime_index, false);
 
     if (!pkgmgr) {
         int ret = package_manager_create(&pkgmgr);
index c8742f3..369481a 100644 (file)
@@ -377,7 +377,7 @@ im_setting_selector_app_create(void *data)
         return;
     im_setting_selector_text_domain_set();
     ad->win = im_setting_selector_main_window_create(PACKAGE);
-    im_setting_load_ime_info(g_ime_info_list, g_active_ime_id);
+    im_setting_load_ime_info(g_ime_info_list, g_active_ime_id, true);
 #ifdef _WEARABLE
     im_setting_selector_screen_create(ad);
 #else