2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <Elementary.h>
20 #include <app_common.h>
23 #include <efl_extension.h>
30 #include "w-input-selector.h"
31 #include "w-input-stt-ise.h"
32 #include "w-input-stt-voice.h"
33 #include "w-input-stt-tos.h"
34 #include "w-input-stt-tos-text.h"
38 #define _EDJ(x) elm_layout_edje_get(x)
40 static Evas_Object *g_circle_object_first = NULL;
42 #define ISE_PREFERENCE_AGREEMENT "wearable_input_agreement"
43 #define VCONFKEY_USER_AGREEMENT "db/wms/user_agreement/svoice"
44 #define VCONFKEY_USER_AGREED_TOS "db/private/ise/stt/tos"
46 #define N66_URL "https://account.samsung.com/membership/pp"
48 const char *nuance_support_language[12][2] = {
49 {"en_GB", "en"}, // fallback
64 std::string replaceAll(std::string str, const std::string& from, const std::string& to)
67 while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
68 str.replace(start_pos, from.length(), to);
69 start_pos += to.length();
75 static void __bt_connection_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
77 App_Data* ad = (App_Data*)user_data;
82 PRINTFUNC(DLOG_ERROR, "service_h is NULL");
86 app_control_get_extra_data(reply, "__BT_CONNECTION__", &val);
88 if (strcmp(val, "Connected") == 0) {
89 PRINTFUNC(DLOG_ERROR, "BT Connected");
91 PRINTFUNC(DLOG_ERROR, "BT Not Connected");
96 if (ad && ad->app_type == APP_TYPE_STT) {
97 PRINTFUNC(DLOG_DEBUG, "APP_TYPE_STT so exit here.");
103 void launch_bt_connection_popup(App_Data* data)
105 PRINTFUNC(DLOG_DEBUG, "Need to launch BT connection popup");
106 app_control_h app_control;
107 app_control_create(&app_control);
108 app_control_set_app_id(app_control, "com.samsung.bt-connection-popup");
109 app_control_add_extra_data(app_control, "msg", "user_defined");
110 app_control_add_extra_data(app_control, "text", gettext("WDS_ST_TPOP_CONNECT_VIA_BLUETOOTH_TO_REVIEW_AND_ACCEPT_THE_LEGAL_NOTICE_ABB"));
111 app_control_add_extra_data(app_control, "title", PACKAGE);
112 app_control_send_launch_request(app_control, __bt_connection_result_cb, NULL);
113 app_control_destroy(app_control);
116 Eina_Bool set_tos_N66_agreed(Eina_Bool bSet)
118 int ret = vconf_set_bool(VCONFKEY_USER_AGREEMENT, bSet);
119 if ( ret != VCONF_OK ) {
120 PRINTFUNC(DLOG_ERROR, "vconf_set_bool failed ... [%d]!!!", ret);
127 Eina_Bool is_tos_N66_agreed()
129 if (1) return EINA_TRUE;
134 ret = vconf_get_bool(VCONFKEY_USER_AGREEMENT, &bVal);
135 if (ret != VCONF_OK) {
136 PRINTFUNC(DLOG_ERROR, "VCONFKEY_USER_AGREEMENT vconf_get_bool fail: %d", ret);
139 return bVal? EINA_TRUE : EINA_FALSE;
142 Eina_Bool is_sap_connection()
144 int wms_connected = 0;
145 Eina_Bool ret = false;
147 vconf_get_int(VCONFKEY_WMS_WMANAGER_CONNECTED, &wms_connected);
151 vconf_get_int("memory/private/sap/conn_type", &conn_type);
152 if (conn_type == 0) {
153 char *vendor_type = vconf_get_str("db/wms/host_status/vendor");
154 if (vendor_type && !strcmp("LO", vendor_type)) {
161 } else if (conn_type == 1) {
167 PRINTFUNC(DLOG_DEBUG, "standalone mode");
175 _ise_tos_launch_web_link(std::string url)
178 wnoti_error_e eError = WNOTI_ERROR_NONE;
180 eError = wnoti_service_connect();
181 if( eError != WNOTI_ERROR_NONE )
183 PRINTFUNC(DLOG_ERROR, "wnoti_service_connect failed : [%d]!!!", eError);
187 eError = wnoti_request_to_browse((char*)(char *) "Samsung Keyboard", url.c_str());
188 if( eError != WNOTI_ERROR_NONE )
190 PRINTFUNC(DLOG_ERROR, "wnoti_request_to_browse failed!!!", eError);
193 eError = wnoti_service_disconnect();
194 if( eError != WNOTI_ERROR_NONE )
196 PRINTFUNC(DLOG_ERROR, "wnoti_service_disconnect failed : [%d]!!!", eError);
201 static void show_terms(void *data, Evas_Object *obj, void *event_info)
205 if (!event_info) return;
207 int wms_connected = 0;
208 vconf_get_int(VCONFKEY_WMS_WMANAGER_CONNECTED, &wms_connected);
210 if (wms_connected == 1) {
212 Evas_Smart_Cb_Description * desc = (Evas_Smart_Cb_Description*)event_info;
213 std::string tempurl = desc->name;
215 std::string::size_type n = tempurl.find_first_not_of(" \"");
216 if (n != std::string::npos) {
217 tempurl = tempurl.substr(n, tempurl.length());
220 n = tempurl.find_last_not_of(" \"");
221 if (n != std::string::npos) {
222 tempurl = tempurl.substr(0, n + 1);
225 //----------------------url construction-----------------
228 char *locale = vconf_get_str(VCONFKEY_LANGSET);
230 PRINTFUNC(DLOG_DEBUG, "locale = %s", locale);
233 while (nuance_support_language[i][0] != NULL) {
234 if (strstr(locale, nuance_support_language[i][0])) {
243 _ise_tos_launch_web_link(tempurl+ "/" + nuance_support_language[find_it][1]);
245 show_popup_toast(gettext("WDS_MYMAG_TPOP_SHOWING_DETAILS_ON_YOUR_PHONE_ING"), true);
251 static void _response_cb2(void *data, Evas_Object *obj, void *event_info)
253 App_Data* ad = (App_Data*)data;
259 elm_object_disabled_set(obj, EINA_TRUE);
261 elm_naviframe_item_pop(ad->naviframe);
265 _naviframe_pop_cb2(void *data , Elm_Object_Item *it)
267 PRINTFUNC(DLOG_DEBUG, "");
269 if (g_circle_object_first)
270 eext_rotary_object_event_activated_set(g_circle_object_first, EINA_TRUE);
275 static void _response_cb(void *data, Evas_Object *obj, void *event_info)
277 PRINTFUNC(DLOG_DEBUG, "");
279 App_Data* ad = (App_Data*)data;
283 set_tos_N66_agreed(EINA_TRUE);
285 ise_show_stt_popup(ad);
287 set_disclaimer_flag();
291 _naviframe_pop_cb(void *data , Elm_Object_Item *it)
293 PRINTFUNC(DLOG_DEBUG, "");
295 _back_to_genlist_for_selector();
301 std::string getColorStyle(const char *code)
304 int r = 0xFF, g = 0xFF, b = 0xFF, a = 0xFF;
306 // ea_theme_color_get(code, &r, &g, &b, &a, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
307 snprintf(strColor, 256, "<color=#%02x%02x%02x%02x>", r, g, b, a);
309 strRet.append(strColor);
313 std::string getFontStyle(const char *code)
316 // int r = 0xFF, g = 0xFF, b = 0xFF, a = 0xFF;
319 // char strColor[256];
320 // char strFont[256];
321 // ea_theme_color_get(code, &r, &g, &b, &a, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
322 // snprintf(strColor, 256, "<color=#%02x%02x%02x%02x>", r, g, b, a);
324 // ea_theme_font_get(code,&fontStyle,&fontSize);
327 snprintf(strFont, 256, "<font=Tizen:style=%s><font_size=%d>", fontStyle, fontSize);
329 snprintf(strFont, 256, "<font=Tizen:style=Regular><font_size=%d>", fontSize);
331 strRet.append(strFont);
332 strRet.append(strColor);
333 PRINTFUNC(DLOG_DEBUG, "====strRect==%s", strRet.c_str());
334 //after uifw finish patch, this free must open, otherwise it will have memory leak
343 static std::string tagging(const std::string& str)
345 std::string link_start = "<a href=";
346 std::string link_end = "</a>";
347 std::string label = str;
348 std::string tag_str = "";
349 std::string link_color = "";
351 tag_str.append(getFontStyle("T142"));
352 link_color.append(getColorStyle("T1611"));
354 std::string::size_type found = label.find(link_start);
356 while (found != std::string::npos) {
357 tag_str.append(label, 0, found);
358 tag_str.append(link_color);
360 std::string::size_type end_pos = label.find(link_end);
361 tag_str.append(label, found, end_pos-found);
362 tag_str.append("</a>");
363 tag_str.append("</color>");
364 label = label.substr(end_pos+4);
365 found = label.find(link_start);
368 tag_str.append(label);
369 tag_str.append("</font_size></color></font>");
374 static void _language_changed_cb(void *_data, Evas_Object *_obj, void *_event_info)
379 int index = (uintptr_t)_data;
380 std::string terms = "";
382 char body_str[40000];
386 const char *format = gettext("LDS_IME_BODY_INFORMATION_PROVISION_AGREEMENT_P1_LEGALPHRASE_WC1");
387 snprintf(body_str, sizeof(body_str), format, " <a href=\"file://local-nuance-tos\">", "</a>", "<a href=\"http://www.vlingo.com/wap/samsung-asr-privacy-addendum\">", "</a>");
388 terms = tagging(std::string(body_str));
389 terms = replaceAll(terms , std::string("\n"), std::string("<br>"));
390 elm_entry_entry_set(elm_layout_content_get(_obj, "elm.swallow.content"), terms.c_str());
394 terms = tagging(std::string(gettext(TOS_BODY2))+ std::string("<br>") + std::string(gettext(TOS_BODY3)));
395 terms = replaceAll(terms , std::string("\n"), std::string("<br>"));
396 elm_entry_entry_set(elm_layout_content_get(_obj, "elm.swallow.content"), terms.c_str());
403 Evas_Object *create_tos_second_page(void* data){
404 App_Data* ad = (App_Data*)data;
409 PRINTFUNC(DLOG_DEBUG, "");
411 Evas_Object *outer_layout;
412 Evas_Object *inner_layout;
413 Evas_Object *scroller;
414 Evas_Object *circle_scroller;
416 std::string terms = "";
418 string edj_path = get_resource_path();
419 edj_path = edj_path + STT_EDJ_FILE;
421 //------------outer layout----------------------
422 outer_layout = elm_layout_add(ad->naviframe);
423 elm_layout_theme_set(outer_layout, "layout", "bottom_button", "default");
424 evas_object_show(outer_layout);
426 //------------scroller----------------------
427 scroller = elm_scroller_add(outer_layout);
428 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
429 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
430 evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
431 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
432 elm_object_scroll_lock_x_set(scroller, EINA_TRUE);
433 evas_object_show(scroller);
434 circle_scroller = eext_circle_object_scroller_add(scroller, ad->circle_surface);
435 eext_circle_object_scroller_policy_set(circle_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
436 eext_rotary_object_event_activated_set(circle_scroller, EINA_TRUE);
437 elm_object_part_content_set(outer_layout, "elm.swallow.content", scroller);
439 //------------inner layout----------------------
440 inner_layout = elm_layout_add(scroller);
441 elm_layout_file_set(inner_layout, edj_path.c_str(), "elm_naviframe_item_basic_customized");
442 elm_object_domain_translatable_part_text_set(inner_layout, "elm.text.title", PACKAGE, TOS_TITLE);
443 evas_object_size_hint_weight_set(inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
444 evas_object_smart_callback_add(inner_layout, "language,changed", _language_changed_cb, (void *)2);
446 elm_object_content_set(scroller, inner_layout);
448 //------------entry----------------------
449 Evas_Object *entry = elm_entry_add(inner_layout);
450 elm_entry_editable_set(entry, EINA_FALSE);
451 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0);
452 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
453 evas_object_show(entry);
454 elm_entry_text_style_user_push(entry, "DEFAULT='align=center'");
456 terms = tagging(std::string(gettext(TOS_BODY2))+ std::string("<br>")+ std::string(gettext(TOS_BODY3)));
457 terms = replaceAll(terms , std::string("\n"), std::string("<br>"));
459 elm_entry_entry_set(entry, terms.c_str());
461 elm_object_part_content_set(inner_layout, "elm.swallow.content", entry);
463 //------------Bottom Button----------------------
464 btn = elm_button_add(outer_layout);
465 elm_object_style_set(btn, "bottom");
466 elm_access_info_set(btn, ELM_ACCESS_INFO, gettext(POPUP_OK_BTN));
467 //elm_object_domain_translatable_text_set(btn, PACKAGE, POPUP_OK_BTN);
468 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
469 elm_object_part_content_set(outer_layout, "elm.swallow.button", btn);
471 Evas_Object* ic = elm_image_add(btn);
472 elm_image_resizable_set(ic, EINA_TRUE, EINA_TRUE);
473 string path = get_resource_path();
474 string path_ic = path + "/images/w_sip_number_btn_ic.png";
475 elm_image_file_set(ic, path_ic.c_str(), NULL);
476 elm_object_content_set(btn, ic);
478 evas_object_smart_callback_add(btn, "clicked", _response_cb2, ad);
480 evas_object_show(outer_layout);
482 elm_object_signal_emit(inner_layout, "elm,state,visible", "elm");
487 static void _ise_voice_tos_anchor_clicked(void *data, Evas_Object *obj, void *event_info)
489 App_Data* ad = (App_Data*)data;
494 Elm_Entry_Anchor_Info *ainfo = (Elm_Entry_Anchor_Info*)event_info;
496 PRINTFUNC(DLOG_DEBUG, "ainfo->name = %s", ainfo->name);
498 if (!strncmp(ainfo->name, "\"http://", 8)) {
499 show_terms(data, obj, ainfo);
500 } else if (!strncmp(ainfo->name, "\"file://", 8)) {
501 Evas_Object *senconds_layout = create_tos_second_page(ad);
502 Elm_Object_Item *nit = NULL;
503 nit = elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, senconds_layout, "empty");
504 elm_naviframe_item_pop_cb_set(nit, _naviframe_pop_cb2, NULL);
505 elm_naviframe_item_title_enabled_set(nit, EINA_FALSE, EINA_FALSE);
509 Evas_Object *create_tos_popup(void *data)
511 App_Data* ad = (App_Data*)data;
516 PRINTFUNC(DLOG_DEBUG, "");
518 Evas_Object *outer_layout;
519 Evas_Object *inner_layout;
520 Evas_Object *scroller;
521 Evas_Object *circle_scroller;
523 std::string terms = "";
525 string edj_path = get_resource_path();
526 edj_path = edj_path + STT_EDJ_FILE;
528 //------------outer layout----------------------
529 outer_layout = elm_layout_add(ad->naviframe);
530 elm_layout_theme_set(outer_layout, "layout", "bottom_button", "default");
531 evas_object_show(outer_layout);
533 //------------scroller----------------------
534 scroller = elm_scroller_add(outer_layout);
535 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
536 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
537 evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
538 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
539 elm_object_scroll_lock_x_set(scroller, EINA_TRUE);
540 evas_object_show(scroller);
541 circle_scroller = eext_circle_object_scroller_add(scroller, ad->circle_surface);
542 eext_circle_object_scroller_policy_set(circle_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
543 eext_rotary_object_event_activated_set(circle_scroller, EINA_TRUE);
544 elm_object_part_content_set(outer_layout, "elm.swallow.content", scroller);
545 g_circle_object_first = circle_scroller;
547 //------------inner layout----------------------
548 inner_layout = elm_layout_add(scroller);
549 elm_layout_file_set(inner_layout, edj_path.c_str(), "elm_naviframe_item_basic_customized");
550 elm_object_domain_translatable_part_text_set(inner_layout, "elm.text.title", PACKAGE, TOS_TITLE);
551 evas_object_size_hint_weight_set(inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
552 evas_object_smart_callback_add(inner_layout, "language,changed", _language_changed_cb, (void *)1);
554 elm_object_content_set(scroller, inner_layout);
556 //------------entry----------------------
557 Evas_Object *entry = elm_entry_add(inner_layout);
558 elm_entry_editable_set(entry, EINA_FALSE);
559 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0);
560 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
561 evas_object_show(entry);
562 evas_object_smart_callback_add(entry, "anchor,clicked", _ise_voice_tos_anchor_clicked, ad);
563 elm_entry_text_style_user_push(entry, "DEFAULT='align=center'");
565 terms = tagging(std::string(gettext(TOS_NUANCE_BODY)));
566 terms = replaceAll(terms , std::string("%s"), std::string(gettext(SK_GEAR_INPUT)));
567 terms = replaceAll(terms , std::string("\n"), std::string("<br>"));
569 elm_entry_entry_set(entry, terms.c_str());
571 elm_object_part_content_set(inner_layout, "elm.swallow.content", entry);
573 //------------Bottom Button----------------------
574 btn = elm_button_add(outer_layout);
575 elm_object_style_set(btn, "bottom");
576 elm_access_info_set(btn, ELM_ACCESS_INFO, gettext(POPUP_OK_AGREE));
577 elm_object_domain_translatable_text_set(btn, PACKAGE, POPUP_OK_AGREE);
578 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
579 elm_object_part_content_set(outer_layout, "elm.swallow.button", btn);
581 evas_object_smart_callback_add(btn, "clicked", _response_cb, ad);
583 evas_object_show(outer_layout);
585 elm_object_signal_emit(inner_layout, "elm,state,visible", "elm");
591 void ise_show_tos_popup(void *data)
593 App_Data* ad = (App_Data*)data;
598 Evas_Object *main_layout = create_tos_popup(ad);
600 Elm_Object_Item *nit = NULL;
601 nit = elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, main_layout, "empty");
602 elm_naviframe_item_pop_cb_set(nit, _naviframe_pop_cb, NULL);
603 elm_naviframe_item_title_enabled_set(nit, EINA_FALSE, EINA_FALSE);
606 //--------------------------------n66--------------------------------------------------
608 static void _ise_voice_tos_n66_anchor_clicked(void *data, Evas_Object *obj, void *event_info)
610 App_Data* ad = (App_Data*)data;
615 _ise_tos_launch_web_link(N66_URL);
616 show_popup_toast(gettext(SK_SHOWING_DETAIL), true);
619 static void _response_n66_cb(void *data, Evas_Object *obj, void *event_info)
621 App_Data* ad = (App_Data*)data;
626 stt_set_user_agreement(true);
628 set_tos_N66_agreed(EINA_TRUE);
631 ise_show_stt_popup(ad);
633 set_disclaimer_flag();
636 static void _n66_language_changed_cb(void *_data, Evas_Object *_obj, void *_event_info)
640 Evas_Object *create_tos_n66_popup(void *data)
642 App_Data* ad = (App_Data*)data;
647 PRINTFUNC(DLOG_DEBUG, "");
649 Evas_Object *outer_layout;
650 Evas_Object *inner_layout;
651 Evas_Object *scroller;
652 Evas_Object *circle_scroller;
654 std::string terms = "";
656 string edj_path = get_resource_path();
657 edj_path = edj_path + STT_EDJ_FILE;
659 // 1. Get Country Code
660 // char *country_code = NULL;
661 // country_code = vconf_get_str(VCONFKEY_CSC_COUNTRY_ISO);
663 // 2. Set String ID depend on Count Code
664 char* popup_title_id = NULL;
665 char* popup_body_id = NULL;
666 // if (country_code) {
667 // if (!strcmp(country_code, "CN")) {
668 // popup_title_id = TOS_TITLE_CHN;
669 // popup_body_id = TOS_N66_BODY_CHN;
671 // popup_title_id = TOS_TITLE;
672 // popup_body_id = TOS_N66_BODY;
675 PRINTFUNC(DLOG_ERROR, "Getting Count Code is Error!!! Set default TOS Text!");
676 // popup_title_id = TOS_TITLE;
677 // popup_body_id = TOS_N66_BODY;
681 //------------outer layout----------------------
682 outer_layout = elm_layout_add(ad->naviframe);
683 elm_layout_theme_set(outer_layout, "layout", "bottom_button", "default");
684 evas_object_show(outer_layout);
686 //------------scroller----------------------
687 scroller = elm_scroller_add(outer_layout);
688 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
689 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
690 evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
691 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
692 elm_object_scroll_lock_x_set(scroller, EINA_TRUE);
693 evas_object_show(scroller);
694 circle_scroller = eext_circle_object_scroller_add(scroller, ad->circle_surface);
695 eext_circle_object_scroller_policy_set(circle_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
696 eext_rotary_object_event_activated_set(circle_scroller, EINA_TRUE);
697 elm_object_part_content_set(outer_layout, "elm.swallow.content", scroller);
698 g_circle_object_first = circle_scroller;
700 //------------inner layout----------------------
701 inner_layout = elm_layout_add(scroller);
702 elm_layout_file_set(inner_layout, edj_path.c_str(), "elm_naviframe_item_basic_customized");
703 elm_object_domain_translatable_part_text_set(inner_layout, "elm.text.title", PACKAGE, popup_title_id);
704 evas_object_size_hint_weight_set(inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
705 evas_object_smart_callback_add(inner_layout, "language,changed", _n66_language_changed_cb, NULL);
707 elm_object_content_set(scroller, inner_layout);
709 //------------Entry----------------------
710 Evas_Object *entry = elm_entry_add(inner_layout);
711 elm_entry_editable_set(entry, EINA_FALSE);
712 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0);
713 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
714 evas_object_show(entry);
715 evas_object_smart_callback_add(entry, "anchor,clicked", _ise_voice_tos_n66_anchor_clicked, ad);
716 elm_entry_text_style_user_push(entry, "DEFAULT='align=center'");
718 // ea_cutlink_h cutlink;
719 // ea_cutlink_create(&cutlink, entry, EA_CUTLINK_USER);
721 /* add a new scheme */
722 // ea_cutlink_scheme_add(cutlink, "hello:", N66_URL);
724 /* set prefix and postfix for a new scheme */
725 // ea_cutlink_prefix_set(cutlink, "hello:",
726 // "<color=#5BB8FFEF underline=on "
727 // "underline_color=#5BB8FFEF>");
728 // ea_cutlink_postfix_set(cutlink, "hello:", "</color>");
732 /* set text for parsing */
733 markup = elm_entry_utf8_to_markup(gettext(popup_body_id));
734 // ea_cutlink_markup_set(cutlink, markup);
736 // ea_cutlink_markup_apply(cutlink, gettext(popup_body_id), &txt);
737 PRINTFUNC(DLOG_DEBUG, "%s", txt);
739 terms = tagging(std::string(gettext(txt)));
740 elm_entry_entry_set(entry, terms.c_str());
747 /* destroy cutlink object */
748 // ea_cutlink_destroy(cutlink);
750 elm_object_part_content_set(inner_layout, "elm.swallow.content", entry);
752 //------------Bottom Button----------------------
753 btn = elm_button_add(outer_layout);
754 elm_object_style_set(btn, "bottom");
755 elm_access_info_set(btn, ELM_ACCESS_INFO, gettext(POPUP_OK_AGREE));
756 elm_object_domain_translatable_text_set(btn, PACKAGE, POPUP_OK_AGREE);
757 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
758 elm_object_part_content_set(outer_layout, "elm.swallow.button", btn);
760 evas_object_smart_callback_add(btn, "clicked", _response_n66_cb, ad);
762 evas_object_show(outer_layout);
764 elm_object_signal_emit(inner_layout, "elm,state,visible", "elm");
769 void ise_show_tos_n66_popup(void *data)
771 App_Data* ad = (App_Data*)data;
776 Evas_Object *main_layout = create_tos_n66_popup(ad);
778 Elm_Object_Item *nit = NULL;
779 nit = elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, main_layout, "empty");
780 elm_naviframe_item_pop_cb_set(nit, _naviframe_pop_cb, NULL);
781 elm_naviframe_item_title_enabled_set(nit, EINA_FALSE, EINA_FALSE);