//ui size
#define USE_LV_WATCH_UI_240_240 1
-#define USE_LV_WATCH_UI_240_240_CIRCLE 1
+#define USE_LV_WATCH_UI_CIRCLE 1
+
-// mmi
-#define MMI_PROJECT_Z5_DS_Z12XW_QCB 1
// drv
#define DRV_PROJECT_Z5_DS_Z12XW_QCB 1
-
-
#endif
#define __MMI_ZHSX_SUPPORT_SMS__
+// project mmi
+#define MMI_PROJECT_Z5_DS_Z12XW_QCB
+#define MMI_PROJECT_Z5_DS_Z12_COMMON
+
+
#if 0 != USE_LV_WATCH_ALIPAY
#define __MMI_ZHSX_SUPPORT_ALIPAY__
#endif
#define __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
#define __MMI_ZHSX_SUPPORT_PHONEBOOK_LIST_STYLE__
-//#define __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
#define __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
#define __MMI_KEY_BACK_RUN_PHONEBOOK_WHEN_IN_DIAL__
-//#define __MMI_SEDENTARY_REMIND_SUPPORT__
+#define __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+#define __MMI_SEDENTARY_REMIND_SUPPORT__
+
-//#define __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
#endif
//ui size
#define USE_LV_WATCH_UI_240_240 1
-#define USE_LV_WATCH_UI_240_240_CIRCLE 1
+#define USE_LV_WATCH_UI_CIRCLE 1
+
-// mmi
-#define MMI_PROJECT_Z5_Z12 1
// drv
#define DRV_PROJECT_Z5_Z12 1
-
-
#endif
#endif
#ifdef USE_OEM_ZFB
-#define USE_LV_WATCH_ALIPAY 0 // 1
+#define USE_LV_WATCH_ALIPAY 1
#else
#define USE_LV_WATCH_ALIPAY 0
#endif
#define __MMI_ZHSX_SUPPORT_SMS__
+// project mmi
+#define MMI_PROJECT_Z5_DS_Z12
+#define MMI_PROJECT_Z5_DS_Z12_COMMON
+
+
#if 0 != USE_LV_WATCH_ALIPAY
#define __MMI_ZHSX_SUPPORT_ALIPAY__
#endif
//#define __MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__
#define __MMI_WECHAT_SUPPORT__
+#define __MMI_WECHAT_RECEIVE_AUDIO_USE_MP3__
#define __MMI_MAIN_MENU_SWITCH_MENU__
#define __MMI_MAIN_MENU_ONE_PAGE_STYLE__
lv_apps/health_measure/health_heart_rate.c
lv_apps/health_measure/health_spo2.c
lv_apps/health_measure/health_temperature.c
- lv_apps/setting/setting_main_menu_switch.c
lv_apps/tool/tool.c
lv_apps/mmi_remind/mmi_remind.c
lv_apps/custom_function/custom_function.c
#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
#define NV_SECTION_UI_SLEEP_TIME_DATA_LEN (sizeof(nv_watch_sleep_time_t))
#endif
-#define NV_SECTION_UI_DIAL_PAD_SWITCH_LEN (sizeof(nv_watch_switch_t))
-#define NV_SECTION_UI_WHITE_LIST_SWITCH_LEN (sizeof(nv_watch_switch_t))
#define NV_SECTION_UI_MAIN_MENU_STYLE_LEN (sizeof(nv_watch_main_menu_style_t))
+#define NV_SECTION_UI_WATCH_SETTINGS_LEN (sizeof(nv_watch_setting_ext_t))
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
#define NV_SECTION_UI_SIM_UNBIND_SWITCH_LEN (sizeof(nv_watch_switch_t))
#define NV_SECTION_UI_SIM_ICCID_DATA_LEN (sizeof(nv_watch_sim_iccid_t))
#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
#define NV_SECTION_UI_SLEEP_TIME_DATA_FILE "ui_sleep_time_data.nv"
#endif
-#define NV_SECTION_UI_DIAL_PAD_SWITCH_FILE "ui_dial_pad_switch.nv"
-#define NV_SECTION_UI_WHITE_LIST_SWITCH_FILE "ui_white_list_switch.nv"
#define NV_SECTION_UI_MAIN_MENU_STYLE_FILE "ui_main_menu_style.nv"
+#define NV_SECTION_UI_WATCH_SETTINGS_FILE "ui_watch_settings.nv"
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
#define NV_SECTION_UI_SIM_UNBIND_SWITCH_FILE "ui_sim_unbind_switch.nv"
#define NV_SECTION_UI_SIM_ICCID_DATA_FILE "ui_sim_iccid_data.nv"
case NV_SECTION_UI_SLEEP_TIME_DATA:
return (NV_SECTION_LEN(NV_SECTION_UI_SLEEP_TIME_DATA));
#endif
- case NV_SECTION_UI_DIAL_PAD_SWITCH:
- return (NV_SECTION_LEN(NV_SECTION_UI_DIAL_PAD_SWITCH));
- case NV_SECTION_UI_WHITE_LIST_SWITCH:
- return (NV_SECTION_LEN(NV_SECTION_UI_WHITE_LIST_SWITCH));
case NV_SECTION_UI_MAIN_MENU_STYLE:
return (NV_SECTION_LEN(NV_SECTION_UI_MAIN_MENU_STYLE));
+ case NV_SECTION_UI_WATCH_SETTINGS:
+ return (NV_SECTION_LEN(NV_SECTION_UI_WATCH_SETTINGS));
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
case NV_SECTION_UI_SIM_UNBIND_SWITCH:
return (NV_SECTION_LEN(NV_SECTION_UI_SIM_UNBIND_SWITCH));
case NV_SECTION_UI_SLEEP_TIME_DATA:
return (NV_SECTION_FILE_PATH(NV_SECTION_UI_SLEEP_TIME_DATA));
#endif
- case NV_SECTION_UI_DIAL_PAD_SWITCH:
- return (NV_SECTION_FILE_PATH(NV_SECTION_UI_DIAL_PAD_SWITCH));
- case NV_SECTION_UI_WHITE_LIST_SWITCH:
- return (NV_SECTION_FILE_PATH(NV_SECTION_UI_WHITE_LIST_SWITCH));
case NV_SECTION_UI_MAIN_MENU_STYLE:
return (NV_SECTION_FILE_PATH(NV_SECTION_UI_MAIN_MENU_STYLE));
+ case NV_SECTION_UI_WATCH_SETTINGS:
+ return (NV_SECTION_FILE_PATH(NV_SECTION_UI_WATCH_SETTINGS));
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
case NV_SECTION_UI_SIM_UNBIND_SWITCH:
return (NV_SECTION_FILE_PATH(NV_SECTION_UI_SIM_UNBIND_SWITCH));
#endif
nv_watch_switch_t * mmi_switch_data;
nv_watch_main_menu_style_t * main_menu_style;
+ nv_watch_setting_ext_t * watch_settings;
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
nv_watch_sim_iccid_t * sim_iccid_data;
#endif
TempData = (char *)sleep_time_data;
break;
#endif
-
- case NV_SECTION_UI_DIAL_PAD_SWITCH:
- mmi_switch_data = lv_mem_alloc(SectionLen);
- memset(mmi_switch_data, 0x0, SectionLen);
- mmi_dial_pad_switch_nv_default(mmi_switch_data);
- TempData = (char *)mmi_switch_data;
- break;
-
- case NV_SECTION_UI_WHITE_LIST_SWITCH:
- mmi_switch_data = lv_mem_alloc(SectionLen);
- memset(mmi_switch_data, 0x0, SectionLen);
- mmi_white_list_switch_nv_default(mmi_switch_data);
- TempData = (char *)mmi_switch_data;
- break;
case NV_SECTION_UI_MAIN_MENU_STYLE:
main_menu_style = lv_mem_alloc(SectionLen);
mmi_main_menu_style_nv_default(main_menu_style);
TempData = (char *)main_menu_style;
break;
+
+ case NV_SECTION_UI_WATCH_SETTINGS:
+ watch_settings = lv_mem_alloc(SectionLen);
+ memset(watch_settings, 0x0, SectionLen);
+ mmi_watch_setting_ext_data_nv_default(watch_settings);
+ TempData = (char *)watch_settings;
+ break;
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
case NV_SECTION_UI_SIM_UNBIND_SWITCH:
} __packed nv_watch_main_menu_style_t;
+typedef struct
+{
+ //uint8_t incoming_call_volume;
+ //uint8_t new_msg_volume;
+ //uint8_t media_volume;
+ //uint8_t power_on_off_volume;
+ uint8_t white_list_switch;
+ uint8_t dial_pad_switch;
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+ uint8_t page_main_menu_tts;
+#endif
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+ uint8_t sedentary_switch;
+ uint16_t sedentary_minute;
+#endif
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+ uint8_t new_sms_silent_switch;
+#endif
+
+} __packed nv_watch_setting_ext_t;
+
+
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
#define NV_WATCH_SIM_ICCID_DATA_LEN (20)
#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
NV_SECTION_UI_SLEEP_TIME_DATA, // nv_watch_sleep_time_t
#endif
- NV_SECTION_UI_DIAL_PAD_SWITCH, // nv_watch_switch_t
- NV_SECTION_UI_WHITE_LIST_SWITCH, // nv_watch_switch_t
NV_SECTION_UI_MAIN_MENU_STYLE, // nv_watch_main_menu_style_t
+ NV_SECTION_UI_WATCH_SETTINGS, // nv_watch_setting_ext_t
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
NV_SECTION_UI_SIM_UNBIND_SWITCH, // nv_watch_switch_t
NV_SECTION_UI_SIM_ICCID_DATA, // nv_watch_sim_iccid_t
#ifdef __MMI_ZHSX_SUPPORT__
+#ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+
+const void * status[] = {
+ (void *)ICON_CALL_LOG_OUTGOING_CALL,
+ (void *)ICON_CALL_LOG_INCOMING_CALL,
+ (void *)ICON_CALL_LOG_MISSED_CALL,
+ (void *)ICON_CALL_LOG_INCOMING_CALL,
+};
+
+static nv_watch_call_log_t * call_log_read_nvm(void)
+{
+ uint32_t length = sizeof(nv_watch_call_log_t);
+ nv_watch_call_log_t * data = (nv_watch_call_log_t *)lv_mem_alloc(length);
+ memset(data, 0, length);
+ if(length != UI_NV_Read_Req(NV_SECTION_UI_CALL_LOG, 0, length, (uint8_t *)data)) {
+ printf("%s: Occur error when reading call log information from NVM\n", __FUNCTION__);
+ lv_mem_free(data);
+ return NULL;
+ }
+ return data;
+}
+
+static void call_log_write_nvm(nv_watch_call_log_t * data)
+{
+ if(NULL == data) return;
+
+ uint32_t length = sizeof(nv_watch_call_log_t);
+ if(length != UI_NV_Write_Req(NV_SECTION_UI_CALL_LOG, 0, length, (uint8_t *)data)) {
+ printf("%s: Occur error when writing call log information to NVM\n", __FUNCTION__);
+ return;
+ }
+ lv_mem_free(data);
+}
+
+static uint8_t call_log_get_log_num(nv_watch_call_log_t * data)
+{
+ uint8_t i = 0;
+ for(i = 0; i < NV_WATCH_MAX_CALL_LOG_NUM; i++) {
+ if('\0' == data->info[i].number[0]) {
+ break;
+ }
+ }
+ return i;
+}
+
+static lv_call_log_obj_ext_t * call_log_get_ext(void)
+{
+ lv_obj_t * tab = mmi_phonebook_calllog_tab_calllog_get();
+ if(NULL == tab)
+ return NULL;
+
+ lv_call_log_obj_ext_t * ext = lv_obj_get_ext_attr(tab);
+
+ return ext;
+}
+
+void call_log_update_call_log_info(call_status_t call_status, char * number, hal_rtc_t *time)
+{
+ // read from nvm first
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ // move call log list
+ memmove(&nvm_call_log_list->info[1], &nvm_call_log_list->info[0], (NV_WATCH_MAX_CALL_LOG_NUM - 1) * sizeof(nv_watch_call_log_info_t));
+ // update call log info
+ memset(&nvm_call_log_list->info[0], 0, sizeof(nv_watch_call_log_info_t));
+ nvm_call_log_list->info[0].call_status = call_status;
+ nvm_call_log_list->info[0].month = time->tm_mon;
+ nvm_call_log_list->info[0].day = time->tm_mday;
+ nvm_call_log_list->info[0].hour = time->tm_hour;
+ nvm_call_log_list->info[0].min = time->tm_min;
+ memcpy(nvm_call_log_list->info[0].number, number, strlen(number));
+ // write to nvm after updating
+ call_log_write_nvm(nvm_call_log_list);
+}
+
+static void call_log_update_call_log_ll(uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ uint8_t i = 0;
+ call_log_number_info_t * node = NULL;
+ nv_watch_call_log_info_t * info = NULL;
+
+ for(i = 0; i < call_log_num; i++) {
+ info = &call_log_list->info[i];
+ node = (call_log_number_info_t *)_lv_ll_ins_tail(ext->phone_number_list);
+ node->index = i;
+ node->phone_number = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN);
+ memset(node->phone_number, 0, NV_CONTACTS_MAX_NUMBER_LEN);
+ memcpy(node->phone_number, info->number, NV_CONTACTS_MAX_NUMBER_LEN);
+ }
+}
+
+static lv_obj_t * call_log_no_log_info_create(lv_obj_t * obj)
+{
+ lv_obj_t * label = lv_label_create(obj, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); //&lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label, false);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_NO_CALL_LOG_INFO);
+ lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10);
+
+ return label;
+}
+
+static lv_obj_t * call_log_list_create(lv_obj_t * obj)
+{
+ lv_obj_t * title = lv_label_create(obj, NULL);
+ lv_obj_add_style(title, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title, false);
+ lv_label_set_text_id(title, WATCH_TEXT_ID_CALL_LOG);
+ lv_obj_align(title, obj, LV_ALIGN_IN_TOP_MID, 0, 10 + 10);
+
+ lv_obj_t * list = lv_list_create(obj, NULL);
+ lv_page_set_edge_flash(list, true);
+ lv_obj_add_style(list, LV_LIST_PART_EDGE_FLASH, &lv_watch_cont_opa1);
+ lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp);
+ lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+ lv_obj_set_size(list, LV_HOR_RES - 40, LV_VER_RES - lv_obj_get_height(title) - 10 - 20);
+#else
+ lv_obj_set_size(list, LV_HOR_RES, LV_VER_RES - lv_obj_get_height(title)); // - LV_VER_RES / 10);
+#endif
+ lv_obj_align(list, title, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); // 0);
+ lv_watch_obj_add_element(list);
+
+ return list;
+}
+
+static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ uint8_t index = lv_obj_get_user_data(btn).user_num;
+
+ call_log_number_info_t * node = NULL;
+ node = _lv_ll_get_head(ext->phone_number_list);
+ while(node)
+ {
+ if(index == node->index) {
+ printf("%s: mo start\n", __FUNCTION__);
+ uint8_t length = strlen(node->phone_number);
+ char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
+ memset(number_mo, 0, length + 1);
+ memcpy(number_mo, node->phone_number, length);
+ phone_voice_call_req(number_mo);
+ break;
+ } else {
+ node = _lv_ll_get_next(ext->phone_number_list, node);
+ }
+ }
+}
+
+static void call_log_content_create(lv_obj_t * list, uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
+{
+ uint8_t i = 0;
+ char time_str[10];
+ phonebook_contact_t * contact_info = NULL;
+ char * tmp_num = NULL;
+ nv_watch_call_log_info_t * info = NULL;
+ lv_obj_t * btn[call_log_num];
+ lv_obj_t * label_number;
+ lv_obj_t * img_status;
+ lv_obj_t * label_time;
+ hal_rtc_t curr_time;
+ memset(&curr_time, 0, sizeof(hal_rtc_t));
+ Hal_Rtc_Gettime(&curr_time);
+
+ for(i = 0; i < call_log_num; i++)
+ {
+ btn[i] = lv_list_add_btn(list, NULL, NULL);
+ lv_btn_set_layout(btn[i], LV_LAYOUT_ROW_MID);
+ //lv_obj_set_event_cb(btn[i], call_log_log_btn_event_cb);
+ //lv_watch_set_free_num(btn[i], i);
+
+ info = &call_log_list->info[i];
+ tmp_num = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN);
+ memset(tmp_num, 0, NV_CONTACTS_MAX_NUMBER_LEN);
+ memcpy(tmp_num, info->number, NV_CONTACTS_MAX_NUMBER_LEN);
+ contact_info = phonebook_get_contact_info(tmp_num);
+ tmp_num = NULL;
+
+ lv_obj_t * cont = lv_cont_create(btn[i], NULL);
+ lv_cont_set_layout(cont, LV_LAYOUT_OFF);
+ lv_obj_set_width(cont, lv_obj_get_width(btn[i]));
+ lv_obj_set_height(cont, 70); //lv_obj_get_height(btn[i]));
+ lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp);
+ lv_page_glue_obj(cont, true);
+ lv_watch_obj_add_element(cont);
+ lv_obj_set_click(cont, true);
+ lv_obj_set_event_cb(cont, call_log_log_btn_event_cb);
+ lv_watch_set_free_num(cont, i);
+
+ label_number = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_number, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_label_set_text(label_number, info->number);
+ lv_label_set_long_mode(label_number, LV_LABEL_LONG_SROLL_CIRC);
+ lv_obj_set_width(label_number, lv_obj_get_width(btn[i]) - 40);
+ if(contact_info)
+ {
+ if(contact_info->contact_name)
+ lv_label_set_text(label_number, contact_info->contact_name);
+ lv_mem_free(contact_info);
+ contact_info = NULL;
+ }
+
+ lv_obj_t * cont_status_time = lv_cont_create(cont, NULL);
+ lv_cont_set_layout(cont_status_time, LV_LAYOUT_ROW_MID);
+ lv_cont_set_fit2(cont_status_time, LV_FIT_TIGHT, LV_FIT_TIGHT);
+ lv_obj_add_style(cont_status_time, LV_CONT_PART_MAIN, &lv_style_transp);
+ lv_page_glue_obj(cont_status_time, true);
+ lv_watch_obj_add_element(cont_status_time);
+
+ if(LV_BIDI_DIR_RTL == lv_obj_get_base_dir(btn[i])) {
+ lv_obj_align(label_number, cont, LV_ALIGN_IN_TOP_RIGHT, -20, 5);
+ lv_obj_align(cont_status_time, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -5);
+ } else {
+ lv_obj_align(label_number, cont, LV_ALIGN_IN_TOP_LEFT, 20, 5);
+ lv_obj_align(cont_status_time, cont, LV_ALIGN_IN_BOTTOM_LEFT, 20, -5);
+ }
+
+ img_status = lv_img_create(cont_status_time, NULL);
+ lv_img_set_src(img_status, status[info->call_status]);
+
+ if((curr_time.tm_mon == info->month) && (curr_time.tm_mday == info->day)) {
+ snprintf(time_str, 10, "%02d:%02d", info->hour, info->min);
+ } else {
+ snprintf(time_str, 10, "%02d/%02d", info->month, info->day);
+ }
+ label_time = lv_label_create(cont_status_time, NULL);
+ lv_label_set_text(label_time, time_str);
+ lv_obj_set_base_dir(label_time, LV_BIDI_DIR_LTR);
+
+ lv_watch_obj_add_element(btn[i]);
+ }
+}
+
+static void call_log_ll_init(void)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ if(NULL == ext->phone_number_list) {
+ ext->phone_number_list = (lv_ll_t *)lv_mem_alloc(sizeof(lv_ll_t));
+ memset(ext->phone_number_list, 0, sizeof(lv_ll_t));
+ _lv_ll_init(ext->phone_number_list, sizeof(call_log_number_info_t));
+ }
+}
+
+static void call_log_ll_destroy(void)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+ call_log_number_info_t * node = NULL;
+ call_log_number_info_t * next_node = NULL;
+
+ if(ext->phone_number_list) {
+ node = (call_log_number_info_t *)_lv_ll_get_head(ext->phone_number_list);
+ while(node) {
+ //next node
+ next_node = (call_log_number_info_t *)_lv_ll_get_next(ext->phone_number_list, node);
+ if(node->phone_number) {
+ lv_mem_free(node->phone_number);
+ node->phone_number = NULL;
+ }
+ _lv_ll_remove(ext->phone_number_list, node);
+ lv_mem_free(node);
+ node = next_node;
+ }
+ lv_mem_free(ext->phone_number_list);
+ ext->phone_number_list = NULL;
+ }
+}
+
+void call_log_ui_update(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CALL_LOG);
+
+ if(true == mmi_phonebook_calllog_is_calllog_tab())
+ {
+ lv_obj_t * obj = lv_obj_get_child_back(lv_obj_get_child_back(activity_obj, NULL), NULL);
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ if(NULL == nvm_call_log_list)
+ return;
+
+ uint8_t call_log_num = call_log_get_log_num(nvm_call_log_list);
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+ call_log_ll_destroy();
+ call_log_ll_init();
+ call_log_update_call_log_ll(call_log_num, nvm_call_log_list);
+ if(ext->list)
+ {
+ lv_list_clean(ext->list);
+ }
+ else
+ {
+ if(ext->label_tip) {
+ lv_obj_del(ext->label_tip);
+ ext->label_tip = NULL;
+ }
+ ext->list = call_log_list_create(obj);
+ }
+ call_log_content_create(ext->list, call_log_num, nvm_call_log_list);
+ if(nvm_call_log_list) {
+ lv_mem_free(nvm_call_log_list);
+ nvm_call_log_list = NULL;
+ }
+ }
+}
+
+lv_obj_t * mmi_phonebook_calllog_calllog_create(lv_obj_t * tab)
+{
+ if(NULL == tab)
+ return NULL;
+
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ if(NULL == nvm_call_log_list)
+ return NULL;
+
+ lv_call_log_obj_ext_t * ext = lv_obj_allocate_ext_attr(tab, sizeof(lv_call_log_obj_ext_t));
+ LV_ASSERT_MEM(ext);
+ if(NULL == ext)
+ return NULL;
+
+ ext->list = NULL;
+ ext->label_tip = NULL;
+ ext->phone_number_list = NULL;
+
+ uint8_t call_log_num = call_log_get_log_num(nvm_call_log_list);
+ if(0 == call_log_num)
+ {
+ ext->label_tip = call_log_no_log_info_create(tab);
+ }
+ else
+ {
+ ext->list = call_log_list_create(tab);
+ call_log_content_create(ext->list, call_log_num, nvm_call_log_list);
+ call_log_ll_init();
+ call_log_update_call_log_ll(call_log_num, nvm_call_log_list);
+ }
+
+ if(nvm_call_log_list)
+ {
+ lv_mem_free(nvm_call_log_list);
+ nvm_call_log_list = NULL;
+ }
+
+ return tab;
+}
+
+#else
+
const void * status[] = {
(void *)ICON_CALL_LOG_OUTGOING_CALL,
(void *)ICON_CALL_LOG_INCOMING_CALL,
lv_obj_add_style(list, LV_LIST_PART_EDGE_FLASH, &lv_watch_cont_opa1);
lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp);
lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF);
-#ifdef USE_LV_WATCH_UI_240_240_CIRCLE
+#ifdef USE_LV_WATCH_UI_CIRCLE
lv_obj_set_size(list, LV_HOR_RES - 40, LV_VER_RES - lv_obj_get_height(title) - 20);
#else
lv_obj_set_size(list, LV_HOR_RES, LV_VER_RES - lv_obj_get_height(title)); // - LV_VER_RES / 10);
}
}
+#endif
+
#else
/*********************
/**
* Create a call log application
*/
+#ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+extern void call_log_update_call_log_info(call_status_t call_status, char * number, hal_rtc_t *time);
+extern void call_log_ui_update(void);
+lv_obj_t * mmi_phonebook_calllog_calllog_create(lv_obj_t * tab);
+#else
extern void call_log_create_event_cb(lv_obj_t * btn, lv_event_t e);
extern void call_log_update_call_log_info(call_status_t call_status, char * number, hal_rtc_t *time);
extern void call_log_ui_update(void);
+#endif
/**********************
* MACROS
* GLOBAL FUNCTIONS
***********************/
-#ifdef __MMI_ZHSX_SUPPORT__
-
-static nv_watch_switch_t s_dial_pad_switch = {0};
-
-void mmi_dial_pad_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_DIAL_PAD_SWITCH, 0, nv_data_length, (uint8_t *)&s_dial_pad_switch))
- {
- printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
- }
-}
-
-void mmi_dial_pad_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_DIAL_PAD_SWITCH, 0, nv_data_length, (uint8_t *)&s_dial_pad_switch))
- {
- printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
- }
-}
-
-void mmi_dial_pad_switch_nv_default(nv_watch_switch_t * data)
-{
- data->switch_flag = MMI_DIAL_PAD_SWITCH_DEFAULT;
-}
-
-// 0-close; 1-open
-uint8_t mmi_dial_pad_switch_get(void)
-{
- return (s_dial_pad_switch.switch_flag);
-}
-
-void mmi_dial_pad_switch_set(uint8_t value)
-{
- if(0 == value || 1 == value)
- {
- s_dial_pad_switch.switch_flag = value;
- mmi_dial_pad_switch_nv_write();
- }
-}
-#endif
-
lv_obj_t * dialpad_create(lv_obj_t * activity_obj)
{
lv_dialpad_obj_ext_t * ext = NULL;
**********************/
lv_obj_t * dialpad_create(lv_obj_t * activity_obj);
void dialpad_create_event_cb(lv_obj_t * btn, lv_event_t e);
-#ifdef __MMI_ZHSX_SUPPORT__
-void mmi_dial_pad_switch_set(uint8_t value);
-void mmi_dial_pad_switch_nv_read(void);
-void mmi_dial_pad_switch_nv_default(nv_watch_switch_t * data);
-#endif
/**********************
* MACROS
lv_led_off(launcher_ext->leds[0]);
lv_obj_set_size(launcher_ext->leds[0], LAUNCHER_TILEVIEW_LED_OFF_WIDTH, LAUNCHER_TILEVIEW_LED_OFF_WIDTH);
}
+
+ #ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+ uint8_t menu_index = 0;
+
+ if(LAUNCHER_HOR_SLIDING_LOOP_MODE_ENABLE)
+ menu_index = ext->act_id.x - 2;
+ else
+ menu_index = ext->act_id.x - 1;
+
+ printf("[@CHENG_DEBUG][%s][%d]: menu_index=%d\n", __FUNCTION__, __LINE__, menu_index);
+ mmi_page_main_menu_tts_broadcast(menu_index);
+ #endif
+
}
}
#ifdef __MMI_ZHSX_SUPPORT__
static mmi_remind_type_e s_remind_type = MMI_REMIND_TYPE_MAX;
-static uint32_t s_remind_txt_id = 0;
-static char * s_remind_ring_path = NULL;
+static uint8_t s_remind_index = 0;
+
static mmi_remind_screen_info_t s_remind_info[] =
{
#ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
- { MMI_REMIND_TYPE_WAKE_UP, WATCH_TEXT_ID_WAKE_UP_PROMPT, AUDIO_REMIND_WAKE_UP},
+ { MMI_REMIND_TYPE_WAKE_UP, WATCH_TEXT_ID_WAKE_UP_PROMPT, AUDIO_REMIND_WAKE_UP, NULL},
#endif
#ifdef __MMI_REMIND_SLEEP_SUPPORT__
- { MMI_REMIND_TYPE_SLEEP, WATCH_TEXT_ID_SLEEP_PROMPT, AUDIO_REMIND_SLEEP},
+ { 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_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},
}
#endif
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+
+void mmi_remind_sedentary_screen_content(lv_obj_t * cont)
+{
+ lv_obj_t * img = lv_img_create(cont, NULL);
+ lv_img_set_src(img, s_remind_info[s_remind_index].remind_img_path);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
+
+ lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_SROLL_CIRC);
+ lv_obj_set_width(label_prompt, LV_HOR_RES - 10);
+ lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_prompt, s_remind_info[s_remind_index].remind_txt_id);
+ lv_obj_align(label_prompt, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
+}
+
+void mmi_remind_sedentary_screen_active(void)
+{
+ s_remind_type = MMI_REMIND_TYPE_SEDENTARY;
+ mmi_remind_screen_active();
+}
+#endif
+
bool mmi_remind_screen_is_active(void)
{
//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};
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_txt_id);
+ 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
lv_obj_t * btn = lv_btn_create(cont, NULL);
lv_obj_set_size(btn, 100, 56);
lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, lv_color_make(0x47, 0xA6, 0xFF));
lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+ lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15);
+#else
lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+#endif
lv_obj_set_event_cb(btn, mmi_remind_btn_event_cb);
lv_obj_t * label = lv_label_create(btn, NULL);
lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26);
lv_label_set_text_id(label, WATCH_TEXT_ID_OK);
- /* start timer (1 min) */
- ext->timer_id = Hal_Timer_Start(1000 * 60, mmi_remind_screen_timeout, NULL, false);
+ /* start timer (30 s) */
+ ext->timer_id = Hal_Timer_Start(1000 * MMI_REMIND_SCREEN_DURATION_SECOND, mmi_remind_screen_timeout, NULL, false);
watch_set_suspend_enable(false, ACT_ID_REMIND, 0);
void mmi_ui_msg_update_remind(void)
{
+ char * ring_path = s_remind_info[s_remind_index].remind_ring_path;
+
if(AUDIO_CTRL_PRIORITY_REMIND == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_REMIND, mmi_remind_audio_ctrl_callback))
{
#ifdef __MMI_CUSTOM_HENG_AI__
if(0 == mmi_heng_ai_wake_ring_type_get())
- Hal_NFFS_File_Play_Repeat(s_remind_ring_path, query_current_volume());
+ Hal_NFFS_File_Play_Repeat(ring_path, query_current_volume());
else
Hal_Vibrator_Play_Repeat();
#else
- Hal_NFFS_File_Play_Repeat(s_remind_ring_path, query_current_volume());
+ Hal_NFFS_File_Play_Repeat(ring_path, query_current_volume());
Hal_Vibrator_Play_Repeat();
#endif
if(s_remind_info[i].remind_type == s_remind_type)
{
- s_remind_txt_id = s_remind_info[i].remind_txt_id;
- s_remind_ring_path = s_remind_info[i].remind_ring_path;
+ s_remind_index = i;
break;
}
#ifdef __MMI_ZHSX_SUPPORT__
+#define MMI_REMIND_SCREEN_DURATION_SECOND (30) // second
+
+
typedef enum
{
MMI_REMIND_TYPE_WAKE_UP,
MMI_REMIND_TYPE_SLEEP,
+ MMI_REMIND_TYPE_MEDICINE,
+ MMI_REMIND_TYPE_DRINK_WATER,
+ MMI_REMIND_TYPE_SEDENTARY,
MMI_REMIND_TYPE_MAX
}mmi_remind_type_e;
mmi_remind_type_e remind_type;
uint32_t remind_txt_id;
char * remind_ring_path;
+ void * remind_img_path;
}mmi_remind_screen_info_t;
typedef struct
void phonebook_create_btn_event_cb(lv_obj_t * btn, lv_event_t e)
{
#ifdef __MMI_ZHSX_SUPPORT_PHONEBOOK_LIST_STYLE__
+ #ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+ mmi_phonebook_calllog_create_event_cb(btn, e);
+ #else
mmi_phonebook_create_event_cb(btn, e);
+ #endif
#else
(void)btn;
#ifdef __MMI_ZHSX_SUPPORT_PHONEBOOK_LIST_STYLE__
+#ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+
+static const lv_point_t s_phonebook_calllog_valid_pos[] = {{0, 0}, {1, 0}};
+
+lv_phonebook_calllog_obj_ext_t * mmi_phonebook_calllog_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_PHONEBOOK_CALLLOG);
+ if(activity_obj == NULL)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL == watch_obj)
+ return NULL;
+
+ lv_phonebook_calllog_obj_ext_t * ext = NULL;
+ ext = lv_obj_get_ext_attr(watch_obj);
+
+ return ext;
+}
+
+bool mmi_phonebook_calllog_is_phonebook_tab(void)
+{
+ lv_phonebook_calllog_obj_ext_t * ext = mmi_phonebook_calllog_ext_get();
+ if(NULL != ext && NULL != ext->tileview)
+ {
+ lv_coord_t x = -1, y = -1;
+
+ lv_tileview_get_tile_act(ext->tileview, &x, &y);
+ if(0 == x && 0 == y)
+ return true;
+ }
+
+ return false;
+}
+
+lv_obj_t * mmi_phonebook_calllog_tab_phonebook_get(void)
+{
+ lv_phonebook_calllog_obj_ext_t * ext = mmi_phonebook_calllog_ext_get();
+ if(NULL != ext)
+ {
+ return (ext->tab_phonebook);
+ }
+
+ return NULL;
+}
+
+bool mmi_phonebook_calllog_is_calllog_tab(void)
+{
+ lv_phonebook_calllog_obj_ext_t * ext = mmi_phonebook_calllog_ext_get();
+ if(NULL != ext && NULL != ext->tileview)
+ {
+ lv_coord_t x = -1, y = -1;
+
+ lv_tileview_get_tile_act(ext->tileview, &x, &y);
+ if(1 == x && 0 == y)
+ return true;
+ }
+
+ return false;
+}
+
+lv_obj_t * mmi_phonebook_calllog_tab_calllog_get(void)
+{
+ lv_phonebook_calllog_obj_ext_t * ext = mmi_phonebook_calllog_ext_get();
+ if(NULL != ext)
+ {
+ return (ext->tab_calllog);
+ }
+
+ return NULL;
+}
+
+static void mmi_phonebook_calllog_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+lv_obj_t * mmi_phonebook_calllog_tileview_add_tile(lv_obj_t * tileview, uint16_t id)
+{
+ lv_tileview_ext_t * ext = lv_obj_get_ext_attr(tileview);
+ lv_obj_t * cont = lv_cont_create(tileview, NULL);
+ lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp_tight);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_x(cont, LV_HOR_RES * ext->valid_pos[id].x);
+ lv_tileview_add_element(tileview, cont);
+ lv_obj_set_click(cont, false);
+ return cont;
+}
+
+void mmi_phonebook_calllog_tileview_led(lv_obj_t * tileview)
+{
+ lv_phonebook_calllog_obj_ext_t * ext = mmi_phonebook_calllog_ext_get();
+ if(NULL == ext)
+ return NULL;
+
+ if(NULL == ext->led_cont)
+ {
+ ext->led_cont = lv_cont_create(tileview, NULL);
+ lv_obj_set_base_dir(ext->led_cont, LV_BIDI_DIR_LTR);
+ lv_cont_set_fit(ext->led_cont, LV_FIT_TIGHT);
+ lv_cont_set_layout(ext->led_cont, LV_LAYOUT_ROW_MID);
+ lv_obj_add_style(ext->led_cont, LV_CONT_PART_MAIN, &lv_watch_style_transp);
+ lv_obj_set_click(ext->led_cont, false);
+ }
+
+ uint8_t i = 0;
+ for(i = 0; i < 2; i++)
+ {
+ if(NULL == ext->led[i])
+ {
+ ext->led[i] = lv_led_create(ext->led_cont, NULL);
+ }
+
+ lv_led_off(ext->led[i]);
+ lv_obj_set_size(ext->led[i], 6, 6);
+ }
+
+ lv_coord_t x = -1, y = -1;
+ lv_tileview_get_tile_act(tileview, &x, &y);
+ lv_led_on(ext->led[x]);
+ lv_obj_set_size(ext->led[x], 8, 8);
+
+ PHONEBOOK_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: x=%d\n", __FUNCTION__, __LINE__, x);
+
+ lv_obj_set_pos(ext->led_cont, LV_HOR_RES * x + (LV_HOR_RES - lv_obj_get_width(ext->led_cont)) / 2, 2);
+}
+
+void mmi_phonebook_calllog_tileview_event_cb(lv_obj_t * tileview, lv_event_t e)
+{
+ if(LV_EVENT_VALUE_CHANGED != e)
+ return;
+
+ mmi_phonebook_calllog_tileview_led(tileview);
+}
+
+static void mmi_phonebook_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ char * number = NULL;
+ uint32_t index = lv_watch_get_free_num(btn);
+
+ number = phonebook_get_phone_number(index);
+ if(NULL != number)
+ {
+ phone_voice_call_req(number);
+ }
+}
+
+void mmi_phonebook_update_ui(nv_watch_phonebook_t * nvm_contact_list, uint16_t count)
+{
+
+
+}
+
+static void mmi_phonebook_contacts_list_create(lv_obj_t * obj, nv_watch_phonebook_t * nvm_contact_list)
+{
+ /*Allocate the object type specific extended data*/
+ lv_mmi_phonebook_obj_ext_t * ext = (lv_mmi_phonebook_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_mmi_phonebook_obj_ext_t));
+ /*ext realloc based on watch_obj_ext, do not memeset it*/
+ LV_ASSERT_MEM(ext);
+ if(NULL == ext)
+ return;
+
+ lv_obj_t * label_title = lv_label_create(obj, NULL);
+ lv_obj_set_size(label_title, LV_HOR_RES, 40);
+ lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_title, WATCH_TEXT_ID_PHONEBOOK);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 10 + 10);
+ lv_obj_set_click(label_title, false);
+
+ lv_obj_t * list = lv_list_create(obj, NULL);
+ lv_page_set_edge_flash(list, true);
+ lv_obj_add_style(list, LV_LIST_PART_EDGE_FLASH, &lv_watch_cont_opa1);
+ lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp);
+#ifdef USE_LV_WATCH_UI_CIRCLE
+ lv_obj_set_size(list, LV_HOR_RES - 40, LV_VER_RES - 40 - 20 - 10);
+ lv_obj_align(list, label_title, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); // 0);
+#else
+ lv_obj_set_size(list, LV_HOR_RES, LV_VER_RES - 40);
+ lv_obj_align(list, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
+#endif
+ lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF);
+ lv_watch_obj_add_element(list);
+ ext->list = list;
+
+ uint16_t i = 0;
+ lv_obj_t * btn;
+ lv_obj_t * label;
+ nv_watch_phonebook_info_t * contact_info;
+ uint32_t contact_length = sizeof(nv_watch_phonebook_info_t);
+
+ _lv_ll_init(&(ext->contact_list), contact_length);
+ for(i = 0; i < NV_WATCH_MAX_CONTACT_NUM; i++)
+ {
+ if('\0' == nvm_contact_list->info[i].number[0])
+ {
+ break;
+ }
+ // contact ll
+ contact_info = _lv_ll_ins_tail(&(ext->contact_list));
+ memcpy(contact_info, &(nvm_contact_list->info[i]), contact_length);
+
+ // add list item
+ btn = lv_list_add_btn(list, NULL, NULL);
+ lv_btn_set_layout(btn, LV_LAYOUT_ROW_MID);
+ //lv_obj_set_event_cb(btn, call_log_log_btn_event_cb);
+ //lv_watch_set_free_num(btn, i);
+
+ lv_obj_t * cont = lv_cont_create(btn, NULL);
+ lv_cont_set_layout(cont, LV_LAYOUT_OFF);
+ lv_obj_set_width(cont, lv_obj_get_width(btn));
+ lv_obj_set_height(cont, 56); // LV_VER_RES / 5); // LV_VER_RES / 4); //lv_obj_get_height(btn));
+ lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp);
+ lv_page_glue_obj(cont, true);
+ lv_watch_obj_add_element(cont);
+ lv_obj_set_click(cont, true);
+ lv_obj_set_event_cb(cont, mmi_phonebook_btn_event_cb);
+ lv_watch_set_free_num(cont, i);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+ lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL);
+ lv_obj_set_width(label, lv_obj_get_width(cont) - 40);
+ if('\0' != contact_info->name[0])
+ lv_label_set_text(label, contact_info->name);
+ else
+ lv_label_set_text(label, contact_info->number);
+
+ lv_obj_align(label, cont, LV_ALIGN_IN_LEFT_MID, 20, 0);
+
+ lv_watch_obj_add_element(btn);
+ }
+}
+
+static void mmi_phonebook_no_contacts_create(lv_obj_t * obj)
+{
+ lv_obj_t * label = lv_label_create(obj, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label, false);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_NO_CONTACTS);
+ lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10);
+
+ return;
+}
+
+static void mmi_phonebook_no_sim_create(lv_obj_t * obj)
+{
+ lv_obj_t * label = lv_label_create(obj, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label, false);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_NO_SIM_CARD);
+ lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10);
+
+ return;
+}
+
+lv_obj_t * mmi_phonebook_calllog_phonebook_create(lv_obj_t * tab)
+{
+ if(NULL == tab)
+ return NULL;
+
+ if(false == watch_modem_sim_present_check_req())
+ {
+ mmi_phonebook_no_sim_create(tab);
+ //lv_watch_set_free_num(activity_obj, 0);
+ return tab;
+ }
+
+ nv_watch_phonebook_t * nvm_contact_list = phonebook_read_nvm();
+ if('\0' == nvm_contact_list->info[0].number[0])
+ {
+ mmi_phonebook_no_contacts_create(tab);
+ //lv_watch_set_free_num(activity_obj, 0);
+ }
+ else
+ {
+ mmi_phonebook_contacts_list_create(tab, nvm_contact_list);
+ //lv_watch_set_free_num(activity_obj, 1);
+ }
+
+ lv_mem_free(nvm_contact_list);
+
+ return tab;
+}
+
+
+static lv_obj_t * mmi_phonebook_calllog_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_PHONEBOOK_CALLLOG;
+ activity_ext.create = (lv_watch_activity_create_f_t)mmi_phonebook_calllog_create;
+ activity_ext.prepare_destory = mmi_phonebook_calllog_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return NULL;
+ }
+
+ /* watch obj */
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ LV_ASSERT_MEM(obj);
+ if(NULL == obj)
+ return NULL;
+
+ //lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO);
+ lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE);
+ lv_phonebook_calllog_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_phonebook_calllog_obj_ext_t));
+ if(NULL == ext)
+ return NULL;
+
+ lv_obj_t * tileview = lv_tileview_create(obj, NULL);
+ if(NULL == tileview)
+ return NULL;
+ lv_tileview_set_valid_positions(tileview, s_phonebook_calllog_valid_pos, 2);
+ lv_tileview_set_edge_flash(tileview, true);
+ lv_tileview_set_anim_time(tileview, 60);
+ lv_page_set_scrollbar_mode(tileview, LV_SCROLLBAR_MODE_OFF);
+ lv_obj_add_style(tileview, LV_TILEVIEW_PART_EDGE_FLASH, &lv_watch_cont_opa1);
+ ext->tileview = tileview;
+
+ lv_obj_t * tab;
+
+ tab = mmi_phonebook_calllog_tileview_add_tile(tileview, 0);
+ LV_ASSERT_MEM(tab);
+ ext->tab_phonebook = tab;
+ mmi_phonebook_calllog_phonebook_create(tab);
+
+ tab = mmi_phonebook_calllog_tileview_add_tile(tileview, 1);
+ LV_ASSERT_MEM(tab);
+ ext->tab_calllog = tab;
+ mmi_phonebook_calllog_calllog_create(tab);
+
+ lv_tileview_set_valid_positions(tileview, s_phonebook_calllog_valid_pos, sizeof(s_phonebook_calllog_valid_pos) / sizeof(s_phonebook_calllog_valid_pos[0]));
+ lv_tileview_set_tile_act(tileview, 0, 0, LV_ANIM_OFF);
+ lv_watch_obj_add_element(tileview);
+ lv_watch_obj_add_element(lv_page_get_scrl(tileview));
+ lv_obj_set_event_cb(tileview, mmi_phonebook_calllog_tileview_event_cb);
+
+ ext->led_cont = NULL;
+ ext->led[0] = NULL;
+ ext->led[1] = NULL;
+ mmi_phonebook_calllog_tileview_led(tileview);
+
+ return obj;
+}
+
+void mmi_phonebook_calllog_create_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED == e)
+ {
+ lv_watch_png_cache_all_free();
+ mmi_phonebook_calllog_create(NULL);
+ }
+}
+
+#else
+
static lv_mmi_phonebook_obj_ext_t * mmi_phonebook_get_ext(void)
{
lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_PHONEBOOK);
lv_page_set_edge_flash(list, true);
lv_obj_add_style(list, LV_LIST_PART_EDGE_FLASH, &lv_watch_cont_opa1);
lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp);
-#ifdef USE_LV_WATCH_UI_240_240_CIRCLE
+#ifdef USE_LV_WATCH_UI_CIRCLE
lv_obj_set_size(list, LV_HOR_RES - 40, LV_VER_RES - 40 - 20);
lv_obj_align(list, label_title, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); // 0);
#else
mmi_phonebook_create(NULL);
}
}
+
+#endif
+
#endif
lv_mem_free(nvm_contact_list);
}
-
-static nv_watch_switch_t s_white_list_switch = {0};
-
-void mmi_white_list_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_WHITE_LIST_SWITCH, 0, nv_data_length, (uint8_t *)&s_white_list_switch))
- {
- printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
- }
-}
-
-void mmi_white_list_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_WHITE_LIST_SWITCH, 0, nv_data_length, (uint8_t *)&s_white_list_switch))
- {
- printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
- }
-}
-
-void mmi_white_list_switch_nv_default(nv_watch_switch_t * data)
-{
- data->switch_flag = MMI_WHITE_LIST_SWITCH_DEFAULT;
-}
-
-// 0-close; 1-open
-uint8_t mmi_white_list_switch_get(void)
-{
- return (s_white_list_switch.switch_flag);
-}
-
-void mmi_white_list_switch_set(uint8_t value)
-{
- if(0 == value || 1 == value)
- {
- s_white_list_switch.switch_flag = value;
- mmi_white_list_switch_nv_write();
- }
-}
-
#endif
#define __PHONEBOOK_DEBUG__
#ifdef __PHONEBOOK_DEBUG__
-#define PHONEBOOK_DEBUG_PRINTF(fmt, ...) printf("[WECHAT]"fmt, ##__VA_ARGS__)
+#define PHONEBOOK_DEBUG_PRINTF(fmt, ...) printf("[PHONEBOOK]"fmt, ##__VA_ARGS__)
#else
#define PHONEBOOK_DEBUG_PRINTF(fmt, ...)
#endif
#ifdef __MMI_ZHSX_SUPPORT_PHONEBOOK_LIST_STYLE__
+#ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+typedef struct
+{
+ lv_watch_obj_ext_t lv_watch_obj;
+ /*New data for this type */
+ lv_obj_t * tileview;
+ lv_obj_t * tab_phonebook;
+ lv_obj_t * tab_calllog;
+ lv_obj_t * led_cont;
+ lv_obj_t * led[2];
+} lv_phonebook_calllog_obj_ext_t;
+
+
+bool mmi_phonebook_calllog_is_calllog_tab(void);
+lv_obj_t * mmi_phonebook_calllog_tab_calllog_get(void);
+
+#endif
+
typedef struct
{
lv_watch_obj_ext_t lv_watch_obj;
void mmi_phonebook_contact_list_set(app_adaptor_contact_t * contact_list, uint8_t count);
-void mmi_white_list_switch_nv_read(void);
-void mmi_white_list_switch_nv_default(nv_watch_switch_t * data);
-// 0-close; 1-open
-uint8_t mmi_white_list_switch_get(void);
-void mmi_white_list_switch_set(uint8_t value);
-
#endif
case MMI_MAIN_MENU_STYLE_ONE_PAGE:
#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__
- watch_menu_app_cnt = (sizeof(s_main_menu_one_page) / sizeof(watch_app_info_t));
+ //watch_menu_app_cnt = (sizeof(s_main_menu_one_page) / sizeof(watch_app_info_t));
+ watch_menu_app_cnt = (sizeof(s_main_menu_one_page) / sizeof(mmi_page_main_menu_info_t));
if(watch_menu_app_cnt > WATCH_APP_MAX_COUNT)
{
printf("[@CHENG_DEBUG][%s][%d]: primary menu count %d should not greater than %d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt, WATCH_APP_MAX_COUNT);
menu_app = (watch_app_info_t *)lv_mem_alloc(sizeof(watch_app_info_t) * watch_menu_app_cnt);
for(i = 0; i < watch_menu_app_cnt; i++)
{
- memcpy(&menu_app[i], &(s_main_menu_one_page[i]), sizeof(watch_app_info_t));
+ memcpy(&menu_app[i], &(s_main_menu_one_page[i].page_menu_info), sizeof(watch_app_info_t));
}
#endif
break;
MMI_MAIN_MENU_STYLE_E mmi_main_menu_style_get(void);
void mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_E style_value);
+
+#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__
+
+typedef struct
+{
+ watch_app_info_t page_menu_info;
+ char * menu_ring;
+}mmi_page_main_menu_info_t;
+
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+char * mmi_page_main_menu_tts_info_get(uint8_t menu_index);
+#endif
+
+#endif
+
#endif
/**********************
// one page
#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__
-static watch_app_info_t s_main_menu_one_page[] =
+//static watch_app_info_t s_main_menu_one_page[] =
+static mmi_page_main_menu_info_t s_main_menu_one_page[] =
{
- { ICON_PHONEBOOK_ONE_PAGE, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb},
+ {{ ICON_PHONEBOOK_ONE_PAGE, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb}, AUDIO_MAIN_MENU_PHONEBOOK},
#if USE_LV_WATCH_SMS_MSG != 0
- { ICON_SMS_MSG_ONE_PAGE, WATCH_TEXT_ID_SMS_MSG, sms_msg_create_event_cb},
+ {{ ICON_SMS_MSG_ONE_PAGE, WATCH_TEXT_ID_SMS_MSG, sms_msg_create_event_cb}, AUDIO_MAIN_MENU_SMS},
#endif
- { ICON_DIALPAD_ONE_PAGE, WATCH_TEXT_ID_DIALPAD, dialpad_create_event_cb },
+ {{ ICON_DIALPAD_ONE_PAGE, WATCH_TEXT_ID_DIALPAD, dialpad_create_event_cb}, AUDIO_MAIN_MENU_DIALPAD},
#ifndef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
- { ICON_CALLLOG_ONE_PAGE, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb },
+ {{ ICON_CALLLOG_ONE_PAGE, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb}, AUDIO_MAIN_MENU_CALL_LOG},
#endif
#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
- { ICON_HEART_RATE_ONE_PAGE, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb},
+ {{ ICON_HEART_RATE_ONE_PAGE, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb}, AUDIO_MAIN_MENU_HEART_RATE},
#endif
#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__
- { ICON_SPO2_ONE_PAGE, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb},
+ {{ ICON_SPO2_ONE_PAGE, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb}, AUDIO_MAIN_MENU_SPO2},
#endif
#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__
- { ICON_TEMPERATURE_ONE_PAGE, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb},
+ {{ ICON_TEMPERATURE_ONE_PAGE, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, AUDIO_MAIN_MENU_TEMPERATURE},
#endif
#ifdef __MMI_WECHAT_SUPPORT__
- { ICON_WECHAT_ONE_PAGE, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb },
+ {{ ICON_WECHAT_ONE_PAGE, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb}, AUDIO_MAIN_MENU_WECHAT},
#endif
#if USE_LV_WATCH_CAMERA != 0
- { ICON_CAMERA_ONE_PAGE, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb },
- { ICON_ALBUM_ONE_PAGE, WATCH_TEXT_ID_ALBUM, album_create_event_cb },
+ {{ ICON_CAMERA_ONE_PAGE, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb}, AUDIO_MAIN_MENU_CAMERA},
+ {{ ICON_ALBUM_ONE_PAGE, WATCH_TEXT_ID_ALBUM, album_create_event_cb}, AUDIO_MAIN_MENU_ALBUM},
#endif
#if USE_LV_WATCH_ALIPAY != 0
- { ICON_ALIPAY_ONE_PAGE, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb },
+ {{ ICON_ALIPAY_ONE_PAGE, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb}, AUDIO_MAIN_MENU_ALIPAY},
#endif
#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
- { ICON_VIDEOCALL_ONE_PAGE, WATCH_TEXT_ID_VIDEOCALL, mmi_video_call_create_event_cb },
+ {{ ICON_VIDEOCALL_ONE_PAGE, WATCH_TEXT_ID_VIDEOCALL, mmi_video_call_create_event_cb}, AUDIO_MAIN_MENU_VIDEO_CALL},
#endif
#ifdef __MMI_TOOL_MENU_SUPPORT__
- { ICON_TOOL_ONE_PAGE, WATCH_TEXT_ID_TOOL, mmi_tool_menu_create_event_cb },
+ {{ ICON_TOOL_ONE_PAGE, WATCH_TEXT_ID_TOOL, mmi_tool_menu_create_event_cb}, AUDIO_MAIN_MENU_TOOL},
#endif
- { ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb },
+ {{ ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb}, AUDIO_MAIN_MENU_SETTINGS},
};
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+char * mmi_page_main_menu_tts_info_get(uint8_t menu_index)
+{
+ return (s_main_menu_one_page[menu_index].menu_ring);
+}
+#endif
+
#endif
#if USE_LV_WATCH_SETTING != 0
+#include "setting_ext.c"
+#include "setting_main_menu_switch.c"
+#include "setting_sedentary_remind.c"
+#include "setting_page_main_menu_tts.c"
+#include "setting_new_sms_silent.c"
+
+
extern lv_watch_Activity_Id_t g_watch_list_actId;
#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_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
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+ { ICON_SETTING_SEDENTARY_REMIND, WATCH_TEXT_ID_SEDENTARY_REMIND, setting_sedentary_remind_create_event_cb },
+#endif
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+ { ICON_SETTING_NEW_SMS_SILENT, WATCH_TEXT_ID_NEW_SMS_SILENT, setting_new_sms_silent_create_event_cb },
+#endif
#ifdef __MMI_APP_QRCODE_MENU_SUPPORT__
{ ICON_SETTING_APP_QRCODE, WATCH_TEXT_ID_APP_QRCODE, app_qrcode_create_event_cb },
#endif
#endif
lv_mem_free(nvsettings);
+
+#ifdef __MMI_ZHSX_SUPPORT__
+ mmi_watch_setting_ext_data_nv_read();
+#endif
}
lv_obj_t * setting_create(lv_obj_t * par)
#include "setting_mobile_network.h"
#include "setting_tab.h"
#include "setting_search_switch.h"
+
+#include "setting_ext.h"
#include "setting_main_menu_switch.h"
+#include "setting_sedentary_remind.h"
+#include "setting_page_main_menu_tts.h"
+#include "setting_new_sms_silent.h"
#if USE_LV_WATCH_SETTING != 0
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
+static nv_watch_setting_ext_t s_watch_setting_ext_value = {0};
+
+void mmi_watch_setting_ext_data_nv_default(nv_watch_setting_ext_t * watch_settings)
+{
+ watch_settings->white_list_switch = MMI_WHITE_LIST_SWITCH_DEFAULT;
+ watch_settings->dial_pad_switch = MMI_DIAL_PAD_SWITCH_DEFAULT;
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+ watch_settings->page_main_menu_tts = MMI_PAGE_MAIN_MENU_TTS_SWITCH_DEFAULT;
+#endif
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+ watch_settings->sedentary_switch = MMI_WATCH_SEDENTARY_SWITCH_DEFAULT;
+ watch_settings->sedentary_minute = MMI_WATCH_SEDENTARY_INTERVAL_DEFAULT;
+#endif
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+ watch_settings->new_sms_silent_switch = MMI_NEW_SMS_SILENT_SWITCH_DEFAULT;
+#endif
+
+}
+
+void mmi_watch_setting_ext_data_nv_read(void)
+{
+ uint32_t nv_data_length = sizeof(nv_watch_setting_ext_t);
+
+ if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_WATCH_SETTINGS, 0, nv_data_length, (uint8_t *)&s_watch_setting_ext_value))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
+ mmi_main_menu_style_nv_default(&s_watch_setting_ext_value);
+ }
+}
+
+void mmi_watch_setting_ext_data_nv_write(void)
+{
+ uint32_t nv_data_length = sizeof(nv_watch_setting_ext_t);
+
+ if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_WATCH_SETTINGS, 0, nv_data_length, (uint8_t *)&s_watch_setting_ext_value))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
+ }
+}
+
+
+// 0-close; 1-open; 2-auto answer
+uint8_t mmi_white_list_switch_get(void)
+{
+ return (s_watch_setting_ext_value.white_list_switch);
+}
+
+void mmi_white_list_switch_set(uint8_t value)
+{
+ if(0 == value || 1 == value || 2 == value)
+ {
+ s_watch_setting_ext_value.white_list_switch = value;
+ mmi_watch_setting_ext_data_nv_write();
+ }
+}
+
+// 0-close; 1-open
+uint8_t mmi_dial_pad_switch_get(void)
+{
+ return (s_watch_setting_ext_value.dial_pad_switch);
+}
+
+void mmi_dial_pad_switch_set(uint8_t value)
+{
+ if(0 == value || 1 == value)
+ {
+ s_watch_setting_ext_value.dial_pad_switch = value;
+ mmi_watch_setting_ext_data_nv_write();
+ }
+}
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+// 0-close; 1-open
+uint8_t mmi_page_main_menu_tts_swtich_get(void)
+{
+ return (s_watch_setting_ext_value.page_main_menu_tts);
+}
+
+void mmi_page_main_menu_tts_swtich_set(uint8_t value)
+{
+ s_watch_setting_ext_value.page_main_menu_tts = value;
+ mmi_watch_setting_ext_data_nv_write();
+}
+#endif
+
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+// 0-close; 1-open
+uint8_t mmi_sedentary_remind_swtich_get(void)
+{
+ return (s_watch_setting_ext_value.sedentary_switch);
+}
+
+void mmi_sedentary_remind_swtich_set(uint8_t value)
+{
+ s_watch_setting_ext_value.sedentary_switch = value;
+ mmi_watch_setting_ext_data_nv_write();
+}
+
+uint16_t mmi_sedentary_remind_interval_get(void)
+{
+ return s_watch_setting_ext_value.sedentary_minute;
+}
+
+void mmi_sedentary_remind_interval_set(uint16_t value)
+{
+ s_watch_setting_ext_value.sedentary_minute = value;
+ mmi_watch_setting_ext_data_nv_write();
+}
+#endif
+
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+// 0-close; 1-open
+uint8_t mmi_new_sms_silent_swtich_get(void)
+{
+ return (s_watch_setting_ext_value.new_sms_silent_switch);
+}
+
+void mmi_new_sms_silent_swtich_set(uint8_t value)
+{
+ s_watch_setting_ext_value.new_sms_silent_switch = value;
+ mmi_watch_setting_ext_data_nv_write();
+}
+#endif
+
+
+
+#endif
+
+
--- /dev/null
+
+
+
+#ifndef __SETTING_EXT_H__
+#define __SETTING_EXT_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
+void mmi_watch_setting_ext_data_nv_default(nv_watch_setting_ext_t * watch_settings);
+void mmi_watch_setting_ext_data_nv_read(void);
+
+uint8_t mmi_white_list_switch_get(void);
+void mmi_white_list_switch_set(uint8_t value);
+
+uint8_t mmi_dial_pad_switch_get(void);
+void mmi_dial_pad_switch_set(uint8_t value);
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+uint8_t mmi_page_main_menu_tts_swtich_get(void);
+void mmi_page_main_menu_tts_swtich_set(uint8_t value);
+#endif
+
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+uint8_t mmi_sedentary_remind_swtich_get(void);
+void mmi_sedentary_remind_swtich_set(uint8_t value);
+uint16_t mmi_sedentary_remind_interval_get(void);
+void mmi_sedentary_remind_interval_set(uint16_t value);
+#endif
+
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+uint8_t mmi_new_sms_silent_swtich_get(void);
+void mmi_new_sms_silent_swtich_set(uint8_t value);
+#endif
+
+
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+
+void * mmi_new_sms_silent_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL == activity_obj)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL != watch_obj)
+ {
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+ return ext;
+ }
+
+ return NULL;
+}
+
+static void mmi_new_sms_silent_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+void mmi_new_sms_silent_screen_clean(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL != activity_obj)
+ {
+ mmi_new_sms_silent_prepare_destory(activity_obj);
+ lv_obj_del(activity_obj);
+ }
+
+ //lv_watch_obj_cleanup(obj);
+}
+
+static void mmi_new_sms_silent_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ uint32_t user_num = lv_watch_get_free_num(obj);
+
+ mmi_new_sms_silent_swtich_set((0 == user_num) ? 0 : 1);
+ mmi_new_sms_silent_screen_clean();
+}
+
+static lv_obj_t * mmi_new_sms_silent_create(lv_obj_t * activity_obj)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ 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_WATCH_SETTING_COMMON;
+ activity_ext.create = mmi_new_sms_silent_create;
+ activity_ext.prepare_destory = mmi_new_sms_silent_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj) {
+ return NULL;
+ }
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
+
+ //lv_new_sms_silent_obj_ext_t * ext = (lv_new_sms_silent_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_new_sms_silent_obj_ext_t));
+ //if(NULL == ext)
+ // return NULL;
+
+ uint8_t switch_value = mmi_new_sms_silent_swtich_get();
+
+ lv_obj_t * title_label = lv_label_create(obj, NULL);
+ lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title_label, false);
+ lv_label_set_text_id(title_label, WATCH_TEXT_ID_NEW_SMS_SILENT);
+ lv_obj_align(title_label, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+ //
+ lv_obj_t * btn_0 = lv_btn_create(obj, NULL);
+ lv_obj_add_style(btn_0, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+ lv_btn_set_fit(btn_0, LV_FIT_TIGHT);
+ lv_btn_set_layout(btn_0, LV_LAYOUT_ROW_MID);
+ lv_obj_set_event_cb(btn_0, mmi_new_sms_silent_event_cb);
+ lv_watch_obj_add_element(btn_0);
+ lv_watch_set_free_num(btn_0, 0);
+
+ lv_obj_t * img_0 = lv_img_create(btn_0, NULL);
+ lv_img_set_src(img_0, (0 == switch_value) ? ICON_ITEM_SELECTED : ICON_ITEM_NOT_SELECTED);
+
+ lv_obj_t* label_0 = lv_label_create(btn_0, NULL);
+ lv_obj_add_style(label_0, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(label_0, WATCH_TEXT_ID_OFF);
+
+ //
+ lv_obj_t * btn_1 = lv_btn_create(obj, btn_0);
+ lv_obj_set_event_cb(btn_1, mmi_new_sms_silent_event_cb);
+ lv_watch_obj_add_element(btn_1);
+ lv_watch_set_free_num(btn_1, 1);
+
+ lv_obj_t * img_1 = lv_img_create(btn_1, NULL);
+ lv_img_set_src(img_1, (0 == switch_value) ? ICON_ITEM_NOT_SELECTED : ICON_ITEM_SELECTED);
+
+ lv_obj_t* label_1 = lv_label_create(btn_1, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_ON);
+
+ lv_obj_align(btn_0, obj, LV_ALIGN_CENTER, -20, -40);
+ lv_obj_align(btn_1, btn_0, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 40);
+
+ return obj;
+}
+
+void setting_new_sms_silent_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_watch_png_cache_all_free();
+
+ lv_obj_t * obj = mmi_new_sms_silent_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return;
+}
+
+#endif
+
--- /dev/null
+
+
+
+#ifndef __SETTING_NEW_SMS_SILENT_H__
+#define __SETTING_NEW_SMS_SILENT_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+
+typedef struct
+{
+ lv_watch_obj_ext_t lv_watch_obj;
+ /*New data for this type */
+ uint8_t switch_value;
+ //lv_obj_t * btn_0;
+ //lv_obj_t * btn_1;
+} lv_new_sms_silent_obj_ext_t;
+
+
+void setting_new_sms_silent_create_event_cb(lv_obj_t * btn, lv_event_t event);
+
+#endif
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+void * mmi_page_main_menu_tts_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL == activity_obj)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL != watch_obj)
+ {
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+ return ext;
+ }
+
+ return NULL;
+}
+
+static void mmi_page_main_menu_tts_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+void mmi_page_main_menu_tts_screen_clean(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL != activity_obj)
+ {
+ mmi_page_main_menu_tts_prepare_destory(activity_obj);
+ lv_obj_del(activity_obj);
+ }
+
+ //lv_watch_obj_cleanup(obj);
+}
+
+static void mmi_page_main_menu_tts_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ uint32_t user_num = lv_watch_get_free_num(obj);
+
+ mmi_page_main_menu_tts_swtich_set((0 == user_num) ? 0 : 1);
+ mmi_page_main_menu_tts_screen_clean();
+}
+
+static lv_obj_t * mmi_page_main_menu_tts_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_WATCH_SETTING_COMMON;
+ activity_ext.create = mmi_page_main_menu_tts_create;
+ activity_ext.prepare_destory = mmi_page_main_menu_tts_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj) {
+ return NULL;
+ }
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
+
+ //lv_page_main_menu_tts_obj_ext_t * ext = (lv_page_main_menu_tts_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_page_main_menu_tts_obj_ext_t));
+ //if(NULL == ext)
+ // return NULL;
+
+ uint8_t switch_value = mmi_page_main_menu_tts_swtich_get();
+
+ lv_obj_t * title_label = lv_label_create(obj, NULL);
+ lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title_label, false);
+ lv_label_set_text_id(title_label, WATCH_TEXT_ID_PAGE_MAIN_MENU_TTS);
+ lv_obj_align(title_label, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+ //
+ lv_obj_t * btn_0 = lv_btn_create(obj, NULL);
+ lv_obj_add_style(btn_0, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+ lv_btn_set_fit(btn_0, LV_FIT_TIGHT);
+ lv_btn_set_layout(btn_0, LV_LAYOUT_ROW_MID);
+ lv_obj_set_event_cb(btn_0, mmi_page_main_menu_tts_event_cb);
+ lv_watch_obj_add_element(btn_0);
+ lv_watch_set_free_num(btn_0, 0);
+
+ lv_obj_t * img_0 = lv_img_create(btn_0, NULL);
+ lv_img_set_src(img_0, (0 == switch_value) ? ICON_ITEM_SELECTED : ICON_ITEM_NOT_SELECTED);
+
+ lv_obj_t* label_0 = lv_label_create(btn_0, NULL);
+ lv_obj_add_style(label_0, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(label_0, WATCH_TEXT_ID_OFF);
+
+ //
+ lv_obj_t * btn_1 = lv_btn_create(obj, btn_0);
+ lv_obj_set_event_cb(btn_1, mmi_page_main_menu_tts_event_cb);
+ lv_watch_obj_add_element(btn_1);
+ lv_watch_set_free_num(btn_1, 1);
+
+ lv_obj_t * img_1 = lv_img_create(btn_1, NULL);
+ lv_img_set_src(img_1, (0 == switch_value) ? ICON_ITEM_NOT_SELECTED : ICON_ITEM_SELECTED);
+
+ lv_obj_t* label_1 = lv_label_create(btn_1, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_ON);
+
+ lv_obj_align(btn_0, obj, LV_ALIGN_CENTER, -20, -40);
+ lv_obj_align(btn_1, btn_0, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 40);
+
+ return obj;
+}
+
+void setting_page_main_menu_tts_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_watch_png_cache_all_free();
+
+ lv_obj_t * obj = mmi_page_main_menu_tts_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return;
+}
+
+
+static void mmi_page_main_menu_tts_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: priority=%d\n", __FUNCTION__, __LINE__, priority);
+
+ if(AUDIO_CTRL_PRIORITY_MENU_TTS == priority)
+ {
+ Hal_NFFS_File_Play_End();
+ Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_MENU_TTS);
+ }
+ else if(AUDIO_CTRL_PRIORITY_MENU_TTS > priority)
+ {
+ Hal_NFFS_File_Play_End();
+ Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_MENU_TTS);
+ }
+}
+
+static void mmi_page_main_menu_tts_play_over_cb(void *para)
+{
+ Hal_NFFS_File_Play_End();
+ Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_MENU_TTS);
+}
+
+void mmi_page_main_menu_tts_broadcast(uint8_t index)
+{
+ if(0 == mmi_page_main_menu_tts_swtich_get())
+ {
+ return ;
+ }
+
+ if(AUDIO_CTRL_PRIORITY_MENU_TTS == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_MENU_TTS, mmi_page_main_menu_tts_audio_ctrl_callback))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ char * ring_path = mmi_page_main_menu_tts_info_get(index);
+ if(NULL != ring_path)
+ {
+ Hal_NFFS_File_Play_Onetime(ring_path, (HAL_SPEAKER_GAIN)query_current_volume(), mmi_page_main_menu_tts_play_over_cb, NULL);
+ }
+ }
+}
+#endif
+
--- /dev/null
+
+
+
+#ifndef __SETTING_PAGE_MAIN_MENU_TTS_H__
+#define __SETTING_PAGE_MAIN_MENU_TTS_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+typedef struct
+{
+ lv_watch_obj_ext_t lv_watch_obj;
+ /*New data for this type */
+ uint8_t switch_value;
+ //lv_obj_t * btn_0;
+ //lv_obj_t * btn_1;
+} lv_page_main_menu_tts_obj_ext_t;
+
+
+void setting_page_main_menu_tts_create_event_cb(lv_obj_t * btn, lv_event_t event);
+void mmi_page_main_menu_tts_broadcast(uint8_t index);
+
+#endif
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+
+static void * s_sedentary_remind_timer = NULL;
+static uint32_t s_sedentary_remind_start_step = 0;
+
+static void mmi_sedentary_remind_trigger(uint32_t para);
+
+void mmi_sedentary_remind_timer_stop(void)
+{
+ if(NULL != s_sedentary_remind_timer)
+ {
+ uos_timer_stop(s_sedentary_remind_timer);
+ }
+ s_sedentary_remind_start_step = 0;
+}
+
+static void mmi_sedentary_remind_timer_start(void)
+{
+ uint16_t time_min = mmi_sedentary_remind_interval_get();
+
+ if(NULL != s_sedentary_remind_timer)
+ uos_timer_stop(s_sedentary_remind_timer);
+ else
+ uos_timer_create(&s_sedentary_remind_timer);
+
+ s_sedentary_remind_start_step = asl_pedometer_steps_get();
+ uos_timer_start(s_sedentary_remind_timer, MS_TO_TICKS(time_min * 60 * 1000), 0, mmi_sedentary_remind_trigger, NULL);
+}
+
+static void mmi_sedentary_remind_trigger(uint32_t para)
+{
+ uint32_t cur_steps = asl_pedometer_steps_get();
+
+ if(MMI_SEDENTARY_REMIND_STEP_D_VALUE > abs(cur_steps - s_sedentary_remind_start_step))
+ {
+ mmi_remind_sedentary_screen_active();
+ }
+
+ mmi_sedentary_remind_timer_start();
+}
+
+void mmi_sedentary_remind_mission_power_on_check(void)
+{
+ if(0 != mmi_sedentary_remind_swtich_get())
+ {
+ mmi_sedentary_remind_timer_start();
+ }
+}
+
+void * mmi_sedentary_remind_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL == activity_obj)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL != watch_obj)
+ {
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+ return ext;
+ }
+
+ return NULL;
+}
+
+static void mmi_sedentary_remind_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+void mmi_sedentary_remind_screen_clean(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_WATCH_SETTING_COMMON);
+ if(NULL != activity_obj)
+ {
+ mmi_sedentary_remind_prepare_destory(activity_obj);
+ lv_obj_del(activity_obj);
+ }
+}
+
+static void setting_sedentary_remind_btn_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_sedentary_remind_obj_ext_t * ext = (lv_sedentary_remind_obj_ext_t *)mmi_sedentary_remind_ext_get();
+ if(NULL == ext)
+ return NULL;
+
+ char time_str[8] = {0};
+ uint32_t user_num = lv_watch_get_free_num(obj);
+ switch(user_num)
+ {
+ case 0:
+ case 1:
+ if(0 == ext->switch_value)
+ ext->switch_value = 1;
+ else
+ ext->switch_value = 0;
+
+ lv_label_set_text_id(ext->label_switch, ((0 == ext->switch_value) ? WATCH_TEXT_ID_OFF : WATCH_TEXT_ID_ON));
+ lv_label_set_align(ext->label_switch, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(ext->label_switch, lv_obj_get_parent(ext->label_switch), LV_ALIGN_CENTER, 0, 0);
+ break;
+
+ case 2: // time decrease
+ if(MMI_SEDENTARY_REMIND_INTERVAL_MIN < ext->interval_value)
+ {
+ ext->interval_value -= MMI_SEDENTARY_REMIND_INTERVAL_STEP;
+ }
+ sprintf(time_str, "%d", ext->interval_value);
+ lv_label_set_text(ext->label_time, time_str);
+ lv_label_set_align(ext->label_time, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(ext->label_time, lv_obj_get_parent(ext->label_time), LV_ALIGN_CENTER, 0, 0);
+ break;
+
+ case 3: // time increase
+ if(MMI_SEDENTARY_REMIND_INTERVAL_MAX > ext->interval_value)
+ {
+ ext->interval_value += MMI_SEDENTARY_REMIND_INTERVAL_STEP;
+ }
+ sprintf(time_str, "%d", ext->interval_value);
+ lv_label_set_text(ext->label_time, time_str);
+ lv_label_set_align(ext->label_time, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(ext->label_time, lv_obj_get_parent(ext->label_time), LV_ALIGN_CENTER, 0, 0);
+ break;
+
+ case 4: // save
+ mmi_sedentary_remind_swtich_set(ext->switch_value);
+ mmi_sedentary_remind_interval_set(ext->interval_value);
+ if(0 == ext->switch_value) // off
+ {
+ mmi_sedentary_remind_timer_stop();
+ }
+ else
+ {
+ mmi_sedentary_remind_timer_start();
+ }
+ mmi_sedentary_remind_screen_clean();
+ break;
+
+ case 5: // cancel
+ mmi_sedentary_remind_screen_clean();
+ break;
+
+ default:
+ break;
+ }
+
+}
+
+static lv_obj_t * mmi_sedentary_remind_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_WATCH_SETTING_COMMON;
+ activity_ext.create = mmi_sedentary_remind_create;
+ activity_ext.prepare_destory = mmi_sedentary_remind_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj) {
+ return NULL;
+ }
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
+
+ lv_sedentary_remind_obj_ext_t * ext = (lv_sedentary_remind_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_sedentary_remind_obj_ext_t));
+ if(NULL == ext)
+ return NULL;
+
+ ext->switch_value = mmi_sedentary_remind_swtich_get();
+ ext->interval_value = mmi_sedentary_remind_interval_get();
+
+ // on/off
+ lv_obj_t * label_0 = lv_label_create(obj, NULL);
+ lv_obj_add_style(label_0, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_align(label_0, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label_0, false);
+ lv_label_set_text_id(label_0, WATCH_TEXT_ID_SEDENTARY_REMIND);
+ lv_obj_align(label_0, NULL, LV_ALIGN_IN_TOP_MID, 0, 15);
+
+ lv_obj_t * img_0 = lv_img_create(obj, NULL);
+ lv_img_set_src(img_0, ICON_SEDENTARY_REMIND_SET_BG);
+ lv_obj_align(img_0, label_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
+
+ lv_obj_t * label_switch = lv_label_create(img_0, NULL);
+ lv_obj_add_style(label_switch, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_align(label_switch, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label_switch, false);
+ lv_label_set_text_id(label_switch, ((0 == ext->switch_value) ? WATCH_TEXT_ID_OFF : WATCH_TEXT_ID_ON));
+ lv_obj_align(label_switch, NULL, LV_ALIGN_CENTER, 0, 0);
+ ext->label_switch = label_switch;
+
+ lv_obj_t * btn_left_0 = lv_imgbtn_create(img_0, NULL);
+ lv_imgbtn_set_src(btn_left_0, LV_BTN_STATE_RELEASED, ICON_SEDENTARY_REMIND_SET_LEFT);
+ lv_imgbtn_set_src(btn_left_0, LV_BTN_STATE_PRESSED, ICON_SEDENTARY_REMIND_SET_LEFT);
+ lv_obj_align(btn_left_0, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0);
+ lv_obj_set_event_cb(btn_left_0, setting_sedentary_remind_btn_event_cb);
+ lv_watch_set_free_num(btn_left_0, 0);
+
+ lv_obj_t * btn_right_0 = lv_imgbtn_create(img_0, NULL);
+ lv_imgbtn_set_src(btn_right_0, LV_BTN_STATE_RELEASED, ICON_SEDENTARY_REMIND_SET_RIGHT);
+ lv_imgbtn_set_src(btn_right_0, LV_BTN_STATE_PRESSED, ICON_SEDENTARY_REMIND_SET_RIGHT);
+ lv_obj_align(btn_right_0, NULL, LV_ALIGN_IN_TOP_RIGHT, 0, 0);
+ lv_obj_set_event_cb(btn_right_0, setting_sedentary_remind_btn_event_cb);
+ lv_watch_set_free_num(btn_right_0, 1);
+
+ // time
+ lv_obj_t * label_1 = lv_label_create(obj, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label_1, false);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_REMIND_TIME_MINUTE);
+ lv_obj_align(label_1, img_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+
+ lv_obj_t * img_1 = lv_img_create(obj, NULL);
+ lv_img_set_src(img_1, ICON_SEDENTARY_REMIND_SET_BG);
+ lv_obj_align(img_1, label_1, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
+
+ lv_obj_t * label_time = lv_label_create(img_1, NULL);
+ lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label_time, false);
+ char time_str[8] = {0};
+ sprintf(time_str, "%d", ext->interval_value);
+ lv_label_set_text(label_time, time_str);
+ lv_obj_align(label_time, NULL, LV_ALIGN_CENTER, 0, 0);
+ ext->label_time = label_time;
+
+ lv_obj_t * btn_left_1 = lv_imgbtn_create(img_1, NULL);
+ lv_imgbtn_set_src(btn_left_1, LV_BTN_STATE_RELEASED, ICON_SEDENTARY_REMIND_SET_LEFT);
+ lv_imgbtn_set_src(btn_left_1, LV_BTN_STATE_PRESSED, ICON_SEDENTARY_REMIND_SET_LEFT);
+ lv_obj_align(btn_left_1, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0);
+ lv_obj_set_event_cb(btn_left_1, setting_sedentary_remind_btn_event_cb);
+ lv_watch_set_free_num(btn_left_1, 2);
+
+ lv_obj_t * btn_right_1 = lv_imgbtn_create(img_1, NULL);
+ lv_imgbtn_set_src(btn_right_1, LV_BTN_STATE_RELEASED, ICON_SEDENTARY_REMIND_SET_RIGHT);
+ lv_imgbtn_set_src(btn_right_1, LV_BTN_STATE_PRESSED, ICON_SEDENTARY_REMIND_SET_RIGHT);
+ lv_obj_align(btn_right_1, NULL, LV_ALIGN_IN_TOP_RIGHT, 0, 0);
+ lv_obj_set_event_cb(btn_right_1, setting_sedentary_remind_btn_event_cb);
+ lv_watch_set_free_num(btn_right_1, 3);
+
+ //
+ lv_obj_t * btn_save = lv_btn_create(obj, NULL);
+ lv_obj_add_style(btn_save, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+ lv_btn_set_fit(btn_save, LV_FIT_TIGHT);
+ lv_obj_set_event_cb(btn_save, setting_sedentary_remind_btn_event_cb);
+ lv_obj_align(btn_save, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 35, -20);
+ //lv_watch_obj_add_element(btn_save);
+ lv_watch_set_free_num(btn_save, 4);
+
+ lv_obj_t* label_save = lv_label_create(btn_save, NULL);
+ lv_obj_add_style(label_save, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_text_id(label_save, WATCH_TEXT_ID_SAVE);
+
+ //
+ lv_obj_t * btn_cancel = lv_btn_create(obj, NULL);
+ lv_obj_add_style(btn_cancel, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+ lv_btn_set_fit(btn_cancel, LV_FIT_TIGHT);
+ lv_obj_set_event_cb(btn_cancel, setting_sedentary_remind_btn_event_cb);
+ lv_obj_align(btn_cancel, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -35, -20);
+ lv_watch_set_free_num(btn_cancel, 5);
+
+ lv_obj_t* label_cancel = lv_label_create(btn_cancel, NULL);
+ lv_obj_add_style(label_cancel, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_text_id(label_cancel, WATCH_TEXT_ID_BACK);
+ //lv_label_set_long_mode(label_cancel, LV_LABEL_LONG_BREAK);
+ //lv_obj_set_width(label_cancel, LV_HOR_RES * 2 / 3);
+
+ return obj;
+}
+
+void setting_sedentary_remind_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_watch_png_cache_all_free();
+
+ lv_obj_t * obj = mmi_sedentary_remind_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return;
+}
+
+#endif
+
--- /dev/null
+
+
+
+#ifndef __SETTING_SEDENTARY_REMIND_H__
+#define __SETTING_SEDENTARY_REMIND_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+
+#define MMI_SEDENTARY_REMIND_STEP_D_VALUE (60)
+#define MMI_SEDENTARY_REMIND_INTERVAL_MAX (120)
+#define MMI_SEDENTARY_REMIND_INTERVAL_MIN (10)
+#define MMI_SEDENTARY_REMIND_INTERVAL_STEP (10)
+
+
+typedef struct
+{
+ lv_watch_obj_ext_t lv_watch_obj;
+ /*New data for this type */
+ uint8_t switch_value;
+ uint16_t interval_value;
+ lv_obj_t * label_switch;
+ lv_obj_t * label_time;
+} lv_sedentary_remind_obj_ext_t;
+
+
+void mmi_sedentary_remind_mission_power_on_check(void);
+void setting_sedentary_remind_create_event_cb(lv_obj_t * btn, lv_event_t event);
+
+#endif
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
mmi_watch_sleep_time_nv_read();
#endif
- mmi_dial_pad_switch_nv_read();
- mmi_white_list_switch_nv_read();
#ifdef __MMI_ZHSX_SUPPORT_CHECK_SIM_UNBIND__
mmi_watch_sim_unbind_switch_nv_read();
#endif
#if defined(__MMI_REMIND_SLEEP_SUPPORT__) || defined(__MMI_CUSTOM_HENG_AI__)
#define AUDIO_REMIND_SLEEP "R:/audio/AUDIO_REMIND_SLEEP.mp3"
#endif
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+#define AUDIO_REMIND_SEDENTARY "R:/audio/AUDIO_REMIND_SEDENTARY.mp3"
+#endif
+
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+
+#define AUDIO_MAIN_MENU_PHONEBOOK "R:/audio/main_menu/AUDIO_MAIN_MENU_PHONEBOOK.mp3"
+#if USE_LV_WATCH_SMS_MSG != 0
+#define AUDIO_MAIN_MENU_SMS "R:/audio/main_menu/AUDIO_MAIN_MENU_SMS.mp3"
+#endif
+#define AUDIO_MAIN_MENU_DIALPAD "R:/audio/main_menu/AUDIO_MAIN_MENU_DIALPAD.mp3"
+#ifndef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
+#define AUDIO_MAIN_MENU_CALL_LOG "R:/audio/main_menu/AUDIO_MAIN_MENU_CALL_LOG.mp3"
+#endif
+#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
+#define AUDIO_MAIN_MENU_HEART_RATE "R:/audio/main_menu/AUDIO_MAIN_MENU_HEART_RATE.mp3"
+#endif
+#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__
+#define AUDIO_MAIN_MENU_SPO2 "R:/audio/main_menu/AUDIO_MAIN_MENU_SPO2.mp3"
+#endif
+#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__
+#define AUDIO_MAIN_MENU_TEMPERATURE "R:/audio/main_menu/AUDIO_MAIN_MENU_TEMPERATURE.mp3"
+#endif
+#ifdef __MMI_WECHAT_SUPPORT__
+#define AUDIO_MAIN_MENU_WECHAT "R:/audio/main_menu/AUDIO_MAIN_MENU_WECHAT.mp3"
+#endif
+#if USE_LV_WATCH_CAMERA != 0
+#define AUDIO_MAIN_MENU_CAMERA "R:/audio/main_menu/AUDIO_MAIN_MENU_CAMERA.mp3"
+#define AUDIO_MAIN_MENU_ALBUM "R:/audio/main_menu/AUDIO_MAIN_MENU_ALBUM.mp3"
+#endif
+#if USE_LV_WATCH_ALIPAY != 0
+#define AUDIO_MAIN_MENU_ALIPAY "R:/audio/main_menu/AUDIO_MAIN_MENU_ALIPAY.mp3"
+#endif
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+#define AUDIO_MAIN_MENU_VIDEO_CALL "R:/audio/main_menu/AUDIO_MAIN_MENU_VIDEO_CALL.mp3"
+#endif
+#ifdef __MMI_TOOL_MENU_SUPPORT__
+#define AUDIO_MAIN_MENU_TOOL "R:/audio/main_menu/AUDIO_MAIN_MENU_TOOL.mp3"
+#endif
+
+#define AUDIO_MAIN_MENU_SETTINGS "R:/audio/main_menu/AUDIO_MAIN_MENU_SETTINGS.mp3"
+
+#else
+
+#define AUDIO_MAIN_MENU_PHONEBOOK NULL
+#define AUDIO_MAIN_MENU_SMS NULL
+#define AUDIO_MAIN_MENU_DIALPAD NULL
+#define AUDIO_MAIN_MENU_CALL_LOG NULL
+#define AUDIO_MAIN_MENU_HEART_RATE NULL
+#define AUDIO_MAIN_MENU_SPO2 NULL
+#define AUDIO_MAIN_MENU_TEMPERATURE NULL
+#define AUDIO_MAIN_MENU_WECHAT NULL
+#define AUDIO_MAIN_MENU_CAMERA NULL
+#define AUDIO_MAIN_MENU_ALBUM NULL
+#define AUDIO_MAIN_MENU_ALIPAY NULL
+#define AUDIO_MAIN_MENU_VIDEO_CALL NULL
+#define AUDIO_MAIN_MENU_TOOL NULL
+#define AUDIO_MAIN_MENU_SETTINGS NULL
+
+#endif
+
+
//******** audio resource end ********
#define ICON_WECHAT_OTHER_VOICE_ITEM_PLAYING2 "R:/png/wechat/ICON_WECHAT_OTHER_VOICE_ITEM_PLAYING2.png"
#define ICON_WECHAT_OTHER_VOICE_ITEM_PLAYING3 "R:/png/wechat/ICON_WECHAT_OTHER_VOICE_ITEM_PLAYING3.png"
#define ICON_WECHAT_VOICE_ITEM_DAMAGE "R:/png/wechat/ICON_WECHAT_VOICE_ITEM_DAMAGE.png"
-#ifndef USE_LV_WATCH_UI_240_240_CIRCLE
+#ifndef USE_LV_WATCH_UI_CIRCLE
#define ICON_WECHAT_RECORDING1 "R:/png/wechat/ICON_WECHAT_RECORDING1.png"
#define ICON_WECHAT_RECORDING2 "R:/png/wechat/ICON_WECHAT_RECORDING2.png"
#define ICON_WECHAT_RECORDING3 "R:/png/wechat/ICON_WECHAT_RECORDING3.png"
#define ICON_KEY_POWER_CANCEL "R:/png/setting/ICON_KEY_POWER_CANCEL.png"
#endif
+#ifdef __MMI_SEDENTARY_REMIND_SUPPORT__
+#define ICON_SETTING_SEDENTARY_REMIND "R:/png/setting/ICON_SETTING_SEDENTARY_REMIND.png"
+#define ICON_SEDENTARY_REMIND_SET_BG "R:/png/setting/ICON_SEDENTARY_REMIND_SET_BG.png"
+#define ICON_SEDENTARY_REMIND_SET_LEFT "R:/png/setting/ICON_SEDENTARY_REMIND_SET_LEFT.png"
+#define ICON_SEDENTARY_REMIND_SET_RIGHT "R:/png/setting/ICON_SEDENTARY_REMIND_SET_RIGHT.png"
+#define ICON_SEDENTARY_REMIND_IMAGE "R:/png/setting/ICON_SEDENTARY_REMIND_IMAGE.png"
+#endif
+
+#ifdef __MMI_PAGE_MAIN_MENU_TTS_SUPPORT__
+#define ICON_SETTING_PAGE_MAIN_MENU_TTS "R:/png/setting/ICON_SETTING_PAGE_MAIN_MENU_TTS.png"
+#endif
+
+#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__
+#define ICON_SETTING_NEW_SMS_SILENT "R:/png/setting/ICON_SETTING_NEW_SMS_SILENT.png"
+#endif
+
#endif
#define MMI_SIM_UNBIND_SWITCH_DEFAULT (MMI_WATCH_SWITCH_OFF) // 0-close; 1-open
#endif
+// sedentary remind
+#ifdef MMI_CUSTOMER_SEDENTARY_SWITCH
+#define MMI_WATCH_SEDENTARY_SWITCH_DEFAULT MMI_CUSTOMER_SEDENTARY_SWITCH
+#else
+#define MMI_WATCH_SEDENTARY_SWITCH_DEFAULT (MMI_WATCH_SWITCH_OFF) // 0-close; 1-open
+#endif
+
+#ifdef MMI_CUSTOMER_SEDENTARY_INTERVAL
+#define MMI_WATCH_SEDENTARY_INTERVAL_DEFAULT MMI_CUSTOMER_SEDENTARY_INTERVAL
+#else
+#define MMI_WATCH_SEDENTARY_INTERVAL_DEFAULT (20) // unit-minute
+#endif
+
+// page main menu tts
+#ifdef MMI_CUSTOMER_PAGE_MAIN_MENU_TTS_SWITCH
+#define MMI_PAGE_MAIN_MENU_TTS_SWITCH_DEFAULT MMI_CUSTOMER_PAGE_MAIN_MENU_TTS_SWITCH
+#else
+#define MMI_PAGE_MAIN_MENU_TTS_SWITCH_DEFAULT (MMI_WATCH_SWITCH_OFF) // 0-close; 1-open
+#endif
+
+// new sms silent
+#ifdef MMI_CUSTOMER_NEW_SMS_SILENT_SWITCH
+#define MMI_NEW_SMS_SILENT_SWITCH_DEFAULT MMI_CUSTOMER_NEW_SMS_SILENT_SWITCH
+#else
+#define MMI_NEW_SMS_SILENT_SWITCH_DEFAULT (MMI_WATCH_SWITCH_OFF) // 0-close; 1-open
+#endif
+
+
+
+
#endif
AUDIO_CTRL_PRIORITY_6, //audio player
AUDIO_CTRL_PRIORITY_7, //setting volume tone
AUDIO_CTRL_PRIORITY_8, //message
+ AUDIO_CTRL_PRIORITY_MENU_TTS,
AUDIO_CTRL_PRIORITY_MAX,
AUDIO_CTRL_PRIORITY_INVALID = 0xFF,
} AUDIO_CTRL_PRIORITY;