gengxin
authorCCC <2393524978@qq.com>
Sat, 22 Jul 2023 01:22:54 +0000 (09:22 +0800)
committerCCC <2393524978@qq.com>
Sat, 22 Jul 2023 01:22:54 +0000 (09:22 +0800)
2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c
2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.c
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat.h
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_wechat/wechat_ui.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h

index 1792153..1157d70 100644 (file)
@@ -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);
index 298603d..08c7693 100644 (file)
@@ -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);
index 985489b..879d95f 100644 (file)
@@ -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
 }
index 18f4be2..8631b1c 100644 (file)
@@ -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);
index e4ba14c..f9f0f56 100644 (file)
@@ -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);
index a5dcd51..c62ef9a 100644 (file)
@@ -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)
 {
index 4ac615a..97e0ae8 100644 (file)
@@ -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);
 
index a7ce365..249edc9 100644 (file)
@@ -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();
+}
 
 
 
index 4567a80..a3c2f02 100644 (file)
@@ -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