From: CCC <2393524978@qq.com> Date: Sat, 22 Jul 2023 01:22:54 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=1f4bd4e59924895c4b09b385e387b007dc4caf2f;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c index 17921536..1157d707 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c @@ -356,12 +356,33 @@ void watch_ui_message_handle(uint16_t msgid, void * msg) sos_key_ui_handle(); break; + #ifdef __MMI_ZHSX_SUPPORT__ #ifdef __MMI_ZHSX_SUPPORT_ALIPAY__ case MMI_ALIPAY_MSG_HANDLE: printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); aos_watch_alipay_msg_handle(msg); break; #endif + + case MMI_MSG_WATCH_SEARCHING: + //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_watch_server_search_update_ui(); + break; + + #ifdef __MMI_WECHAT_SUPPORT__ + case MMI_MSG_WECHAT_INCOMING: + //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + wechat_msg_receive_update_ui(); + break; + #endif + + #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + case MMI_MSG_VC_CALL_INCOMING: + //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_vc_call_incoming_update_ui(); + break; + #endif + #endif default: break; @@ -378,7 +399,7 @@ void watch_message_handle_entry(lv_task_t * task) while(1) { msg = (UI_Inter_Msg_Header_t *)Hal_Receive_Message((TASK_ID)gui_task_id, false); if(NULL != msg) { - printf("gui msg %d received\n", msg->MsgId); + printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, msg->MsgId); watch_ui_message_handle(msg->MsgId, (void *)msg); //add handle UI update sw_ui_message_handle(msg->MsgId, (void *)msg); diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h index 298603d2..08c7693d 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h @@ -73,6 +73,7 @@ enum MMI_MODEM_IMS_VOPS_IND, MMI_MODEM_CALI_RESULT_IND, MMI_MODEM_SN_INFO_IND, +#if USE_LV_WATCH_VIDEOCALL != 0 MMI_MODEM_VIDEO_CALL_RESPONSE_INCOMING, MMI_MODEM_VIDEO_CALL_RESPONSE_RING, MMI_MODEM_VIDEO_CALL_RESPONSE_CONNECT, @@ -87,6 +88,7 @@ enum MMI_MODEM_VIDEO_CALL_RESPONSE_TEST_REJ_CALL, MMI_MODEM_VIDEO_CALL_RESPONSE_TEST_CMD_BEGIN, MMI_MODEM_VIDEO_CALL_RESPONSE_TEST_CMD_END, +#endif #if USE_LV_WLAN != 0 MMI_MODEM_WIFI_IND, MMI_WLAN_REFRESH_IND, @@ -97,6 +99,15 @@ enum #ifdef __MMI_ZHSX_SUPPORT_ALIPAY__ MMI_ALIPAY_MSG_HANDLE, #endif +#ifdef __MMI_ZHSX_SUPPORT__ + MMI_MSG_WATCH_SEARCHING, +#ifdef __MMI_WECHAT_SUPPORT__ + MMI_MSG_WECHAT_INCOMING, +#endif +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + MMI_MSG_VC_CALL_INCOMING, +#endif +#endif }; typedef struct @@ -497,6 +508,30 @@ typedef struct } mmi_msg_wifi_info_t; #endif + +#ifdef __MMI_ZHSX_SUPPORT__ +typedef struct +{ + UI_Inter_Msg_Header_t header; +} mmi_msg_watch_searching_t; + +#ifdef __MMI_WECHAT_SUPPORT__ +typedef struct +{ + UI_Inter_Msg_Header_t header; +} mmi_msg_wechat_incoming_t; +#endif + +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ +typedef struct +{ + UI_Inter_Msg_Header_t header; +} mmi_msg_vc_incoming_t; +#endif + +#endif + + void watch_message_handle_init(void); void watch_message_handle_init_for_charging(void); void watch_message_handle_destroy(void); 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 985489b9..879d95f4 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 @@ -27,15 +27,10 @@ static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par); static void voip_phone_left_slide_callback(lv_obj_t * obj); static void voip_phone_right_slide_callback(lv_obj_t * obj); static void voip_phone_down_slide_callback(lv_obj_t * obj); -static void voip_dialing_animation(lv_obj_t * par); -static void voip_ring_animation(lv_obj_t * par); -static void voip_connected_animation(lv_obj_t * obj); static void voip_volume_btn_action(lv_obj_t * obj, lv_event_t e); static void voip_slider_action(lv_obj_t * slider, lv_event_t e); -static void voip_phone_cleanup(void); static void voip_phone_obj_hide_anim_end(lv_anim_t * anim); static void voip_anim_fp_dialing_ring(lv_obj_t * obj, int32_t x); -static void voip_anim_fp_connected(lv_anim_t * anim); static void voip_get_time_elaps(uint32_t last_time, char * str, int8_t size); static void voip_set_volume_when_slider_act(void); static void voip_local_remote_switch_action(lv_obj_t * btn, lv_event_t e); @@ -47,13 +42,17 @@ static void voip_rat_check_start(void); static void voip_rat_check_stop(void); -void voip_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority) +void mmi_vc_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority) { - printf("%s,priority is %d\n", __FUNCTION__,priority); + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, priority); + if(AUDIO_CTRL_PRIORITY_2 > priority) { lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIPPHONE); - if(activity_obj == NULL) return; + if(activity_obj == NULL) + { + return; + } voip_activity_destroy_req(); Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); } @@ -101,6 +100,24 @@ lv_vc_call_obj_ext_t * mmi_vc_call_get_ext(void) return(ext); } +static void mmi_vc_call_screen_clean(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_obj_t * slider_activit_obj = lv_watch_get_activity_obj(ACT_ID_SLIDER); + + if(slider_activit_obj) + { + lv_obj_del(slider_activit_obj); + } + + lv_obj_t * activity_obj = mmi_vc_call_get_activity_obj(); + if(activity_obj) + { + lv_obj_del(activity_obj); + } +} + static void voip_phone_left_slide_callback(lv_obj_t * obj) { printf("%s %d\n", __FUNCTION__, __LINE__); @@ -152,7 +169,7 @@ static void voip_phone_obj_hide_anim_end(lv_anim_t * anim) (void)anim; printf("%s %d\n", __FUNCTION__, __LINE__); - voip_phone_cleanup(); + mmi_vc_call_screen_clean(); } static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par) @@ -184,7 +201,7 @@ static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par) lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_cont_opa1); lv_obj_set_size(content, 204, 44); - if(ext->phone_ui_t == MMI_VC_UI_INCOMING || ext->phone_ui_t == MMI_VC_UI_DIALING) { + if(ext->vc_ui == MMI_VC_UI_INCOMING || ext->vc_ui == MMI_VC_UI_DIALING) { lv_obj_align(content, obj, LV_ALIGN_IN_TOP_MID, 0, 10); } else { lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, -12); @@ -202,7 +219,7 @@ static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par) } else { - if(ext->phone_ui_t == MMI_VC_UI_CONNECTED) + if(ext->vc_ui == MMI_VC_UI_CONNECTED) { char tmp[20] = ""; char str[30] = ""; @@ -221,25 +238,6 @@ static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par) return(obj); } - - - -static void voip_phone_cleanup(void) -{ - printf("%s %d\n", __FUNCTION__, __LINE__); - - lv_obj_t * slider_activit_obj = lv_watch_get_activity_obj(ACT_ID_SLIDER); - - if(slider_activit_obj) { - lv_obj_del(slider_activit_obj); - } - - lv_obj_t * activity_obj = mmi_vc_call_get_activity_obj(); - if(activity_obj) { - lv_obj_del(activity_obj); - } -} - static void voip_anim_fp_connecting_ring(lv_obj_t * obj, int32_t x) { if(obj != NULL) { @@ -247,7 +245,7 @@ static void voip_anim_fp_connecting_ring(lv_obj_t * obj, int32_t x) } } -static void voip_connecting_animation(lv_obj_t * par) +static void mmi_vc_connecting_animation(lv_obj_t * par) { lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); @@ -293,7 +291,7 @@ static void voip_anim_fp_dialing_ring(lv_obj_t * obj, int32_t x) } } -static void voip_dialing_animation(lv_obj_t * par) +static void mmi_vc_dialing_animation(lv_obj_t * par) { lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); @@ -332,7 +330,7 @@ static void voip_dialing_animation(lv_obj_t * par) lv_anim_start(&a); } -static void voip_ring_animation(lv_obj_t * par) +static void mmi_vc_ring_animation(lv_obj_t * par) { lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); @@ -371,7 +369,24 @@ static void voip_ring_animation(lv_obj_t * par) lv_anim_start(&a); } -static void voip_connected_animation(lv_obj_t * obj) +static void mmi_vc_anim_fp_connected(lv_anim_t * anim) +{ + lv_obj_t * obj = (lv_obj_t *)anim->var; + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + + LV_ASSERT_MEM(ext); + if(ext == NULL) { + return; + } + + char str[20] = ""; + voip_get_time_elaps(ext->connect_start_time, str, 20); + if(obj) { + lv_label_set_text(obj, str); + } +} + +static void mmi_vc_connected_animation(lv_obj_t * obj) { lv_anim_t a; lv_anim_path_t path; @@ -381,7 +396,7 @@ static void voip_connected_animation(lv_obj_t * obj) lv_anim_init(&a); lv_anim_set_var(&a, obj); - lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)voip_anim_fp_connected); + lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)mmi_vc_anim_fp_connected); lv_anim_set_path(&a, &path); lv_anim_set_time(&a, 1); lv_anim_set_playback_time(&a, 0); @@ -392,23 +407,6 @@ static void voip_connected_animation(lv_obj_t * obj) lv_anim_start(&a); } -static void voip_anim_fp_connected(lv_anim_t * anim) -{ - lv_obj_t * obj = (lv_obj_t *)anim->var; - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - - char str[20] = ""; - voip_get_time_elaps(ext->connect_start_time, str, 20); - if(obj) { - lv_label_set_text(obj, str); - } -} - static void voip_get_time_elaps(uint32_t last_time, char * str, int8_t size) { hal_rtc_t rtc_curr; // current rtc time @@ -583,7 +581,7 @@ static void canvas_button_hidden_event_cb(lv_obj_t * obj, lv_event_t e) } lv_obj_set_hidden(ext->connect_time, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->ring_value_button, ext->canvas_button_hidden_flag); + lv_obj_set_hidden(ext->volume_button, ext->canvas_button_hidden_flag); lv_obj_set_hidden(ext->view_switch_button, true); // lv_obj_set_hidden(ext->view_switch_button, ext->canvas_button_hidden_flag); lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } @@ -842,7 +840,7 @@ lv_res_t mmi_video_call_phone_ring_off_create() // stop callreq timer mmi_vc_dialing_timer_stop(); - if(ext->phone_ui_t == MMI_VC_UI_INCOMING || ext->phone_ui_t == MMI_VC_UI_DIALING) + if(ext->vc_ui == MMI_VC_UI_INCOMING || ext->vc_ui == MMI_VC_UI_DIALING) { if(ext->phone_status_label) { lv_label_set_text(ext->phone_status_label, ""); @@ -850,7 +848,7 @@ lv_res_t mmi_video_call_phone_ring_off_create() voip_ring_off_content_create(mmi_vc_call_get_obj()); } - else if(ext->phone_ui_t == MMI_VC_UI_CONNECTED) + else if(ext->vc_ui == MMI_VC_UI_CONNECTED) { voip_ring_off_content_create(mmi_vc_call_get_obj()); } @@ -938,15 +936,21 @@ static void mmi_vc_ui_dialing(lv_obj_t * content) VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(ext == NULL) { + if(ext == NULL) + { return; } + lv_obj_t * label; + uint32_t text_id = WATCH_TEXT_ID_VIDEO_CALL_DAILING; + if(MODEM_VIDEO_CALL_TYPE_VIDEO != s_video_call_params.call_type) + text_id = WATCH_TEXT_ID_VOICE_CALL_DAILING; + // label dialing - lv_obj_t * label = lv_label_create(content, NULL); + label = lv_label_create(content, NULL); lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, WATCH_TEXT_ID_DAILING); + lv_label_set_text_id(label, text_id); lv_obj_set_click(label, false); lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); ext->phone_status_label = label; @@ -997,18 +1001,21 @@ static void mmi_vc_ui_incoming(lv_obj_t * content) VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { + if(ext == NULL) + { + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); return; } lv_obj_t * label; + uint32_t text_id = WATCH_TEXT_ID_VIDEO_CALL_RINGING; + if(MODEM_VIDEO_CALL_TYPE_VIDEO != s_video_call_params.call_type) + text_id = WATCH_TEXT_ID_VOICE_CALL_RINGING; // label ringing label = lv_label_create(content, NULL); lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, WATCH_TEXT_ID_RINGING); + lv_label_set_text_id(label, text_id); lv_obj_set_click(label, false); lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); ext->phone_status_label = label; @@ -1282,7 +1289,7 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_set_event_cb(btn, voip_volume_btn_action); lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_CALLING_VOLUME_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); lv_obj_add_style(btn, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - ext->ring_value_button = btn; + ext->volume_button = btn; // btn switch video btn = lv_imgbtn_create(canvas, NULL); @@ -1303,7 +1310,7 @@ static void mmi_vc_ui_connected(lv_obj_t * content) ext->ring_off_button = btn; lv_obj_set_hidden(ext->connect_time, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->ring_value_button, ext->canvas_button_hidden_flag); + lv_obj_set_hidden(ext->volume_button, ext->canvas_button_hidden_flag); lv_obj_set_hidden(ext->view_switch_button, true); // lv_obj_set_hidden(ext->view_switch_button, ext->canvas_button_hidden_flag); lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } @@ -1316,18 +1323,15 @@ static void mmi_vc_ui_connected(lv_obj_t * content) static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) { - printf("%s %d\n", __FUNCTION__, __LINE__); - if(MMI_VC_UI_CONNECTED == s_vc_call_ui) { /* set speaker volume to nv when leaving activiry's slider */ voip_set_volume_when_slider_act(); } - /* cleanup phone first */ - voip_phone_cleanup(); + mmi_vc_call_screen_clean(); - lv_watch_png_cache_all_free(); + //lv_watch_png_cache_all_free(); if(activity_obj == NULL) { @@ -1346,7 +1350,7 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) lv_obj_t * obj = lv_watch_obj_create(activity_obj); if(obj == NULL) { - return(NULL); + return NULL; } lv_watch_obj_set_anim_mode(obj, LV_WATCH_LEFT_OR_RIGHT_SLIDE_CALLBACK); lv_watch_obj_set_left_slide_cb(obj, voip_phone_left_slide_callback); @@ -1355,12 +1359,14 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) lv_vc_call_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_vc_call_obj_ext_t)); if(ext == NULL) { - return(NULL); + return NULL; } + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + ext->phone_status_label = NULL; ext->phone_animation_obj = NULL; - ext->phone_ui_t = s_vc_call_ui; + ext->vc_ui = s_vc_call_ui; ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_NULL; #if ENABLE_VIDEO_SCALE == 0 ext->voiph263fmt = VOIP_H263_FMT_QCIF; @@ -1372,41 +1378,41 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) Hal_Rtc_Gettime(&rtc_curr); ext->connect_start_time = time_to_seconds(&rtc_curr); ext->connect_time = NULL; - ext->ring_value_button = NULL; + ext->volume_button = NULL; ext->view_switch_button = NULL; ext->ring_off_button = NULL; ext->canvas_button_hidden_flag = NOT_HIDDEN; /* content */ lv_obj_t * content = lv_cont_create(obj, NULL); - lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); // lv_obj_get_height(obj) - 20); + lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); //lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID); - //lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - lv_obj_set_style_local_bg_color(content, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - //lv_watch_obj_add_element(cont); + lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp); + //lv_obj_set_style_local_bg_color(content, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_watch_obj_add_element(content); lv_obj_set_click(content, false); lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 0); - switch(ext->phone_ui_t) + switch(ext->vc_ui) { case MMI_VC_UI_INCOMING: mmi_vc_ui_incoming(content); - voip_ring_animation(ext->phone_status_label); + //mmi_vc_ring_animation(ext->phone_status_label); break; case MMI_VC_UI_DIALING: mmi_vc_ui_dialing(content); - voip_dialing_animation(ext->phone_status_label); + //mmi_vc_dialing_animation(ext->phone_status_label); break; case MMI_VC_UI_CONNECTING: mmi_vc_ui_connecting(content); - voip_connecting_animation(ext->phone_status_label); + //mmi_vc_connecting_animation(ext->phone_status_label); break; case MMI_VC_UI_CONNECTED: mmi_vc_ui_connected(content); - voip_connected_animation(ext->phone_status_label); + mmi_vc_connected_animation(ext->phone_status_label); break; default: @@ -1416,46 +1422,47 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) return obj; } +void mmi_vc_call_incoming_update_ui(void) +{ + s_vc_call_ui = MMI_VC_UI_INCOMING; + mmi_vc_ui_create(NULL); +} + void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type) { if(true == mmi_active_screen_is_prohibit_interrupted() || true == is_rat_gsm()) { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__); + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_video_call_reject_req(TRUE); return; } - if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, voip_audio_ctrl_callback)) + if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback)) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__); - Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); + Hal_Mem_Set(&s_video_call_params, 0x0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); s_video_call_params.call_type = type; - s_video_call_params.is_mt = true; s_video_call_params.state = MMI_VIDEO_CALL_STATE_INCOMING; strncpy(s_video_call_params.number, number, NV_WATCH_VC_CONTACT_NUMBER_LEN - 1); - //watch_set_lcd_status(true); - HAL_SPEAKER_GAIN volume = query_current_volume(); - if(!Hal_Set_BT_Audio_Path(volume)) { Hal_Call_Speaker(HAL_CALL_SPK_ON, volume); } Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, volume); + mmi_watch_wake_up(); + voip_rat_check_start(); - - s_vc_call_ui = MMI_VC_UI_INCOMING; - mmi_vc_ui_create(NULL); - - watch_set_lcd_status(true); + + // ui + mmi_msg_ui_action_vc_call_incoming(); } else { - // AUDIO_CTRL_PRIORITY_1 VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__); // auto reject @@ -1471,7 +1478,7 @@ void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type) Hal_Mem_Set(&s_video_call_params, 0x0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); voip_set_volume_when_slider_act(); - voip_phone_cleanup(); + mmi_vc_call_screen_clean(); lv_watch_png_cache_all_free(); Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); } @@ -1564,9 +1571,7 @@ void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type) mmi_vc_ring_off_timer_stop(); mmi_vc_dialing_timer_stop(); - // set call parameters - Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); - s_video_call_params.is_mt = false; + Hal_Mem_Set(&s_video_call_params, 0x0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); s_video_call_params.state = MMI_VIDEO_CALL_STATE_DIALING; s_video_call_params.call_type = type; strcpy(s_video_call_params.number, number); @@ -1584,7 +1589,7 @@ void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type) s_vc_call_ui = MMI_VC_UI_DIALING; mmi_vc_ui_create(NULL); - Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, voip_audio_ctrl_callback); + Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback); Hal_Set_Voice_Call_Status(VOICE_CALL_START); } @@ -1976,7 +1981,7 @@ void voip_activity_destroy_req(void) Hal_Mem_Set(&s_video_call_params, 0x0, sizeof(MMI_VIDEO_CALL_PARAMS_T)); voip_set_volume_when_slider_act(); - voip_phone_cleanup(); + mmi_vc_call_screen_clean(); lv_watch_png_cache_all_free(); #endif } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h index 18f4be2a..8631b1cd 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h @@ -154,7 +154,7 @@ typedef enum typedef struct { MMI_VIDEO_CALL_STATE_E state; //int32_t index; /* Connection Index for use with, eg, AT+CHLD */ - bool is_mt; /* true if MT call */ + //bool is_mt; /* true if MT call */ bool ring_off; /* true if ring off by user */ bool ring_off_timeout; /* true if ring off timeout */ TIMER_ID ring_off_timer_id; /* ring off timer */ @@ -170,15 +170,16 @@ typedef struct { typedef struct { lv_watch_obj_ext_t lv_watch_obj; - /*New data for this type */ + + /*New data for this type */ lv_obj_t * phone_status_label; lv_obj_t * phone_animation_obj; uint32_t connect_start_time; - MMI_VIDEO_CALL_UI_E phone_ui_t; + MMI_VIDEO_CALL_UI_E vc_ui; enum local_remote_switch_e local_remote_switch_flag; enum voip_h263_fmt voiph263fmt; lv_obj_t * connect_time; - lv_obj_t * ring_value_button; + lv_obj_t * volume_button; lv_obj_t * view_switch_button; lv_obj_t * ring_off_button; enum enum_canvas_button_hidden_flag canvas_button_hidden_flag; @@ -208,6 +209,7 @@ void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type); void mmi_vc_call_action_connecting(void); void mmi_vc_call_action_connected(void); +void mmi_vc_call_incoming_update_ui(void); int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri); void mmi_video_call_hangup_req(BOOL bye); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat.h index e4ba14c0..f9f0f563 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat.h @@ -104,6 +104,7 @@ typedef struct void wechat_chat_list_set_slide_enable(lv_watch_obj_ext_t * ext, bool enable); void mmi_wechat_msg_info_init(void); void wechat_msg_info_nv_write(void); +void wechat_msg_receive_update_ui(void); bool wechat_msg_receive_from_server(char * data_buff, int data_buff_len, nv_wechat_msg_type_e type); void wechat_msg_voice_item_playing_stop(lv_wechat_ext_t * ext); void wechat_chat_list_msg_item_style_reset(lv_wechat_ext_t * ext); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat_ui.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat_ui.c index a5dcd51c..c62ef9a7 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat_ui.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat_ui.c @@ -258,6 +258,106 @@ void wechat_receive_audio_play_over_cb(void *para) Hal_Vibrator_Play_End(); } +#if 1 +void wechat_msg_receive_update_ui(void) +{ + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(AUDIO_CTRL_PRIORITY_5 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_5, wechat_receive_audio_play_audio_ctrl_callback)) + { + Hal_NFFS_File_Play_Onetime(AUDIO_WECHAT_RECEIVE, (HAL_SPEAKER_GAIN)query_current_volume(), wechat_receive_audio_play_over_cb, NULL); + } + + Hal_Vibrator_Play_Onetime(NULL, 1000); + + if(lv_watch_get_activity_obj(ACT_ID_WECHAT_MAIN)) + { + wechat_main_screen_refresh(); + } + else + { + wechat_create_event_cb(NULL, LV_EVENT_CLICKED); + } +} + +bool wechat_msg_receive_from_server(char * data_buff, int data_buff_len, nv_wechat_msg_type_e type) +{ + if(NULL == data_buff || 0 == data_buff_len) + { + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return false; + } + if(WECHAT_MSG_TYPE_MAX <= type) + { + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return false; + } + + nv_watch_wechat_msg_item_info_t wechat_msg_item_info = {0}; + hal_rtc_t cur_time = {0}; + char * t_file_ext[WECHAT_MSG_TYPE_MAX] = {"amr", "txt", "png", "png"}; + + Hal_Rtc_Gettime(&cur_time); + wechat_msg_item_info.msg_time.tm_year = cur_time.tm_year; + wechat_msg_item_info.msg_time.tm_mon = cur_time.tm_mon; + wechat_msg_item_info.msg_time.tm_mday = cur_time.tm_mday; + wechat_msg_item_info.msg_time.tm_hour = cur_time.tm_hour; + wechat_msg_item_info.msg_time.tm_min = cur_time.tm_min; + wechat_msg_item_info.msg_time.tm_sec = cur_time.tm_sec; + + wechat_msg_item_info.msg_from = 1; + wechat_msg_item_info.unread_flag = 1; + wechat_msg_item_info.msg_type = type; // WECHAT_MSG_TYPE_VOICE; + sprintf(wechat_msg_item_info.msg_data_full_file_name, "C:/wechat_r%04d%02d%02d_%02d%02d%02d.%s", /*WECHAT_MSG_DATA_FILE_PATH, */ + wechat_msg_item_info.msg_time.tm_year, wechat_msg_item_info.msg_time.tm_mon, wechat_msg_item_info.msg_time.tm_mday, + wechat_msg_item_info.msg_time.tm_hour, wechat_msg_item_info.msg_time.tm_min, wechat_msg_item_info.msg_time.tm_sec, + t_file_ext[type]); + + lv_fs_file_t file_p = {0}; + lv_fs_res_t res = 0; + uint32_t bytes_write = 0; + + res = lv_fs_open(&file_p, wechat_msg_item_info.msg_data_full_file_name, LV_FS_MODE_WR); + if(LV_FS_RES_OK != res) + { + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + lv_fs_close(&file_p); + + return false; + } + + lv_fs_seek(&file_p, 0); + res = lv_fs_write(&file_p, data_buff, data_buff_len, &bytes_write); + if(LV_FS_RES_OK != res) + { + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + lv_fs_close(&file_p); + + return false; + } + lv_fs_close(&file_p); + + wechat_msg_info_new_item_add(&wechat_msg_item_info); + + // ui + if(false == mmi_active_screen_is_prohibit_interrupted() + && false == mmi_health_measure_state_is_ui_measure() + && false == wechat_msg_voice_is_playing() + && false == wechat_msg_voice_is_recording() + && false == wechat_msg_item_is_sending() + ) + { + WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_watch_wake_up(); + mmi_msg_ui_action_wechat_incoming(); + } + + return true; +} + +#else + bool wechat_msg_receive_from_server(char * data_buff, int data_buff_len, nv_wechat_msg_type_e type) { if(NULL == data_buff || 0 == data_buff_len) @@ -345,6 +445,7 @@ bool wechat_msg_receive_from_server(char * data_buff, int data_buff_len, nv_wech return true; } +#endif bool wechat_msg_send_to_server(void) { diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c index 4ac615a5..97e0ae83 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c @@ -815,9 +815,9 @@ bool mmi_protocol_fzd_parse_ACTION_BIND(unsigned char * next_buff, unsigned int if(1 == value) { mmi_protocol_watch_bind_state_set(true); - #if 0 + + // timing mmi_protocol_watch_timed_mission_action(); - #endif //video call mmi_protocol_fzd_action_get_vc_config(); @@ -932,15 +932,9 @@ bool mmi_protocol_fzd_parse_SERVER_SET_POWEROFF(unsigned char * next_buff, unsig result = true; mmi_protocol_fzd_send_without_data(action); -#if 1 + uos_sleep(10); mmi_watch_power_off(); -#else // debug vc - char t_number[NV_WATCH_VC_CONTACT_NUMBER_LEN] = "1234567890"; - uint8_t t_calltype = 0; - - mmi_vc_call_action_incoming(t_number, t_calltype); -#endif return result; } @@ -953,7 +947,8 @@ bool mmi_protocol_fzd_parse_SERVER_FIND_WATCH(unsigned char * next_buff, unsigne result = true; mmi_protocol_fzd_send_without_data(action); - mmi_watch_server_search_screen_create(NULL); + //mmi_watch_server_search_screen_create(NULL); + mmi_watch_searching_aciton(); return result; } @@ -1547,21 +1542,17 @@ static void mmi_location_gps_data_process(MMI_WATCH_GPS_DATA_T * gps_data, char mmi_float_to_str(gps_data->latitude, 6, latitude_str); - if('N' == gps_data->ns) - ns_str[0] = 'N'; - else if('S' == gps_data->ns) + if('S' == gps_data->ns || 's' == gps_data->ns) ns_str[0] = 'S'; else - ns_str[0] = '0'; + ns_str[0] = 'N'; mmi_float_to_str(gps_data->longitude, 6, longitude_str); - if('E' == gps_data->ew) - ew_str[0] = 'E'; - else if('W' == gps_data->ew) + if('W' == gps_data->ew || 'w' == gps_data->ew) ew_str[0] = 'W'; else - ew_str[0] = '0'; + ew_str[0] = 'E'; mmi_float_to_str(gps_data->speed, 2, speed_str); @@ -1607,8 +1598,8 @@ static unsigned int mmi_protocol_fzd_action_send_content_fill_location_data(unsi // t_ptr += t_count; - sprintf(t_ptr, ",%u,%u,%u,%u", - location_data->cell_data.rxlev[0], + sprintf(t_ptr, ",%d,%u,%u,%u", + location_data->cell_data.link_rxlev, // location_data->cell_data.rxlev[0], battery_value, step_value, sleep_roll_value); @@ -1618,11 +1609,11 @@ static unsigned int mmi_protocol_fzd_action_send_content_fill_location_data(unsi t_ptr += t_count; if (NULL != alert_info) { - sprintf(t_ptr, "%s", alert_info); + sprintf(t_ptr, ",%s", alert_info); } else { - sprintf(t_ptr, "%s", "00000000"); + sprintf(t_ptr, ",%s", "00000000"); } t_count = strlen(t_ptr); 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 a7ce3650..249edc90 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 @@ -52,11 +52,31 @@ bool mmi_active_screen_is_prohibit_interrupted(void) void mmi_watch_wake_up(void) { - if(0 == Hal_Pm_Get_State()) { +#if 1 + if(0 == Hal_Pm_Get_State()) + { Hal_Pm_WakeUp(); - } else { + } + else + { watch_wakeup_lcd(false); } + +#else + if(0 == Hal_Pm_Get_State()) + { + extern void onkey_wakeup(void) __attribute__((weak)); + if (onkey_wakeup != NULL) + { + onkey_wakeup(); + } + } + else + { + watch_set_lcd_status(true); + watch_wakeup_time_reset(); + } +#endif } @@ -134,16 +154,6 @@ void mmi_watch_search_screen_event_cb(lv_obj_t * obj, lv_event_t e) lv_obj_t * mmi_watch_server_search_screen_create(lv_obj_t * activity_obj) { SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - if(true == mmi_active_screen_is_prohibit_interrupted()) - { - return NULL; - } - - if(NULL != lv_watch_get_activity_obj(ACT_ID_WATCH_SEARCHING)) - { - return NULL; - } lv_watch_png_cache_all_free(); if(NULL == activity_obj) @@ -185,14 +195,34 @@ lv_obj_t * mmi_watch_server_search_screen_create(lv_obj_t * activity_obj) mmi_watch_search_timer_start(); - mmi_watch_wake_up(); watch_set_suspend_enable(false, ACT_ID_WATCH_SEARCHING, 0); return obj; } +void mmi_watch_server_search_update_ui(void) +{ + mmi_watch_server_search_screen_create(NULL); +} + +void mmi_watch_searching_aciton(void) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(true == mmi_active_screen_is_prohibit_interrupted()) + { + return ; + } + if(NULL != lv_watch_get_activity_obj(ACT_ID_WATCH_SEARCHING)) + { + return ; + } + // ui + mmi_watch_wake_up(); + mmi_msg_ui_action_watch_searching(); +} 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 4567a801..a3c2f028 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 @@ -41,8 +41,8 @@ typedef struct } lv_watch_search_ext_t; void mmi_watch_search_screen_destroy(void); -lv_obj_t * mmi_watch_server_search_screen_create(lv_obj_t * activity_obj); - +void mmi_watch_server_search_update_ui(void); +void mmi_watch_searching_aciton(void); #ifdef __cplusplus