From: CCC <2393524978@qq.com> Date: Tue, 10 Oct 2023 09:46:39 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=37186ad7e1eaf511d834c21dcdff863871eb073e;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.h b/2.sdk/sdk/gui/lv_watch/lv_watch.h index 373e1217..1add4497 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.h @@ -183,6 +183,7 @@ extern "C" { #include "lv_apps/health_measure/health_heart_rate.h" #include "lv_apps/health_measure/health_spo2.h" #include "lv_apps/health_measure/health_temperature.h" +#include "lv_apps/tool/tool.h" #endif 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 f1f7545d..678dd9a3 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 @@ -645,13 +645,11 @@ void mmi_ui_msg_update_charging_prompt(uint32_t chg_status) #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ -//#define DO_NOT_DISTURB_TIME_Y () -//#define DO_NOT_DISTURB_PROMPT_Y () -//#define DO_NOT_DISTURB_TIME_Y () - +//#define DEBUG_DO_NOT_DISTURB static nv_watch_do_not_disturb_t s_do_not_disturb_data = {0}; -static uint8_t s_do_not_disturb_last_min = 0; +static lv_task_t * s_do_not_disturb_check_task = NULL; +static int8_t s_do_not_disturb_last_min = -1; void mmi_watch_do_not_disturb_nv_write(void) { @@ -673,7 +671,7 @@ void mmi_watch_do_not_disturb_nv_read(void) _lv_memset_00(&s_do_not_disturb_data, sizeof(nv_watch_do_not_disturb_t)); } -#if 0 +#ifdef DEBUG_DO_NOT_DISTURB s_do_not_disturb_data.item_info[0].on_off = 1; s_do_not_disturb_data.item_info[0].begin_hour = 1; s_do_not_disturb_data.item_info[0].begin_min = 0; @@ -713,10 +711,12 @@ bool mmi_watch_is_in_do_not_disturb_time(void) uint16_t t_cur_mins = 0; uint8_t i = 0; +#ifndef DEBUG_DO_NOT_DISTURB if(false == watch_modem_sim_present_check_req()) { return false; } +#endif Hal_Rtc_Gettime(&cur_time); t_cur_mins = cur_time.tm_hour * 60 + cur_time.tm_min; @@ -770,13 +770,21 @@ static void mmi_watch_do_not_disturb_screen_display(lv_obj_t * cont) lv_label_set_text(label_time, t_time_str); lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font40); lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER); + #ifdef USE_LV_WATCH_UI_240_240_CIRCLE + lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 30); + #else lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50); + #endif lv_obj_t * label_prompt = lv_label_create(cont, NULL); lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_FORBIDDEN_PERIOD); lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font26); lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + #ifdef USE_LV_WATCH_UI_240_240_CIRCLE + lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); + #else lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + #endif uint8_t i = 0; uint8_t j = 0; @@ -796,13 +804,17 @@ static void mmi_watch_do_not_disturb_screen_display(lv_obj_t * cont) lv_label_set_text(label, t_time_str); lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + #ifdef USE_LV_WATCH_UI_240_240_CIRCLE + lv_obj_align(label, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 3 + (t_height + 3) * j); + #else lv_obj_align(label, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 5 + (t_height + 5) * j); + #endif j++; } } } -static void mmi_watch_do_not_disturb_task_cb(lv_task_t * task) +static void mmi_watch_do_not_disturb_screen_refresh(void) { lv_do_not_disturb_ext_t * ext = (lv_do_not_disturb_ext_t * )mmi_watch_do_not_disturb_ext_get(); if(NULL == ext) @@ -817,13 +829,6 @@ static void mmi_watch_do_not_disturb_screen_prepare_destory(lv_obj_t * activity_ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); lv_watch_png_cache_all_free(); - - lv_do_not_disturb_ext_t * ext = (lv_do_not_disturb_ext_t * )mmi_watch_do_not_disturb_ext_get(); - if(NULL != ext->refresh_task) - { - lv_task_del(ext->refresh_task); - ext->refresh_task = NULL; - } } static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj) @@ -864,41 +869,49 @@ static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj ext->cont = cont; mmi_watch_do_not_disturb_screen_display(cont); - ext->refresh_task = lv_task_create(mmi_watch_do_not_disturb_task_cb, 2000, LV_TASK_PRIO_HIGH, NULL); return obj; } void mmi_ui_msg_update_do_not_disturb(uint8_t flag) { - if(flag) + switch(flag) { - mmi_watch_do_not_disturb_screen_create(NULL); - } - else - { - mmi_watch_do_not_disturb_screen_prepare_destory(NULL); - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); - if(activity_obj) - { - lv_obj_del(activity_obj); - } + case 0: + mmi_watch_do_not_disturb_screen_prepare_destory(NULL); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); + if(activity_obj) + { + lv_obj_del(activity_obj); + } + break; + + case 1: + mmi_watch_do_not_disturb_screen_create(NULL); + break; + + case 2: + mmi_watch_do_not_disturb_screen_refresh(); + break; + + default: + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: should not run to here\n", __FUNCTION__, __LINE__); + break; } } -void mmi_watch_do_not_disturb_screen_check(int32_t tm_min) +void mmi_watch_do_not_disturb_check_task_cb(lv_task_t * task) { - if(tm_min == s_do_not_disturb_last_min) + hal_rtc_t cur_time = {0}; + + Hal_Rtc_Gettime(&cur_time); + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec); + if(cur_time.tm_min == s_do_not_disturb_last_min) { return; } - - if(0 == Hal_Pm_Get_State()) - { - return; - } - s_do_not_disturb_last_min = tm_min; + s_do_not_disturb_last_min = cur_time.tm_min; lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); if(true == mmi_watch_is_in_do_not_disturb_time()) @@ -906,21 +919,126 @@ void mmi_watch_do_not_disturb_screen_check(int32_t tm_min) SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, activity_obj); if(NULL == activity_obj) { + // create mmi_ui_msg_action_do_not_disturb(1); } + else + { + // update + mmi_ui_msg_action_do_not_disturb(2); + } } else { SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, activity_obj); if(NULL != activity_obj) { + // destroy mmi_ui_msg_action_do_not_disturb(0); } } } + +void mmi_watch_do_not_disturb_mission_check(void) +{ + s_do_not_disturb_check_task = lv_task_create(mmi_watch_do_not_disturb_check_task_cb, 1000 * 5, LV_TASK_PRIO_MID, NULL); +} #endif +#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__ + +static nv_watch_switch_t s_sim_unbind_switch = {0}; + +void mmi_watch_sim_unbind_switch_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_switch_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_SIM_UNBIND_SWITCH, 0, nv_data_length, (uint8_t *)&s_sim_unbind_switch)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_watch_sim_unbind_switch_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_switch_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_SIM_UNBIND_SWITCH, 0, nv_data_length, (uint8_t *)&s_sim_unbind_switch)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_watch_sim_unbind_switch_nv_default(nv_watch_switch_t * data) +{ + data->switch_flag = MMI_SIM_UNBIND_SWITCH_DEFAULT; +} + +// 0-close; 1-open +uint8_t mmi_watch_sim_unbind_switch_get(void) +{ + return (s_sim_unbind_switch.switch_flag); +} + +void mmi_watch_sim_unbind_switch_set(uint8_t value) +{ + if(0 == value || 1 == value) + { + s_sim_unbind_switch.switch_flag = value; + mmi_watch_sim_unbind_switch_nv_write(); + } +} + +bool mmi_watch_sim_unbind_info_compare(void) +{ + bool result = false; + nv_watch_sim_iccid_t old_iccid = {0}; + char new_iccid_data[NV_WATCH_SIM_ICCID_DATA_LEN + 1] = {0}; + + char * p_iccid = app_adaptor_get_iccid_info_req(); + strncpy(new_iccid_data, p_iccid, NV_WATCH_SIM_ICCID_DATA_LEN); + lv_mem_free(p_iccid); + + uint32_t nv_data_length = sizeof(nv_watch_sim_iccid_t); + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_SIM_ICCID_DATA, 0, nv_data_length, (uint8_t *)&old_iccid)) + { + _lv_memset_00(&old_iccid, nv_data_length); + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + } + + if(0 == strlen(old_iccid.data)) + { + strncpy(old_iccid.data, new_iccid_data, NV_WATCH_SIM_ICCID_DATA_LEN); + UI_NV_Write_Req(NV_SECTION_UI_SIM_ICCID_DATA, 0, nv_data_length, (uint8_t *)&old_iccid); + + return false; + } + else if(0 == strncmp(old_iccid.data, new_iccid_data, NV_WATCH_SIM_ICCID_DATA_LEN)) + { + return false; + } + else + { + strncpy(old_iccid.data, new_iccid_data, NV_WATCH_SIM_ICCID_DATA_LEN); + UI_NV_Write_Req(NV_SECTION_UI_SIM_ICCID_DATA, 0, nv_data_length, (uint8_t *)&old_iccid); + + return true; + } +} + +void mmi_watch_sim_unbind_check(void) +{ + if(true == mmi_watch_sim_unbind_info_compare()) + { + if(1 == mmi_watch_sim_unbind_switch_get()) + { + mmi_watch_factory_aciton(); + } + } +} +#endif + #endif