From: CCC <2393524978@qq.com> Date: Sat, 9 Dec 2023 08:45:05 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=9a8000b7b39821ceadacc90cf7489ca6474967e4;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/project/Z5_DS_Z12XW_QCB/gui/lv_watch/resource/png/setting/ICON_SETTING_NEW_SMS_SILENT.png b/2.sdk/project/Z5_DS_Z12XW_QCB/gui/lv_watch/resource/png/setting/ICON_SETTING_NEW_SMS_SILENT.png new file mode 100644 index 00000000..ccd896d7 Binary files /dev/null and b/2.sdk/project/Z5_DS_Z12XW_QCB/gui/lv_watch/resource/png/setting/ICON_SETTING_NEW_SMS_SILENT.png differ diff --git a/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_conf_CUSTOM.h b/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_conf_CUSTOM.h index 2745488d..9cc85b12 100644 --- a/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_conf_CUSTOM.h +++ b/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_conf_CUSTOM.h @@ -8,18 +8,15 @@ //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 diff --git a/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h b/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h index fe529aef..2e36580c 100644 --- a/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h +++ b/2.sdk/project/Z5_DS_Z12XW_QCB/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h @@ -153,6 +153,11 @@ #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 @@ -184,7 +189,6 @@ #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__ @@ -201,9 +205,11 @@ #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 diff --git a/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_conf_CUSTOM.h b/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_conf_CUSTOM.h index 4afcaeab..f4dc48bb 100644 --- a/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_conf_CUSTOM.h +++ b/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_conf_CUSTOM.h @@ -8,18 +8,15 @@ //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 diff --git a/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h b/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h index 9a10cf3f..53021ac7 100644 --- a/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h +++ b/2.sdk/project/Z5_Z12/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h @@ -131,7 +131,7 @@ #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 @@ -153,6 +153,11 @@ #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 @@ -163,6 +168,7 @@ //#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__ diff --git a/2.sdk/sdk/gui/lv_watch/CMakeLists.txt b/2.sdk/sdk/gui/lv_watch/CMakeLists.txt index 94846404..1ff1d3c1 100644 --- a/2.sdk/sdk/gui/lv_watch/CMakeLists.txt +++ b/2.sdk/sdk/gui/lv_watch/CMakeLists.txt @@ -213,7 +213,6 @@ set(lv_watch_sources 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 diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h index b3222f2e..df3a0067 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h @@ -54,9 +54,8 @@ extern "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)) @@ -169,9 +168,8 @@ typedef lv_fs_dir_t ui_dir_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" diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c index 8a08fe25..4d1859ac 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c @@ -100,12 +100,10 @@ uint32_t UI_NV_Get_Section_Len(NV_UI_SECTION_ID SectionId) 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)); @@ -225,12 +223,10 @@ char * UI_NV_Get_Section_path(NV_UI_SECTION_ID SectionId) 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)); @@ -311,6 +307,7 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) #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 @@ -539,20 +536,6 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) 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); @@ -560,6 +543,13 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) 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: diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h index 647a797f..90b459fb 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h @@ -300,6 +300,28 @@ typedef struct } __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) @@ -523,9 +545,8 @@ enum #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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.c b/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.c index 458eeb1f..d883ceaf 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.c @@ -12,6 +12,364 @@ #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, @@ -133,7 +491,7 @@ static lv_obj_t * call_log_list_create(lv_obj_t * obj) 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); @@ -399,6 +757,8 @@ void call_log_create_event_cb(lv_obj_t * btn, lv_event_t e) } } +#endif + #else /********************* diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.h b/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.h index 6ea20c2f..2baceb61 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/call_log/call_log.h @@ -57,9 +57,15 @@ typedef struct { /** * 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.c b/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.c index 9edac5ac..25df25c2 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.c @@ -48,51 +48,6 @@ static lv_res_t dialpad_btn_short_click_action(lv_obj_t * btn); * 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; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.h b/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.h index 8e37db03..b8d625f4 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dialpad/dialpad.h @@ -38,11 +38,6 @@ typedef struct { **********************/ 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c index e357a9b2..ff0f5de2 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c @@ -331,6 +331,19 @@ static void launcher_tileview_event_cb(lv_obj_t * tileview, lv_event_t e) 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 + } } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c index d7fb4bf4..9b35e221 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.c @@ -7,15 +7,20 @@ #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}, @@ -135,6 +140,30 @@ void mmi_remind_sleep_screen_active(void) } #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) { @@ -237,6 +266,9 @@ static lv_obj_t * mmi_remind_screen_create(lv_obj_t * activity_obj) //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}; @@ -250,8 +282,9 @@ static lv_obj_t * mmi_remind_screen_create(lv_obj_t * activity_obj) 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); @@ -259,15 +292,19 @@ static lv_obj_t * mmi_remind_screen_create(lv_obj_t * activity_obj) 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); @@ -290,15 +327,17 @@ void mmi_remind_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority) 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 @@ -332,8 +371,7 @@ void mmi_remind_screen_active(void) 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; } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h index 0ccdf211..75e0712d 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_remind/mmi_remind.h @@ -23,10 +23,16 @@ extern "C" { #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; @@ -36,6 +42,7 @@ typedef struct 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c index b458687d..864e3223 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c @@ -75,7 +75,11 @@ void phonebook_init(void) 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; @@ -1155,6 +1159,373 @@ static lv_obj_t * phonebook_create(lv_obj_t * activity_obj) #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); @@ -1214,7 +1585,7 @@ static void mmi_phonebook_contacts_list_create(lv_obj_t * obj, nv_watch_phoneboo 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 @@ -1370,6 +1741,9 @@ void mmi_phonebook_create_event_cb(lv_obj_t * btn, lv_event_t e) mmi_phonebook_create(NULL); } } + +#endif + #endif @@ -1405,49 +1779,6 @@ void mmi_phonebook_contact_list_set(app_adaptor_contact_t * contact_list, uint8_ 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.h b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.h index 09b52a91..8cdef3de 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.h @@ -72,7 +72,7 @@ char * phonebook_get_phone_number(uint8_t id); /*[0, NV_WATCH_MAX_CONTACT_NUM - #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 @@ -81,6 +81,24 @@ char * phonebook_get_phone_number(uint8_t id); /*[0, NV_WATCH_MAX_CONTACT_NUM - #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; @@ -94,12 +112,6 @@ typedef struct 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c index ec479029..b19e91a2 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c @@ -118,7 +118,8 @@ void primary_menu_init(void) 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); @@ -128,7 +129,7 @@ void primary_menu_init(void) 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; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h index 80be3348..f25967fb 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h @@ -116,6 +116,22 @@ void mmi_main_menu_style_nv_default(nv_watch_main_menu_style_t * data); 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 /********************** diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c index 2188f119..c21e2fab 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c @@ -74,47 +74,56 @@ static watch_app_info_t s_main_menu_four_grid[] = // 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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c index d6318a1b..ce6bef20 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c @@ -10,6 +10,13 @@ #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; @@ -38,6 +45,15 @@ static mmi_watch_list_item_t settingList[] = #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 @@ -189,6 +205,10 @@ void setting_init(void) #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) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h index 8f8baa34..accb1533 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h @@ -36,7 +36,12 @@ extern "C" { #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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.c new file mode 100644 index 00000000..a370077b --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.c @@ -0,0 +1,136 @@ + + + +#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 + + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.h new file mode 100644 index 00000000..c4ff9d2b --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_ext.h @@ -0,0 +1,58 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.c new file mode 100644 index 00000000..b8f71408 --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.c @@ -0,0 +1,138 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.h new file mode 100644 index 00000000..b67cce4f --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_new_sms_silent.h @@ -0,0 +1,42 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.c new file mode 100644 index 00000000..d551b562 --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.c @@ -0,0 +1,177 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.h new file mode 100644 index 00000000..45f4add7 --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_page_main_menu_tts.h @@ -0,0 +1,43 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.c new file mode 100644 index 00000000..10ac836c --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.c @@ -0,0 +1,300 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.h new file mode 100644 index 00000000..b10d9718 --- /dev/null +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_sedentary_remind.h @@ -0,0 +1,50 @@ + + + +#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 + diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.c b/2.sdk/sdk/gui/lv_watch/lv_watch.c index 21562ae6..adca89c4 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.c @@ -120,8 +120,6 @@ static void mmi_data_init_after_watch_create(void) #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 diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h index 688075af..1fd58462 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -46,6 +46,69 @@ extern "C" { #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 ******** @@ -826,7 +889,7 @@ LV_IMG_DECLARE(img_poweron_logo); #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" @@ -895,6 +958,22 @@ LV_IMG_DECLARE(img_poweron_logo); #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 diff --git a/2.sdk/sdk/gui/lv_watch/mmi_default.h b/2.sdk/sdk/gui/lv_watch/mmi_default.h index 0fc44f9a..f471898c 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_default.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_default.h @@ -223,6 +223,36 @@ extern "C" #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 diff --git a/2.sdk/sdk/gui/lvgl/hal/hal.h b/2.sdk/sdk/gui/lvgl/hal/hal.h index f85f20a6..8fb4a83a 100644 --- a/2.sdk/sdk/gui/lvgl/hal/hal.h +++ b/2.sdk/sdk/gui/lvgl/hal/hal.h @@ -796,6 +796,7 @@ typedef enum 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;