From: CCC <2393524978@qq.com> Date: Wed, 16 Aug 2023 06:58:53 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=cb54acc1e5a63e546a65a7cd6cb07717b36a6076;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c index 3e524b84..a6b10c13 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c @@ -16,7 +16,12 @@ /********************* * DEFINES *********************/ +#ifdef __MMI_ZHSX_SUPPORT_PAGE_MAIN_MENU__ +#define PRIMARY_MENU_APP_NUM_PRE_TAB (1) +#else #define PRIMARY_MENU_APP_NUM_PRE_TAB (4) +#endif + /********************** * TYPEDEFS **********************/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c b/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c index cf76062b..8d999e07 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c @@ -279,17 +279,14 @@ static void sms_msg_write_nvm_for_test(void) #endif //SMS_MSG_TEST +#ifdef __MMI_ZHSX_SUPPORT__ void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info) { if(sms_info == NULL) return; - printf("yzmin --> %s, time = %s\n", __FUNCTION__,sms_info->time); - printf("yzmin ----> data_len = %d, data = %s\n",sms_info->data_len,sms_info->data); - - //for(uint8_t i = 0; i < strlen(sms_info->data); i++) - //{ - // printf("[@CHENG_DEBUG][%s][%d]: %d,%d\n", __FUNCTION__, __LINE__, i, sms_info->data[i]); - //} + + printf("[@CHENG_DEBUG][%s][%d]: number=%s\n", __FUNCTION__, __LINE__, sms_info->number); + printf("[@CHENG_DEBUG][%d]: time=%s,data_len=%d\n", __LINE__, sms_info->time, sms_info->data_len); #ifdef __MMI_ZHSX_SUPPORT_SMS__ if(true == mmi_protocol_sms_content_parse(sms_info->data, sms_info->number)) @@ -298,6 +295,103 @@ void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info) return; } #endif + + nv_watch_phonebook_t * nv_contact_list = phonebook_read_nvm(); + if(NULL == nv_contact_list) + return; + + //read nvm + nv_watch_sms_msg_t * nvm_sms_list = sms_msg_read_nvm(); + if(nvm_sms_list) + { + for(uint8_t i = 0; i < NV_WATCH_MAX_SMS_MSG_NUM; i++) { + if('\0' == nvm_sms_list->info[i].number[0]) { + break; + } + printf("befor yzmin--> number = %s\n",nvm_sms_list->info[i].number); + } + + for(uint8_t k = NV_WATCH_MAX_SMS_MSG_NUM - 1; k > 0; k-- ) { + nvm_sms_list->info[k] = nvm_sms_list->info[k-1]; + } + //add new msg + uint32_t sms_length = sizeof(sms_msg_t); + sms_msg_t sms = {0}; + for(uint8_t i = 0; i < NV_WATCH_MAX_CONTACT_NUM; i++) { + if('\0' == nv_contact_list->info[i].number[0]) + break; + if(memcmp(sms_info->number,nv_contact_list->info[i].number,sms_info->number_len) == 0) + { + memcpy(&sms.name, nv_contact_list->info[i].name, strlen(nv_contact_list->info[i].name)); + } + } + sms.isnew = true; + smsmsg_copy_info(&sms, sms_info); + memcpy(&nvm_sms_list->info[0], &sms, sms_length); + + //save nvm + sms_msg_write_nvm(nvm_sms_list); + lv_mem_free(nvm_sms_list); + + #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ + if(false == mmi_watch_is_in_do_not_disturb_time()) + { + Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, query_current_volume(), NULL, 0); + Hal_Vibrator_Play_Onetime(NULL, 1000); + if(0 == Hal_Pm_Get_State()) + { + printf("sms_msg_list_update -----> onkey_wakeup\n"); + extern void onkey_wakeup(void) __attribute__((weak)); + if (onkey_wakeup != NULL) + { + onkey_wakeup(); + } + } + else + { + printf("sms_msg_list_update -----> watch_set_lcd_status\n"); + watch_set_lcd_status(true); + watch_wakeup_time_reset(); + } + + //notify ui + app_adaptor_recv_sms_notsify_update_ui(); + } + #endif + } + +#if SMS_MSG_TEST != 0 + nv_watch_sms_msg_t * list = sms_msg_read_nvm(); + if(list){ + for(uint8_t i = 0; i < NV_WATCH_MAX_SMS_MSG_NUM; i++) { + if('\0' == list->info[i].number[0]) { + break; + } + printf("%s yzmin --> name = %s\n",__FUNCTION__,list->info[i].number); + } + } +#endif +} +#else +void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info) +{ + if(sms_info == NULL) + return; + printf("yzmin --> %s, time = %s\n", __FUNCTION__,sms_info->time); + printf("yzmin ----> data_len = %d, data = %s\n",sms_info->data_len,sms_info->data); + + //for(uint8_t i = 0; i < strlen(sms_info->data); i++) + //{ + // printf("[@CHENG_DEBUG][%s][%d]: %d,%d\n", __FUNCTION__, __LINE__, i, sms_info->data[i]); + //} + +//#ifdef __MMI_ZHSX_SUPPORT_SMS__ +// if(true == mmi_protocol_sms_content_parse(sms_info->data, sms_info->number)) +// { +// printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); +// return; +// } +//#endif Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, query_current_volume(), NULL, 0); Hal_Vibrator_Play_Onetime(NULL, 1000); @@ -370,6 +464,7 @@ void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info) #endif } +#endif static void char2time(struct tm *time_tm, char* str, uint16_t length) { 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 f93cae44..9a872fe0 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 @@ -12,6 +12,8 @@ #ifdef __MMI_ZHSX_SUPPORT__ +#define MMI_SOS_LOOP_MAX (3) + static uint8_t s_sos_state = SOS_OFF; static nv_watch_sos_number_t s_sos_number = {0}; static uint8_t s_sos_dial_index = 0; @@ -90,9 +92,9 @@ static void sos_do_dailing_next(void) bool is_continue = false; s_sos_dial_index++; - while(s_sos_dial_index < NV_WATCH_SOS_NUMBER_MAX) + while(s_sos_dial_index < NV_WATCH_SOS_NUMBER_MAX * MMI_SOS_LOOP_MAX) { - if(0 != strlen(s_sos_number.number[s_sos_dial_index])) + if(0 != strlen(s_sos_number.number[s_sos_dial_index % NV_WATCH_SOS_NUMBER_MAX])) { is_continue = true; break; @@ -106,7 +108,7 @@ static void sos_do_dailing_next(void) char * number = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN); if(NULL != number) { - _lv_memcpy(number, s_sos_number.number[s_sos_dial_index], NV_CONTACTS_MAX_NUMBER_LEN); + _lv_memcpy(number, s_sos_number.number[s_sos_dial_index % NV_WATCH_SOS_NUMBER_MAX], NV_CONTACTS_MAX_NUMBER_LEN); phone_voice_call_req(number); } } 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 1030ff8a..ca7f142c 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 @@ -240,7 +240,11 @@ void mmi_watch_searching_aciton(void) { SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - if(true == mmi_active_screen_is_prohibit_interrupted()) + if(true == mmi_active_screen_is_prohibit_interrupted() + #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ + || true == mmi_watch_is_in_do_not_disturb_time() + #endif + ) { return ; } @@ -311,7 +315,11 @@ void mmi_center_number_dialing_action(void) { SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - if(true == mmi_active_screen_is_prohibit_interrupted()) + if(true == mmi_active_screen_is_prohibit_interrupted() + #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ + || true == mmi_watch_is_in_do_not_disturb_time() + #endif + ) { return ; } @@ -544,7 +552,7 @@ static void mmi_watch_charging_prompt_cb(void *para) mmi_watch_charging_prompt_screen_prepare_destory(NULL); } -static lv_obj_t * mmi_watch_charging_prompt_screen(lv_obj_t * activity_obj, uint32_t chg_status) +static lv_obj_t * mmi_watch_charging_prompt_screen_create(lv_obj_t * activity_obj, uint32_t chg_status) { if(activity_obj == NULL) { @@ -568,9 +576,16 @@ static lv_obj_t * mmi_watch_charging_prompt_screen(lv_obj_t * activity_obj, uint lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE); +#if 0 + lv_obj_t * mbox = lv_msgbox_create(obj, NULL); + lv_msgbox_set_text(mbox, (char *)lv_lang_get_text((HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) ? WATCH_TEXT_ID_CHARGE_CONNECTED : WATCH_TEXT_ID_CHARGE_REMOVED)); + lv_obj_align(mbox, obj, LV_ALIGN_CENTER, 0, 0); + lv_msgbox_set_anim_time(mbox, 0); + lv_msgbox_start_auto_close(mbox, 2000); +#else lv_obj_t * cont = lv_cont_create(obj, NULL); lv_obj_set_size(cont, 180, 180); // (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_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); //lv_obj_set_style_local_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30); lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_click(cont, false); @@ -588,24 +603,199 @@ static lv_obj_t * mmi_watch_charging_prompt_screen(lv_obj_t * activity_obj, uint lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); mmi_watch_charging_prompt_timer_stop(); - s_watch_charge_prompt_timer = Hal_Timer_Start(2 * 1000, mmi_watch_charging_prompt_cb, NULL, false); + s_watch_charge_prompt_timer = Hal_Timer_Start(1500, mmi_watch_charging_prompt_cb, NULL, false); +#endif return obj; } void mmi_ui_msg_update_charging_prompt(uint32_t chg_status) { -#if 0 SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, chg_status); if(HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status || HAL_CHG_DISCONNECTED == (HAL_CHG_STATUS)chg_status) { - mmi_watch_charging_prompt_screen(NULL, chg_status); + mmi_watch_charging_prompt_screen_prepare_destory(NULL); + mmi_watch_charging_prompt_screen_create(NULL, chg_status); } -#endif } +#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ + +static nv_watch_do_not_disturb_t s_do_not_disturb_data = {0}; + +void mmi_watch_do_not_disturb_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_do_not_disturb_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_DO_NOT_DISTURB, 0, nv_data_length, (uint8_t *)&s_do_not_disturb_data)) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_watch_do_not_disturb_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_do_not_disturb_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_DO_NOT_DISTURB, 0, nv_data_length, (uint8_t *)&s_do_not_disturb_data)) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_do_not_disturb_data, sizeof(nv_watch_do_not_disturb_t)); + } +} + +void mmi_watch_do_not_disturb_data_set(nv_watch_do_not_disturb_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_do_not_disturb_data, sizeof(nv_watch_do_not_disturb_t)); + _lv_memcpy(&s_do_not_disturb_data, data, sizeof(nv_watch_do_not_disturb_t)); + mmi_watch_do_not_disturb_nv_write(); + } +} + +bool mmi_watch_is_in_do_not_disturb_time(void) +{ + hal_rtc_t cur_time = {0}; + uint16_t t_cur_mins = 0; + uint8_t i = 0; + + Hal_Rtc_Gettime(&cur_time); + t_cur_mins = cur_time.tm_hour * 60 + cur_time.tm_min; + + for(i = 0; i < NV_WATCH_DO_NOT_DISTURB_ITEM_MAX; i++) + { + if(s_do_not_disturb_data.item_info[i].on_off) + { + if((0x01 << (cur_time.tm_wday)) & s_do_not_disturb_data.item_info[i].week_bitmap) + { + uint16_t t_begin_mins = s_do_not_disturb_data.item_info[i].begin_hour * 60 + s_do_not_disturb_data.item_info[i].begin_min; + uint16_t t_end_mins = s_do_not_disturb_data.item_info[i].end_hour * 60 + s_do_not_disturb_data.item_info[i].end_min; + + if(t_cur_mins >= t_begin_mins && t_cur_mins <= t_end_mins) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return true; + } + } + } + } + + return false; +} + +static void mmi_watch_do_not_disturb_screen_prepare_destory(lv_obj_t * activity_obj) +{ + lv_watch_png_cache_all_free(); + //lv_obj_t * act_obj = lv_watch_get_activity_obj(ACT_ID_DO_NOT_DISTURB); + //if(act_obj) + //{ + // lv_obj_del(act_obj); + //} +} + +static lv_obj_t * mmi_watch_do_not_disturb_screen_create(lv_obj_t * activity_obj) +{ + if(NULL == activity_obj) + { + lv_watch_activity_ext_t activity_ext; + memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_DO_NOT_DISTURB; + activity_ext.create = NULL; + activity_ext.prepare_destory = mmi_watch_do_not_disturb_screen_prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + if(activity_obj == NULL) + { + return(NULL); + } + } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + LV_ASSERT_MEM(obj); + if(obj == NULL) + return NULL; + + lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO); + + lv_obj_t * cont = lv_cont_create(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_style_local_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(cont, false); + //lv_watch_obj_add_element(cont); + + hal_rtc_t cur_time = {0}; + char t_time_str[16] = {0}; + + lv_obj_t * label_time = lv_label_create(cont, NULL); + Hal_Rtc_Gettime(&cur_time); + sprintf(t_time_str, "%02d:%02d", cur_time.tm_hour, cur_time.tm_min); + 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); + lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50); + + 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); + lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); + + uint8_t i = 0; + uint8_t t_height = lv_obj_get_height(label_prompt); + + for(i = 0; i < NV_WATCH_DO_NOT_DISTURB_ITEM_MAX; i++) + { + if(s_do_not_disturb_data.item_info[i].on_off) + { + lv_obj_t * label = lv_label_create(cont, NULL); + memset(t_time_str, 0x0, sizeof(t_time_str)); + sprintf(t_time_str, "%02d:%02d--%02d:%02d", + s_do_not_disturb_data.item_info[i].begin_hour, + s_do_not_disturb_data.item_info[i].begin_min, + s_do_not_disturb_data.item_info[i].end_hour, + s_do_not_disturb_data.item_info[i].end_min); + 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); + lv_obj_align(label, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 10 + (t_height + 10) * i); + } + } + + return obj; +} + +void mmi_ui_msg_update_do_not_disturb(uint8_t flag) +{ + if(flag) + mmi_watch_do_not_disturb_screen_create(NULL); + else + mmi_watch_do_not_disturb_screen_prepare_destory(NULL); +} + +void mmi_watch_do_not_disturb_screen_check(void) +{ + 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()) + { + if(NULL == activity_obj) + { + mmi_ui_msg_action_do_not_disturb(1); + } + } + else + { + if(NULL != activity_obj) + { + mmi_ui_msg_action_do_not_disturb(0); + } + } +} +#endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h index 64cee93e..5e1ac350 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h @@ -66,6 +66,13 @@ void mmi_watch_no_sim_power_off_check_mission(void); void mmi_ui_msg_update_charging_prompt(uint32_t chg_status); +#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ +void mmi_watch_do_not_disturb_nv_read(void); +void mmi_watch_do_not_disturb_data_set(nv_watch_do_not_disturb_t * data); +bool mmi_watch_is_in_do_not_disturb_time(void); +void mmi_ui_msg_update_do_not_disturb(uint8_t flag); +void mmi_watch_do_not_disturb_screen_check(void); +#endif #ifdef __cplusplus