gengxin
authorCCC <2393524978@qq.com>
Fri, 29 Dec 2023 03:17:35 +0000 (11:17 +0800)
committer1 <1>
Fri, 29 Dec 2023 07:54:12 +0000 (15:54 +0800)
13 files changed:
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_ATTEMPT.gif [deleted file]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_CALIBRATE.gif [deleted file]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_MEASURE.gif [deleted file]
2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_PAGE_MAIN_MENU_TTS.png [new file with mode: 0644]
2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_SEDENTARY_REMIND.png [new file with mode: 0644]
2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.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/include/ui_textid.h
2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c

diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_ATTEMPT.gif b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_ATTEMPT.gif
deleted file mode 100644 (file)
index 1f07957..0000000
Binary files a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_ATTEMPT.gif and /dev/null differ
diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_CALIBRATE.gif b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_CALIBRATE.gif
deleted file mode 100644 (file)
index 45342dc..0000000
Binary files a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_CALIBRATE.gif and /dev/null differ
diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_MEASURE.gif b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_MEASURE.gif
deleted file mode 100644 (file)
index 7759a5f..0000000
Binary files a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ANIM_HENGAI_BP_MEASURE.gif and /dev/null differ
diff --git a/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_PAGE_MAIN_MENU_TTS.png b/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_PAGE_MAIN_MENU_TTS.png
new file mode 100644 (file)
index 0000000..43acb4a
Binary files /dev/null and b/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_PAGE_MAIN_MENU_TTS.png differ
diff --git a/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_SEDENTARY_REMIND.png b/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_SEDENTARY_REMIND.png
new file mode 100644 (file)
index 0000000..86c571e
Binary files /dev/null and b/2.sdk/project/Z5_Z12/gui/lv_watch/resource/png/setting/ICON_SETTING_SEDENTARY_REMIND.png differ
index 53021ac..bd6c3ce 100644 (file)
 
 #define USE_LV_WATCH_SMS_MSG 1
 
-#define USE_LV_WATCH_UPGRADE 0 // 1
+#define USE_LV_WATCH_UPGRADE 1 // 1
 #define USE_LV_WATCH_UPGRADE_RS 0
 
 #define USE_LV_WATCH_WAKE_UP_SHORT_TIME 1
 
 #define __MMI_POWER_ON_OFF_NO_RING__
 
+#define __MMI_KEY_POWER_LONG_PRESS_SCREEN_SUPPORT__
 
+#define __MMI_KEY_BACK_RUN_PHONEBOOK_WHEN_IN_DIAL__
+
+#define __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+#define __MMI_SEDENTARY_REMIND_SUPPORT__
+
+#define __MMI_NEW_SMS_SILENT_SUPPORT__
+
+#define __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+
+#define __MMI_REMIND_WAKE_UP_SUPPORT__
+
+#define __MMI_REMIND_SLEEP_SUPPORT__
+
+#define __MMI_REMIND_REST_SUPPORT__
+
+#define __MMI_REMIND_HOME_SUPPORT__
+
+#define __MMI_REMIND_MEDICINE_SUPPORT__
+
+#define __MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__
+
+#define __MMI_REMIND_DRINK_SUPPORT__
+
+//#define __MMI_CUSTOM_HENG_AI__
 #endif
 
 
index 21e2298..bf1f06a 100644 (file)
@@ -962,7 +962,7 @@ const void * lang_text_ch[] = {
     "校准结果已上传,当前血压异常。建议休息后重新校准", // WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT,
     "校准失败,请重新校准", // WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT,
     "确认是否跌倒?", // WATCH_TEXT_ID_falldown,
-
+    "确认是否删除",
     //CHENG_MODIFY
 
 
index e7800eb..3842170 100644 (file)
@@ -963,7 +963,7 @@ const void * lang_text_en[] = {
     "Blood pressure low prompt", // WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT,
     "Blood pressure failed prompt", // WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT,
     "Confirm a fall",
-
+    "Confirm deletion",
     //CHENG_MODIFY
 
 
index 65db4ad..5640e33 100644 (file)
@@ -970,7 +970,7 @@ enum
     WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT,            /* "校准结果已上传,当前血压异常。建议休息后重新校准"                      "Blood pressure low prompt" */
     WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT,         /* "校准失败,请重新校准"                      "Blood pressure failed prompt" */
     WATCH_TEXT_ID_FALLDWON,                            /*确认是否跌倒*/
-
+    WATCH_TEXT_ID_CONFIRM_DELETE,                        /*确认是否删除*/
 
     //CHENG_MODIFY
 
index d883cea..4bf5a99 100644 (file)
@@ -446,6 +446,21 @@ void call_log_update_call_log_info(call_status_t call_status, char * number, hal
     call_log_write_nvm(nvm_call_log_list);
 }
 
+void call_log_delete_date_call_log_info(uint_8 list_num)
+{
+    // read from nvm first
+    nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+
+    memset(&nvm_call_log_list->info[list_num], 0, sizeof(nv_watch_call_log_info_t));
+    // move call log list
+    if(list_num!=NV_WATCH_MAX_CALL_LOG_NUM-1)
+    {
+        memmove(&nvm_call_log_list->info[list_num], &nvm_call_log_list->info[list_num+1], (NV_WATCH_MAX_CALL_LOG_NUM -list_num-1 ) * sizeof(nv_watch_call_log_info_t));
+    }
+    // write to nvm after updating
+    call_log_write_nvm(nvm_call_log_list);
+}
+
 static void call_log_update_call_log_ll(uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
 {
     lv_call_log_obj_ext_t * ext = call_log_get_ext();
@@ -502,32 +517,126 @@ static lv_obj_t * call_log_list_create(lv_obj_t * obj)
     return list;
 }
 
-static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+static uint8_t call_log_dispaly_falg=0;
+#ifdef coll_log_delete
+static void delete_log_destory(lv_obj_t * activity_obj)
 {
-    if(LV_EVENT_CLICKED != e) 
-               return;
+    lv_watch_png_cache_all_free();
+    call_log_dispaly_falg=0;
+}
 
-    lv_call_log_obj_ext_t * ext = call_log_get_ext();
+
+static void delete_log_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED != event) return;
+    uint8_t index = lv_obj_get_user_data(btn).user_num;
+    call_log_delete_date_call_log_info(index);
+    call_log_ui_update();
+    lv_watch_obj_cleanup(btn);
+    delete_log_destory(NULL);
+}
+
+static void delete_log_cancel_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED != event) return;
+    lv_watch_obj_cleanup(btn);
+    delete_log_destory(NULL);
+}
+
+
+static lv_obj_t * delete_log_create(lv_obj_t * activity_obj,uint8_t list_num)
+{
+    if(activity_obj == NULL) {
+        lv_watch_activity_ext_t activity_ext;
+        memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+        activity_ext.actId = ACT_ID_SHUTDOWN;
+        activity_ext.create = NULL;
+        activity_ext.prepare_destory = delete_log_destory;
+        activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+        LV_ASSERT_MEM(activity_obj);
+        if(activity_obj == NULL) return NULL;
+    }
+    call_log_dispaly_falg=1;
+    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_HOR_RIGHT_HIDE);
+
+    lv_obj_t * label = lv_label_create(obj, NULL);
+    lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26);
+    lv_label_set_text_id(label, WATCH_TEXT_ID_CONFIRM_DELETE);
+    lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -40);
+
+    lv_obj_t  * btn = lv_imgbtn_create(obj, NULL);
+    lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_CONFIRM_BIG);
+    lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_CONFIRM_BIG);
+    lv_obj_set_event_cb(btn, delete_log_btn_action);
+    lv_watch_set_free_num(btn, list_num);
+    lv_watch_obj_add_element(btn);
+    lv_obj_align(btn, obj, LV_ALIGN_IN_BOTTOM_LEFT, 20+20, -20);
+   
+
+    btn = lv_imgbtn_create(obj, NULL);
+    lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_CANCEL_BIG);
+    lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_CANCEL_BIG);
+    lv_obj_set_event_cb(btn, delete_log_cancel_btn_action);
+    lv_watch_obj_add_element(btn);
+       lv_obj_align(btn, obj, LV_ALIGN_IN_BOTTOM_RIGHT, -20-20, -20);
+
+    return obj;
+}
+
+#endif
+
+
+static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+     lv_call_log_obj_ext_t * ext = call_log_get_ext();
     LV_ASSERT_MEM(ext);
 
     uint8_t index = lv_obj_get_user_data(btn).user_num;
 
     call_log_number_info_t * node = NULL;
     node = _lv_ll_get_head(ext->phone_number_list);
-    while(node) 
-       {
-        if(index == node->index) {
-            printf("%s: mo start\n", __FUNCTION__);
-            uint8_t length = strlen(node->phone_number);
-            char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
-            memset(number_mo, 0, length + 1);
-            memcpy(number_mo, node->phone_number, length);
-            phone_voice_call_req(number_mo);
-            break;
-        } else {
-            node = _lv_ll_get_next(ext->phone_number_list, node);
+
+    #ifdef coll_log_delete
+    if(LV_EVENT_LONG_PRESSED==e)
+    {
+        while(node) 
+        {
+            if(index == node->index) {
+                delete_log_create(NULL,node->index);
+                break;
+            } else {
+                node = _lv_ll_get_next(ext->phone_number_list, node);
+            }
         }
+
+    }
+    #endif
+
+    if(LV_EVENT_CLICKED != e) 
+               return;
+    if(call_log_dispaly_falg==0)
+    {
+        while(node) 
+        {
+            if(index == node->index) {
+                printf("%s: mo start\n", __FUNCTION__);
+                uint8_t length = strlen(node->phone_number);
+                char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
+                memset(number_mo, 0, length + 1);
+                memcpy(number_mo, node->phone_number, length);
+                phone_voice_call_req(number_mo);
+                break;
+            } else {
+                node = _lv_ll_get_next(ext->phone_number_list, node);
+            }
+        }
+
     }
+    
+     
 }
 
 static void call_log_content_create(lv_obj_t * list, uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
index 2d63d57..87603b9 100644 (file)
@@ -1026,7 +1026,7 @@ bool mmi_protocol_fzd_parse_SERVER_SET_BOOTOFF(unsigned char * next_buff, unsign
        server_set_alarm[0].on_off = atoi(temp_ptr);
        server_set_alarm[1].on_off = atoi(temp_ptr);
 
-       server_set_alarm[0].repeat_bitmap = 0x01ff;
+       server_set_alarm[0].repeat_bitmap = 0x03ff;
        server_set_alarm[1].repeat_bitmap = 0x01ff;
        
        
@@ -1187,6 +1187,103 @@ bool mmi_protocol_fzd_parse_SERVER_SET_TEMPERATURE_INTERVAL(unsigned char * next
        return result;
 }
 
+static TIMER_ID t=NULL;
+static void alarm_timeout(void * para)
+{
+       mmi_protocol_fzd_action_HEARTBEAT();
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_STFREQ(unsigned char * next_buff, unsigned int next_buff_len)
+{
+       bool result = false;
+       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_STFREQ;
+
+       if(NULL == next_buff || 0 == next_buff_len)
+       {
+               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       result = true;
+       mmi_protocol_fzd_send_without_data(action);
+       int off= atoi(strtok(next_buff,","));
+
+       int value_interval = atoi(strtok(NULL,"\0"));
+       printf("MMI_FZD_ACTION_SET_STFREQ %d,%d",off,value_interval);
+       if(t==NULL)
+       {
+               if(off!=0)
+               {       
+                       t= Hal_Timer_Start(value_interval *1000*60, alarm_timeout, NULL,1);
+               }
+               else
+               {
+                       Hal_Timer_Stop(t);
+               }
+               
+       }
+       else
+       {
+               if(off!=0)
+               {
+                       Hal_Timer_Stop(t);
+                       t= Hal_Timer_Start(value_interval *1000*60, alarm_timeout, NULL,1);
+               }
+               else
+               {
+                       Hal_Timer_Stop(t);
+               }
+               
+
+       }
+       
+       
+       return result;
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_SET_PEDO(unsigned char * next_buff, unsigned int next_buff_len)
+{
+       bool result = false;
+       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_PEDO;
+
+       if(NULL == next_buff || 0 == next_buff_len)
+       {
+               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       mmi_protocol_fzd_send_without_data(action);
+       int off= atoi(next_buff);
+       if(off==0)
+       {
+               if(t!=NULL)
+               {
+                       Hal_Timer_Stop(t);
+               }
+               else
+               {
+                       t= Hal_Timer_Start(5 *1000*60, alarm_timeout, NULL,1);
+               }
+               
+       }
+       
+       return result;
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_SLEEP_SW(unsigned char * next_buff, unsigned int next_buff_len)
+{
+       bool result = false;
+       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_SLEEP_SW;
+
+       if(NULL == next_buff || 0 == next_buff_len)
+       {
+               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       
+       return result;
+}
 
 bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
 {
@@ -2487,14 +2584,20 @@ bool mmi_protocol_fzd_action_VC_CALL_RESPONSE(char * number, char * ticket, MODE
        bool result = false;
        MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_VC_CALL_RESPONSE;
 
-       unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 64 + 8] = {0};
-       unsigned int content_lenth = 0;
+       if(NULL == number) // hang up
+       {
+               result = mmi_protocol_fzd_send_without_data(action);
+       }
+       else // reject
+       {
+               unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 64 + 8] = {0};
+               unsigned int content_lenth = 0;
 
        sprintf(content_buff, ",%s,%s,%d", number, ticket, type);
        content_lenth = strlen(content_buff);
 
-       result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
-
+               result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
+       }
        return result;
 }
 #endif
index a4034d6..5ebecd5 100644 (file)
@@ -119,6 +119,9 @@ typedef enum
        MMI_FZD_ACTION_SEND_BLOOD,
        MMI_FZD_SERVER_SET_SPO2_INTERVAL,
        MMI_FZD_ACTION_SEND_SPO2,
+       MMI_FZD_ACTION_SET_STFREQ,
+       MMI_FZD_ACTION_SET_PEDO,
+       MMI_FZD_ACTION_SET_SLEEP_SW,
 #endif
 
 #ifdef __MMI_WECHAT_SUPPORT__
index ea5dd39..ceeb076 100644 (file)
@@ -43,6 +43,9 @@ static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTIO
                        {MMI_FZD_ACTION_SEND_BLOOD, "blood"},
                        {MMI_FZD_SERVER_SET_SPO2_INTERVAL, "oxstart"},
                        {MMI_FZD_ACTION_SEND_SPO2, "oxygen"},
+                       {MMI_FZD_ACTION_SET_STFREQ, "STFreq"},
+                       {MMI_FZD_ACTION_SET_PEDO, "PEDO"},
+                       {MMI_FZD_ACTION_SET_SLEEP_SW, "SLEEP_SW"},
                #endif
                        
                #ifdef __MMI_WECHAT_SUPPORT__
@@ -261,6 +264,15 @@ static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned
                        
                case MMI_FZD_ACTION_SEND_SPO2:
                        break;
+               case MMI_FZD_ACTION_SET_STFREQ:
+                       mmi_protocol_fzd_parse_SERVER_SET_STFREQ(next_buff, next_buff_len);
+                       break;
+               case MMI_FZD_ACTION_SET_PEDO:
+                       mmi_protocol_fzd_parse_SERVER_SET_SET_PEDO(next_buff, next_buff_len);
+                       break;
+               case MMI_FZD_ACTION_SET_SLEEP_SW:
+                       mmi_protocol_fzd_parse_SERVER_SET_SLEEP_SW(next_buff, next_buff_len);
+                       break;
        #endif
                        
        #ifdef __MMI_WECHAT_SUPPORT__