From: CCC <2393524978@qq.com> Date: Tue, 26 Sep 2023 09:13:57 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=cf71ddbbaaf44abb16a9694551a13d9dcb16564f;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c index d661d974..9f6dfe28 100644 --- a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c +++ b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c @@ -15,16 +15,13 @@ static void * timing_control_timer = NULL; static uint8_t s_step_clear_flag = 0; -static uint8_t s_last_time_min = 0; #define TIMING_TIMER_INTERVAL (20 * 1000) // ms static void timing_timer_callback(uint32_t param) { hal_rtc_t time; - Hal_Rtc_Gettime(&time); - printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, time.tm_hour, time.tm_min, time.tm_sec); // pedometer @@ -44,11 +41,7 @@ static void timing_timer_callback(uint32_t param) // disturb #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ - if(time.tm_min != s_last_time_min) - { - s_last_time_min = time.tm_min; - mmi_watch_do_not_disturb_screen_check(); - } +// mmi_watch_do_not_disturb_screen_check(time.tm_min); #endif uos_timer_stop(timing_control_timer); @@ -60,10 +53,6 @@ void app_adaptor_timing_control_init(void) uos_timer_create(&timing_control_timer); uos_timer_start(timing_control_timer, MS_TO_TICKS(TIMING_TIMER_INTERVAL), 0, timing_timer_callback, NULL); -#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ - mmi_watch_do_not_disturb_screen_check(); -#endif - } #else diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.c index 4ff85d2a..e6bb84cc 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.c @@ -1798,8 +1798,7 @@ static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj) //lv_obj_add_style(list, LV_LIST_PART_SCROLLABLE, &lv_watch_style_transp); //lv_obj_set_style_local_pad_top(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); //lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); - lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); + lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); // lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); lv_obj_set_width(list, lv_obj_get_width(content)); lv_coord_t height = lv_obj_get_height(content) - 40; // lv_obj_get_height(label); lv_obj_set_height(list, height); @@ -1906,6 +1905,20 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) lv_label_set_text_id(label, WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); } + else if(true != mmi_watch_tcp_connect_state_get() + || true != mmi_protocol_watch_bind_state_get() + ) + { + // not bind + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_obj_t * label = lv_label_create(obj, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_set_click(label, false); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_BIND); + lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); + } else if(0 == s_vc_contact.total) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1924,7 +1937,7 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) mmi_vc_contact_list_create(obj); } - return(obj); + return obj; } void video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c index 211e821f..e872f629 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c @@ -1832,8 +1832,7 @@ static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj) //lv_obj_add_style(list, LV_LIST_PART_SCROLLABLE, &lv_watch_style_transp); //lv_obj_set_style_local_pad_top(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); //lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); - lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); + lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); // lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); lv_obj_set_width(list, lv_obj_get_width(content)); lv_coord_t height = lv_obj_get_height(content) - 40; // lv_obj_get_height(label); lv_obj_set_height(list, height); @@ -1940,6 +1939,20 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) lv_label_set_text_id(label, WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); } + else if(true != mmi_watch_tcp_connect_state_get() + || true != mmi_protocol_watch_bind_state_get() + ) + { + // not bind + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_obj_t * label = lv_label_create(obj, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_set_click(label, false); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_BIND); + lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); + } else if(0 == s_vc_contact.total) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1958,7 +1971,7 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) mmi_vc_contact_list_create(obj); } - return(obj); + return obj; } void video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c index ac20700c..30a58988 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c @@ -1856,8 +1856,7 @@ static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj) //lv_obj_add_style(list, LV_LIST_PART_SCROLLABLE, &lv_watch_style_transp); //lv_obj_set_style_local_pad_top(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); //lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); - lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); + lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); // lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); lv_obj_set_width(list, lv_obj_get_width(content)); lv_coord_t height = lv_obj_get_height(content) - 40; // lv_obj_get_height(label); lv_obj_set_height(list, height); @@ -1964,6 +1963,20 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) lv_label_set_text_id(label, WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); } + else if(true != mmi_watch_tcp_connect_state_get() + || true != mmi_protocol_watch_bind_state_get() + ) + { + // not bind + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_obj_t * label = lv_label_create(obj, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_set_click(label, false); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_BIND); + lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); + } else if(0 == s_vc_contact.total) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1982,7 +1995,7 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) mmi_vc_contact_list_create(obj); } - return(obj); + return obj; } void video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c index 8bc67120..729bad9e 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c @@ -28,6 +28,11 @@ bool mmi_active_screen_is_prohibit_interrupted(void) return true; } + if(NULL != lv_watch_get_activity_obj(ACT_ID_POWON_LOGO)) + { + return true; + } + if(NULL != lv_watch_get_activity_obj(ACT_ID_ALARM)) { return true; @@ -356,11 +361,6 @@ void mmi_watch_no_sim_power_off_timer_stop(void) static void mmi_watch_no_sim_power_off_prompt_prepare_destory(lv_obj_t * activity_obj) { lv_watch_png_cache_all_free(); - lv_obj_t * act_obj = lv_watch_get_activity_obj(ACT_ID_NO_SIM_POWER_OFF_PROMPT); - if(act_obj) - { - lv_obj_del(act_obj); - } mmi_watch_no_sim_power_off_check_action(); @@ -380,6 +380,11 @@ static void mmi_watch_no_sim_power_off_cancel_btn_event_cb(lv_obj_t * btn, lv_ev if(LV_EVENT_CLICKED == e) { mmi_watch_no_sim_power_off_prompt_prepare_destory(NULL); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_NO_SIM_POWER_OFF_PROMPT); + if(activity_obj) + { + lv_obj_del(activity_obj); + } } } @@ -541,11 +546,6 @@ static void mmi_watch_charging_prompt_screen_prepare_destory(lv_obj_t * activity mmi_watch_charging_prompt_timer_stop(); lv_watch_png_cache_all_free(); - lv_obj_t * act_obj = lv_watch_get_activity_obj(ACT_ID_CHARGING_PROMPT); - if(act_obj) - { - lv_obj_del(act_obj); - } } static void mmi_watch_charging_prompt_cb(void *para) @@ -553,6 +553,11 @@ static void mmi_watch_charging_prompt_cb(void *para) SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_watch_charging_prompt_screen_prepare_destory(NULL); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHARGING_PROMPT); + if(activity_obj) + { + lv_obj_del(activity_obj); + } } static lv_obj_t * mmi_watch_charging_prompt_screen_create(lv_obj_t * activity_obj, uint32_t chg_status) @@ -628,6 +633,11 @@ void mmi_ui_msg_update_charging_prompt(uint32_t chg_status) if(HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status || HAL_CHG_DISCONNECTED == (HAL_CHG_STATUS)chg_status) { mmi_watch_charging_prompt_screen_prepare_destory(NULL); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHARGING_PROMPT); + if(activity_obj) + { + lv_obj_del(activity_obj); + } mmi_watch_charging_prompt_screen_create(NULL, chg_status); } } @@ -635,7 +645,13 @@ void mmi_ui_msg_update_charging_prompt(uint32_t chg_status) #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ +//#define DO_NOT_DISTURB_TIME_Y () +//#define DO_NOT_DISTURB_PROMPT_Y () +//#define DO_NOT_DISTURB_TIME_Y () + + static nv_watch_do_not_disturb_t s_do_not_disturb_data = {0}; +static uint8_t s_do_not_disturb_last_min = 0; void mmi_watch_do_not_disturb_nv_write(void) { @@ -700,16 +716,15 @@ bool mmi_watch_is_in_do_not_disturb_time(void) static void mmi_watch_do_not_disturb_screen_prepare_destory(lv_obj_t * activity_obj) { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_watch_png_cache_all_free(); - //lv_obj_t * act_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); - //if(act_obj) - //{ - // lv_obj_del(act_obj); - //} } static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj) { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + if(NULL == activity_obj) { lv_watch_activity_ext_t activity_ext; @@ -758,6 +773,7 @@ static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); uint8_t i = 0; + uint8_t j = 0; uint8_t t_height = lv_obj_get_height(label_prompt); for(i = 0; i < NV_WATCH_DO_NOT_DISTURB_ITEM_MAX; i++) @@ -774,7 +790,8 @@ static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj lv_label_set_text(label, t_time_str); lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_align(label, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 10 + (t_height + 10) * i); + lv_obj_align(label, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 8 + (t_height + 8) * j); + j++; } } @@ -783,20 +800,39 @@ static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj void mmi_ui_msg_update_do_not_disturb(uint8_t flag) { -#if 0 if(flag) + { mmi_watch_do_not_disturb_screen_create(NULL); + } else + { mmi_watch_do_not_disturb_screen_prepare_destory(NULL); -#endif + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); + if(activity_obj) + { + lv_obj_del(activity_obj); + } + } } -void mmi_watch_do_not_disturb_screen_check(void) +void mmi_watch_do_not_disturb_screen_check(int32_t tm_min) { -#if 0 + if(tm_min == s_do_not_disturb_last_min) + { + return; + } + + if(0 == Hal_Pm_Get_State()) + { + return; + } + + s_do_not_disturb_last_min = tm_min; + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); if(true == mmi_watch_is_in_do_not_disturb_time()) { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, activity_obj); if(NULL == activity_obj) { mmi_ui_msg_action_do_not_disturb(1); @@ -804,12 +840,12 @@ void mmi_watch_do_not_disturb_screen_check(void) } else { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, activity_obj); if(NULL != activity_obj) { mmi_ui_msg_action_do_not_disturb(0); } } -#endif } #endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h index d4566a93..a21751af 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h @@ -71,7 +71,7 @@ void mmi_watch_do_not_disturb_nv_read(void); void mmi_watch_do_not_disturb_data_set(nv_watch_do_not_disturb_t * data); bool mmi_watch_is_in_do_not_disturb_time(void); void mmi_ui_msg_update_do_not_disturb(uint8_t flag); -void mmi_watch_do_not_disturb_screen_check(void); +void mmi_watch_do_not_disturb_screen_check(int32_t tm_min); #endif diff --git a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c index b56f42df..5a5f3936 100644 --- a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c +++ b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c @@ -17,8 +17,14 @@ */ void cmdmsg_handler_init_impl(void *param) { +#ifdef __MMI_ZHSX_SUPPORT__ + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + mmi_watch_protocol_data_nv_read(); + +#else + //todo - +#endif } /** diff --git a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_net.c b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_net.c index 80015f7c..a69a595d 100644 --- a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_net.c +++ b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_net.c @@ -17,6 +17,63 @@ void tcp_connect_cb(int t) uart_printf("tcp_connect_cb!!!!"); send_tcp_cmdmsg(FZD_LK,""); } + +#ifdef __MMI_ZHSX_SUPPORT__ +#define MMI_TCP_FIRST_CONNECT_TIME_INTERVAL (1000 * 5) // ms +#define MMI_TCP_FIRST_CONNECT_TIMEOUT (1000 * 60) // ms + +static void * s_tcp_first_connect_timer_id = NULL; +static uint32_t s_tcp_first_connect_time = 0; + +void mmi_launcher_tcp_first_connect(uint32_t para) +{ + if((FALSE == watch_modem_sim_present_check_req()) + && (MMI_TCP_FIRST_CONNECT_TIMEOUT <= s_tcp_first_connect_time) + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + + if(NULL != s_tcp_first_connect_timer_id) + { + uos_timer_stop(s_tcp_first_connect_timer_id); + uos_timer_delete(s_tcp_first_connect_timer_id); + s_tcp_first_connect_timer_id = NULL; + } + s_tcp_first_connect_time = 0; + } + else + { + if(MMI_MODEM_SIGNAL_BAR_0 == watch_modem_get_signal_bar_req() + && (MMI_TCP_FIRST_CONNECT_TIMEOUT > s_tcp_first_connect_time) + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + + if(NULL == s_tcp_first_connect_timer_id) + { + uos_timer_create(&s_tcp_first_connect_timer_id); + } + uos_timer_stop(s_tcp_first_connect_timer_id); + uos_timer_start(s_tcp_first_connect_timer_id, MS_TO_TICKS(MMI_TCP_FIRST_CONNECT_TIME_INTERVAL), 0, mmi_launcher_tcp_first_connect, NULL); + s_tcp_first_connect_time += MMI_TCP_FIRST_CONNECT_TIME_INTERVAL; + } + else + { + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + + if(NULL != s_tcp_first_connect_timer_id) + { + uos_timer_stop(s_tcp_first_connect_timer_id); + uos_timer_delete(s_tcp_first_connect_timer_id); + s_tcp_first_connect_timer_id = NULL; + } + s_tcp_first_connect_time = 0; + launcher_tcp_connect(NULL); + } + } +} +#endif + /** * The task of initializing a TCP connection */ @@ -24,9 +81,9 @@ void mmi_modem_tcp_task_init(void) { #ifdef __MMI_ZHSX_SUPPORT__ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); - mmi_watch_protocol_data_nv_read(); + mmi_modem_tcp_task_interface_init(); - launcher_tcp_connect(NULL); + mmi_launcher_tcp_first_connect(0); #else