#endif
+#ifdef __MMI_TEXT_TTS_PROMPT_SUPPORT__
+
+static mmi_text_tts_prompt_data_t s_text_tts_prompt_data = {0};
+
+void mmi_text_tts_prompt_text_set(char * text_data, uint32_t text_len)
+{
+ if(NULL != s_text_tts_prompt_data.text_data)
+ {
+ lv_mem_free(s_text_tts_prompt_data.text_data);
+ s_text_tts_prompt_data.text_data = NULL;
+ }
+
+ s_text_tts_prompt_data.text_data = (char *)lv_mem_alloc(MMI_TEXT_TTS_PROMPT_TEXT_SRC_LEN);
+ if(NULL == s_text_tts_prompt_data.text_data)
+ {
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ _lv_memset_00(s_text_tts_prompt_data.text_data, (MMI_TEXT_TTS_PROMPT_TEXT_SRC_LEN));
+
+ s_text_tts_prompt_data.text_len = ((text_len > (MMI_TEXT_TTS_PROMPT_TEXT_SRC_LEN - 1)) ? (MMI_TEXT_TTS_PROMPT_TEXT_SRC_LEN - 1) : text_len);
+ _lv_memcpy(s_text_tts_prompt_data.text_data, text_data, s_text_tts_prompt_data.text_len);
+}
+
+static char * mmi_text_tts_prompt_text_data_get(void)
+{
+ return s_text_tts_prompt_data.text_data;
+}
+
+void mmi_text_tts_prompt_tts_set(char * tts_data, uint32_t tts_len)
+{
+ if(NULL != s_text_tts_prompt_data.tts_data)
+ {
+ lv_mem_free(s_text_tts_prompt_data.tts_data);
+ s_text_tts_prompt_data.tts_data = NULL;
+ }
+
+ s_text_tts_prompt_data.tts_data = (char *)lv_mem_alloc(tts_len + 1);
+ if(NULL == s_text_tts_prompt_data.tts_data)
+ {
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ _lv_memset_00(s_text_tts_prompt_data.tts_data, (tts_len + 1));
+
+ s_text_tts_prompt_data.tts_len = tts_len;
+ _lv_memcpy(s_text_tts_prompt_data.tts_data, tts_data, s_text_tts_prompt_data.tts_len);
+}
+
+static char * mmi_text_tts_prompt_tts_data_get(void)
+{
+ return s_text_tts_prompt_data.tts_data;
+}
+
+static uint32_t mmi_text_tts_prompt_tts_len_get(void)
+{
+ return s_text_tts_prompt_data.tts_len;
+}
+
+void mmi_text_tts_prompt_data_free(void)
+{
+ if(NULL != s_text_tts_prompt_data.text_data)
+ {
+ lv_mem_free(s_text_tts_prompt_data.text_data);
+ s_text_tts_prompt_data.text_data = NULL;
+ }
+
+ if(NULL != s_text_tts_prompt_data.tts_data)
+ {
+ lv_mem_free(s_text_tts_prompt_data.tts_data);
+ s_text_tts_prompt_data.tts_data = NULL;
+ }
+
+ _lv_memset_00(&s_text_tts_prompt_data, sizeof(mmi_text_tts_prompt_data_t));
+}
+
+
+static bool s_is_TEXT_TTS_PROMPT = false;
+
+bool mmi_is_TEXT_TTS_PROMPT(void)
+{
+ return s_is_TEXT_TTS_PROMPT;
+}
+
+static lv_remind_obj_ext_t * mmi_text_tts_prompt_screen_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_TEXT_TTS_PROMPT);
+ 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_text_tts_prompt_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_watch_png_cache_all_free();
+
+ Hal_Vibrator_Play_End();
+
+ Hal_Tone_Play_End();
+ Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_3);
+
+ lv_text_tts_prompt_obj_ext_t * ext = mmi_text_tts_prompt_screen_ext_get();
+ if(ext)
+ {
+ if(NULL != ext->timer_id)
+ {
+ Hal_Timer_Stop(ext->timer_id);
+ ext->timer_id = NULL;
+ }
+ }
+
+ watch_set_suspend_enable(true, ACT_ID_TEXT_TTS_PROMPT, 0);
+
+ s_is_TEXT_TTS_PROMPT = false;
+}
+
+void mmi_text_tts_prompt_screen_clean(void)
+{
+ mmi_text_tts_prompt_screen_prepare_destory(NULL);
+
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_TEXT_TTS_PROMPT);
+ if(NULL != activity_obj)
+ {
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_del(activity_obj);
+ }
+}
+
+static void mmi_text_tts_prompt_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED == e)
+ {
+ mmi_text_tts_prompt_screen_clean();
+ mmi_text_tts_prompt_data_free();
+ }
+}
+
+static void mmi_text_tts_prompt_screen_timeout(void * para)
+{
+ mmi_text_tts_prompt_screen_clean();
+ mmi_text_tts_prompt_data_free();
+}
+
+static lv_obj_t * mmi_text_tts_prompt_screen_create(lv_obj_t * activity_obj)
+{
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(NULL == activity_obj)
+ {
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_TEXT_TTS_PROMPT;
+ activity_ext.create = mmi_text_tts_prompt_screen_create;
+ activity_ext.prepare_destory = mmi_text_tts_prompt_screen_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_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO); // LV_WATCH_ANIM_HOR_RIGHT_HIDE);
+ lv_text_tts_prompt_obj_ext_t * ext = (lv_text_tts_prompt_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_text_tts_prompt_obj_ext_t));
+
+ lv_obj_t * cont = lv_cont_create(obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ //lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+
+
+ // image
+ lv_obj_t * img_prompt = lv_img_create(cont, NULL);
+ lv_img_set_src(img_prompt, ICON_TEXT_TTS_PROMPT);
+ lv_obj_align(img_prompt, NULL, LV_ALIGN_IN_TOP_MID, 0, 4);
+
+ // text
+ lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font18);
+ lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_BREAK);
+ lv_obj_set_width(label_prompt, lv_obj_get_width(obj) - 24);
+ lv_label_set_text(label_prompt, mmi_text_tts_prompt_text_data_get());
+ lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, -5);
+
+ // button
+ lv_obj_t * imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_TEXT_TTS_PROMPT_BUTTON);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_TEXT_TTS_PROMPT_BUTTON);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 0, 173);
+ lv_obj_set_event_cb(imgbtn, mmi_text_tts_prompt_btn_event_cb);
+
+ lv_obj_t * label_btn = lv_label_create(imgbtn, NULL);
+ lv_obj_add_style(label_btn, LV_LABEL_PART_MAIN, &lv_watch_font20);
+ lv_label_set_text_id(label_btn, WATCH_TEXT_ID_GOT_IT);
+ lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, 0);
+
+ /* start timer (1 min) */
+ ext->timer_id = Hal_Timer_Start(MMI_TEXT_TTS_PROMPT_TIMEOUT, mmi_text_tts_prompt_screen_timeout, NULL, false);
+
+ watch_set_suspend_enable(false, ACT_ID_TEXT_TTS_PROMPT, 0);
+
+ s_is_TEXT_TTS_PROMPT = true;
+
+ return obj;
+}
+
+static void mmi_text_tts_prompt_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: priority=%d\n", __FUNCTION__, __LINE__, priority);
+
+ if(AUDIO_CTRL_PRIORITY_3 == priority)
+ {
+ //
+ }
+ else if(AUDIO_CTRL_PRIORITY_3 > priority)
+ {
+ mmi_text_tts_prompt_screen_clean();
+ }
+}
+
+void mmi_ui_msg_update_text_tts_prompt(void)
+{
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(mmi_is_TEXT_TTS_PROMPT())
+ {
+ mmi_text_tts_prompt_screen_clean();
+ uos_sleep(20);
+ }
+
+ if(AUDIO_CTRL_PRIORITY_3 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_3, mmi_text_tts_prompt_audio_ctrl_callback))
+ {
+ uint8_t volume = 0;
+ #ifdef __MMI_USER_PROFILE_SUPPORT__
+ volume = mmi_user_profile_current_mode_remind_volume_get();
+ #else
+ volume = query_current_volume();
+ #endif
+ Hal_Tone_Play_Repeat(mmi_text_tts_prompt_tts_data_get(), mmi_text_tts_prompt_tts_len_get(), volume);
+
+ if(true == mmi_watch_vibrate_is_permitted())
+ Hal_Vibrator_Play_Repeat();
+
+ mmi_text_tts_prompt_screen_create(NULL);
+ }
+}
+
+void mmi_text_tts_prompt_action(void)
+{
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(true == mmi_active_screen_is_prohibit_interrupted()
+ #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+ || true == mmi_watch_is_in_do_not_disturb_time()
+ #endif
+ )
+ {
+ return ;
+ }
+
+ // ui
+ mmi_watch_wake_up();
+ mmi_ui_msg_action_text_tts_prompt();
+}
+#endif
+
#endif