Fix wrong display issue of radio button group in language selection 61/87461/1
authorsungwook79.park <sungwook79.park@samsung.com>
Thu, 8 Sep 2016 05:59:38 +0000 (14:59 +0900)
committersungwook79.park <sungwook79.park@samsung.com>
Thu, 8 Sep 2016 05:59:38 +0000 (14:59 +0900)
Change-Id: I5445b67d6c4a35dcefe6e9c03eeae6a6a06c7568
Signed-off-by: sungwook79.park <sungwook79.park@samsung.com>
src/w-input-stt-voice.cpp

index 0f14f77..72b7792 100755 (executable)
@@ -67,7 +67,7 @@ static Elm_Genlist_Item_Class itc_2text;
 
 static void set_guide_text(VoiceData *vd, const char* text, bool translatable = false);
 
-const char *supported_language[7] = {
+const char *supported_language[] = {
                 "auto",
                 "en_US",
                 "es_US",
@@ -78,7 +78,7 @@ const char *supported_language[7] = {
 };
 
 
-const char *disp_lang_array[7] = {
+const char *disp_lang_array[] = {
                 "",
                 "English (United States)",
                 "Español (América Latina)",
@@ -961,47 +961,38 @@ char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
 
 static Evas_Object *__get_genlist_item_content(void *data, Evas_Object *obj, const char *part)
 {
-       int index = (int)data;
+       int index = (intptr_t)data;
        Evas_Object * content = NULL;
 
-       if (!strcmp(part, "elm.icon")) {
+       if (!strcmp(part, "elm.icon") ||
+               !strcmp(part, "elm.swallow.end")) {
                content = elm_radio_add(obj);
+               elm_object_style_set(content, "list");
                elm_radio_state_value_set(content, index);
                elm_radio_group_add(content, radio_gp);
                evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                evas_object_propagate_events_set(content, EINA_TRUE);
                evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
-               elm_object_style_set(content, "list");
        }
        return content;
 }
 
 static int get_language_value()
 {
-#if 1
        int lang = 0, ret = 0;
 
        ret = preference_get_int(PREFERENCE_ISE_STT_LANGUAGE, &lang);
-       if(PREFERENCE_ERROR_NONE != ret){
+       if (PREFERENCE_ERROR_NONE != ret) {
                PRINTFUNC(DLOG_ERROR, "preference_get_int error!(%d)", ret);
-               preference_set_int(PREFERENCE_ISE_STT_LANGUAGE, (int)2); //auto
-               lang = 2;
+               preference_set_int(PREFERENCE_ISE_STT_LANGUAGE, STT_VOICE_N66_AUTO); //auto
+               lang = STT_VOICE_N66_AUTO;
        }
-#else
-       int lang = 0, ret = 0;
 
-       ret = vconf_get_int(VCONFKEY_ISE_STT_LANGUAGE, &lang);
-       if (ret !=0) {
-               PRINTFUNC(DLOG_ERROR, "Vconf_get_int error!(%d)", ret);
-       }
-#endif
-       if(g_is_n66) {
-               if(lang < 0 || lang > 6) {
-                       PRINTFUNC(DLOG_WARN, "vconf lang orig(%d) to be 0", lang);
-                       lang = 0;
-               }
-               PRINTFUNC(DLOG_DEBUG, "n66 current language value for stt (%s).", disp_lang_array[lang]);
+       if (lang < 0 || lang > (int)(sizeof(supported_language)/sizeof(supported_language[0])-1)) {
+               PRINTFUNC(DLOG_WARN, "vconf lang orig(%d) to be 0", lang);
+               lang = 0;
        }
+       PRINTFUNC(DLOG_DEBUG, "n66 current language value for stt (%s).", disp_lang_array[lang]);
 
        return lang;
 }
@@ -1011,19 +1002,11 @@ static void set_language_value(int type)
        // Add implementation to store language type.
        int ret = 0;
 
-#if 1
        ret = preference_set_int(PREFERENCE_ISE_STT_LANGUAGE, (int)type);
        if(PREFERENCE_ERROR_NONE != ret){
                PRINTFUNC(DLOG_ERROR, "preference_set_int error!(%d)", ret);
        }
 
-#else
-       ret = vconf_set_int(VCONFKEY_ISE_STT_LANGUAGE, (int) type);
-       if (ret != 0) {
-               PRINTFUNC(DLOG_ERROR, "Vconf_set_int error!(%d)", ret);
-               return;
-       }
-#endif
        PRINTFUNC(DLOG_DEBUG, "language type (%d)", type);
 
        // Update string
@@ -1157,14 +1140,15 @@ static Evas_Object *create_language_list(Evas_Object *parent)
 
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
        elm_genlist_homogeneous_set(genlist, EINA_TRUE);
-//     uxt_genlist_set_bottom_margin_enabled(genlist, EINA_TRUE);
-
+#ifdef _CIRCLE
        Evas_Object *circle_language_genlist = eext_circle_object_genlist_add(genlist, NULL);
        eext_circle_object_genlist_scroller_policy_set(circle_language_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
        evas_object_resize(circle_language_genlist, 360, 360);
        evas_object_show(circle_language_genlist);
        eext_rotary_object_event_activated_set(circle_language_genlist, EINA_TRUE);
-
+#else
+       evas_object_show(genlist);
+#endif
        int i = 0;
        int lang_val = 0;
        Elm_Object_Item * item = NULL;
@@ -1176,16 +1160,21 @@ static Evas_Object *create_language_list(Evas_Object *parent)
        elm_radio_state_value_set(radio_gp, -1);
 
        lang_val = get_language_value();
-
+#ifdef _WEARABLE
        //Title
        itc_title.item_style = "title";
        itc_title.func.text_get = __get_genlist_title_label;
        itc_title.func.content_get = NULL;
 
        item = elm_genlist_item_append(genlist, &itc_title, (void *)-1, NULL, ELM_GENLIST_ITEM_GROUP, NULL, genlist);
+#endif
 
        // 2 line text
+#ifdef _WEARABLE
        itc_2text.item_style = "2text.1icon.1/sub1.multiline";
+#else
+       itc_2text.item_style = "type1";
+#endif
        itc_2text.func.text_get = __get_genlist_item_label;
        itc_2text.func.content_get = __get_genlist_item_content;
 
@@ -1202,40 +1191,52 @@ static Evas_Object *create_language_list(Evas_Object *parent)
        }
 
        // 1 line text
+#ifdef _WEARABLE
        itc_1text.item_style = "1text.1icon.1";
+#else
+       itc_1text.item_style = "type1";
+#endif
        itc_1text.func.text_get = __get_genlist_item_label;
        itc_1text.func.content_get = __get_genlist_item_content;
 
-       if(g_is_n66) {
-               for (i = 1; i < 7; i++)
-               {
-                       char *s = (char *)disp_lang_array[i];
+       for (i = 1; i < (long)(sizeof(disp_lang_array)/sizeof(disp_lang_array[0])); i++)
+       {
+               char *s = (char *)disp_lang_array[i];
 
-                       if(strchr(s, '(')){
-                               item = item_append(genlist, itc_2text, i, language_set_genlist_radio_cb, genlist);
-                       } else {
-                               item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
-                       }
+               if(strchr(s, '(')){
+                       item = item_append(genlist, itc_2text, i, language_set_genlist_radio_cb, genlist);
+               } else {
+                       item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
+               }
 
-                       if(lang_val == i) {
-                               PRINTFUNC(DLOG_DEBUG, "%d item is choiced.", i);
-                               elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
-                       }
+               if(lang_val == i) {
+                       PRINTFUNC(DLOG_DEBUG, "%d item is choiced.", i);
+                       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+               }
 
-                       if ( item == NULL ) {
-                               PRINTFUNC(DLOG_DEBUG, "elm_genlist_item_append was failed");
-                               break;
-                       }
+               if ( item == NULL ) {
+                       PRINTFUNC(DLOG_DEBUG, "elm_genlist_item_append was failed");
+                       break;
                }
        }
+       Elm_Object_Item *dummy;
+       Elm_Genlist_Item_Class *itc_dummy = elm_genlist_item_class_new();
+       if (itc_dummy) {
+               itc_dummy->item_style = "title";
+               itc_dummy->func.text_get = NULL;
+               itc_dummy->func.content_get = NULL;
+       }
+       dummy = elm_genlist_item_append(genlist, itc_dummy, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(dummy, ELM_OBJECT_SELECT_MODE_NONE);
 
+       LOGD("before elm_radio_value_set > lang_val = %d", lang_val);
+       radio_gp = elm_radio_add(genlist);
+       elm_radio_state_value_set(radio_gp, lang_val);
        elm_radio_value_set(radio_gp, lang_val);
 
        elm_object_signal_callback_add(genlist, "elm,system,language,change", "elm", language_changed_cb, NULL);
-//     eext_rotary_event_callback_set(genlist, _language_list_rotary_cb, NULL);
        evas_object_smart_callback_add(genlist, "realized", _language_list_item_realized, NULL);
 
-
        g_evt_key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _ise_keydown_cb, NULL);
        return genlist;
 }