#endif //SMS_MSG_TEST\r
\r
\r
+#ifdef __MMI_ZHSX_SUPPORT__\r
void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info)\r
{\r
if(sms_info == NULL)\r
return;\r
- printf("yzmin --> %s, time = %s\n", __FUNCTION__,sms_info->time);\r
- printf("yzmin ----> data_len = %d, data = %s\n",sms_info->data_len,sms_info->data);\r
-\r
- //for(uint8_t i = 0; i < strlen(sms_info->data); i++)\r
- //{\r
- // printf("[@CHENG_DEBUG][%s][%d]: %d,%d\n", __FUNCTION__, __LINE__, i, sms_info->data[i]);\r
- //}\r
+ \r
+ printf("[@CHENG_DEBUG][%s][%d]: number=%s\n", __FUNCTION__, __LINE__, sms_info->number);\r
+ printf("[@CHENG_DEBUG][%d]: time=%s,data_len=%d\n", __LINE__, sms_info->time, sms_info->data_len);\r
\r
#ifdef __MMI_ZHSX_SUPPORT_SMS__\r
if(true == mmi_protocol_sms_content_parse(sms_info->data, sms_info->number))\r
return;\r
}\r
#endif\r
+ \r
+ nv_watch_phonebook_t * nv_contact_list = phonebook_read_nvm();\r
+ if(NULL == nv_contact_list) \r
+ return;\r
+\r
+ //read nvm\r
+ nv_watch_sms_msg_t * nvm_sms_list = sms_msg_read_nvm();\r
+ if(nvm_sms_list)\r
+ {\r
+ for(uint8_t i = 0; i < NV_WATCH_MAX_SMS_MSG_NUM; i++) {\r
+ if('\0' == nvm_sms_list->info[i].number[0]) {\r
+ break;\r
+ }\r
+ printf("befor yzmin--> number = %s\n",nvm_sms_list->info[i].number);\r
+ }\r
+ \r
+ for(uint8_t k = NV_WATCH_MAX_SMS_MSG_NUM - 1; k > 0; k-- ) {\r
+ nvm_sms_list->info[k] = nvm_sms_list->info[k-1]; \r
+ }\r
+ //add new msg\r
+ uint32_t sms_length = sizeof(sms_msg_t);\r
+ sms_msg_t sms = {0};\r
+ for(uint8_t i = 0; i < NV_WATCH_MAX_CONTACT_NUM; i++) {\r
+ if('\0' == nv_contact_list->info[i].number[0])\r
+ break;\r
+ if(memcmp(sms_info->number,nv_contact_list->info[i].number,sms_info->number_len) == 0)\r
+ {\r
+ memcpy(&sms.name, nv_contact_list->info[i].name, strlen(nv_contact_list->info[i].name));\r
+ }\r
+ }\r
+ sms.isnew = true;\r
+ smsmsg_copy_info(&sms, sms_info);\r
+ memcpy(&nvm_sms_list->info[0], &sms, sms_length);\r
+\r
+ //save nvm\r
+ sms_msg_write_nvm(nvm_sms_list);\r
+ lv_mem_free(nvm_sms_list);\r
+\r
+ #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__\r
+ if(false == mmi_watch_is_in_do_not_disturb_time())\r
+ {\r
+ Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, query_current_volume(), NULL, 0);\r
+ Hal_Vibrator_Play_Onetime(NULL, 1000);\r
+ if(0 == Hal_Pm_Get_State())\r
+ {\r
+ printf("sms_msg_list_update -----> onkey_wakeup\n");\r
+ extern void onkey_wakeup(void) __attribute__((weak));\r
+ if (onkey_wakeup != NULL)\r
+ {\r
+ onkey_wakeup();\r
+ }\r
+ }\r
+ else\r
+ {\r
+ printf("sms_msg_list_update -----> watch_set_lcd_status\n");\r
+ watch_set_lcd_status(true);\r
+ watch_wakeup_time_reset();\r
+ }\r
+\r
+ //notify ui \r
+ app_adaptor_recv_sms_notsify_update_ui();\r
+ }\r
+ #endif\r
+ }\r
+\r
+#if SMS_MSG_TEST != 0\r
+ nv_watch_sms_msg_t * list = sms_msg_read_nvm();\r
+ if(list){\r
+ for(uint8_t i = 0; i < NV_WATCH_MAX_SMS_MSG_NUM; i++) {\r
+ if('\0' == list->info[i].number[0]) {\r
+ break;\r
+ }\r
+ printf("%s yzmin --> name = %s\n",__FUNCTION__,list->info[i].number);\r
+ }\r
+ }\r
+#endif \r
+}\r
+#else\r
+void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info)\r
+{\r
+ if(sms_info == NULL)\r
+ return;\r
+ printf("yzmin --> %s, time = %s\n", __FUNCTION__,sms_info->time);\r
+ printf("yzmin ----> data_len = %d, data = %s\n",sms_info->data_len,sms_info->data);\r
+\r
+ //for(uint8_t i = 0; i < strlen(sms_info->data); i++)\r
+ //{\r
+ // printf("[@CHENG_DEBUG][%s][%d]: %d,%d\n", __FUNCTION__, __LINE__, i, sms_info->data[i]);\r
+ //}\r
+\r
+//#ifdef __MMI_ZHSX_SUPPORT_SMS__\r
+// if(true == mmi_protocol_sms_content_parse(sms_info->data, sms_info->number))\r
+// {\r
+// printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);\r
+// return;\r
+// }\r
+//#endif\r
\r
Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, query_current_volume(), NULL, 0);\r
Hal_Vibrator_Play_Onetime(NULL, 1000);\r
#endif \r
\r
}\r
+#endif\r
\r
static void char2time(struct tm *time_tm, char* str, uint16_t length)\r
{\r
{
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 ;
}
{
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 ;
}
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)
{
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);
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