From: CCC <2393524978@qq.com> Date: Sat, 23 Dec 2023 07:26:34 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=97e2a657beff041c47d7634768018c6e67d4dfdb;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c index 9b35e221..5ce3825f 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c @@ -17,25 +17,39 @@ static mmi_remind_screen_info_t s_remind_info[] = #ifdef __MMI_REMIND_SLEEP_SUPPORT__ { MMI_REMIND_TYPE_SLEEP, WATCH_TEXT_ID_SLEEP_PROMPT, AUDIO_REMIND_SLEEP, NULL}, #endif - //{MMI_REMIND_TYPE_MEDICINE}, - //{MMI_REMIND_TYPE_DRINK_WATER}, +#ifdef __MMI_REMIND_REST_SUPPORT__ + { MMI_REMIND_TYPE_REST_BEGIN, WATCH_TEXT_ID_REST_BEGIN_PROMPT, AUDIO_REMIND_REST_BEGIN, NULL}, + { MMI_REMIND_TYPE_REST_END, WATCH_TEXT_ID_REST_END_PROMPT, AUDIO_REMIND_REST_END, NULL}, +#endif +#ifdef __MMI_REMIND_HOME_SUPPORT__ + { MMI_REMIND_TYPE_HOME, WATCH_TEXT_ID_HOME_PROMPT, AUDIO_REMIND_HOME, NULL}, +#endif +#if defined(__MMI_REMIND_MEDICINE_SUPPORT__) + { MMI_REMIND_TYPE_MEDICINE, WATCH_TEXT_ID_MEDICINE_PROMPT, AUDIO_REMIND_MEDICINE, NULL}, +#endif +#if defined(__MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__) + { MMI_REMIND_TYPE_CUSTOM_MEDICINE, WATCH_TEXT_ID_MEDICINE_PROMPT, AUDIO_REMIND_MEDICINE, NULL}, +#endif +#ifdef __MMI_REMIND_DRINK_SUPPORT__ + {MMI_REMIND_TYPE_DRINK, WATCH_TEXT_ID_DRINK_PROMPT, AUDIO_REMIND_DRINK, NULL}, +#endif #ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ {MMI_REMIND_TYPE_SEDENTARY, WATCH_TEXT_ID_SEDENTARY_PROMPT, AUDIO_REMIND_SEDENTARY, ICON_SEDENTARY_REMIND_IMAGE}, #endif - { MMI_REMIND_TYPE_MAX, 0, NULL}, + { MMI_REMIND_TYPE_MAX, 0, NULL, NULL}, }; #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__ -static nv_watch_remind_wake_up_t s_rimind_wake_up_data = {0}; +static nv_watch_remind_item_t s_remind_wake_up_data = {0}; void mmi_remind_wake_up_nv_write(void) { - uint32_t nv_data_length = sizeof(nv_watch_remind_wake_up_t); + uint32_t nv_data_length = sizeof(nv_watch_remind_item_t); - if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_WAKE_UP_DATA, 0, nv_data_length, (uint8_t *)&s_rimind_wake_up_data)) + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_WAKE_UP_DATA, 0, nv_data_length, (uint8_t *)&s_remind_wake_up_data)) { printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); } @@ -43,21 +57,21 @@ void mmi_remind_wake_up_nv_write(void) void mmi_remind_wake_up_nv_read(void) { - uint32_t nv_data_length = sizeof(nv_watch_remind_wake_up_t); + uint32_t nv_data_length = sizeof(nv_watch_remind_item_t); - if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_WAKE_UP_DATA, 0, nv_data_length, (uint8_t *)&s_rimind_wake_up_data)) + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_WAKE_UP_DATA, 0, nv_data_length, (uint8_t *)&s_remind_wake_up_data)) { printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); - _lv_memset_00(&s_rimind_wake_up_data, sizeof(nv_watch_remind_wake_up_t)); + _lv_memset_00(&s_remind_wake_up_data, sizeof(nv_watch_remind_item_t)); } } -void mmi_remind_wake_up_data_set(nv_watch_remind_wake_up_t * data) +void mmi_remind_wake_up_data_set(nv_watch_remind_item_t * data) { if(NULL != data) { - _lv_memset_00(&s_rimind_wake_up_data, sizeof(nv_watch_remind_wake_up_t)); - _lv_memcpy(&s_rimind_wake_up_data, data, sizeof(nv_watch_remind_wake_up_t)); + _lv_memset_00(&s_remind_wake_up_data, sizeof(nv_watch_remind_item_t)); + _lv_memcpy(&s_remind_wake_up_data, data, sizeof(nv_watch_remind_item_t)); mmi_remind_wake_up_nv_write(); } } @@ -65,17 +79,17 @@ void mmi_remind_wake_up_data_set(nv_watch_remind_wake_up_t * data) bool mmi_remind_wake_up_is_trigger(hal_rtc_t cur_time) { uint8_t i = 0; - for(i = 0; i < NV_REMIND_WAKE_UP_MAX_NUM; i++) + for(i = 0; i < NV_REMIND_ITEM_MAX_NUM; i++) { - if(s_rimind_wake_up_data.remind_info[i].valid && s_rimind_wake_up_data.remind_info[i].on_off) + if(s_remind_wake_up_data.remind_info[i].is_valid) { - if(cur_time.tm_hour == s_rimind_wake_up_data.remind_info[i].hour - && cur_time.tm_min == s_rimind_wake_up_data.remind_info[i].min + if(cur_time.tm_hour == s_remind_wake_up_data.remind_info[i].hour + && cur_time.tm_min == s_remind_wake_up_data.remind_info[i].min ) { - if(0 == (s_rimind_wake_up_data.remind_info[i].repeat_bitmap & 0x80)) // once + if(0 == (s_remind_wake_up_data.remind_info[i].repeat_bitmap & 0x80)) // once { - s_rimind_wake_up_data.remind_info[i].on_off = 0; + s_remind_wake_up_data.remind_info[i].is_valid = 0; mmi_remind_wake_up_nv_write(); printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -83,7 +97,7 @@ bool mmi_remind_wake_up_is_trigger(hal_rtc_t cur_time) } else // repeat { - if((0x01 << (cur_time.tm_wday)) & s_rimind_wake_up_data.remind_info[i].repeat_bitmap) + if((0x01 << (cur_time.tm_wday)) & s_remind_wake_up_data.remind_info[i].repeat_bitmap) { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); return true; @@ -104,31 +118,69 @@ void mmi_remind_wake_up_screen_active(void) #endif #ifdef __MMI_REMIND_SLEEP_SUPPORT__ -static nv_watch_remind_sleep_t s_rimind_sleep_data = {0}; +static nv_watch_remind_item_t s_remind_sleep_data = {0}; void mmi_remind_sleep_nv_write(void) { - + uint32_t nv_data_length = sizeof(nv_watch_remind_item_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_SLEEP_DATA, 0, nv_data_length, (uint8_t *)&s_remind_sleep_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } } void mmi_remind_sleep_nv_read(void) { - + uint32_t nv_data_length = sizeof(nv_watch_remind_item_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_SLEEP_DATA, 0, nv_data_length, (uint8_t *)&s_remind_sleep_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_sleep_data, sizeof(nv_watch_remind_item_t)); + } } -void mmi_remind_sleep_data_set(nv_watch_remind_sleep_t * data) +void mmi_remind_sleep_data_set(nv_watch_remind_item_t * data) { if(NULL != data) { - _lv_memset_00(&s_rimind_sleep_data, sizeof(nv_watch_remind_sleep_t)); - _lv_memcpy(&s_rimind_sleep_data, data, sizeof(nv_watch_remind_sleep_t)); + _lv_memset_00(&s_remind_sleep_data, sizeof(nv_watch_remind_item_t)); + _lv_memcpy(&s_remind_sleep_data, data, sizeof(nv_watch_remind_item_t)); mmi_remind_sleep_nv_write(); } } bool mmi_remind_sleep_is_trigger(hal_rtc_t cur_time) { - + uint8_t i = 0; + for(i = 0; i < NV_REMIND_ITEM_MAX_NUM; i++) + { + if(s_remind_sleep_data.remind_info[i].is_valid) + { + if(cur_time.tm_hour == s_remind_sleep_data.remind_info[i].hour + && cur_time.tm_min == s_remind_sleep_data.remind_info[i].min + ) + { + if(0 == (s_remind_sleep_data.remind_info[i].repeat_bitmap & 0x80)) // once + { + s_remind_sleep_data.remind_info[i].is_valid = 0; + mmi_remind_wake_up_nv_write(); + + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + else // repeat + { + if((0x01 << (cur_time.tm_wday)) & s_remind_sleep_data.remind_info[i].repeat_bitmap) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + } + } return false; } @@ -140,6 +192,373 @@ void mmi_remind_sleep_screen_active(void) } #endif + +#ifdef __MMI_REMIND_REST_SUPPORT__ +static nv_watch_remind_rest_t s_remind_rest_data = {0}; + +void mmi_remind_rest_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_rest_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_REST_DATA, 0, nv_data_length, (uint8_t *)&s_remind_rest_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_remind_rest_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_rest_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_REST_DATA, 0, nv_data_length, (uint8_t *)&s_remind_rest_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_rest_data, sizeof(nv_watch_remind_rest_t)); + } +} + +void mmi_remind_rest_data_set(nv_watch_remind_rest_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_remind_rest_data, sizeof(nv_watch_remind_rest_t)); + _lv_memcpy(&s_remind_rest_data, data, sizeof(nv_watch_remind_rest_t)); + mmi_remind_rest_nv_write(); + } +} + +bool mmi_remind_rest_begin_is_trigger(hal_rtc_t cur_time) +{ + if(s_remind_rest_data.is_valid) + { + uint8_t i = 0; + + for(i = 0; i < NV_REMIND_REST_MAX_NUM; i++) + { + if(cur_time.tm_hour == s_remind_rest_data.remind_info[i].hour_begin + && cur_time.tm_min == s_remind_rest_data.remind_info[i].min_begin + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + + return false; +} + +void mmi_remind_rest_begin_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_REST_BEGIN; + mmi_remind_screen_active(); +} + +bool mmi_remind_rest_end_is_trigger(hal_rtc_t cur_time) +{ + if(s_remind_rest_data.is_valid) + { + uint8_t i = 0; + + for(i = 0; i < NV_REMIND_REST_MAX_NUM; i++) + { + if(cur_time.tm_hour == s_remind_rest_data.remind_info[i].hour_end + && cur_time.tm_min == s_remind_rest_data.remind_info[i].min_end + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + + return false; +} + +void mmi_remind_rest_end_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_REST_END; + mmi_remind_screen_active(); +} +#endif + + +#ifdef __MMI_REMIND_HOME_SUPPORT__ +static nv_watch_remind_home_t s_remind_home_data = {0}; + +void mmi_remind_home_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_home_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_HOME_DATA, 0, nv_data_length, (uint8_t *)&s_remind_home_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_remind_home_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_home_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_HOME_DATA, 0, nv_data_length, (uint8_t *)&s_remind_home_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_home_data, sizeof(nv_watch_remind_home_t)); + } +} + +void mmi_remind_home_data_set(nv_watch_remind_home_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_remind_home_data, sizeof(nv_watch_remind_home_t)); + _lv_memcpy(&s_remind_home_data, data, sizeof(nv_watch_remind_home_t)); + mmi_remind_home_nv_write(); + } +} + +bool mmi_remind_home_is_trigger(hal_rtc_t cur_time) +{ + if(s_remind_home_data.is_valid) + { + if(cur_time.tm_hour == s_remind_home_data.hour + && cur_time.tm_min == s_remind_home_data.min + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + + return false; +} + +void mmi_remind_home_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_HOME; + mmi_remind_screen_active(); +} +#endif + + +#ifdef __MMI_REMIND_MEDICINE_SUPPORT__ +static nv_watch_remind_medicine_t s_remind_medicine_data = {0}; + +void mmi_remind_medicine_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_medicine_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_MEDICINE_DATA, 0, nv_data_length, (uint8_t *)&s_remind_medicine_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_remind_medicine_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_medicine_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_MEDICINE_DATA, 0, nv_data_length, (uint8_t *)&s_remind_medicine_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_medicine_data, sizeof(nv_watch_remind_medicine_t)); + } +} + +void mmi_remind_medicine_data_set(nv_watch_remind_medicine_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_remind_medicine_data, sizeof(nv_watch_remind_medicine_t)); + _lv_memcpy(&s_remind_medicine_data, data, sizeof(nv_watch_remind_medicine_t)); + mmi_remind_medicine_nv_write(); + } +} + +bool mmi_remind_medicine_is_trigger(hal_rtc_t cur_time) +{ + uint8_t i = 0; + for(i = 0; i < NV_REMIND_MEDICINE_MAX_NUM; i++) + { + if(s_remind_medicine_data.remind_info[i].is_valid) + { + if(cur_time.tm_hour == s_remind_medicine_data.remind_info[i].hour + && cur_time.tm_min == s_remind_medicine_data.remind_info[i].min + ) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + + return false; +} + +void mmi_remind_medicine_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_MEDICINE; + mmi_remind_screen_active(); +} +#endif + + +#ifdef __MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__ +static nv_watch_remind_custom_medicine_t s_remind_custom_medicine_data = {0}; + +void mmi_remind_custom_medicine_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_custom_medicine_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_CUSTOM_MEDICINE_DATA, 0, nv_data_length, (uint8_t *)&s_remind_custom_medicine_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_remind_custom_medicine_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_custom_medicine_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_CUSTOM_MEDICINE_DATA, 0, nv_data_length, (uint8_t *)&s_remind_custom_medicine_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_custom_medicine_data, sizeof(nv_watch_remind_custom_medicine_t)); + } +} + +void mmi_remind_custom_medicine_data_set(nv_watch_remind_custom_medicine_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_remind_custom_medicine_data, sizeof(nv_watch_remind_custom_medicine_t)); + _lv_memcpy(&s_remind_custom_medicine_data, data, sizeof(nv_watch_remind_custom_medicine_t)); + mmi_remind_custom_medicine_nv_write(); + } +} + +bool mmi_remind_custom_medicine_is_trigger(hal_rtc_t cur_time) +{ + uint8_t i = 0; + for(i = 0; i < NV_REMIND_CUSTOM_MEDICINE_MAX_NUM; i++) + { + if(s_remind_custom_medicine_data.remind_info[i].is_valid) + { + if(cur_time.tm_hour == s_remind_custom_medicine_data.remind_info[i].hour + && cur_time.tm_min == s_remind_custom_medicine_data.remind_info[i].min + ) + { + if((0x01 << (cur_time.tm_wday)) & s_remind_custom_medicine_data.repeat_bitmap) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + } + + return false; +} + +void mmi_remind_custom_medicine_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_CUSTOM_MEDICINE; + mmi_remind_screen_active(); +} +#endif + + +#ifdef __MMI_REMIND_DRINK_SUPPORT__ +static nv_watch_remind_drink_t s_remind_drink_data = {0}; +static void * s_remind_drink_timer = NULL; + +void mmi_remind_drink_timer_stop(void); +static void mmi_remind_drink_timer_start(void); +static void mmi_remind_drink_trigger(uint32_t para); + +void mmi_remind_drink_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_drink_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_REMIND_DRINK_DATA, 0, nv_data_length, (uint8_t *)&s_remind_drink_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_remind_drink_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_remind_drink_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_REMIND_DRINK_DATA, 0, nv_data_length, (uint8_t *)&s_remind_drink_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_remind_drink_data, sizeof(nv_watch_remind_drink_t)); + } +} + +void mmi_remind_drink_data_set(nv_watch_remind_drink_t * data) +{ + mmi_remind_drink_timer_stop(); + + if(NULL != data) + { + _lv_memset_00(&s_remind_drink_data, sizeof(nv_watch_remind_drink_t)); + _lv_memcpy(&s_remind_drink_data, data, sizeof(nv_watch_remind_drink_t)); + mmi_remind_drink_nv_write(); + + if(s_remind_drink_data.is_valid) + { + mmi_remind_drink_timer_start(); + } + } +} + +void mmi_remind_drink_screen_active(void) +{ + s_remind_type = MMI_REMIND_TYPE_DRINK; + mmi_remind_screen_active(); +} + +void mmi_remind_drink_timer_stop(void) +{ + if(NULL != s_remind_drink_timer) + { + uos_timer_stop(s_remind_drink_timer); + uos_timer_delete(s_remind_drink_timer); + s_remind_drink_timer = NULL; + } +} + +static void mmi_remind_drink_timer_start(void) +{ + mmi_remind_drink_timer_stop(); + + if(0 == s_remind_drink_data.is_valid) + { + return ; + } + + uint32_t time_second = s_remind_drink_data.hour_value * 3600; + + uos_timer_create(&s_remind_drink_timer); + uos_timer_start(s_remind_drink_timer, MS_TO_TICKS(time_second * 1000), 0, mmi_remind_drink_trigger, NULL); +} + +static void mmi_remind_drink_trigger(uint32_t para) +{ + mmi_remind_drink_screen_active(); + mmi_remind_drink_timer_start(); +} + +void mmi_remind_drink_mission_power_on_check(void) +{ + mmi_remind_drink_nv_read(); + mmi_remind_drink_timer_start(); +} +#endif + + #ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ void mmi_remind_sedentary_screen_content(lv_obj_t * cont) @@ -266,25 +685,30 @@ static lv_obj_t * mmi_remind_screen_create(lv_obj_t * activity_obj) //lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); lv_obj_set_click(cont, false); -#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ - mmi_remind_sedentary_screen_content(cont); -#else - hal_rtc_t cur_time; - char time_str[8] = {0}; - - Hal_Rtc_Gettime(&cur_time); - sprintf(time_str, "%02d:%02d", cur_time.tm_hour, cur_time.tm_min); - - lv_obj_t * label_time = lv_label_create(cont, NULL); - lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26); - lv_label_set_text(label_time, time_str); - lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER); - lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50); - - lv_obj_t * label_prompt = lv_label_create(cont, label_time); - lv_label_set_text_id(label_prompt, s_remind_info[s_remind_index].remind_txt_id); - lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); -#endif + if(MMI_REMIND_TYPE_SEDENTARY == s_remind_type) + { + #ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ + mmi_remind_sedentary_screen_content(cont); + #endif + } + else + { + hal_rtc_t cur_time; + char time_str[8] = {0}; + + Hal_Rtc_Gettime(&cur_time); + sprintf(time_str, "%02d:%02d", cur_time.tm_hour, cur_time.tm_min); + + lv_obj_t * label_time = lv_label_create(cont, NULL); + lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26); + lv_label_set_text(label_time, time_str); + lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50); + + lv_obj_t * label_prompt = lv_label_create(cont, label_time); + lv_label_set_text_id(label_prompt, s_remind_info[s_remind_index].remind_txt_id); + lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + } lv_obj_t * btn = lv_btn_create(cont, NULL); lv_obj_set_size(btn, 100, 56); @@ -331,14 +755,31 @@ void mmi_ui_msg_update_remind(void) if(AUDIO_CTRL_PRIORITY_REMIND == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_REMIND, mmi_remind_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 + #ifdef __MMI_CUSTOM_HENG_AI__ if(0 == mmi_heng_ai_wake_ring_type_get()) - Hal_NFFS_File_Play_Repeat(ring_path, query_current_volume()); + { + Hal_NFFS_File_Play_Repeat(ring_path, volume); + } else - Hal_Vibrator_Play_Repeat(); + { + if(true == mmi_watch_vibrate_is_permitted()) + { + Hal_Vibrator_Play_Repeat(); + } + } #else - Hal_NFFS_File_Play_Repeat(ring_path, query_current_volume()); - Hal_Vibrator_Play_Repeat(); + Hal_NFFS_File_Play_Repeat(ring_path, volume); + if(true == mmi_watch_vibrate_is_permitted()) + { + Hal_Vibrator_Play_Repeat(); + } #endif mmi_remind_screen_create(NULL); @@ -399,6 +840,40 @@ void mmi_remind_mission_check(hal_rtc_t cur_time) return ; } #endif +#ifdef __MMI_REMIND_REST_SUPPORT__ + if(mmi_remind_rest_begin_is_trigger(cur_time)) + { + mmi_remind_rest_begin_screen_active(); + return ; + } + + if(mmi_remind_rest_end_is_trigger(cur_time)) + { + mmi_remind_rest_end_screen_active(); + return ; + } +#endif +#ifdef __MMI_REMIND_HOME_SUPPORT__ + if(mmi_remind_home_is_trigger(cur_time)) + { + mmi_remind_home_screen_active(); + return ; + } +#endif +#ifdef __MMI_REMIND_MEDICINE_SUPPORT__ + if(mmi_remind_medicine_is_trigger(cur_time)) + { + mmi_remind_medicine_screen_active(); + return ; + } +#endif +#ifdef __MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__ + if(mmi_remind_custom_medicine_is_trigger(cur_time)) + { + mmi_remind_custom_medicine_screen_active(); + return ; + } +#endif } @@ -411,6 +886,18 @@ void mmi_remind_data_init(void) #ifdef __MMI_REMIND_SLEEP_SUPPORT__ mmi_remind_sleep_nv_read(); #endif +#ifdef __MMI_REMIND_REST_SUPPORT__ + mmi_remind_rest_nv_read(); +#endif +#ifdef __MMI_REMIND_HOME_SUPPORT__ + mmi_remind_home_nv_read(); +#endif +#ifdef __MMI_REMIND_MEDICINE_SUPPORT__ + mmi_remind_medicine_nv_read(); +#endif +#ifdef __MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__ + mmi_remind_custom_medicine_nv_read(); +#endif } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h index 75e0712d..dd21b828 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h @@ -30,8 +30,12 @@ typedef enum { MMI_REMIND_TYPE_WAKE_UP, MMI_REMIND_TYPE_SLEEP, + MMI_REMIND_TYPE_REST_BEGIN, + MMI_REMIND_TYPE_REST_END, + MMI_REMIND_TYPE_HOME, MMI_REMIND_TYPE_MEDICINE, - MMI_REMIND_TYPE_DRINK_WATER, + MMI_REMIND_TYPE_CUSTOM_MEDICINE, + MMI_REMIND_TYPE_DRINK, MMI_REMIND_TYPE_SEDENTARY, MMI_REMIND_TYPE_MAX @@ -55,12 +59,27 @@ typedef struct #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__ -void mmi_remind_wake_up_data_set(nv_watch_remind_wake_up_t * data); +void mmi_remind_wake_up_data_set(nv_watch_remind_item_t * data); void mmi_remind_wake_up_screen_active(void); #endif #ifdef __MMI_REMIND_SLEEP_SUPPORT__ -void mmi_remind_sleep_data_set(nv_watch_remind_sleep_t * data); -void mmi_remind_sleep_screen_active(void); +void mmi_remind_sleep_data_set(nv_watch_remind_item_t * data); +#endif +#ifdef __MMI_REMIND_REST_SUPPORT__ +void mmi_remind_rest_data_set(nv_watch_remind_rest_t * data); +#endif +#ifdef __MMI_REMIND_HOME_SUPPORT__ +void mmi_remind_home_data_set(nv_watch_remind_home_t * data); +#endif +#ifdef __MMI_REMIND_MEDICINE_SUPPORT__ +void mmi_remind_medicine_data_set(nv_watch_remind_medicine_t * data); +#endif +#ifdef __MMI_REMIND_CUSTOM_MEDICINE_SUPPORT__ +void mmi_remind_custom_medicine_data_set(nv_watch_remind_custom_medicine_t * data); +#endif +#ifdef __MMI_REMIND_DRINK_SUPPORT__ +void mmi_remind_drink_data_set(nv_watch_remind_drink_t * data); +void mmi_remind_drink_mission_power_on_check(void); #endif bool mmi_remind_screen_is_active(void); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c index ce6bef20..671ac9e2 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c @@ -45,6 +45,9 @@ static mmi_watch_list_item_t settingList[] = #if USE_LV_WATCH_SETTING_DATETIME != 0 //{ ICON_SETTING_DATETIME, WATCH_TEXT_ID_DATE_AND_TIME, setting_date_time_create_btn_action}, #endif +#ifdef __MMI_USER_PROFILE_SUPPORT__ + { ICON_SETTING_USER_PROFILE_MODE, WATCH_TEXT_ID_USER_PROFILE_MODE, mmi_user_profile_create_event_cb }, +#endif #ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__ { ICON_SETTING_PAGE_MAIN_MENU_TTS, WATCH_TEXT_ID_PAGE_MAIN_MENU_TTS, setting_page_main_menu_tts_create_event_cb }, #endif @@ -152,7 +155,9 @@ static mmi_watch_list_item_t settingList[] = #ifdef __MMI_ZHSX_SUPPORT__ void mmi_watch_setting_data_nv_default(nv_watch_settings_t * setting) { +#ifndef __MMI_USER_PROFILE_SUPPORT__ setting->ringvolume = MMI_PHONE_RING_VOLUME_DEFAULT; +#endif setting->backlightintensity = MMI_PHONE_BACKLIGHT_LEVEL_DEFAULT; setting->backlighttimeout = MMI_PHONE_BACKLIGHT_TIMEOUT_DEFAULT; setting->currentlanguage = MMI_PHONE_LANGUAGE_DEFAULT; @@ -172,7 +177,9 @@ void setting_init(void) // call sub module init functions setting_brightness_init(nvsettings); +#ifndef __MMI_USER_PROFILE_SUPPORT__ setting_volume_init(nvsettings); +#endif lv_lang_set(nvsettings->currentlanguage); #if USE_LV_WATCH_LANG_ARABIC != 0 if(nvsettings->currentlanguage == LANG_AR) { diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.c b/2.sdk/sdk/gui/lv_watch/lv_watch.c index adca89c4..8f6451e8 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.c @@ -86,9 +86,6 @@ static bool watch_ambient = false; #ifdef __MMI_ZHSX_SUPPORT__ static void mmi_data_init_before_watch_create(void) { -#ifdef __MMI_WECHAT_SUPPORT__ - mmi_wechat_msg_info_init(); -#endif mmi_sos_number_nv_read(); mmi_center_number_nv_read(); #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ @@ -98,6 +95,9 @@ static void mmi_data_init_before_watch_create(void) #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ mmi_watch_do_not_disturb_nv_read(); #endif +#ifdef __MMI_USER_PROFILE_SUPPORT__ + mmi_watch_user_profile_nv_read(); +#endif @@ -108,6 +108,9 @@ static void mmi_data_init_after_watch_create(void) // timing mission app_adaptor_timing_control_init(); +#ifdef __MMI_WECHAT_SUPPORT__ + mmi_wechat_msg_info_init(); +#endif #ifdef __MMI_ZHSX_SUPPORT_ALIPAY__ mmi_watch_alipay_info_init(); #endif @@ -127,6 +130,9 @@ static void mmi_data_init_after_watch_create(void) #ifdef __MMI_CUSTOM_HENG_AI__ mmi_hengai_sleep_activation_nv_read(); #endif +#ifdef __MMI_REMIND_DRINK_SUPPORT__ + mmi_remind_drink_mission_power_on_check(); +#endif #ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ mmi_sedentary_remind_mission_power_on_check(); #endif @@ -465,7 +471,13 @@ static void main_task(lv_task_t * task) AudioHAL_SetResBufCnt(20); #ifndef __MMI_POWER_ON_OFF_NO_RING__ - Hal_NFFS_File_Play_Onetime(AUDIO_POWER_ON, (HAL_SPEAKER_GAIN)query_current_volume(), poweron_play_callback, 0); + 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(AUDIO_POWER_ON, (HAL_SPEAKER_GAIN)volume, poweron_play_callback, 0); #endif } diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h index 18daf769..552c95e3 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -985,6 +985,7 @@ LV_IMG_DECLARE(img_poweron_logo); #endif #ifdef __MMI_USER_PROFILE_SUPPORT__ +#define ICON_SETTING_USER_PROFILE_MODE "R:/png/setting/ICON_SETTING_USER_PROFILE_MODE.png" #define ICON_USER_PROFILE_STATUS "R:/png/mmi_user_profile/ICON_USER_PROFILE_STATUS.png" #define ICON_USER_PROFILE_RING_ONLY_DEFAULT "R:/png/mmi_user_profile/ICON_USER_PROFILE_RING_ONLY_DEFAULT.png" #define ICON_USER_PROFILE_RING_ONLY_SELECTED "R:/png/mmi_user_profile/ICON_USER_PROFILE_RING_ONLY_SELECTED.png"