Z5_HA_K18 修改
authorcheng <2393524978@qq.com>
Mon, 26 Jan 2026 03:49:47 +0000 (11:49 +0800)
committercheng <2393524978@qq.com>
Mon, 26 Jan 2026 03:49:47 +0000 (11:49 +0800)
25 files changed:
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_BEGIN.mp3 [new file with mode: 0644]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_END.mp3 [new file with mode: 0644]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_L_ARROW.png [new file with mode: 0644]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_R_ARROW.png [new file with mode: 0644]
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dial_dolphin.png
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png
2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h
2.sdk/sdk/gui/lv_drivers/indev/sos_key.c
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/nvm/ui_nvm.h
2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c
2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h
2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h
2.sdk/sdk/gui/lv_watch/include/ui_textid.h
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.c [new file with mode: 0644]
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.h [new file with mode: 0644]
2.sdk/sdk/gui/lv_watch/lv_apps/sos/sos.c
2.sdk/sdk/gui/lv_watch/lv_watch.c
2.sdk/sdk/gui/lv_watch/lv_watch_res.h
2.sdk/sdk/product/craneg_modem/lv_gui_main.c

diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_BEGIN.mp3 b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_BEGIN.mp3
new file mode 100644 (file)
index 0000000..4a58abe
Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_BEGIN.mp3 differ
diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_END.mp3 b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_END.mp3
new file mode 100644 (file)
index 0000000..2d32125
Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/audio/AUDIO_BP_MEASURE_END.mp3 differ
diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_L_ARROW.png b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_L_ARROW.png
new file mode 100644 (file)
index 0000000..ad4d65e
Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_L_ARROW.png differ
diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_R_ARROW.png b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_R_ARROW.png
new file mode 100644 (file)
index 0000000..3753447
Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/custom_function/ICON_HENGAI_BP_R_ARROW.png differ
index f05cef2..f894c38 100644 (file)
Binary files a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dial_dolphin.png and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dial_dolphin.png differ
index e951ae5..51bb5df 100644 (file)
Binary files a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png differ
index 9142851..42d30ea 100644 (file)
 
 #define __MMI_CUSTOM_HENGAI_HEALTH__
 #define __MMI_CUSTOM_HENGAI_HEALTH_UPLOAD_USE_TCP__
+#define __MMI_CUSTOM_HENGAI_USER_INFO__
 
 //#define __MMI_CUSTOM_HENGAI_TCMS__
 
index e0cc644..ad10239 100644 (file)
@@ -335,6 +335,13 @@ void sos_key_ui_handle(void)
        }
 #endif
 
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       if(true == mmi_is_ACT_ID_HENGAI_USER_INFO())
+       {
+               return ;
+       }
+#endif
+
 #ifdef __MMI_KEY_BACK_RUN_PHONEBOOK_WHEN_IN_DIAL__
        if(lv_watch_is_activity_one_level())
        {
index 0def210..51fe58c 100644 (file)
@@ -1014,6 +1014,13 @@ const void * lang_text_ch[] = {
     "终止", // WATCH_TEXT_ID_EXPERIENCE_STOP,
     "确定终止体验?", // WATCH_TEXT_ID_EXPERIENCE_STOP_Q,
     "算法初始化,请稍后", // WATCH_TEXT_ID_BLOOD_PRESSURE_INIT,
+    "您的性别", // WATCH_TEXT_ID_GENDER_SETTING,
+    "男性", // WATCH_TEXT_ID_MALE,
+    "女性", // WATCH_TEXT_ID_FEMALE,
+    "其他", // WATCH_TEXT_ID_OTHER,
+    "您的出生日期", // WATCH_TEXT_ID_BIRTH_DATE,
+    "您的身高(cm)", // WATCH_TEXT_ID_HEIGHT_SETTING,
+    "您的体重(kg)", // WATCH_TEXT_ID_WEIGHT_SETTING,
 
     //CHENG_MODIFY
     "确认是否跌倒?", // WATCH_TEXT_ID_falldown,
index c7bf43c..c9acba2 100644 (file)
@@ -1015,6 +1015,13 @@ const void * lang_text_en[] = {
     "Stop", // WATCH_TEXT_ID_EXPERIENCE_STOP,
     "Stop the experience?", // WATCH_TEXT_ID_EXPERIENCE_STOP_Q,
     "Init, try again later", // WATCH_TEXT_ID_BLOOD_PRESSURE_INIT,
+    "Your gender", // WATCH_TEXT_ID_GENDER_SETTING,
+    "Male", // WATCH_TEXT_ID_MALE,
+    "Female", // WATCH_TEXT_ID_FEMALE,
+    "Other", // WATCH_TEXT_ID_OTHER,
+    "Date of birht", // WATCH_TEXT_ID_BIRTH_DATE,
+    "Your height(cm)", // WATCH_TEXT_ID_HEIGHT_SETTING,
+    "Your weight(kg)", // WATCH_TEXT_ID_WEIGHT_SETTING,
 
     //CHENG_MODIFY
     "Confirm a fall",
index 8fd6fb4..91530b4 100644 (file)
@@ -97,6 +97,9 @@ extern "C" {
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
 #define NV_SECTION_UI_HENGAI_HEALTH_DATA_LEN   (sizeof(nv_watch_hengai_health_data_t))
 #endif
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+#define NV_SECTION_UI_HENGAI_USER_INFO_LEN     (sizeof(nv_watch_hengai_user_info_t))
+#endif
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
 #define NV_SECTION_UI_HENGAI_TCMS_SWITCH_LEN   (sizeof(nv_watch_switch_t))
 #endif
@@ -250,6 +253,9 @@ typedef lv_fs_dir_t  ui_dir_t;
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
 #define NV_SECTION_UI_HENGAI_HEALTH_DATA_FILE  "ui_hengai_health_data.nv"
 #endif
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+#define NV_SECTION_UI_HENGAI_USER_INFO_FILE    "ui_hengai_user_info.nv"
+#endif
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
 #define NV_SECTION_UI_HENGAI_TCMS_SWITCH_FILE  "ui_hengai_tcms_switch.nv"
 #endif
index d1e1a5e..e2dbcd3 100644 (file)
@@ -160,6 +160,10 @@ uint32_t UI_NV_Get_Section_Len(NV_UI_SECTION_ID SectionId)
                case NV_SECTION_UI_HENGAI_HEALTH_DATA:
                        return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_HEALTH_DATA));
        #endif
+       #ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+               case NV_SECTION_UI_HENGAI_USER_INFO:
+                       return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_USER_INFO));
+       #endif
        #ifdef __MMI_CUSTOM_HENGAI_TCMS__
                case NV_SECTION_UI_HENGAI_TCMS_SWITCH:
                        return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_TCMS_SWITCH));
@@ -333,6 +337,10 @@ char * UI_NV_Get_Section_path(NV_UI_SECTION_ID SectionId)
                case NV_SECTION_UI_HENGAI_HEALTH_DATA:
                        return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_HEALTH_DATA));
        #endif
+       #ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+               case NV_SECTION_UI_HENGAI_USER_INFO:
+                       return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_USER_INFO));
+       #endif
        #ifdef __MMI_CUSTOM_HENGAI_TCMS__
                case NV_SECTION_UI_HENGAI_TCMS_SWITCH:
                        return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_TCMS_SWITCH));
@@ -442,6 +450,9 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId)
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
        nv_watch_hengai_health_data_t * hengai_health;
 #endif
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       nv_watch_hengai_user_info_t * hengai_user_info;
+#endif
 #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__
        nv_watch_hengai_sleep_data_t * hengai_sleep_data;
 #endif
@@ -792,6 +803,13 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId)
                        TempData = (char *)hengai_health;
                        break;
        #endif
+       #ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+               case NV_SECTION_UI_HENGAI_USER_INFO:
+                       hengai_user_info = lv_mem_alloc(SectionLen);
+                       memset(hengai_user_info, 0x0, SectionLen);
+                       TempData = (char *)hengai_user_info;
+                       break;
+       #endif
        #ifdef __MMI_CUSTOM_HENGAI_TCMS__
                case NV_SECTION_UI_HENGAI_TCMS_SWITCH:
                        mmi_switch_data = lv_mem_alloc(SectionLen);
index 0babf05..8f1cdae 100644 (file)
@@ -219,6 +219,9 @@ enum
        ACT_ID_HENG_AI_BP_CALIBRATE,
        //ACT_ID_HENG_AI_BP_ATTEMPT,
        ACT_ID_HENG_AI_BP_RECORD,
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       ACT_ID_HENGAI_USER_INFO,
+#endif
 #endif
 #ifdef __MMI_CUSTOM_AIGC_SUPPORT__
        ACT_ID_AIGC_MAIN,
index 834d64c..ebe8283 100644 (file)
@@ -519,6 +519,16 @@ typedef struct
 } __packed nv_watch_hengai_health_data_t;
 #endif
 
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+typedef struct
+{
+       char user_birth_date[16]; // 2008-08-08
+       uint8_t user_gender; // 1-man; 2-woman; 3-other
+       uint16_t user_height; // cm
+       uint16_t user_weight; // kg
+} nv_watch_hengai_user_info_t;
+#endif
+
 
 #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__
 
@@ -807,6 +817,9 @@ enum
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
        NV_SECTION_UI_HENGAI_HEALTH_DATA,                               // nv_watch_hengai_health_data_t
 #endif
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       NV_SECTION_UI_HENGAI_USER_INFO,                         // nv_watch_hengai_user_info_t
+#endif
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
        NV_SECTION_UI_HENGAI_TCMS_SWITCH,                       // nv_watch_switch_t
 #endif
index 534bc4e..7e3c46d 100644 (file)
@@ -1022,6 +1022,13 @@ enum
     WATCH_TEXT_ID_EXPERIENCE_STOP,                      /* "终止"                     "Stop" */
     WATCH_TEXT_ID_EXPERIENCE_STOP_Q,                    /* "确定终止体验?"                     "Stop the experience?" */
     WATCH_TEXT_ID_BLOOD_PRESSURE_INIT,                  /* "算法初始化,请稍后"                "Init, try again later" */
+    WATCH_TEXT_ID_GENDER_SETTING,                       /* "您的性别"                     "Your gender" */
+    WATCH_TEXT_ID_MALE,                                 /* "男性"                     "Male" */
+    WATCH_TEXT_ID_FEMALE,                               /* "女性"                     "Female" */
+    WATCH_TEXT_ID_OTHER,                                /* "其他"                     "Other" */
+    WATCH_TEXT_ID_BIRTH_DATE,                           /* "您的出生日期"                     "Date of birht" */
+    WATCH_TEXT_ID_HEIGHT_SETTING,                       /* "您的身高(cm)"                     "Your height(cm)" */
+    WATCH_TEXT_ID_WEIGHT_SETTING,                       /* "您的体重(kg)"                     "Your weight(kg)" */
 
     //CHENG_MODIFY
     WATCH_TEXT_ID_FALLDWON,                            /*确认是否跌倒*/
index 3f11767..229809d 100644 (file)
@@ -17,6 +17,9 @@
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
 #include "heng_ai_blood_pressure.c"
 #include "heng_ai_http_protocol.c"
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+#include "heng_ai_user_info.c"
+#endif
 #ifdef __MMI_CUSTOM_HENGAI_TCMS__
 #include "heng_ai_tcms.c"
 #endif
index 2ae252d..3189740 100644 (file)
@@ -31,6 +31,9 @@ extern "C" {
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
 #include "heng_ai_blood_pressure.h"
 #include "heng_ai_http_protocol.h"
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+#include "heng_ai_user_info.h"
+#endif
 #include "heng_ai_tcms.h"
 #endif
 #ifdef __MMI_CUSTOM_AIGC_SUPPORT__
index 9cd88f8..d2c9717 100644 (file)
@@ -629,6 +629,54 @@ void mmi_hengai_bp_back_measure_action(void)
 }
 
 
+static void ring_prompt_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
+{
+       if(AUDIO_CTRL_PRIORITY_REMIND > priority)
+    {
+               Hal_NFFS_File_Play_End();
+               Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_REMIND);
+    }
+}
+
+static void ring_prompt_play_onetime_cb(void *para)
+{
+       Hal_NFFS_File_Play_End();
+       Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_REMIND);
+}
+
+static void mmi_bp_screen_common_ring_prompt(uint8_t is_measure, uint8_t is_begin)
+{
+       char * ring_path = NULL;
+
+       if(is_measure)
+       {
+               if(is_begin)
+                       ring_path = AUDIO_BP_MEASURE_BEGIN;
+               else
+                       ring_path = AUDIO_BP_MEASURE_END;
+       }
+       else
+       {
+               // if(is_begin)
+               //      ring_path = AUDIO_BP_CALIBRATION_BEGIN;
+               // else
+               //      ring_path = AUDIO_BP_CALIBRATION_END;
+       }
+
+       if(AUDIO_CTRL_PRIORITY_REMIND == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_REMIND, ring_prompt_audio_ctrl_callback))
+       {
+               uint8_t volume = 0;
+       #ifdef __MMI_USER_PROFILE_SUPPORT__
+               volume = mmi_user_profile_current_mode_remind_volume_get();
+       #else
+               volume = query_current_volume();
+       #endif
+
+               Hal_NFFS_File_Play_Onetime((const char *)ring_path, (HAL_SPEAKER_GAIN)volume, ring_prompt_play_onetime_cb, 0);
+       }
+}
+
+
 static lv_obj_t * mmi_bp_screen_common_bottom_button_create(lv_obj_t * par, uint32_t text_id, lv_event_cb_t event_cb)
 {
        lv_obj_t * imgbtn = lv_imgbtn_create(par, NULL);
@@ -918,6 +966,9 @@ void mmi_hengai_bp_measure_result_screen(uint8_t result)
        }
        
        mmi_bp_screen_common_bottom_button_create(watch_ext->cont, WATCH_TEXT_ID_OK, mmi_hengai_bp_measure_result_screen_event_cb);
+
+       // ring prompt
+       mmi_bp_screen_common_ring_prompt(1, 0);
 }
 
 void mmi_hengai_bp_measure_result_timeout(void * para)
@@ -1329,6 +1380,9 @@ void mmi_hengai_bp_measure_start_btn_event_cb(lv_obj_t * obj, lv_event_t e)
        #endif
        #endif
 
+               // ring prompt
+               mmi_bp_screen_common_ring_prompt(1, 1);
+
                /* start timer (1 min) */
                watch_ext->measure_timer_id = Hal_Timer_Start(1000, mmi_hengai_bp_measure_cycle_timeout, NULL, true);
        }
@@ -2994,9 +3048,9 @@ lv_obj_t * mmi_heng_ai_bp_screen_create(lv_obj_t * activity_obj)
                if(NULL == ext->tab_calibration_record)
                        return NULL;
 
-               if(0 == mmi_hengai_bp_calibrated_flag_get())
-                   lv_tileview_set_tile_act(tileview, 1, 0, LV_ANIM_OFF);
-               else
+               // if(0 == mmi_hengai_bp_calibrated_flag_get())
+               //     lv_tileview_set_tile_act(tileview, 1, 0, LV_ANIM_OFF);
+               // else
                    lv_tileview_set_tile_act(tileview, 0, 0, LV_ANIM_OFF);
                
            lv_watch_obj_add_element(tileview);
index cec4901..d41d4b8 100644 (file)
@@ -1266,6 +1266,20 @@ void mmi_hengai_tcp_algorithm_interface_login_action(void)
        
                temp_len += sprintf(json_data + temp_len, "\"password\":\"%s\",", imei);
        
+       #ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+               uint8_t user_gender = mmi_hengai_user_info_gender_get();
+               temp_len += sprintf(json_data + temp_len, "\"gender\":\"%d\",", user_gender);
+       
+               char * user_birth_date = mmi_hengai_user_info_birth_date_get();
+               temp_len += sprintf(json_data + temp_len, "\"birthday\":\"%s\",", user_birth_date);
+               
+               uint16_t user_height = mmi_hengai_user_info_height_get();
+               temp_len += sprintf(json_data + temp_len, "\"height\":\"%d\",", user_height);
+
+               uint16_t user_weight = mmi_hengai_user_info_weight_get();
+               temp_len += sprintf(json_data + temp_len, "\"weight\":\"%d\"}", user_weight);
+
+       #else
                temp_len += sprintf(json_data + temp_len, "\"gender\":\"%d\",", 3);
        
                temp_len += sprintf(json_data + temp_len, "\"birthday\":\"%s\",", "2000-10-01");
@@ -1273,6 +1287,7 @@ void mmi_hengai_tcp_algorithm_interface_login_action(void)
                temp_len += sprintf(json_data + temp_len, "\"height\":\"%d\",", 180);
 
                temp_len += sprintf(json_data + temp_len, "\"weight\":\"%d\"}", 80);
+       #endif
        
                HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
 
diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.c
new file mode 100644 (file)
index 0000000..1aedbb2
--- /dev/null
@@ -0,0 +1,903 @@
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+
+static nv_watch_hengai_user_info_t s_hengai_user_info = {0};
+
+static uint8_t s_gender_value = 0;
+static uint16_t s_birth_date_year = 0, s_birth_date_month = 0, s_birth_date_day = 0;
+static uint8_t s_height_hundred = 0, s_height_ten = 0, s_height_digit = 0;
+static uint8_t s_weight_hundred = 0, s_weight_ten = 0, s_weight_digit = 0;
+
+
+#ifdef __MMI_ZHSX_SUPPORT__
+static bool s_is_ACT_ID_HENGAI_USER_INFO = false;
+
+bool mmi_is_ACT_ID_HENGAI_USER_INFO(void)
+{
+       return s_is_ACT_ID_HENGAI_USER_INFO;
+}
+#endif
+
+
+void mmi_hengai_user_info_nv_read(void)
+{
+       uint32_t nv_data_length = sizeof(nv_watch_hengai_user_info_t);
+       
+       if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HENGAI_USER_INFO, 0, nv_data_length, (uint8_t *)&s_hengai_user_info))
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
+       }
+}
+
+static void mmi_hengai_user_info_nv_write(void)
+{
+       uint32_t nv_data_length = sizeof(nv_watch_hengai_user_info_t);
+       
+       if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HENGAI_USER_INFO, 0, nv_data_length, (uint8_t *)&s_hengai_user_info))
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
+       }
+}
+
+
+uint8_t mmi_hengai_user_info_gender_get(void)
+{
+       return (s_hengai_user_info.user_gender);
+}
+
+void mmi_hengai_user_info_gender_set(uint8_t user_gender)
+{
+       if(1 == user_gender || 2 == user_gender || 3 == user_gender)
+       {
+               s_hengai_user_info.user_gender = user_gender;
+       }
+}
+
+char * mmi_hengai_user_info_birth_date_get(void)
+{
+       return (s_hengai_user_info.user_birth_date);
+}
+
+void mmi_hengai_user_info_birth_date_set(char * user_birth_date)
+{
+       if(NULL == user_birth_date)
+               return ;
+
+       _lv_memcpy(s_hengai_user_info.user_birth_date, user_birth_date, strlen(user_birth_date));
+}
+
+uint16_t mmi_hengai_user_info_height_get(void)
+{
+       return (s_hengai_user_info.user_height);
+}
+
+void mmi_hengai_user_info_height_set(uint16_t user_height)
+{
+       s_hengai_user_info.user_height = user_height;
+}
+
+uint16_t mmi_hengai_user_info_weight_get(void)
+{
+       return (s_hengai_user_info.user_weight);
+}
+
+void mmi_hengai_user_info_weight_set(uint16_t user_weight)
+{
+       s_hengai_user_info.user_weight = user_weight;
+}
+
+
+void * mmi_hengai_user_info_setting_screen_ext_get(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENGAI_USER_INFO);
+       if(activity_obj == NULL)
+               return NULL;
+
+       lv_obj_t * watch_obj = NULL;
+       lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+       if(NULL == watch_obj) 
+               return NULL;
+       
+       void * ext = lv_obj_get_ext_attr(watch_obj);
+       
+       return ext;
+}
+
+static void mmi_hengai_user_info_setting_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+       lv_watch_png_cache_all_free();
+
+#ifdef __MMI_ZHSX_SUPPORT__
+       s_is_ACT_ID_HENGAI_USER_INFO = false;
+#endif
+}
+
+static void mmi_hengai_user_info_setting_screen_clean(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENGAI_USER_INFO);
+       if(NULL != activity_obj)
+       {
+               mmi_hengai_user_info_setting_screen_prepare_destory(activity_obj);
+               lv_obj_del(activity_obj);
+       }
+}
+
+static void mmi_hengai_user_info_setting_ok_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+       if(NULL == ext)
+               return;
+       
+       uint32_t free_num = lv_watch_get_free_num(obj);
+       if(1 == free_num)
+       {
+               // next
+               lv_obj_set_hidden(ext->cont, true);
+               lv_obj_set_hidden(ext->cont_gender, true);
+               lv_obj_set_hidden(ext->cont_birth_date, false);
+               lv_obj_set_hidden(ext->cont_height, true);
+               lv_obj_set_hidden(ext->cont_weight, true);
+       }
+       else if(2 == free_num)
+       {
+               // next
+               lv_obj_set_hidden(ext->cont, true);
+               lv_obj_set_hidden(ext->cont_gender, true);
+               lv_obj_set_hidden(ext->cont_birth_date, true);
+               lv_obj_set_hidden(ext->cont_height, false);
+               lv_obj_set_hidden(ext->cont_weight, true);
+       }
+       else if(3 == free_num)
+       {
+               // next
+               lv_obj_set_hidden(ext->cont, true);
+               lv_obj_set_hidden(ext->cont_gender, true);
+               lv_obj_set_hidden(ext->cont_birth_date, true);
+               lv_obj_set_hidden(ext->cont_height, true);
+               lv_obj_set_hidden(ext->cont_weight, false);
+       }
+       else
+       {
+               // set
+               char temp_str[16] = {0};
+               uint16_t temp_value = 0;
+               
+               mmi_hengai_user_info_gender_set(s_gender_value + 1);
+               
+               sprintf(temp_str, "%d-%02d-%02d", s_birth_date_year, s_birth_date_month, s_birth_date_day);
+               mmi_hengai_user_info_birth_date_set(temp_str);
+               
+               temp_value = s_height_hundred * 100 + s_height_ten * 10 + s_height_digit;
+               mmi_hengai_user_info_height_set(temp_value);
+               
+               temp_value = s_weight_hundred * 100 + s_weight_ten * 10 + s_weight_digit;
+               mmi_hengai_user_info_weight_set(temp_value);
+               
+               // save
+               mmi_hengai_user_info_nv_write();
+               
+               // clean
+               mmi_hengai_user_info_setting_screen_clean();
+       }
+}
+
+static lv_obj_t * mmi_hengai_user_info_setting_ok_btn_create(lv_obj_t * par)
+{
+       lv_obj_t * imgbtn = lv_imgbtn_create(par, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_BOTTOM_BTN_BG);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_BOTTOM_BTN_BG);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_ok_btn_event_cb);
+
+       lv_obj_t * btn_label = lv_label_create(imgbtn, NULL);
+       lv_obj_add_style(btn_label, LV_LABEL_PART_MAIN, &lv_watch_font32);
+       lv_label_set_align(btn_label, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text_id(btn_label, WATCH_TEXT_ID_OK);
+       lv_obj_align(btn_label, NULL, LV_ALIGN_CENTER, 0, 0);
+
+       return imgbtn;
+}
+
+
+// user gender
+void mmi_hengai_user_info_setting_gender_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+       if(NULL == ext)
+               return;
+       
+       uint32_t text_id_arr[] = {WATCH_TEXT_ID_MALE, WATCH_TEXT_ID_FEMALE, WATCH_TEXT_ID_OTHER};
+       uint8_t arr_num = sizeof(text_id_arr) / sizeof(text_id_arr[0]);
+       uint32_t free_num = lv_watch_get_free_num(obj);
+       if(0 == free_num)
+       {
+               if(0 == s_gender_value)
+                       s_gender_value = arr_num - 1;
+               else
+                       s_gender_value--;
+       }
+       else
+       {
+               if((arr_num - 1) == s_gender_value)
+                       s_gender_value = 0;
+               else
+                       s_gender_value++;
+       }
+
+       lv_label_set_text_id(ext->label_gender, text_id_arr[s_gender_value]);   
+}
+
+void mmi_hengai_user_info_setting_gender_cont(lv_hengai_user_info_ext_t * ext)
+{      
+       s_gender_value = 0;
+       
+       lv_obj_t * cont = ext->cont_gender;
+       
+       lv_obj_t * label_title = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+       lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text_id(label_title, WATCH_TEXT_ID_GENDER_SETTING);
+       lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+       lv_obj_set_click(label_title, false);
+
+
+       lv_obj_t * imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_L_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_L_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_LEFT_MID, 50, -10);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_gender_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 0);
+
+       lv_obj_t * label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+       lv_obj_set_width(label, 150);
+       lv_label_set_text_id(label, WATCH_TEXT_ID_MALE);
+       lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -15);
+       ext->label_gender = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_R_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_R_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_RIGHT_MID, -50, -10);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_gender_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 1);
+
+       // ok
+       lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+       lv_watch_set_free_num(btn, 1);
+}
+
+
+//user birth date
+void mmi_hengai_user_info_setting_birth_date_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+       if(NULL == ext)
+               return;
+       
+       lv_obj_t * label = NULL;
+       char temp_str[4] = {0};
+       //hal_rtc_t cur_time = {0};
+       
+       //Hal_Rtc_Gettime(&cur_time);
+       
+       uint32_t free_num = lv_watch_get_free_num(obj);
+       if(0 == free_num) // year up
+       {
+               //(cur_time.tm_year > s_birth_date_year) ? s_birth_date_year++ : NULL;
+               (2050 > s_birth_date_year) ? s_birth_date_year++ : NULL;
+               sprintf(temp_str, "%d", s_birth_date_year);
+               label = ext->label_year;
+       }
+       else if(1 == free_num) // year down
+       {
+               (1921 < s_birth_date_year) ? s_birth_date_year-- : NULL;
+               sprintf(temp_str, "%d", s_birth_date_year);
+               label = ext->label_year;
+       }
+       else if(2 == free_num) // month up
+       {
+               //if(cur_time.tm_year == s_birth_date_year)
+               //      (cur_time.tm_mon > s_birth_date_month) ? s_birth_date_month++ : NULL;
+               //else
+                       (12 > s_birth_date_month) ? s_birth_date_month++ : NULL;
+               sprintf(temp_str, "%d", s_birth_date_month);
+               label = ext->label_month;
+       }
+       else if(3 == free_num) // month down
+       {
+               (1 < s_birth_date_month) ? s_birth_date_month-- : NULL;
+               sprintf(temp_str, "%d", s_birth_date_month);
+               label = ext->label_month;
+       }
+       else if(4 == free_num) // day up
+       {
+               uint16_t day_max = 0;
+               
+               //if(cur_time.tm_year == s_birth_date_year && cur_time.tm_mon == s_birth_date_month)
+               //      day_max = cur_time.tm_mday;
+               //else
+               {
+                       if(1 == s_birth_date_month || 3 == s_birth_date_month || 5 == s_birth_date_month || 7 == s_birth_date_month
+                               || 8 == s_birth_date_month || 10 == s_birth_date_month || 12 == s_birth_date_month)
+                               day_max = 31;
+                       else if(2 == s_birth_date_month)
+                       {
+                               if((0 == s_birth_date_year%4) && (0 != s_birth_date_year%100) || (0 == s_birth_date_year%400))
+                                       day_max = 29;
+                               else
+                                       day_max = 28;
+                       }
+                       else
+                               day_max = 30;
+               }
+               (day_max > s_birth_date_day) ? s_birth_date_day++ : NULL;
+               sprintf(temp_str, "%d", s_birth_date_day);
+               label = ext->label_day;
+       }
+       else if(5 == free_num) // day down
+       {
+               (1 < s_birth_date_day) ? s_birth_date_day-- : NULL;
+               sprintf(temp_str, "%d", s_birth_date_day);
+               label = ext->label_day;
+       }
+       
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text(label, temp_str);     
+}
+
+void mmi_hengai_user_info_setting_birth_date_cont(lv_hengai_user_info_ext_t * ext)
+{      
+       s_birth_date_year = 2000, s_birth_date_month = 1, s_birth_date_day = 1;
+       
+       lv_obj_t * cont = ext->cont_birth_date;
+       
+       lv_obj_t * label_title = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+       lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text_id(label_title, WATCH_TEXT_ID_BIRTH_DATE);
+       lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+       lv_obj_set_click(label_title, false);
+
+
+       lv_obj_t * label = NULL;
+       lv_obj_t * imgbtn = NULL;
+       char temp_str[8] = {0};
+       
+       // year
+       //label = lv_label_create(cont, NULL);
+       //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+       //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       //lv_label_set_text_id(label, WATCH_TEXT_ID_YEAR);
+       //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120);
+       //lv_obj_set_click(label, false);
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 55, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 0);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_birth_date_year);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_year = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 1);
+       
+
+       // month
+       //label = lv_label_create(cont, NULL);
+       //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+       //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       //lv_label_set_text_id(label, WATCH_TEXT_ID_MONTH);
+       //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 200, 100);
+       //lv_obj_set_click(label, false);
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 5, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 2);
+
+       label = lv_label_create(cont, NULL);
+
+       lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+       lv_obj_set_size(label, 80, 65);
+
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_birth_date_month);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_month = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 3);
+
+
+       // day
+       //label = lv_label_create(cont, NULL);
+       //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+       //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       //lv_label_set_text_id(label, WATCH_TEXT_ID_DATE);
+       //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 380, 100);
+       //lv_obj_set_click(label, false);
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 4);
+
+       label = lv_label_create(cont, NULL);
+
+       lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+       lv_obj_set_size(label, 80, 65);
+
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_birth_date_day);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_day = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 5);
+       
+
+       lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+       lv_watch_set_free_num(btn, 2);
+}
+
+
+// user height
+void mmi_hengai_user_info_setting_height_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+       if(NULL == ext)
+               return;
+       
+       lv_obj_t * label = NULL;
+       char temp_str[4] = {0};
+       
+       uint32_t free_num = lv_watch_get_free_num(obj);
+       if(0 == free_num) // hundred up
+       {
+               (2 > s_height_hundred) ? s_height_hundred++ : NULL;
+               sprintf(temp_str, "%d", s_height_hundred);
+               label = ext->label_height_hundred;
+       }
+       else if(1 == free_num) // hundred down
+       {
+               (0 < s_height_hundred) ? s_height_hundred-- : NULL;
+               sprintf(temp_str, "%d", s_height_hundred);
+               label = ext->label_height_hundred;
+       }
+       else if(2 == free_num) // ten up
+       {
+               (9 > s_height_ten) ? s_height_ten++ : NULL;
+               sprintf(temp_str, "%d", s_height_ten);
+               label = ext->label_height_ten;
+       }
+       else if(3 == free_num) // ten down
+       {
+               (0 < s_height_ten) ? s_height_ten-- : NULL;
+               sprintf(temp_str, "%d", s_height_ten);
+               label = ext->label_height_ten;
+       }
+       else if(4 == free_num) // digit up
+       {
+               (9 > s_height_digit) ? s_height_digit++ : NULL;
+               sprintf(temp_str, "%d", s_height_digit);
+               label = ext->label_height_digit;
+       }
+       else if(5 == free_num) // digit down
+       {
+               (0 < s_height_digit) ? s_height_digit-- : NULL;
+               sprintf(temp_str, "%d", s_height_digit);
+               label = ext->label_height_digit;
+       }
+       
+       lv_label_set_text(label, temp_str);     
+}
+
+void mmi_hengai_user_info_setting_height_cont(lv_hengai_user_info_ext_t * ext)
+{      
+       s_height_hundred = 1, s_height_ten = 6, s_height_digit = 5;
+       
+       lv_obj_t * cont = ext->cont_height;
+       
+       lv_obj_t * label_title = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+       lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text_id(label_title, WATCH_TEXT_ID_HEIGHT_SETTING);
+       lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+       lv_obj_set_click(label_title, false);
+
+
+       lv_obj_t * label = NULL;
+       lv_obj_t * imgbtn = NULL;
+       char temp_str[4] = {0};
+       
+       // hundred
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 0);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_height_hundred);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_height_hundred = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 1);
+       
+
+       // ten
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 0, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 2);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_height_ten);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_height_ten = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 3);
+
+
+       // digit
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 4);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_height_digit);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_height_digit = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 5);
+       
+
+       lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+       lv_watch_set_free_num(btn, 3);
+}
+
+// user weight
+void mmi_hengai_user_info_setting_weight_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED != e)
+               return;
+       
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+       if(NULL == ext)
+               return;
+       
+       lv_obj_t * label = NULL;
+       char temp_str[4] = {0};
+       
+       uint32_t free_num = lv_watch_get_free_num(obj);
+       if(0 == free_num) // hundred up
+       {
+               (2 > s_weight_hundred) ? s_weight_hundred++ : NULL;
+               sprintf(temp_str, "%d", s_weight_hundred);
+               label = ext->label_weight_hundred;
+       }
+       else if(1 == free_num) // hundred down
+       {
+               (0 < s_weight_hundred) ? s_weight_hundred-- : NULL;
+               sprintf(temp_str, "%d", s_weight_hundred);
+               label = ext->label_weight_hundred;
+       }
+       else if(2 == free_num) // ten up
+       {
+               (9 > s_weight_ten) ? s_weight_ten++ : NULL;
+               sprintf(temp_str, "%d", s_weight_ten);
+               label = ext->label_weight_ten;
+       }
+       else if(3 == free_num) // ten down
+       {
+               (0 < s_weight_ten) ? s_weight_ten-- : NULL;
+               sprintf(temp_str, "%d", s_weight_ten);
+               label = ext->label_weight_ten;
+       }
+       else if(4 == free_num) // digit up
+       {
+               (9 > s_weight_digit) ? s_weight_digit++ : NULL;
+               sprintf(temp_str, "%d", s_weight_digit);
+               label = ext->label_weight_digit;
+       }
+       else if(5 == free_num) // digit down
+       {
+               (0 < s_weight_digit) ? s_weight_digit-- : NULL;
+               sprintf(temp_str, "%d", s_weight_digit);
+               label = ext->label_weight_digit;
+       }
+       
+       lv_label_set_text(label, temp_str);     
+}
+void mmi_hengai_user_info_setting_weight_cont(lv_hengai_user_info_ext_t * ext)
+{      
+       s_weight_hundred = 0, s_weight_ten = 6, s_weight_digit = 5;
+       
+       lv_obj_t * cont = ext->cont_weight;
+       
+       lv_obj_t * label_title = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+       lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_text_id(label_title, WATCH_TEXT_ID_WEIGHT_SETTING);
+       lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+       lv_obj_set_click(label_title, false);
+
+
+       lv_obj_t * label = NULL;
+       lv_obj_t * imgbtn = NULL;
+       char temp_str[4] = {0};
+       
+       // hundred
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 0);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_weight_hundred);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_weight_hundred = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 1);
+       
+
+       // ten
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 0, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 2);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_weight_ten);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_weight_ten = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 3);
+
+
+       // digit
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+       lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 4);
+
+       label = lv_label_create(cont, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+       lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+       sprintf(temp_str, "%d", s_weight_digit);
+       lv_label_set_text(label, temp_str);
+       lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+       lv_obj_set_click(label, false);
+       ext->label_weight_digit = label;
+
+       imgbtn = lv_imgbtn_create(cont, NULL);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+       lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+       lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+       lv_watch_set_free_num(imgbtn, 5);
+       
+
+       lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+       lv_watch_set_free_num(btn, 4);
+}
+
+
+lv_obj_t * mmi_hengai_user_info_setting_screen_create(lv_obj_t * activity_obj)
+{
+       if(activity_obj == NULL) 
+       {
+               lv_watch_activity_ext_t activity_ext = {0};
+
+               activity_ext.actId = ACT_ID_HENGAI_USER_INFO;
+               activity_ext.create = mmi_hengai_user_info_setting_screen_create;
+               activity_ext.prepare_destory = mmi_hengai_user_info_setting_screen_prepare_destory;
+               activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+               if(NULL == activity_obj)
+                       return NULL;
+       }
+
+#ifdef __MMI_ZHSX_SUPPORT__
+       s_is_ACT_ID_HENGAI_USER_INFO = true;
+#endif
+
+       lv_obj_t * watch_obj = lv_watch_obj_create(activity_obj);
+       if(NULL == watch_obj)
+               return NULL;
+       lv_watch_obj_set_anim_mode(watch_obj, LV_WATCH_ANIM_NO);
+       
+       lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)lv_obj_allocate_ext_attr(watch_obj, sizeof(lv_hengai_user_info_ext_t)); 
+       if(NULL == ext)
+               return NULL;
+
+       ext->cont = NULL;
+       ext->cont_gender = NULL;
+       ext->label_gender = NULL;
+       ext->cont_birth_date = NULL;
+       ext->label_year = NULL;
+       ext->label_month = NULL;
+       ext->label_day = NULL;
+       ext->cont_height = NULL;
+       ext->label_height_hundred = NULL;
+       ext->label_height_ten = NULL;
+       ext->label_height_digit = NULL;
+       ext->cont_weight = NULL;
+       ext->label_weight_hundred = NULL;
+       ext->label_weight_ten = NULL;
+       ext->label_weight_digit = NULL;
+       
+       lv_obj_t * cont = NULL;
+       cont = lv_cont_create(watch_obj, NULL);
+       lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+       //lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp_tight);
+       lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+       lv_obj_set_click(cont, false);
+       ext->cont = cont;
+       
+       cont = lv_cont_create(watch_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_click(cont, false);
+       ext->cont_gender = cont;
+       mmi_hengai_user_info_setting_gender_cont(ext);
+       
+       cont = lv_cont_create(watch_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_click(cont, false);
+       ext->cont_birth_date = cont;
+       mmi_hengai_user_info_setting_birth_date_cont(ext);
+
+       cont = lv_cont_create(watch_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_click(cont, false);
+       ext->cont_height = cont;
+       mmi_hengai_user_info_setting_height_cont(ext);
+
+       cont = lv_cont_create(watch_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_click(cont, false);
+       ext->cont_weight = cont;
+       mmi_hengai_user_info_setting_weight_cont(ext);
+
+
+       lv_obj_set_hidden(ext->cont, true);
+       lv_obj_set_hidden(ext->cont_gender, false);
+       lv_obj_set_hidden(ext->cont_birth_date, true);
+       lv_obj_set_hidden(ext->cont_height, true);
+       lv_obj_set_hidden(ext->cont_weight, true);
+
+       //
+       //watch_set_suspend_enable(false, ACT_ID_HENG_AI_BP_CALIBRATE, 0);
+       
+       return watch_obj;
+}
+
+uint8_t mmi_hengai_user_info_setting_enter(void)
+{
+       uint8_t user_gender = mmi_hengai_user_info_gender_get();
+       char * user_birth_date = mmi_hengai_user_info_birth_date_get();
+       uint16_t user_height = mmi_hengai_user_info_height_get();
+       uint16_t user_weight = mmi_hengai_user_info_weight_get();
+       
+       if((0 != user_gender) && (0 != strlen(user_birth_date)) && (0 != user_height) && (0 != user_weight))
+       {
+               return 0;
+       }
+
+       mmi_hengai_user_info_setting_screen_create(NULL);
+
+       return 1;
+}
+
+#endif
+
diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_user_info.h
new file mode 100644 (file)
index 0000000..1c663b4
--- /dev/null
@@ -0,0 +1,67 @@
+
+
+
+#ifndef __HENG_AI_USER_INFO_H__
+#define __HENG_AI_USER_INFO_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_ex_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_ex_conf.h"
+#endif
+
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+
+
+typedef struct
+{
+       lv_watch_obj_ext_t lv_watch_obj;
+
+       /*New data for this type */
+       lv_obj_t * cont;
+       lv_obj_t * cont_gender;
+       lv_obj_t * label_gender;
+       lv_obj_t * cont_birth_date;
+       lv_obj_t * label_year;
+       lv_obj_t * label_month;
+       lv_obj_t * label_day;
+       lv_obj_t * cont_height;
+       lv_obj_t * label_height_hundred;
+       lv_obj_t * label_height_ten;
+       lv_obj_t * label_height_digit;
+       lv_obj_t * cont_weight;
+       lv_obj_t * label_weight_hundred;
+       lv_obj_t * label_weight_ten;
+       lv_obj_t * label_weight_digit;
+}lv_hengai_user_info_ext_t;
+
+
+bool mmi_is_ACT_ID_HENGAI_USER_INFO(void);
+
+void mmi_hengai_user_info_nv_read(void);
+
+uint8_t mmi_hengai_user_info_gender_get(void);
+
+char * mmi_hengai_user_info_birth_date_get(void);
+
+uint16_t mmi_hengai_user_info_height_get(void);
+
+uint16_t mmi_hengai_user_info_weight_get(void);
+
+uint8_t mmi_hengai_user_info_setting_enter(void);
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
index 069a1b1..df7f951 100644 (file)
@@ -313,6 +313,13 @@ lv_res_t mmi_key_back_sos_btn_action(void)
        return LV_RES_INV;
 #endif
 
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       if(true == mmi_is_ACT_ID_HENGAI_USER_INFO())
+       {
+               return LV_RES_INV;
+       }
+#endif
+
        if(false == watch_modem_sim_present_check_req())
        {
                printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
index 8be863a..b404c9d 100644 (file)
@@ -106,6 +106,9 @@ static void mmi_data_init_before_watch_create(void)
 
 #ifdef __MMI_CUSTOM_HENGAI_HEALTH__
        mmi_hengai_health_data_nv_read();
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       mmi_hengai_user_info_nv_read();
+#endif
 #endif
 #ifdef __MMI_CUSTOM_HENG_AI__
        mmi_hengai_sleep_activation_nv_read();
@@ -610,6 +613,10 @@ static lv_obj_t * watch_create(bool silentReset)
        mmi_data_init_after_watch_create();
 #endif
 
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+       mmi_hengai_user_info_setting_enter();
+#endif
+
     return obj;
 }
 
index a8e923c..376abd7 100644 (file)
@@ -72,6 +72,13 @@ extern "C" {
 #define AUDIO_REMIND_SEDENTARY                  "R:/audio/AUDIO_REMIND_SEDENTARY.mp3"
 #endif
 
+#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
+#define AUDIO_BP_MEASURE_BEGIN                   "R:/audio/AUDIO_BP_MEASURE_BEGIN.mp3"
+#define AUDIO_BP_MEASURE_END                   "R:/audio/AUDIO_BP_MEASURE_END.mp3"
+//#define AUDIO_BP_CALIBRATION_BEGIN                   "R:/audio/AUDIO_BP_CALIBRATION_BEGIN.mp3"
+//#define AUDIO_BP_CALIBRATION_END                   "R:/audio/AUDIO_BP_CALIBRATION_END.mp3"
+#endif
+
 
 #ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
 
@@ -1097,6 +1104,10 @@ LV_IMG_DECLARE(img_poweron_logo);
 #define ANIM_HENGAI_BP_ATTEMPT                                 "R:/gif/custom_function/ANIM_HENGAI_BP_ATTEMPT.gif"
 #define ANIM_HENGAI_BP_WAITTING                                        "R:/gif/custom_function/ANIM_HENGAI_BP_WAITTING.gif"
 
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+#define ICON_HENGAI_BP_L_ARROW           "R:/png/custom_function/ICON_HENGAI_BP_L_ARROW.png"
+#define ICON_HENGAI_BP_R_ARROW           "R:/png/custom_function/ICON_HENGAI_BP_R_ARROW.png"
+#endif
 #endif
 
 
index 099b214..bc5a9e1 100644 (file)
@@ -1018,6 +1018,13 @@ static void keypad_watch_cb(struct keypad_param *arg)
                }
        #endif
 
+       #ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+               if(true == mmi_is_ACT_ID_HENGAI_USER_INFO())
+               {
+                       return ;
+               }
+       #endif
+
         lv_obj_t * facau_obj = lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_AUTOTEST);
         lv_obj_t * emht_obj = lv_watch_get_activity_obj(ACT_ID_ENGINEER_MODE_ITEM_HWT);
         if(NULL != facau_obj) {