language: change language selection UX 05/235305/5
authorLukasz Stanislawski <lukasz.stanislawski@gmail.com>
Wed, 3 Jun 2020 11:33:11 +0000 (13:33 +0200)
committerLukasz Stanislawski <lukasz.stanislawski@gmail.com>
Fri, 5 Jun 2020 08:01:12 +0000 (10:01 +0200)
* add confirmation popup

Change-Id: I09141466d065aed1022e4f4b06fc82baef4f6fb3

resource/po/en_US.po
resource/po/ko_KR.po
setting-common/src/controls/confirm-popup.c
setting-language-and-input/src/setting-display-language-view.c

index f54bc23c76b22250d8a1e623b8886eef850735bf..cd6867bba5a31cbbd87fe8dd29acee4e15aa5cc1 100755 (executable)
@@ -2750,3 +2750,9 @@ msgstr "Package info"
 
 msgid "IDS_ST_BODY_DEVICE_STORAGE"
 msgstr "Device storage"
+
+msgid "IDS_ST_POP_CHANGE_LANGUAGE"
+msgstr "Change language"
+
+msgid "IDS_ST_POP_DEFAULT_LANGUAGE_WILL_BE_CHANGED"
+msgstr "Default language will be changed"
index 90d839be3ffa810614dbb2bceb213b902aa19549..681aae156993bac44902d2a935339eed4bdeda64 100644 (file)
@@ -2748,3 +2748,9 @@ msgstr "패키지 정보"
 
 msgid "IDS_ST_BODY_DEVICE_STORAGE"
 msgstr "기기 저장"
+
+msgid "IDS_ST_POP_CHANGE_LANGUAGE"
+msgstr "언어 변경"
+
+msgid "IDS_ST_POP_DEFAULT_LANGUAGE_WILL_BE_CHANGED"
+msgstr "기본 언어가 변경됩니다"
index 76437b48a094ad658ec8cee17f5bd6473e2038d1..f566e5e965353e079d41ebf84b4653114a7bc200 100644 (file)
@@ -34,7 +34,7 @@ Evas_Object *confirm_popup_create(Evas_Object *parent)
 {
        Evas_Object *popup = elm_popup_add(parent);
 
-       elm_popup_align_set(popup, 0.5, 1.0);
+       elm_popup_align_set(popup, 0.5, 0.5);
        evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
        Evas_Object *btn = elm_button_add(popup);
index 361c5a08f8ca2eed2866664f093fb9528f65bb8e..d75582b89cdbf3478d8e3ed27a8c11eeec6516e9 100644 (file)
@@ -22,6 +22,7 @@
 #include "setting-language-and-input.h"
 #include "setting-common-draw-widget.h"
 #include <system_settings.h>
+#include "controls/confirm-popup.h"
 
 #define DATA_FORMAT_SKELETON "yMd"
 #define DATA_FORMAT_CATEGORY_NUM 4
@@ -30,6 +31,7 @@
 static int _view_create(void *data);
 static int _view_update(void *data);
 static int _view_destroy(void *data);
+static void _close_popup_ex(void *data);
 
 setting_view setting_display_language_view = {
        .create = _view_create,
@@ -256,13 +258,25 @@ static void _close_popup_ex(void *data)
                FREE(lang);
        }
 
-       /* Bundle send message */
-       add_app_reply(&ad->md, "result", "rbutton_click");
-       ui_app_exit();
-
        FREE(pa_lang);
 }
 
+static void _popup_language_change_confirmed(void *data, Evas_Object *obj,
+               void *event_info)
+{
+       SettingLaIData *ad = (SettingLaIData *)data;
+
+       _close_popup_ex(ad);
+       evas_object_del(obj);
+       elm_naviframe_item_pop(ad->md.naviframe);
+}
+
+static void _popup_language_change_rejected(void *data, Evas_Object *obj,
+               void *event_info)
+{
+       evas_object_del(obj);
+}
+
 /**
  * @brief Callback of language item click event
  *
@@ -279,12 +293,24 @@ static void _mouse_up_Gendial_list_radio_cb(void *data, Evas_Object *obj,
        ret_if(!ad);
        ret_if(!item);
 
-       elm_genlist_item_selected_set(item, 0);
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       Evas_Object *confirm_popup = confirm_popup_create(ad->md.naviframe);
+
+       confirm_popup_title_set(confirm_popup, _("IDS_ST_POP_CHANGE_LANGUAGE"));
+       confirm_popup_text_set(confirm_popup, _("IDS_ST_POP_DEFAULT_LANGUAGE_WILL_BE_CHANGED"));
+       confirm_popup_confirm_text_set(confirm_popup, _("IDS_ST_BUTTON_OK"));
+       confirm_popup_reject_text_set(confirm_popup, _("IDS_ST_BUTTON_CANCEL"));
+
+       evas_object_smart_callback_add(confirm_popup, "confirmed", _popup_language_change_confirmed, ad);
+       evas_object_smart_callback_add(confirm_popup, "rejected", _popup_language_change_rejected, NULL);
+
+       evas_object_show(confirm_popup);
+
        list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
        ret_if(!list_item);
 
        ad->selected_locale = (char *)strdup(list_item->keyStr);
-       _close_popup_ex(ad);
 }
 
 /* ***************************************************