#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)
{
_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;
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;
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;
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)
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)
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())
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