gengxin
author@CHENG <2393524978@qq.com>
Sat, 6 Jul 2024 08:00:19 +0000 (16:00 +0800)
committer@CHENG <2393524978@qq.com>
Sat, 6 Jul 2024 08:00:19 +0000 (16:00 +0800)
17 files changed:
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h
2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c
2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c
2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c
2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h
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/include/ui_textid.h
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c
2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_wulian.c
2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.c
2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.h
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h

index 21da5d8..91f46ab 100644 (file)
@@ -232,6 +232,9 @@ static void mmi_gui_timing_task_1_minute_mission(void * time_param)
        mmi_watch_sleep_time_mission_check();
 #endif
 
+       // check chip temperature
+       mmi_watch_chip_temperature_check();
+
        // check tcms
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
        //mmi_hengai_tcms_mission_check();
@@ -251,7 +254,7 @@ static void mmi_gui_timing_timer_callback(uint32_t param)
        uos_timer_stop(s_timing_control_timer);
        uos_timer_start(s_timing_control_timer, MS_TO_TICKS(MMI_GUI_TIMING_TIMER_INTERVAL), 0, mmi_gui_timing_timer_callback, NULL);
 
-       s_timing_control_timer_counter++;
+       s_timing_control_timer_counter++; // 3s per time
 
        mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_3_SECOND, NULL); // 3 seconds
        
index bd38ea0..4bfe551 100644 (file)
@@ -38,6 +38,7 @@ typedef enum
     MMI_GUI_TIMING_MSG_3_SECOND,
        MMI_GUI_TIMING_MSG_6_SECOND,
        MMI_GUI_TIMING_MSG_15_SECOND,
+       MMI_GUI_TIMING_MSG_30_SECOND,
     MMI_GUI_TIMING_MSG_1_MINUTE,
        MMI_GUI_TIMING_MSG_2_MINUTE,
 
index 5433d89..be95cc8 100644 (file)
@@ -984,6 +984,7 @@ const void * lang_text_ch[] = {
     "说话完成", // WATCH_TEXT_ID_AIGC_TALK_FINISH,
     "连接超时\n请重新开始对话", // WATCH_TEXT_ID_AIGC_CONNECT_TIMEOUT,
     "继续对话", // WATCH_TEXT_ID_AIGC_CONTINUE,
+    "设备温度过高\n请暂缓使用", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE,
     //CHENG_MODIFY
     "确认是否跌倒?", // WATCH_TEXT_ID_falldown,
     "确认是否删除",
index cf14c24..6be1b31 100644 (file)
@@ -985,6 +985,7 @@ const void * lang_text_en[] = {
     "Finish", // WATCH_TEXT_ID_AIGC_TALK_FINISH,
     "Timeout\nPlease try again", // WATCH_TEXT_ID_AIGC_CONNECT_TIMEOUT,
     "Continue", // WATCH_TEXT_ID_AIGC_CONTINUE,
+    "Temperature too high\nPlease suspended use", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE,
     //CHENG_MODIFY
     "Confirm a fall",
     "Confirm deletion",
index e6065a2..f969056 100644 (file)
@@ -214,6 +214,22 @@ void mmi_ui_msg_action_hengai_bp_measure_result(bool state, uint16_t bp_value_hi
 #endif
 
 
+void mmi_ui_msg_action_chip_high_temperature(uint32_t flag)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+       mmi_watch_wake_up();
+       
+       mmi_msg_flag_para_t * msg_info = (mmi_msg_flag_para_t *)Hal_Mem_Alloc(sizeof(mmi_msg_flag_para_t));
+
+       memset(msg_info, 0x0, sizeof(mmi_msg_flag_para_t));
+       msg_info->header.MsgId = MMI_MSG_CHIP_HIGH_TEMP;
+       msg_info->flag = flag;
+
+       Hal_Send_Message((TASK_ID)gui_task_id, (void *)msg_info);       
+}
+
+
 
 #if 0
 
index c4b9a94..35a4b03 100644 (file)
@@ -88,124 +88,11 @@ void mmi_ui_msg_action_ai_talk_incoming(void);
 void mmi_ui_msg_action_hengai_bp_calibrate_result(bool state);
 void mmi_ui_msg_action_hengai_bp_measure_result(bool state, uint16_t bp_value_high, uint16_t bp_value_low);
 #endif
-
+void mmi_ui_msg_action_chip_high_temperature(uint32_t flag);
 
 void mmi_ui_falldown(void);
 
 
-#if 0
-
-#define MODEM_ADP_TASK_PRIORITY 199
-MODEM_VIDEO_CALL_REG_STAT g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_FAIL;
-
-
-VOID MMI_ModemAdp_Video_Call_Init_Req(VOID)
-{
-    uos_create_task(MMI_ModemAdp_Video_Call_Main, NULL, 64, 4 * 1000, MODEM_ADP_TASK_PRIORITY, "modem_adpator_video_call");
-}
-
-static VOID MMI_ModemAdp_Video_Call_Main(VOID * para)
-{
-    (void)para;
-    voipmsg_t voipmsg;
-
-    while(gui_task_id == NULL) {
-        printf("gui_task_id is NULL");
-        uos_sleep(10);
-    }
-
-    // get msg
-    while(1) {
-        // receive message
-        if(voipMsgQueReceive(&voipmsg)) {
-            printf("voip Q is not ready, sleep for 500ms\n");
-            uos_sleep(100);
-            continue;
-        }
-
-        switch(voipmsg.msgid) {
-            case VOIP_UA_EVENT_CALL_INCOMING:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_INCOMING\n", __FUNCTION__);
-                if((voipmsg.callname_present) && (voipmsg.uri_present)) {
-                    MMI_Modem_Video_Call_Response_Incoming_t * Response;
-
-                    Response = (MMI_Modem_Video_Call_Response_Incoming_t *)Hal_Mem_Alloc(
-                                   sizeof(MMI_Modem_Video_Call_Response_Incoming_t));
-
-                    strcpy(Response->callname, voipmsg.callname);
-                    strcpy(Response->uri, voipmsg.uri);
-
-                    if(VOIP_VOICE_CALL == voipmsg.calltype) {
-                        Response->calltype = MODEM_VIDEO_CALL_TYPE_VOICE;
-                    } else {
-                        Response->calltype = MODEM_VIDEO_CALL_TYPE_VIDEO;
-                    }
-
-                    MMI_Modem_Video_Call_Response_Incoming(Response);
-                } else {
-                    printf("%s, invalid MT params", __FUNCTION__);
-                    bsapi_call_action(BARESIPAPI_REJ, BARESIPVIDMODE_INV);
-                }
-                break;
-            case VOIP_UA_EVENT_CALL_RINGING:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_RINGING\n", __FUNCTION__);
-                //play tone
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_RING);
-                break;
-            case VOIP_UA_EVENT_CALL_ESTABLISHED:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_ESTABLISHED\n", __FUNCTION__);
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_CONNECT);
-                break;
-            case VOIP_UA_EVENT_CALL_CLOSED:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_CLOSED\n", __FUNCTION__);
-                if(0 == Hal_Pm_Get_State()) {
-                    Hal_Pm_WakeUp();
-                }
-
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_DISCONNECT);
-                break;
-            case VOIP_UA_EVENT_CALL_TRANSFER:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_TRANSFER\n", __FUNCTION__);
-                break;
-            case VOIP_UA_EVENT_REGISTER_OK:
-                printf("%s voipmsg id is VOIP_UA_EVENT_REGISTER_OK\n", __FUNCTION__);
-                g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_OK;
-                break;
-            case VOIP_UA_EVENT_UNREGISTERING:
-                printf("%s voipmsg id is VOIP_UA_EVENT_UNREGISTERING\n", __FUNCTION__);
-                g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_UNREGISTERING;
-                break;
-            case VOIP_UA_EVENT_REGISTER_FAIL:
-                printf("%s voipmsg id is VOIP_UA_EVENT_REGISTER_FAIL\n", __FUNCTION__);
-                g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_FAIL;
-                break;
-            case VOIP_UA_EVENT_MWI_NOTIFY:
-                printf("%s voipmsg id is VOIP_UA_EVENT_MWI_NOTIFY\n", __FUNCTION__);
-                break;
-            case VOIP_UA_EVENT_AUDIO_ERROR:
-                printf("%s voipmsg id is VOIP_UA_EVENT_AUDIO_ERROR\n", __FUNCTION__);
-                break;
-            case VOIP_UA_EVENT_CALL_TERMINATE_BY_BOTTOM_LAYER:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_TERMINATE_BY_BOTTOM_LAYER\n", __FUNCTION__);
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_BOTTOM_ERR);
-                break;
-            case VOIP_UA_EVENT_CALL_NEED_REDIAL:
-                printf("%s voipmsg id is VOIP_UA_EVENT_CALL_NEED_REDIAL\n", __FUNCTION__);
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_NEED_REDIAL);
-                break;
-            case VOIP_UA_EVENT_AUTOTEST_START:
-                printf("%s voipmsg id is VOIP_UA_EVENT_AUTOTEST_START \n", __FUNCTION__);
-                if(0 == Hal_Pm_Get_State()) 
-                                       Hal_Pm_WakeUp();
-                MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_AUTO_TEST);
-                break;
-            default:
-                printf("%s voipmsg id is %d\n", __FUNCTION__, voipmsg.msgid);
-                break;
-        }
-    }
-}
-#endif
 
 
 #endif
index 9478dce..839fbd0 100644 (file)
@@ -47,6 +47,8 @@ void UI_Send_Inter_Msg(UI_SUB_MODULE_ID Dest, UI_INTER_MSG_ID MsgId, UI_Inter_Ms
 
 void watch_ui_message_handle(uint16_t msgid, void * msg)
 {
+       uint32_t flag = 0;
+       
     switch(msgid) {
         case MMI_MODEM_POWER_UP_CNF:
             watch_modem_power_up_cnf();
@@ -462,6 +464,10 @@ void watch_ui_message_handle(uint16_t msgid, void * msg)
                        break;
        #endif
 
+               case MMI_MSG_CHIP_HIGH_TEMP:
+                       flag = ((mmi_msg_flag_para_t *)msg)->flag;
+                       mmi_ui_msg_update_chip_high_temperature(flag);
+                       break;
 
                        
        #endif
index c7cc904..ecec9ba 100644 (file)
@@ -137,6 +137,7 @@ enum
        MMI_MSG_HENGAI_BP_CALIBRATE_RESULT,
        MMI_MSG_HENGAI_BP_MEASURE_RESULT,
 #endif
+       MMI_MSG_CHIP_HIGH_TEMP,
        
        
 #endif
index 10779d2..41e755f 100644 (file)
@@ -992,6 +992,7 @@ enum
     WATCH_TEXT_ID_AIGC_TALK_FINISH,                     /* "说话完成"                 "Finish" */
     WATCH_TEXT_ID_AIGC_CONNECT_TIMEOUT,                 /* "连接超时\n请重新开始对话"                "Timeout\nPlease try again" */
     WATCH_TEXT_ID_AIGC_CONTINUE,                        /* "继续对话"                 "Continue" */
+    WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE,                /* "设备温度过高\n请暂缓使用"        "Temperature too high\nPlease suspended use" */
     //CHENG_MODIFY
     WATCH_TEXT_ID_FALLDWON,                            /*确认是否跌倒*/
     WATCH_TEXT_ID_CONFIRM_DELETE,                        /*确认是否删除*/
index ba069a7..a793478 100644 (file)
@@ -199,6 +199,7 @@ typedef struct {
     enum enum_canvas_button_hidden_flag canvas_button_hidden_flag;
     lv_obj_t * signal_weak_label;
     lv_obj_t * canvas;
+       lv_obj_t * prompt_cont;
 }lv_vc_call_obj_ext_t;
 
 
@@ -222,6 +223,9 @@ bool mmi_vc_watch_suspend_check(void);
 void mmi_vc_activity_destroy_req(void);
 uint8_t mmi_vc_get_call_volume(void);
 
+void mmi_vc_chip_high_temperature_prompt(void);
+
+
 
 #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__
 #include "mmi_video_call_fzd.h"
index a24d257..0db2ad5 100644 (file)
@@ -892,6 +892,39 @@ void mmi_vc_call_action_call_stop(void)
        mmi_ui_msg_action_vc_call_stop();
 }
 
+static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task)
+{
+       VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       Hal_Vibrator_Play_End();
+
+    lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext();
+       if(NULL != ext) 
+               lv_obj_set_hidden(ext->prompt_cont, true);
+       
+    mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
+}
+
+void mmi_vc_chip_high_temperature_prompt(void)
+{
+       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) 
+       {
+        return;
+    }
+
+       if(MMI_VC_UI_CONNECTED == s_vc_call_ui) 
+       {
+               Hal_Vibrator_Play_Onetime(NULL, 800);
+               
+               lv_obj_set_hidden(ext->prompt_cont, false);
+               lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL);
+               lv_task_once(task_ptr);
+       }
+}
+
 static void mmi_vc_ui_dialing(lv_obj_t * content)
 {
        VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
@@ -1153,6 +1186,23 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
                lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN);
                lv_obj_set_event_cb(btn, mmi_vc_ring_off_action);
                lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50);
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(content, NULL);
+               lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
     } 
        else
        {
@@ -1288,6 +1338,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
             lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag);
         }
 
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL);
+               lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
+
         if(mmi_vc_call_get_obj()) {
             lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback);
         }
index 4a3d94d..f965468 100644 (file)
@@ -898,6 +898,39 @@ void mmi_vc_call_action_call_stop(void)
        mmi_ui_msg_action_vc_call_stop();
 }
 
+static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task)
+{
+       VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       Hal_Vibrator_Play_End();
+
+    lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext();
+       if(NULL != ext) 
+               lv_obj_set_hidden(ext->prompt_cont, true);
+       
+    mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
+}
+
+void mmi_vc_chip_high_temperature_prompt(void)
+{
+       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) 
+       {
+        return;
+    }
+
+       if(MMI_VC_UI_CONNECTED == s_vc_call_ui) 
+       {
+               Hal_Vibrator_Play_Onetime(NULL, 800);
+               
+               lv_obj_set_hidden(ext->prompt_cont, false);
+               lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL);
+               lv_task_once(task_ptr);
+       }
+}
+
 static void mmi_vc_ui_dialing(lv_obj_t * content)
 {
        VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
@@ -1159,6 +1192,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
                lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN);
                lv_obj_set_event_cb(btn, mmi_vc_ring_off_action);
                lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50);
+
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(content, NULL);
+               lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
     } 
        else
        {
@@ -1294,6 +1345,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
             lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag);
         }
 
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL);
+               lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
+
         if(mmi_vc_call_get_obj()) {
             lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback);
         }
index 3eb8e29..ba6a324 100644 (file)
@@ -893,6 +893,39 @@ void mmi_vc_call_action_call_stop(void)
        mmi_ui_msg_action_vc_call_stop();
 }
 
+static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task)
+{
+       VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       Hal_Vibrator_Play_End();
+
+    lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext();
+       if(NULL != ext) 
+               lv_obj_set_hidden(ext->prompt_cont, true);
+       
+    mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
+}
+
+void mmi_vc_chip_high_temperature_prompt(void)
+{
+       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) 
+       {
+        return;
+    }
+
+       if(MMI_VC_UI_CONNECTED == s_vc_call_ui) 
+       {
+               Hal_Vibrator_Play_Onetime(NULL, 800);
+               
+               lv_obj_set_hidden(ext->prompt_cont, false);
+               lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL);
+               lv_task_once(task_ptr);
+       }
+}
+
 static void mmi_vc_ui_dialing(lv_obj_t * content)
 {
        VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
@@ -1154,6 +1187,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
                lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN);
                lv_obj_set_event_cb(btn, mmi_vc_ring_off_action);
                lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50);
+
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(content, NULL);
+               lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
     } 
        else
        {
@@ -1289,6 +1340,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content)
             lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag);
         }
 
+               // chip high temperature
+               lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL);
+               lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6;
+               lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+               lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+               lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+               lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+               lv_obj_set_click(prompt_cont, false);
+               
+               lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+               lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+               lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+               lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+               lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+               
+               lv_obj_set_hidden(prompt_cont, true);
+               ext->prompt_cont = prompt_cont;
+
         if(mmi_vc_call_get_obj()) {
             lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback);
         }
index f3c2bdf..fc48f3b 100644 (file)
@@ -60,7 +60,7 @@ extern phone_call_params_t  call_params;
 ***********************/
 #ifdef __MMI_ZHSX_SUPPORT__
 
-#define MMI_AUTO_ANSWER_TIMEOUT (1000 * 10) // ms
+#define MMI_AUTO_ANSWER_TIMEOUT (1000 * 30) // ms
 
 static TIMER_ID s_auto_answer_timer_id = NULL;
 
@@ -98,6 +98,38 @@ void mmi_incoming_call_auto_answer_action(void)
        }
 }
 
+static void mmi_call_high_temp_task_cb(lv_task_t * task)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       Hal_Vibrator_Play_End();
+
+       lv_phone_obj_ext_t * ext = phone_get_ext();
+       if(NULL != ext) 
+               lv_obj_set_hidden(ext->prompt_cont, true);
+       
+    ring_off_action(NULL, LV_EVENT_CLICKED);
+}
+
+void mmi_call_chip_high_temperature_prompt(void)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       lv_phone_obj_ext_t * ext = phone_get_ext();
+       if(ext == NULL) 
+               return;
+
+       if(PHONE_UI_CONNECTED == ext->phone_ui_id)
+       {
+               Hal_Vibrator_Play_Onetime(NULL, 800);
+               
+               lv_obj_set_hidden(ext->prompt_cont, false);
+               lv_task_t * task_ptr = lv_task_create(mmi_call_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL);
+               lv_task_once(task_ptr);
+       }
+}
+
+
 #ifdef USE_LV_WATCH_UI_CIRCLE
 
 #ifdef USE_LV_WATCH_UI_240_240
@@ -421,6 +453,24 @@ lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id)
                connected_animation(ext->phone_status_label);
        }
 
+       // chip high temperature
+       lv_obj_t * prompt_cont = lv_cont_create(content, NULL);
+       lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6;
+       lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+       lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+       lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+       lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+       lv_obj_set_click(prompt_cont, false);
+       
+       lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+       lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+       
+       lv_obj_set_hidden(prompt_cont, true);
+       ext->prompt_cont = prompt_cont;
+
        return obj;
 }
 
@@ -705,6 +755,24 @@ lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id)
                connected_animation(ext->phone_status_label);
        }
 
+       // chip high temperature
+       lv_obj_t * prompt_cont = lv_cont_create(content, NULL);
+       lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6;
+       lv_obj_set_size(prompt_cont, t_width, t_width / 2);
+       lv_obj_set_style_local_bg_color(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+       lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15);
+       lv_obj_align(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20);
+       lv_obj_set_click(prompt_cont, false);
+       
+       lv_obj_t * label = lv_label_create(prompt_cont, NULL);
+       lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+       
+       lv_obj_set_hidden(prompt_cont, true);
+       ext->prompt_cont = prompt_cont;
+
        return obj;
 }
 #endif
index 596be12..62e3762 100644 (file)
@@ -72,6 +72,9 @@ typedef struct {
     phone_ui_t phone_ui_id;
     lv_obj_t * num_label;
     lv_obj_t * btn_cont;
+#ifdef __MMI_ZHSX_SUPPORT__
+       lv_obj_t * prompt_cont;
+#endif
 } lv_phone_obj_ext_t;
 
 /**********************
@@ -91,6 +94,11 @@ void ring_hook_action(lv_obj_t * btn, lv_event_t e);
 lv_obj_t * phone_get_activity_obj(void);
 void phone_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority);
 
+#ifdef __MMI_ZHSX_SUPPORT__
+void mmi_call_chip_high_temperature_prompt(void);
+#endif
+
+
 /**********************
  *      MACROS
  **********************/
index faa42f1..15846ce 100644 (file)
@@ -1431,6 +1431,47 @@ void mmi_watch_sim_unbind_check(void)
 #endif
 
 
+void mmi_ui_msg_update_chip_high_temperature(uint32_t flag)
+{
+       if(0 == flag) // in call
+       {
+               mmi_call_chip_high_temperature_prompt();
+       }
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+       else if(1 == flag) // in video call
+       {
+               mmi_vc_chip_high_temperature_prompt();
+       }
+#endif
+}
+
+void mmi_watch_chip_temperature_check(void)
+{
+       if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state())
+       {
+               int chip_temp = asl_chip_temperature_get();
+               SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp);
+
+               if(MMI_CHIP_TEMPERATURE_THRESHOLD <= chip_temp)
+               {
+                       mmi_ui_msg_action_chip_high_temperature(0);
+               }
+       }
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+       else if(true == voip_connect_check_req())
+       {
+               int chip_temp = asl_chip_temperature_get();
+               SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp);
+
+               if(MMI_CHIP_TEMPERATURE_THRESHOLD <= chip_temp)
+               {
+                       mmi_ui_msg_action_chip_high_temperature(1);
+               }
+       }
+#endif
+}
+
+
 
 #endif
 
index ca4d1af..271c06d 100644 (file)
@@ -109,6 +109,9 @@ void mmi_watch_sim_unbind_switch_set(uint8_t value);
 void mmi_watch_sim_unbind_check(void);
 #endif
 
+#define MMI_CHIP_TEMPERATURE_THRESHOLD (65) // (90) // (40)
+void mmi_ui_msg_update_chip_high_temperature(uint32_t flag);
+void mmi_watch_chip_temperature_check(void);