Reduce duplicate code to set enable IME 64/276864/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 27 Jun 2022 06:56:03 +0000 (15:56 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 28 Jun 2022 02:25:16 +0000 (11:25 +0900)
Change-Id: I07b1bc676f859b7d7a8e6e51168f7b8707130833
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
im_setting_list/input_method_setting_list_ui.cpp

index 4ddaecb..5c6d503 100644 (file)
@@ -99,6 +99,18 @@ static bool CHECK_IME_INDEX(int index)
     return true;
 }
 
+static bool set_enable_ime(int index, bool invert)
+{
+    if (!CHECK_IME_INDEX(index))
+        return false;
+
+    Eina_Bool state = g_gen_item_data[index].chk_status;
+    if (isf_control_set_enable_ime(g_ime_info_list[index].appid, invert ? !state : state) == 0)
+        return true;
+
+    return false;
+}
+
 static void im_setting_list_text_domain_set(void)
 {
     bindtextdomain(IM_SETTING_LIST_PACKAGE, IM_SETTING_LIST_LOCALE_DIR);
@@ -157,13 +169,9 @@ im_setting_list_check_popup_ok_cb(void *data, Evas_Object *obj, void *event_info
     if (!cb_data)
         return;
     int index = (int)reinterpret_cast<long>(cb_data->data);
-    if (!CHECK_IME_INDEX(index))
-        return;
-
-    Eina_Bool state = EINA_FALSE;
-    state = g_gen_item_data[index].chk_status;
-    if (isf_control_set_enable_ime(g_ime_info_list[index].appid, state) != 0)
+    if (!set_enable_ime(index, false)) {
         LOGW("Failed to set enable ime : %s\n", g_ime_info_list[index].appid);
+    }
 
     evas_object_del(cb_data->popup);
 }
@@ -176,11 +184,8 @@ im_setting_list_check_popup_cancel_cb(void *data, Evas_Object *obj, void *event_
         return;
 
     int index = (int)reinterpret_cast<long>(cb_data->data);
-    if (!CHECK_IME_INDEX(index))
-        return;
-
-    Eina_Bool state = g_gen_item_data[index].chk_status;
-    if (isf_control_set_enable_ime(g_ime_info_list[index].appid, !state) == 0) {
+    if (set_enable_ime(index, true)) {
+        Eina_Bool state = g_gen_item_data[index].chk_status;
         g_gen_item_data[index].chk_status = !state;
         elm_genlist_item_update(g_gen_item_data[index].gen_item);
     } else {
@@ -324,11 +329,9 @@ im_setting_list_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
         return;
 
     int index = (int)reinterpret_cast<long>(cb_data->data);
-    if (!CHECK_IME_INDEX(index))
-        return;
 
-    Eina_Bool state = g_gen_item_data[index].chk_status;
-    if (isf_control_set_enable_ime(g_ime_info_list[index].appid, !state) == 0) {
+    if (set_enable_ime(index, true)) {
+        Eina_Bool state = g_gen_item_data[index].chk_status;
         g_gen_item_data[index].chk_status = !state;
         Evas_Object *ck = elm_object_item_part_content_get(g_gen_item_data[index].gen_item, "elm.swallow.end");
         if (ck == NULL) {
@@ -342,6 +345,7 @@ im_setting_list_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
     } else {
         LOGW("Failed to set enable ime : %s\n", g_ime_info_list[index].appid);
     }
+
     evas_object_del(cb_data->popup);
 }