gengxin
author@CHENG <2393524978@qq.com>
Mon, 15 Jul 2024 07:18:10 +0000 (15:18 +0800)
committer@CHENG <2393524978@qq.com>
Mon, 15 Jul 2024 07:18:10 +0000 (15:18 +0800)
16 files changed:
2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h
2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h
2.sdk/project/Z5_WL_K7/gui/lv_watch/mmi_default_CUSTOM.h
2.sdk/project/Z5_WL_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.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_activity_id.h
2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c
2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c
2.sdk/sdk/gui/lv_watch/lv_watch_common.c
2.sdk/sdk/gui/lv_watch/mmi_default.h
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h

index 8ec6eef..e93c950 100644 (file)
@@ -83,6 +83,9 @@
 // sim unbind
 #define MMI_CUSTOMER_SIM_UNBIND_SWITCH         (MMI_WATCH_SWITCH_ON)
 
+// chip temperature 
+#define MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD          (70)
+#define MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD           (60)
 
 
 #endif
index 54c44c1..fdaef58 100644 (file)
@@ -83,6 +83,9 @@
 // sim unbind
 #define MMI_CUSTOMER_SIM_UNBIND_SWITCH         (MMI_WATCH_SWITCH_ON)
 
+// chip temperature 
+#define MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD          (70)
+#define MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD           (60)
 
 
 #endif
index 91f46ab..fa016c2 100644 (file)
@@ -233,7 +233,9 @@ static void mmi_gui_timing_task_1_minute_mission(void * time_param)
 #endif
 
        // check chip temperature
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
        mmi_watch_chip_temperature_check();
+#endif
 
        // check tcms
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
index f969056..d7870b7 100644 (file)
@@ -214,20 +214,6 @@ 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);       
-}
 
 
 
index 35a4b03..5d54659 100644 (file)
@@ -88,7 +88,6 @@ 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);
 
index 839fbd0..88e0d05 100644 (file)
@@ -464,10 +464,6 @@ 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 ecec9ba..c7cc904 100644 (file)
@@ -137,7 +137,6 @@ enum
        MMI_MSG_HENGAI_BP_CALIBRATE_RESULT,
        MMI_MSG_HENGAI_BP_MEASURE_RESULT,
 #endif
-       MMI_MSG_CHIP_HIGH_TEMP,
        
        
 #endif
index d286fde..bddec1e 100644 (file)
@@ -239,6 +239,9 @@ enum
 #endif
 #ifdef __MMI_USER_PROFILE_SUPPORT__
        ACT_ID_USER_PROFILE,
+#endif
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+       ACT_ID_CHIP_TEMP_HIGH,
 #endif
     ACT_ID_WATCH_FALLDWON,
 
index 5c2d1f7..81c1d42 100644 (file)
@@ -306,15 +306,20 @@ void watch_modem_call_response_clip(int32_t index, MMI_Modem_Call_Response_Clip_
         return;
     }
 
-#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
-       if(true == mmi_watch_is_in_do_not_disturb_time())
+       if(false
+               #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+               || (true == mmi_watch_is_in_do_not_disturb_time())
+               #endif
+               #ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+               || (true == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+               #endif
+               )
        {
                printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
         Hal_Mem_Free(clip->number);
         Hal_Mem_Free(clip);
         return;
     }
-#endif
 
     printf("%s: index=%d, number=%s, type=%d\n", __func__, index, clip->number, clip->type);
 
index 44867dc..86df89d 100644 (file)
@@ -388,6 +388,28 @@ void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info)
                                watch_wakeup_time_reset();\r
                        }\r
 \r
+               #ifdef __MMI_ZHSX_SUPPORT__\r
+                       uint8_t volume = 0;\r
+                       \r
+                       #ifdef __MMI_USER_PROFILE_SUPPORT__\r
+                       volume = mmi_user_profile_current_mode_new_sms_volume_get();\r
+                       #else\r
+                       volume = query_current_volume();\r
+                       #endif\r
+                       #ifdef __MMI_NEW_SMS_SILENT_SUPPORT__\r
+                       if(0 != mmi_new_sms_silent_swtich_get())\r
+                               volume = 0;\r
+                       #endif\r
+                       if(0 != volume)\r
+                       {\r
+                               Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, volume, NULL, 0);\r
+                       }\r
+                       if(true == mmi_watch_vibrate_is_permitted())\r
+                       {\r
+                               Hal_Vibrator_Play_Onetime(NULL, 800);\r
+                       }\r
+               #endif\r
+\r
                        //notify ui \r
                        app_adaptor_recv_sms_notsify_update_ui();\r
                }\r
@@ -1077,26 +1099,6 @@ void sms_msg_list_update(void)
 {\r
        printf("%s\n", __FUNCTION__);\r
 \r
-#ifdef __MMI_ZHSX_SUPPORT__\r
-       uint8_t volume = 0;\r
-       \r
-#ifdef __MMI_USER_PROFILE_SUPPORT__\r
-       volume = mmi_user_profile_current_mode_new_sms_volume_get();\r
-#else\r
-       volume = query_current_volume();\r
-#endif\r
-#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__\r
-       if(0 != mmi_new_sms_silent_swtich_get())\r
-               volume = 0;\r
-#endif\r
-       Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, volume, NULL, 0);\r
-\r
-       if(true == mmi_watch_vibrate_is_permitted())\r
-       {\r
-               Hal_Vibrator_Play_Onetime(NULL, 800);\r
-       }\r
-#endif\r
-\r
        if(is_sms_activity())\r
        {\r
                lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SMS_MSG);\r
index 0ca7cbf..83a8085 100644 (file)
@@ -482,6 +482,12 @@ void lv_watch_go_home(void)
                return;
        }
 #endif
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+       if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+       {
+               return;
+       }
+#endif
 #endif
 
 #if USE_LV_WATCH_EXERCISE != 0
@@ -573,7 +579,6 @@ void lv_watch_go_back(void)
        {
                mmi_watch_search_screen_destroy();
        }
-#endif
 
 #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
        if(true == mmi_watch_is_in_do_not_disturb_time())
@@ -581,6 +586,13 @@ void lv_watch_go_back(void)
         return;
        }
 #endif
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+       if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+       {
+               return;
+       }
+#endif
+#endif
 
 #if USE_LV_WATCH_EXERCISE != 0
     if(exercise_sport_back_key_handle()) {
index fab979d..c957d8f 100644 (file)
@@ -411,6 +411,20 @@ extern "C"
 #endif
 
 
+// chip temperature 
+#ifdef MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD
+#define MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT           MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD
+#else
+#define MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT           (70)
+#endif
+
+#ifdef MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD
+#define MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT            MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD
+#else
+#define MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT            (60)
+#endif
+
+
 
 #endif
 
index 15846ce..4a683cc 100644 (file)
@@ -28,6 +28,13 @@ bool mmi_active_screen_is_prohibit_interrupted(void)
                return true;
        }
 #endif
+
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+       if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+       {
+               return true;
+       }
+#endif
        
     if(true == mmi_is_ACT_ID_SHUTDOWN())
        {
@@ -1431,20 +1438,531 @@ void mmi_watch_sim_unbind_check(void)
 #endif
 
 
-void mmi_ui_msg_update_chip_high_temperature(uint32_t flag)
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+
+#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+static uint8_t s_CHIP_TEMP_HIGH_THRESHOLD = 50;
+static uint8_t s_CHIP_TEMP_LOW_THRESHOLD = 45;
+static lv_obj_t * s_high_label = NULL;
+static lv_obj_t * s_low_label = NULL;
+
+static void __prepare_destory(lv_obj_t * activity_obj)
+{
+    lv_watch_png_cache_all_free();
+}
+
+static void __low_decrease_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED!= event)
+               return;
+
+       s_CHIP_TEMP_LOW_THRESHOLD--;
+       
+       char low_value[8] = {0};
+       sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD);
+       lv_label_set_text(s_low_label, low_value);
+}
+
+static void __low_increase_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+       if(LV_EVENT_CLICKED!= event)
+               return;
+
+       if((s_CHIP_TEMP_HIGH_THRESHOLD - 1) > s_CHIP_TEMP_LOW_THRESHOLD)
+               s_CHIP_TEMP_LOW_THRESHOLD++;
+       
+       char low_value[8] = {0};
+       sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD);
+       lv_label_set_text(s_low_label, low_value);
+}
+
+static void __high_decrease_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED!= event)
+               return;
+
+       if((s_CHIP_TEMP_LOW_THRESHOLD + 1) < s_CHIP_TEMP_HIGH_THRESHOLD)
+               s_CHIP_TEMP_HIGH_THRESHOLD--;
+       
+       char high_value[8] = {0};
+       sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD);
+       lv_label_set_text(s_high_label, high_value);
+}
+
+static void __high_increase_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+       if(LV_EVENT_CLICKED!= event)
+               return;
+
+       s_CHIP_TEMP_HIGH_THRESHOLD++;
+       
+       char high_value[8] = {0};
+       sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD);
+       lv_label_set_text(s_high_label, high_value);
+}
+
+static lv_obj_t * __create(lv_obj_t * activity_obj)
 {
-       if(0 == flag) // in call
+    if(NULL == activity_obj)
        {
-               mmi_call_chip_high_temperature_prompt();
+        lv_watch_activity_ext_t activity_ext;
+        memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+        activity_ext.actId = ACT_ID_ANYOBJ;
+        activity_ext.create = __create;
+        activity_ext.prepare_destory = __prepare_destory;
+        activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+        LV_ASSERT_MEM(activity_obj);
+        if(NULL == activity_obj) {
+            return NULL;
+        }
+    }
+
+    lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+    LV_ASSERT_MEM(obj);
+    if(NULL == obj) {
+        return NULL;
+    }
+
+    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_add_style(content, LV_CONT_PART_MAIN, &lv_watch_style_transp);
+       lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       // low
+    lv_obj_t * low_label = lv_label_create(content, NULL);
+    lv_obj_add_style(low_label, LV_LABEL_PART_MAIN,  &lv_watch_font26_gray);
+       char low_value[8] = {0};
+       sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD);
+       lv_label_set_text(low_label, low_value);
+    lv_label_set_align(low_label, LV_LABEL_ALIGN_CENTER);
+    lv_obj_align(low_label, NULL, LV_ALIGN_IN_TOP_MID, 0, 40);
+       s_low_label = low_label;
+
+    lv_obj_t * low_btn_decrease = lv_imgbtn_create(content, NULL);
+    lv_imgbtn_set_src(low_btn_decrease, LV_BTN_STATE_RELEASED, ICON_DECREASE);
+    lv_imgbtn_set_src(low_btn_decrease, LV_BTN_STATE_PRESSED, ICON_DECREASE);
+       lv_obj_align(low_btn_decrease, NULL, LV_ALIGN_IN_TOP_LEFT, 20, 30);
+    lv_obj_set_event_cb(low_btn_decrease, __low_decrease_btn_action);
+
+    lv_obj_t * low_btn_increase = lv_imgbtn_create(content, NULL);
+    lv_imgbtn_set_src(low_btn_increase, LV_BTN_STATE_RELEASED, ICON_INCREASE);
+    lv_imgbtn_set_src(low_btn_increase, LV_BTN_STATE_PRESSED, ICON_INCREASE);
+       lv_obj_align(low_btn_increase, NULL, LV_ALIGN_IN_TOP_RIGHT, -20, 30);
+    lv_obj_set_event_cb(low_btn_increase, __low_increase_btn_action);  
+
+       // high
+    lv_obj_t * high_label = lv_label_create(content, NULL);
+    lv_obj_add_style(high_label, LV_LABEL_PART_MAIN,  &lv_watch_font26_gray);
+       char high_value[8] = {0};
+       sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD);
+       lv_label_set_text(high_label, high_value);
+    lv_label_set_align(high_label, LV_LABEL_ALIGN_CENTER);
+    lv_obj_align(high_label, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -40);
+       s_high_label = high_label;
+
+    lv_obj_t * high_btn_decrease = lv_imgbtn_create(content, NULL);
+    lv_imgbtn_set_src(high_btn_decrease, LV_BTN_STATE_RELEASED, ICON_DECREASE);
+    lv_imgbtn_set_src(high_btn_decrease, LV_BTN_STATE_PRESSED, ICON_DECREASE);
+       lv_obj_align(high_btn_decrease, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 20, -30);
+    lv_obj_set_event_cb(high_btn_decrease, __high_decrease_btn_action);
+
+    lv_obj_t * high_btn_increase = lv_imgbtn_create(content, NULL);
+    lv_imgbtn_set_src(high_btn_increase, LV_BTN_STATE_RELEASED, ICON_INCREASE);
+    lv_imgbtn_set_src(high_btn_increase, LV_BTN_STATE_PRESSED, ICON_INCREASE);
+       lv_obj_align(high_btn_increase, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -30);
+    lv_obj_set_event_cb(high_btn_increase, __high_increase_btn_action);        
+
+    return obj;
+}
+
+void __create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED == event)
+       {
+        lv_watch_png_cache_all_free();
+
+        lv_obj_t * obj = __create(NULL);
+        LV_ASSERT_MEM(obj);
+        if(obj == NULL) return;
+    }
+}
+#endif
+
+#if 0
+static lv_task_t * s_chip_high_temp_clean_task = NULL;
+static bool s_is_ACT_ID_CHIP_TEMP_HIGH = false;
+
+bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void)
+{
+       return s_is_ACT_ID_CHIP_TEMP_HIGH;
+}
+
+static void mmi_set_ACT_ID_CHIP_TEMP_HIGH(bool value)
+{
+       s_is_ACT_ID_CHIP_TEMP_HIGH = value;
+}
+
+void mmi_chip_high_temp_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       mmi_watch_power_off();
+}
+
+static void mmi_chip_high_temp_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+    lv_watch_png_cache_all_free();
+
+       mmi_set_ACT_ID_CHIP_TEMP_HIGH(false);
+}
+
+static void mmi_chip_high_temp_task_clean(void)
+{
+       if(NULL != s_chip_high_temp_clean_task)
+       {
+               lv_task_del(s_chip_high_temp_clean_task);
+               s_chip_high_temp_clean_task = NULL;
+       }
+}
+
+static void mmi_chip_high_temp_clean_task_cb(lv_task_t * task)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHIP_TEMP_HIGH);
+       if(NULL == activity_obj)
+       {
+               SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+               mmi_chip_high_temp_task_clean();
+       }
+       else
+       {
+               int chip_temp = asl_chip_temperature_get();
+               SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp);
+
+       #ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+               char info_buf[64] = {0};
+               sprintf(info_buf, "chip_temp=%d", chip_temp);
+               mmi_debug_info_write_to_file(info_buf);
+       #endif
+               
+               if(MMI_CHIP_TEMP_LOW_THRESHOLD >= chip_temp)
+               {
+                       mmi_chip_high_temp_screen_prepare_destory(NULL);
+                       lv_obj_del(activity_obj);
+                       mmi_chip_high_temp_task_clean();
+               }
+       }
+}
+
+static void mmi_watch_chip_temperature_clean(void)
+{
+       mmi_chip_high_temp_task_clean();
+       s_chip_high_temp_clean_task = lv_task_create(mmi_chip_high_temp_clean_task_cb, 1000 * 5, LV_TASK_PRIO_HIGH, NULL);
+}
+
+static lv_obj_t * mmi_chip_high_temp_screen_create(lv_obj_t * activity_obj)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       if(NULL == activity_obj) 
+       {
+               lv_watch_activity_ext_t activity_ext;
+               memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+               activity_ext.actId = ACT_ID_CHIP_TEMP_HIGH;
+               activity_ext.create = mmi_chip_high_temp_screen_create;
+               activity_ext.prepare_destory = mmi_chip_high_temp_screen_prepare_destory;
+               activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+               LV_ASSERT_MEM(activity_obj);
+               if(activity_obj == NULL) 
+               {
+                       return(NULL);
+               }
+       }
+
+       lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+       LV_ASSERT_MEM(obj);
+       if(obj == NULL) 
+               return NULL;
+       
+       mmi_set_ACT_ID_CHIP_TEMP_HIGH(true);
+       mmi_watch_chip_temperature_clean();
+       
+    lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO);
+
+       lv_obj_t * cont = lv_cont_create(obj, NULL);
+       lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+       //lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+       //lv_obj_set_style_local_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30);
+       lv_obj_set_style_local_bg_color(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(cont, NULL, LV_ALIGN_CENTER, 0, 0);
+       lv_obj_set_click(cont, false);
+
+       // image
+       lv_obj_t * img = lv_img_create(cont, NULL);
+       lv_img_set_src(img, ICON_WARNNING_PROMPT);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+       #ifdef USE_LV_WATCH_UI_240_240
+       lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15);
+       #else
+    lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15);
+       #endif
+#else
+       #if USE_LV_WATCH_UI_240_280
+       lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
+       #else
+    lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
+       #endif
+#endif
+       
+       // text
+       lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_prompt, LV_OBJ_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+       lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       // button
+       lv_obj_t * btn = lv_btn_create(cont, NULL);
+       lv_obj_set_size(btn, 100, 56);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+       #ifdef USE_LV_WATCH_UI_240_240
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15);
+       #else
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15);
+       #endif
+#else
+       #if USE_LV_WATCH_UI_240_280
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+       #else
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+       #endif
+#endif
+       lv_obj_set_event_cb(btn, mmi_chip_high_temp_btn_event_cb);
+
+       lv_obj_t * label_btn = lv_label_create(btn, NULL);
+       lv_obj_add_style(label_btn, LV_LABEL_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label_btn, WATCH_TEXT_ID_SHUTDOWN);
+       lv_label_set_align(label_btn, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       return obj;
+}
+
+static void mmi_chip_temp_high_task_cb(lv_task_t * task)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state())
+       {
+               ring_off_action(NULL, LV_EVENT_CLICKED);
        }
 #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
-       else if(1 == flag) // in video call
+       else if(true == voip_connect_check_req())
+       {
+               mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
+       }
+#endif
+
+       lv_watch_go_home();
+       Hal_Vibrator_Play_Onetime(NULL, 800);
+       
+       mmi_chip_high_temp_screen_create(NULL);
+}
+
+void mmi_watch_chip_temperature_check(void)
+{
+       int chip_temp = asl_chip_temperature_get();
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp);
+
+#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+       char info_buf[64] = {0};
+       sprintf(info_buf, "chip_temp=%d", chip_temp);
+       mmi_debug_info_write_to_file(info_buf);
+#endif
+
+       if(120 < chip_temp)
+       {
+               SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip temp unreasonable\n", __FUNCTION__, __LINE__);
+       }
+       else if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp)
+       {
+               if(false == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+               {
+                       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               
+                       mmi_watch_wake_up();
+                       lv_task_t * task_ptr = lv_task_create(mmi_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL);
+                       lv_task_once(task_ptr);
+               }
+       }
+       else if(MMI_CHIP_TEMP_LOW_THRESHOLD >= chip_temp)
+       {
+               if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH())
+               {
+                       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+                       
+                       mmi_set_ACT_ID_CHIP_TEMP_HIGH(false);
+               }
+       }
+}
+
+#else
+
+bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void)
+{
+       return false;
+}
+
+static void mmi_chip_high_temp_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+    lv_watch_png_cache_all_free();
+}
+
+void mmi_chip_high_temp_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       mmi_chip_high_temp_screen_prepare_destory(NULL);
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHIP_TEMP_HIGH);
+       if(NULL != activity_obj)
+       {
+               lv_obj_del(activity_obj);
+       }
+}
+
+static lv_obj_t * mmi_chip_high_temp_screen_create(lv_obj_t * activity_obj)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       if(NULL == activity_obj) 
        {
-               mmi_vc_chip_high_temperature_prompt();
+               lv_watch_activity_ext_t activity_ext;
+               memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+               activity_ext.actId = ACT_ID_CHIP_TEMP_HIGH;
+               activity_ext.create = mmi_chip_high_temp_screen_create;
+               activity_ext.prepare_destory = mmi_chip_high_temp_screen_prepare_destory;
+               activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+               LV_ASSERT_MEM(activity_obj);
+               if(activity_obj == NULL) 
+               {
+                       return(NULL);
+               }
        }
+
+       lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+       LV_ASSERT_MEM(obj);
+       if(obj == NULL) 
+               return NULL;
+       
+    //lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO);
+
+       lv_obj_t * cont = lv_cont_create(obj, NULL);
+       lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+       //lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+       //lv_obj_set_style_local_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30);
+       lv_obj_set_style_local_bg_color(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(cont, NULL, LV_ALIGN_CENTER, 0, 0);
+       lv_obj_set_click(cont, false);
+
+       // image
+       lv_obj_t * img = lv_img_create(cont, NULL);
+       lv_img_set_src(img, ICON_WARNNING_PROMPT);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+       #ifdef USE_LV_WATCH_UI_240_240
+       lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15);
+       #else
+    lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15);
+       #endif
+#else
+       #if USE_LV_WATCH_UI_240_280
+       lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
+       #else
+    lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
+       #endif
 #endif
+       
+       // text
+       lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_prompt, LV_OBJ_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE);
+       lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       // button
+       lv_obj_t * btn = lv_btn_create(cont, NULL);
+       lv_obj_set_size(btn, 100, 56);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+       #ifdef USE_LV_WATCH_UI_240_240
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15);
+       #else
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15);
+       #endif
+#else
+       #if USE_LV_WATCH_UI_240_280
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+       #else
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+       #endif
+#endif
+       lv_obj_set_event_cb(btn, mmi_chip_high_temp_btn_event_cb);
+
+       lv_obj_t * label_btn = lv_label_create(btn, NULL);
+       lv_obj_add_style(label_btn, LV_LABEL_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label_btn, WATCH_TEXT_ID_OK);
+       lv_label_set_align(label_btn, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       return obj;
+}
+
+static void mmi_call_chip_temp_high_task_cb(lv_task_t * task)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state())
+       {
+               ring_off_action(NULL, LV_EVENT_CLICKED);
+       }
+
+       lv_watch_go_home();
+       Hal_Vibrator_Play_Onetime(NULL, 800);
+       
+       mmi_chip_high_temp_screen_create(NULL);
 }
 
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+static void mmi_vc_chip_temp_high_task_cb(lv_task_t * task)
+{
+       SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       if(true == voip_connect_check_req())
+       {
+               mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
+       }
+
+       lv_watch_go_home();
+       Hal_Vibrator_Play_Onetime(NULL, 800);
+       
+       mmi_chip_high_temp_screen_create(NULL);
+}
+#endif
+
 void mmi_watch_chip_temperature_check(void)
 {
        if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state())
@@ -1452,9 +1970,11 @@ void mmi_watch_chip_temperature_check(void)
                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)
+               if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp)
                {
-                       mmi_ui_msg_action_chip_high_temperature(0);
+                       mmi_watch_wake_up();
+                       lv_task_t * task_ptr = lv_task_create(mmi_call_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL);
+                       lv_task_once(task_ptr);
                }
        }
 #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
@@ -1463,13 +1983,19 @@ void mmi_watch_chip_temperature_check(void)
                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)
+               if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp)
                {
-                       mmi_ui_msg_action_chip_high_temperature(1);
+                       mmi_watch_wake_up();
+                       lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL);
+                       lv_task_once(task_ptr);
                }
        }
 #endif
 }
+#endif
+
+#endif
+
 
 
 
index 271c06d..2d4841e 100644 (file)
@@ -109,9 +109,22 @@ 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);
+#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+
+//#define __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__
+#define MMI_CHIP_TEMP_HIGH_THRESHOLD (s_CHIP_TEMP_HIGH_THRESHOLD)
+#define MMI_CHIP_TEMP_LOW_THRESHOLD    (s_CHIP_TEMP_LOW_THRESHOLD)
+
+void __create_event_cb(lv_obj_t * btn, lv_event_t event);
+#else
+#define MMI_CHIP_TEMP_HIGH_THRESHOLD (MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT)
+#define MMI_CHIP_TEMP_LOW_THRESHOLD    (MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT)
+#endif
+
+bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void);
 void mmi_watch_chip_temperature_check(void);
+#endif