From: @CHENG <2393524978@qq.com> Date: Wed, 12 Mar 2025 09:45:08 +0000 (+0800) Subject: 恒爱血压测试前,检查算法是否已激活,若未激活,则不进入测量; X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=4e1e8e5ce6b617d3fd2b4cb6d6d8cbeb6ae2b8c2;p=mirrors%2FASR3603_Z5.git 恒爱血压测试前,检查算法是否已激活,若未激活,则不进入测量; 恒爱血压测试前,开启心率测试来检测佩戴状态,若未佩戴,则不进入测量; 跌倒显示界面适配466_466分辨率; 插拔充电器提示界面优化 --- diff --git a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_sensor_interface.c b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_sensor_interface.c index 34afdcef..ccdfd301 100644 --- a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_sensor_interface.c +++ b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_sensor_interface.c @@ -91,7 +91,7 @@ void asl_pedometer_steps_save(bool to_nv) Hal_Rtc_Gettime(&date); memcpy(&(s_pedometer_data.date), &date, sizeof(hal_rtc_t)); - printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, s_pedometer_data.step, steps, s_sensor_last_steps); + //printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, s_pedometer_data.step, steps, s_sensor_last_steps); s_pedometer_data.step += steps - s_sensor_last_steps; s_sensor_last_steps = steps; diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c index d2a5c821..f12aadd6 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c @@ -1009,6 +1009,7 @@ const void * lang_text_ch[] = { "体验时间", // WATCH_TEXT_ID_EXPERIENCE_TIME, "终止", // WATCH_TEXT_ID_EXPERIENCE_STOP, "确定终止体验?", // WATCH_TEXT_ID_EXPERIENCE_STOP_Q, + "算法初始化,请稍后", // WATCH_TEXT_ID_BLOOD_PRESSURE_INIT, //CHENG_MODIFY "确认是否跌倒?", // WATCH_TEXT_ID_falldown, diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c index ef8df9b4..35bc04bc 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c @@ -1010,6 +1010,7 @@ const void * lang_text_en[] = { "Time", // WATCH_TEXT_ID_EXPERIENCE_TIME, "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, //CHENG_MODIFY "Confirm a fall", diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h index 2dcbb0a2..67a306b9 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h @@ -1017,6 +1017,7 @@ enum WATCH_TEXT_ID_EXPERIENCE_TIME, /* "体验时间" "Time" */ 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" */ //CHENG_MODIFY WATCH_TEXT_ID_FALLDWON, /*确认是否跌倒*/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c index e2d4fdc3..532494bf 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c @@ -505,6 +505,17 @@ static lv_obj_t * mmi_hengai_bp_measure_line_create(lv_obj_t * par) #endif +static bool mmi_hengai_bp_measure_check_algorithm(void) +{ + if(0 == mmi_hengai_health_lib_activated_flag_get()) + { + mmi_hengai_tcp_algorithm_login_msg_send(); + return false; + } + + return true; +} + bool mmi_hengai_bp_measuring_flag_get(void) { return (s_hengai_bp_measuring); @@ -1061,6 +1072,87 @@ void mmi_hengai_bp_measure_cycle_timeout(void * para) s_hengai_bp_measure_count++; +#ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS + if(MMI_HR_MEASURE_CHECK_COUNT > s_hengai_bp_measure_count) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + if(false == mmi_health_measure_wear_state_get()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_hsensor_close(); + mmi_hengai_bp_measuring_flag_set(false); + + lv_heng_ai_bp_measure_ext_t * watch_ext = (lv_heng_ai_bp_measure_ext_t *)mmi_heng_ai_bp_measure_screen_ext_get(); + if(NULL == watch_ext) + return; + + if(NULL != watch_ext->measure_timer_id) + { + Hal_Timer_Stop(watch_ext->measure_timer_id); + watch_ext->measure_timer_id = NULL; + } + + lv_obj_clean(watch_ext->cont); + + lv_obj_t * img = lv_img_create(watch_ext->cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label, false); + } + + return ; + } + else if(MMI_HR_MEASURE_CHECK_COUNT == s_hengai_bp_measure_count) + { + mmi_hsensor_close(); + + lv_heng_ai_bp_measure_ext_t * watch_ext = (lv_heng_ai_bp_measure_ext_t *)mmi_heng_ai_bp_measure_screen_ext_get(); + if(NULL == watch_ext) + return; + + if(false == mmi_health_measure_wear_state_get()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_hengai_bp_measuring_flag_set(false); + + if(NULL != watch_ext->measure_timer_id) + { + Hal_Timer_Stop(watch_ext->measure_timer_id); + watch_ext->measure_timer_id = NULL; + } + + lv_obj_clean(watch_ext->cont); + + lv_obj_t * img = lv_img_create(watch_ext->cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label, false); + } + else + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_hsensor_blood_open(); + mmi_hengai_bp_measure_action_time_string_set(1); + } + + return; + } +#endif + + if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action { mmi_hengai_bp_measure_finish_screen(); @@ -1133,9 +1225,47 @@ void mmi_hengai_bp_measure_start_btn_event_cb(lv_obj_t * obj, lv_event_t e) lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); lv_obj_set_click(label_1, false); } + else if(false == mmi_hengai_bp_measure_check_algorithm()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_obj_t * img = lv_img_create(cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label_1 = lv_label_create(cont, NULL); + lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label_1, WATCH_TEXT_ID_BLOOD_PRESSURE_INIT); + lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label_1, false); + } else { HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + #ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS + mmi_health_measure_factory_mode_clean(); + mmi_hsensor_heart_open(); + mmi_hengai_bp_measuring_flag_set(true); + s_hengai_bp_measure_count = 0; + + #ifdef __BP_MEASURING_REAL_TIME_UI__ + mmi_hengai_bp_measure_ui_data_init(); + + lv_obj_t * line = mmi_hengai_bp_measure_line_create(cont); + watch_ext->line = line; + + lv_obj_t * label_prompt = lv_label_create(cont, NULL); + lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_IN_MEASURE_PROMPT); + lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, -10); + lv_obj_set_click(label_prompt, false); + watch_ext->label_prompt = label_prompt; + #endif + + #else + mmi_health_measure_factory_mode_clean(); mmi_hsensor_blood_open(); mmi_hengai_bp_measure_action_time_string_set(1); @@ -1196,6 +1326,7 @@ void mmi_hengai_bp_measure_start_btn_event_cb(lv_obj_t * obj, lv_event_t e) lv_label_set_text_id(label, WATCH_TEXT_ID_IN_MEASURE_PROMPT); lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 324 + 30); lv_obj_set_click(label, false); + #endif #endif /* start timer (1 min) */ @@ -1963,6 +2094,87 @@ void mmi_hengai_bp_calibrate_cycle_timeout(void * para) #endif s_hengai_bp_measure_count++; + +#ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS + if(MMI_HR_MEASURE_CHECK_COUNT > s_hengai_bp_measure_count) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + if(false == mmi_health_measure_wear_state_get()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_hsensor_close(); + mmi_hengai_bp_measuring_flag_set(false); + + lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get(); + if(NULL == watch_ext) + return; + + if(NULL != watch_ext->measure_timer_id) + { + Hal_Timer_Stop(watch_ext->measure_timer_id); + watch_ext->measure_timer_id = NULL; + } + + lv_obj_clean(watch_ext->cont); + + lv_obj_t * img = lv_img_create(watch_ext->cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label, false); + } + + return ; + } + else if(MMI_HR_MEASURE_CHECK_COUNT == s_hengai_bp_measure_count) + { + mmi_hsensor_close(); + + lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get(); + if(NULL == watch_ext) + return; + + if(false == mmi_health_measure_wear_state_get()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_hengai_bp_measuring_flag_set(false); + + if(NULL != watch_ext->measure_timer_id) + { + Hal_Timer_Stop(watch_ext->measure_timer_id); + watch_ext->measure_timer_id = NULL; + } + + lv_obj_clean(watch_ext->cont); + + lv_obj_t * img = lv_img_create(watch_ext->cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label, false); + } + else + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + mmi_hsensor_blood_open(); + mmi_hengai_bp_measure_action_time_string_set(1); + } + + return; + } +#endif + if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action { @@ -2011,9 +2223,47 @@ void mmi_heng_ai_bp_calibrate_start_screen(void) lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); lv_obj_set_click(label_1, false); } + else if(false == mmi_hengai_bp_measure_check_algorithm()) + { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_obj_t * img = lv_img_create(watch_ext->cont, NULL); + lv_img_set_src(img, ICON_HENGAI_BP_ALERT); + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90); + + lv_obj_t * label_1 = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_text_id(label_1, WATCH_TEXT_ID_BLOOD_PRESSURE_INIT); + lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); + lv_obj_set_click(label_1, false); + } else { HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + #ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS + mmi_health_measure_factory_mode_clean(); + mmi_hsensor_heart_open(); + mmi_hengai_bp_measuring_flag_set(true); + s_hengai_bp_measure_count = 0; + + #ifdef __BP_MEASURING_REAL_TIME_UI__ + mmi_hengai_bp_measure_ui_data_init(); + + lv_obj_t * line = mmi_hengai_bp_measure_line_create(watch_ext->cont); + watch_ext->line = line; + + lv_obj_t * label_prompt = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font36); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label_prompt, (label_prompt, (0 == s_hengai_bp_calibrate_times) ? WATCH_TEXT_ID_IN_CALIBRATE_PROMPT_FIRST : WATCH_TEXT_ID_IN_CALIBRATE_PROMPT_SECOND)); + lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, -10); + lv_obj_set_click(label_prompt, false); + watch_ext->label_prompt = label_prompt; + #endif + + #else + mmi_health_measure_factory_mode_clean(); mmi_hsensor_blood_open(); mmi_hengai_bp_measure_action_time_string_set(1); @@ -2022,8 +2272,6 @@ void mmi_heng_ai_bp_calibrate_start_screen(void) #ifdef __BP_MEASURING_REAL_TIME_UI__ mmi_hengai_bp_measure_ui_data_init(); - - mmi_hengai_bp_measure_ui_data_init(); lv_obj_t * line = mmi_hengai_bp_measure_line_create(watch_ext->cont); watch_ext->line = line; @@ -2065,6 +2313,7 @@ void mmi_heng_ai_bp_calibrate_start_screen(void) lv_label_set_text_id(label, WATCH_TEXT_ID_NEED_ONE_MINUTE); lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 348); lv_obj_set_click(label, false); + #endif #endif /* start timer (1 min) */ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h index 54f0cd87..f19cade5 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h @@ -30,9 +30,20 @@ char * __hengai_data_send_end_time(void); #endif +// Before measuring blood pressure, +// measure heart rate a few seconds +// to get wear status +#define USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS + + #define MMI_HENGAI_BP_TAB_COUNT (3) +#ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS +#define MMI_HR_MEASURE_CHECK_COUNT (12) +#define MMI_BP_MEASURE_TOTAL_COUNT (50 + MMI_HR_MEASURE_CHECK_COUNT) // times +#else #define MMI_BP_MEASURE_TOTAL_COUNT (50) // times +#endif #define MMI_BP_WAIT_RESULT_TIMEOUT (1000 * 15) // (1000 * 10) // ms diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/sos/sos.c b/2.sdk/sdk/gui/lv_watch/lv_apps/sos/sos.c index a92871c4..069a1b18 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/sos/sos.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/sos/sos.c @@ -108,6 +108,9 @@ static void mmi_sos_sms_send_action(char * number) printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); return ; } + + if(0 == mmi_sos_sms_switch_get()) + return ; char * sms_number = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN); _lv_memset_00(sms_number, NV_CONTACTS_MAX_NUMBER_LEN); diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c index 3af7269f..b96f9852 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c @@ -470,28 +470,49 @@ lv_obj_t * mmi_watch_falldwon_create(lv_obj_t * activity_obj) //lv_obj_add_protect(cont, LV_PROTECT_PRESS_LOST); lv_obj_t * label = lv_label_create(cont, NULL); - lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20); lv_label_set_text_id(label, WATCH_TEXT_ID_FALLDWON); //lv_lang_get_text(WATCH_TEXT_ID_SERVER_SEARCH_PROMPT) +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, -30); +#else + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20); lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, 0); +#endif lv_obj_t * btn_cancel = lv_btn_create(cont, NULL); +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_set_size(btn_cancel, 140, 70); +#else lv_obj_set_size(btn_cancel, 100, 56); +#endif lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30); +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_align(btn_cancel, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 70, -60); +#else lv_obj_align(btn_cancel, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 10, -20); +#endif lv_obj_set_event_cb(btn_cancel, mmi_falldwon_event_cb); lv_obj_t * label_cancel = lv_label_create(btn_cancel, NULL); lv_label_set_text_id(label_cancel, WATCH_TEXT_ID_CANCEL); +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_add_style(label_cancel, LV_LABEL_PART_MAIN, &lv_watch_font40_black); +#else lv_obj_add_style(label_cancel, LV_LABEL_PART_MAIN, &lv_watch_font26_black); +#endif lv_obj_t * btn_ok = lv_btn_create(cont, btn_cancel); lv_obj_set_style_local_bg_color(btn_ok, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xFF, 0x6F, 0x91)); lv_obj_set_style_local_radius(btn_ok, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); lv_obj_set_style_local_bg_color(btn_ok, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0xFF, 0x6F, 0x91)); lv_obj_set_style_local_radius(btn_ok, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30); +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_align(btn_ok, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -70, -60); +#else lv_obj_align(btn_ok, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -10, -20); +#endif lv_obj_set_event_cb(btn_ok, mmi_falldwon_OK_event_cb); lv_obj_t * label_ok = lv_label_create(btn_ok, label_cancel); lv_label_set_text_id(label_ok, WATCH_TEXT_ID_OK); @@ -517,6 +538,7 @@ void mmi_ui_msg_update_falldwon(void) { if(lv_watch_get_activity_obj(ACT_ID_WATCH_FALLDWON)==NULL) { + lv_watch_go_home(); mmi_watch_falldwon_create(NULL); } } @@ -808,6 +830,11 @@ void mmi_watch_no_sim_power_off_check_mission(void) // charging +#define MMI_CHARGING_LEVEL_1 (25) +#define MMI_CHARGING_LEVEL_2 (50) +#define MMI_CHARGING_LEVEL_3 (75) +#define MMI_CHARGING_LEVEL_4 (100) + static void * s_watch_charge_prompt_timer = NULL; static void mmi_watch_charging_prompt_timer_stop(void) @@ -883,10 +910,61 @@ static lv_obj_t * mmi_watch_charging_prompt_screen_create(lv_obj_t * activity_ob lv_obj_set_click(cont, false); //lv_watch_obj_add_element(cont); +#if 0 lv_obj_t * img = lv_img_create(cont, NULL); lv_img_set_src(img, ((HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) ? ICON_CHARGE_CONNECTED : ICON_CHARGE_REMOVED)); lv_obj_align(img, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); lv_obj_set_click(img, false); +#else + uint8_t bat = Hal_Battery_Get_Status(); + //power_off_charging_check_full(&bat); + + // image 0 + lv_obj_t * img = lv_img_create(cont, NULL); + lv_img_set_src(img, ICON_POWER_OFF_CHARGING_0); + lv_obj_align(img, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img, false); + // image 1 + if(MMI_CHARGING_LEVEL_1 < bat) + { + lv_obj_t * img_battery_1 = lv_img_create(cont, NULL); + lv_img_set_src(img_battery_1, ICON_POWER_OFF_CHARGING_1); + lv_obj_align(img_battery_1, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img_battery_1, false); + } + // image 2 + if(MMI_CHARGING_LEVEL_2 < bat) + { + lv_obj_t * img_battery_2 = lv_img_create(cont, NULL); + lv_img_set_src(img_battery_2, ICON_POWER_OFF_CHARGING_2); + lv_obj_align(img_battery_2, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img_battery_2, false); + } + // image 3 + if(MMI_CHARGING_LEVEL_3 < bat) + { + lv_obj_t * img_battery_3 = lv_img_create(cont, NULL); + lv_img_set_src(img_battery_3, ICON_POWER_OFF_CHARGING_3); + lv_obj_align(img_battery_3, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img_battery_3, false); + } + // image 4 + if(MMI_CHARGING_LEVEL_4 <= bat) + { + lv_obj_t * img_battery_4 = lv_img_create(cont, NULL); + lv_img_set_src(img_battery_4, ICON_POWER_OFF_CHARGING_4); + lv_obj_align(img_battery_4, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img_battery_4, false); + } + // power image + if(HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) + { + lv_obj_t * img_power = lv_img_create(cont, NULL); + lv_img_set_src(img_power, ICON_POWER_OFF_CHARGING_POWER); + lv_obj_align(img_power, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10); + lv_obj_set_click(img_power, false); + } +#endif lv_obj_t * label = lv_label_create(cont, NULL); lv_label_set_text_id(label, ((HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) ? WATCH_TEXT_ID_CHARGE_CONNECTED : WATCH_TEXT_ID_CHARGE_REMOVED));