static void set_guide_text(VoiceData *vd, const char* text, bool translatable = false);
-char *supported_language[13] = {
- "auto",
- "de_DE",
- "en_GB",
- "en_US",
- "es_ES",
- "es_US",
- "fr_FR",
- "it_IT",
- "pt_BR",
- "ru_RU",
- "zh_CN",
- "ja_JP",
- "ko_KR",
-};
-
-char *supported_language_n66[7] = {
+char *supported_language[7] = {
"auto",
"en_US",
"es_US",
};
-char *disp_lang_array[13] = {
- "",
- "Deutsch",
- "English (United Kingdom)",
- "English (United States)",
- "Español (España)",
- "Español (América Latina)",
- "Français (France)",
- "Italiano",
- "Português (Brasil)",
- "Pусский",
- "简体中文",
- "日本語",
- "한국어",
-};
-
-char *disp_lang_array_n66[7] = {
+char *disp_lang_array[7] = {
"",
"English (United States)",
"Español (América Latina)",
{
char *str = NULL;
- if (strcmp(lang, "en_US") == 0)
- str = disp_lang_array[3];
-
- else if (strcmp(lang, "ko_KR") == 0)
- str = disp_lang_array[12];
-
- else if (strcmp(lang, "de_DE") == 0)
- str = disp_lang_array[1];
-
- else if (strcmp(lang, "fr_FR") == 0)
- str = disp_lang_array[6];
-
- else if (strcmp(lang, "it_IT") == 0)
- str = disp_lang_array[7];
-
- else if (strcmp(lang, "en_GB") == 0)
- str = disp_lang_array[2];
-
- else if (strcmp(lang, "ja_JP") == 0)
- str = disp_lang_array[11];
-
- else if (strcmp(lang, "zh_CN") == 0)
- str = disp_lang_array[10];
-
- else if (strcmp(lang, "ru_RU") == 0)
- str = disp_lang_array[9];
-
- else if (strcmp(lang, "pt_BR") == 0)
- str = disp_lang_array[8];
-
- else if (strcmp(lang, "es_ES") == 0)
- str = disp_lang_array[4];
-
- else if (strcmp(lang, "es_US") == 0)
- str = disp_lang_array[5];
-
- else
- str = disp_lang_array[3];
-
- return str;
-}
-
-char* get_lang_label_n66(char lang[])
-{
- char *str = NULL;
-
if (strcmp (lang, "en_US") == 0)
- str = disp_lang_array_n66[1];
+ str = disp_lang_array[1];
else if (strcmp (lang, "ko_KR") == 0)
- str = disp_lang_array_n66[6];
+ str = disp_lang_array[6];
else if (strcmp (lang, "fr_FR") == 0)
- str = disp_lang_array_n66[3];
+ str = disp_lang_array[3];
else if (strcmp (lang, "ja_JP") == 0)
- str = disp_lang_array_n66[5];
+ str = disp_lang_array[5];
else if (strcmp (lang, "zh_CN") == 0)
- str = disp_lang_array_n66[4];
+ str = disp_lang_array[4];
else if (strcmp (lang, "es_US") == 0)
- str = disp_lang_array_n66[2];
+ str = disp_lang_array[2];
else
- str = disp_lang_array_n66[1];
+ str = disp_lang_array[1];
return str;
}
PRINTFUNC(NO_PRINT, "");
VoiceData *voicedata = (VoiceData *)data;
-
- if (elm_config_access_get()){
- if(bottom_button_access_state == true){
- PRINTFUNC(DLOG_DEBUG, "skip until bottom buttom is being read by accessibility");
- return;
- }
- }
-
edje_object_signal_emit(_EDJ(voicedata->layout_main), "mouse,clicked,1", "background");
return;
}
-static char *_left_cue_access_info_cb(void *data, Evas_Object *obj)
-{
- char text[512];
-
- snprintf(text, sizeof(text), "%s, %s", gettext(TTS_SEND), gettext(TTS_BUTTON));
-
- return strdup(text);
-}
-
-static void _left_cue_access_activate_cb(void * data, Evas_Object *part_obj, Elm_Object_Item *item)
-{
- Evas_Object *obj = (Evas_Object *)data;
- elm_layout_signal_emit(obj, "cue,clicked", "elm");
-
- elm_panel_toggle(obj);
-}
-
-
-static void _send_button_highlighted_cb(void *data, Evas_Object * obj, void *event_info)
-{
- PRINTFUNC(DLOG_DEBUG, "");
- VoiceData* voicedata = (VoiceData*)data;
-
- if (voicedata->sttmanager->GetCurrent() == STT_STATE_RECORDING ||
- voicedata->sttmanager->GetCurrent() == STT_STATE_PROCESSING)
- return;
-
- std::string text = std::string(gettext(TTS_SEND));
- text = text +" "+ gettext(TTS_BUTTON);
- if (elm_object_disabled_get(obj))
- text = text + " " + gettext(TTS_DISABLED);
-
- elm_access_say(text.c_str());
-}
static Eina_Bool _mic_button_enable_cb(void *data)
{
elm_object_disabled_set(button, EINA_FALSE);
- if (elm_config_access_get()){
- bottom_button_access_state = false;
- }
-
return ECORE_CALLBACK_CANCEL;
}
-static void _mic_highlighted_cb(void *data, Evas_Object * obj, void *event_info)
-{
- PRINTFUNC(DLOG_DEBUG, "");
- VoiceData* voicedata = (VoiceData*)data;
-
- if (voicedata->sttmanager->GetCurrent() == STT_STATE_RECORDING ||
- voicedata->sttmanager->GetCurrent() == STT_STATE_PROCESSING)
- return;
-
-
- if (elm_config_access_get()){
- bottom_button_access_state = true;
- } else {
- elm_object_disabled_set(voicedata->mic_button, EINA_TRUE);
- }
-
-
- if(voicedata->btn_disabling_timer == NULL){
- ecore_timer_del(voicedata->btn_disabling_timer);
- }
- voicedata->btn_disabling_timer = ecore_timer_add(3.0, _mic_button_enable_cb, voicedata);
-
- elm_access_say(gettext(SK_DOUBLE_TAP_TO_SPEAK));
-}
-
-static char *_mic_access_info_cb(void *data, Evas_Object *obj)
-{
- if (data) return strdup((const char*)data);
- return NULL;
-}
-
static void on_confirm_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
PRINTFUNC(DLOG_DEBUG, "result_text = %s", result_text.c_str());
input_smartreply_send_feedback(result_text.c_str());
- if(app_data->reply_type == REPLY_APP_CONTROL){
- reply_to_sender_by_appcontrol((void*)app_data, result_text.c_str(), "voice");
- } else {
- reply_to_sender_by_callback(result_text.c_str(), "voice");
- destroy_voice();
- powerUnlock();
- elm_exit();
- }
+ reply_to_sender_by_callback(result_text.c_str(), "voice");
+ destroy_voice();
+ powerUnlock();
+ elm_exit();
return;
}
return strdup(_("IDS_VC_BODY_AUTOMATIC"));
} else {
char *s = NULL;
- if(g_is_n66) {
- s = (char *)disp_lang_array_n66[(int)data];
- } else {
- s = (char *)disp_lang_array[(int)data];
- }
+ s = (char *)disp_lang_array[(int)data];
if(s) {
char *p = strchr(s, '(');
// confirm whether the system language is supported by stt engine or not.
// if supported, set the language
// otherwise, set language to en_US
- if(g_is_n66) {
- return strdup(get_lang_label_n66(system_lang));
- } else {
- return strdup(get_lang_label(system_lang));
- }
+ return strdup(get_lang_label(system_lang));
+
} else {
char *s = NULL;
- if(g_is_n66) {
- s = (char *)disp_lang_array_n66[(int)data];
- } else {
- s = (char *)disp_lang_array[(int)data];
- }
+ s = (char *)disp_lang_array[(int)data];
if(s) {
char *p = strchr(s, '(');
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");
-
- if (elm_config_access_get())
- elm_access_object_unregister(content);
}
return content;
}
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_n66[lang]);
- } else {
- PRINTFUNC(DLOG_DEBUG, "current language value for stt (%s).", disp_lang_array[lang]);
+ PRINTFUNC(DLOG_DEBUG, "n66 current language value for stt (%s).", disp_lang_array[lang]);
}
return lang;
case STT_VOICE_N66_KO_KR :
case STT_VOICE_N66_ZH_CN :
{
- my_voicedata->kbd_lang = strdup(supported_language_n66[stt_lang]);
- }
- break;
- default :
- my_voicedata->kbd_lang = strdup("en_US");
- break;
- }
- } else {
- STT_VOICE_LANGUAGE_I stt_lang;
- stt_lang = (STT_VOICE_LANGUAGE_I)get_language_value();
-
- PRINTFUNC(DLOG_DEBUG, "language type (%d)", stt_lang);
-
- switch(stt_lang) {
- case STT_VOICE_AUTO :
- {
- stt_get_default_language(my_voicedata->voicefw_handle, &my_voicedata->kbd_lang);
-
- // get system display language
- char* value = NULL;
- value = vconf_get_str(VCONFKEY_LANGSET);
- if (NULL == value) {
- PRINTFUNC(DLOG_ERROR, "Fail to get display language");
- return;
- }
- PRINTFUNC(DLOG_DEBUG, "system language (%s)", value);
-
- char system_lang[6] = {0, };
- strncpy(system_lang, value , 5);
- free(value);
-
- // confirm whether the system language is supported by stt engine or not.
- // if supported, set the language
- // otherwise, set language to en_US
- if(is_lang_supported_by_stt(system_lang) == TRUE) {
- my_voicedata->kbd_lang = strdup(system_lang);
- PRINTFUNC(DLOG_DEBUG, "Set auto language (%s)", system_lang);
- } else {
- my_voicedata->kbd_lang = strdup("en_US");
- PRINTFUNC(DLOG_DEBUG, "System language is not supported by STT (%s), en_US will be set", system_lang);
- }
- }
- break;
- case STT_VOICE_DE_DE :
- case STT_VOICE_EN_GB :
- case STT_VOICE_EN_US :
- case STT_VOICE_ES_ES :
- case STT_VOICE_ES_US :
- case STT_VOICE_FR_FR :
- case STT_VOICE_IT_IT :
- case STT_VOICE_JA_JP :
- case STT_VOICE_KO_KR :
- case STT_VOICE_RU_RU :
- case STT_VOICE_ZH_CN :
- case STT_VOICE_PT_BR :
- {
my_voicedata->kbd_lang = strdup(supported_language[stt_lang]);
}
break;
return ECORE_CALLBACK_DONE;
}
-char *_language_list_access_info_cb(void *data, Evas_Object *obj)
-{
- PRINTFUNC(DLOG_DEBUG, "%s", __func__);
-
- int value;
- int index;
- std::string text = std::string(gettext(TTS_RADIO_BUTTON));
- const Elm_Object_Item *item = (Elm_Object_Item *)data;
-
- Evas_Object* radio = elm_object_item_part_content_get(item, "elm.icon");
-
- index = elm_genlist_item_index_get(item);
-
- if(index == 1) // title
- return NULL;
-
-
- value = elm_radio_value_get(radio);
- //PRINTFUNC(DLOG_DEBUG,"index=%d value = %d", index, value);
- if(index == value + 2 ){
- text = text + std::string(" ") + std::string(gettext(TTS_SELECTED));
- } else {
- text = text + std::string(" ") + std::string(gettext(TTS_NOT_SELECTED));
- }
-
- return strdup(text.c_str());
-}
static void _language_list_item_realized(void *data, Evas_Object *obj, void *event_info) //called when list scrolled
{
PRINTFUNC(DLOG_DEBUG, "%s", __func__);
- if (elm_config_access_get()) {
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Evas_Object *item_access = elm_object_item_access_object_get(item);
-
- elm_access_info_cb_set(item_access, ELM_ACCESS_CONTEXT_INFO, _language_list_access_info_cb, (void*)item);
- }
}
static Evas_Object *create_language_list(Evas_Object *parent)
if(g_is_n66) {
for (i = 1; i < 7; i++)
{
- char *s = (char *)disp_lang_array_n66[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(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;
- }
- }
- } else {
- for (i = 1; i < 13; i++)
- {
char *s = (char *)disp_lang_array[i];
if(strchr(s, '(')){
if(!data) return;
}
-static void get_text_part_width(Evas_Object *window, const char *text, Evas_Coord *calculated_width)
-{
- if(!window) return;
- if(!text) return;
- if(!calculated_width) return;
-
- Evas_Coord width, height;
-
- char *strbuf = NULL;
- Evas_Object *tb = NULL;
- Evas_Textblock_Style *st = NULL;
- Evas_Textblock_Cursor *cur = NULL;
-
- tb = evas_object_textblock_add(evas_object_evas_get(window));
- evas_object_textblock_legacy_newline_set(tb, EINA_FALSE);
-
- st = evas_textblock_style_new();
- evas_textblock_style_set(st, VIRTUAL_TEXT_AREA_FONT_STYLE);
- evas_object_textblock_style_set(tb, st);
-
- cur = evas_object_textblock_cursor_new(tb);
- strbuf = elm_entry_utf8_to_markup(text);
- evas_object_resize(tb, 360, 47);
-
- evas_object_textblock_text_markup_set(tb, strbuf);
- evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed");
- evas_object_textblock_size_formatted_get(tb, &width, &height);
- evas_object_resize(tb, width, 47);
-
- *calculated_width = width;
-
- if(strbuf) free(strbuf);
- if(tb) evas_object_del(tb);
- if(st) evas_textblock_style_free(st);
- if(cur) evas_textblock_cursor_free(cur);
-}
void _stt_lang_changed_cb(keynode_t *key, void* data)
{
Evas_Object *m_mic_button = elm_button_add(layout_main);
elm_object_style_set(m_mic_button, "vic/micbutton");
elm_object_part_content_set(layout_main, "MIC", m_mic_button);
- if (elm_config_access_get()){
- elm_access_info_cb_set(m_mic_button, ELM_ACCESS_INFO, _mic_access_info_cb, NULL);
- elm_access_info_cb_set(m_mic_button, ELM_ACCESS_TYPE, _mic_access_info_cb, NULL);
- elm_access_info_cb_set(m_mic_button, ELM_ACCESS_STATE, _mic_access_info_cb, NULL);
- evas_object_smart_callback_add(m_mic_button, "access,highlighted", _mic_highlighted_cb, voicedata);
- }
elm_object_disabled_set(m_mic_button, EINA_TRUE);
evas_object_smart_callback_add(m_mic_button, "clicked", on_mic_button_press_cb, (void *) voicedata);
panel = elm_panel_add(panel_layout);
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_LEFT);
elm_layout_theme_set(panel, "panel", "left_confirm", "default");
- if(app_data->source_app_control){
- int ret;
- char *app_id = NULL;
- ret = app_control_get_extra_data(app_data->source_app_control, "selector_keyboard_app_id", &app_id);
- if (ret == APP_CONTROL_ERROR_NONE) {
- PRINTFUNC(DLOG_DEBUG, "app_id = %s", app_id);
- }
+ elm_layout_theme_set(panel, "panel", "left_sending", "default");
- if(app_id){
- if(!strcmp(app_id, "com.samsung.message.appcontrol.compose")
- || !strcmp(app_id, "com.samsung.wemail-send")){
- elm_layout_theme_set(panel, "panel", "left_sending", "default");
- }
- free(app_id);
- }
- }
elm_layout_signal_callback_add(panel, "cue,clicked", "elm", _panel_cue_clicked_cb, (void *) voicedata);
evas_object_show(panel);
mo->SetContentLayout(layout_main);
- //accesbility chaining
- if (elm_config_access_get()) {
- //right cue
- Evas_Object *cue_access_right = NULL;
-
- Evas_Object *panel_right = elm_object_part_content_get(mo->getMoreOptionLayout(), "elm.swallow.right");
- if (!panel_right) {
- PRINTFUNC(DLOG_DEBUG, "panel_right == NULL");
- }
- Evas_Object *cue_right = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(panel_right), "cue.event");
- if (!cue_right) {
- PRINTFUNC(DLOG_DEBUG, "cue_right == NULL");
- }
- Evas_Object *_access_right = elm_access_object_get(cue_right);
- if (!_access_right){
- PRINTFUNC(DLOG_DEBUG, "_access_right == NULL");
- }
- cue_access_right = _access_right;
-
- //left cue
- Evas_Object *cue_access_left = NULL;
- Evas_Object *panel_layout = elm_layout_content_get(layout_main, "left_panel_area");
- Evas_Object *panel_left = elm_layout_content_get(panel_layout, "elm.swallow.right");
- if (!panel_left) {
- PRINTFUNC(DLOG_DEBUG, "panel_left == NULL");
- }
- Evas_Object *cue_left = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(panel_left), "cue.event");
- if (!cue_left) {
- PRINTFUNC(DLOG_DEBUG, "cue_left == NULL");
- }
- Evas_Object *_access_left = elm_access_object_register(cue_left, panel_left);
- if (!_access_left){
- PRINTFUNC(DLOG_DEBUG, "_access_left == NULL");
- }
- elm_access_info_cb_set(_access_left, ELM_ACCESS_INFO, _left_cue_access_info_cb, panel_left);
- elm_access_activate_cb_set(_access_left, _left_cue_access_activate_cb, panel_left);
-
- cue_access_left = _access_left;
-
- elm_access_highlight_next_set(m_mic_button, ELM_HIGHLIGHT_DIR_NEXT, cue_access_right);
- elm_access_highlight_next_set(cue_access_right, ELM_HIGHLIGHT_DIR_PREVIOUS, m_mic_button);
-
- elm_access_highlight_next_set(cue_access_right, ELM_HIGHLIGHT_DIR_NEXT, cue_access_left);
- elm_access_highlight_next_set(cue_access_left, ELM_HIGHLIGHT_DIR_PREVIOUS, cue_access_right);
-
- elm_access_highlight_next_set(cue_access_left, ELM_HIGHLIGHT_DIR_NEXT, m_mic_button);
- elm_access_highlight_next_set(m_mic_button, ELM_HIGHLIGHT_DIR_PREVIOUS, cue_access_left);
- }
-
return layout_main;
}