#ifndef TJDUI_APP_VOICE_ASSISTANT_H #define TJDUI_APP_VOICE_ASSISTANT_H #include "TjdUiAppVoiceAssistantPresenter.h" #include "View.h" #include "components/ui_label.h" #include "components/ui_list.h" #include "components/ui_image_view.h" #include "components/ui_scroll_view.h" #include "components/ui_button.h" #include "graphic_timer.h" #include // #include "components/ui_image_animator.h" // #include "components/ui_scroll_view.h" // #include "components/ui_label.h" #include "UiConfig.h" #include "dfx/event_injector.h" #include "wearable_log.h" #include "AppGroupView.h" using namespace OHOS; namespace TJD { enum SwitchApp { SWITCH_TO_XIAOYI, SWITCH_TO_MAKECALL, SWITCH_TO_CUTCALL, PRE_SONG, NEXT_SONG, INCREASE_VOLUME, DECREASE_VOLUME, SWITCH_TO_PLAYER, PAUSE_PLAYBACK, RESUME_PLAYBACK, SWITCH_TO_EXERCISE, SWITCH_TO_MESSAGE, SWITCH_TO_ALARM, SWITCH_TO_ALIPAY, SWITCH_TO_WECHATPAY, SWITCH_TO_UNKNOWN, SWITCH_TO_VOCASSIST, }; enum SwitchWordOrGraph { CREATE_CMD_LABEL = SWITCH_TO_VOCASSIST + 1, VOC_VIEW, WAVE_VIEW, VOC_TO_WAVE_VIEW, WAVE_TO_VOC_VIEW }; // typedef bool (TjdUiAppVoiceAssistantView::*VoiceAssistantChangeView)(VoiceAssistantView hideView); // class VoiceAssistantOnClickedListener : public UIView::OnClickListener // { // public: // VoiceAssistantOnClickedListener() {} // virtual ~VoiceAssistantOnClickedListener() {} // virtual bool OnClick(UIView &view, const ClickEvent &event); // private: // }; // class TjdUiAppVoiceAssistantPresenter; // class TjdUiAppVoiceAssistantView : public OHOS::View, public OHOS::UIViewGroup // { // public: // TjdUiAppVoiceAssistantView(); // ~TjdUiAppVoiceAssistantView(); // static TjdUiAppVoiceAssistantView *GetInstance(void); // void OnStart() override; // void OnSetUpView() override; // void OnTearDownView() override; // void OnStop() override; // void ChangedView(VoiceAssistantView view, VoiceAssistantView hideView); // OHOS::UIImageView *GetIconImage(){return IconView;}; // OHOS::UILabel *GetTipLabel(){return TipLabel;}; // OHOS::UIButton *GetContinueBtn(){return ContinueView;}; // OHOS::UIButton *GetReturnBtn(){return ReturnBtn;}; // GraphicTimer *GetContinueTimer(){return timer_;}; // GraphicTimer *GetWaitTimeout(){return waittimeout;}; // private: // OHOS::UIViewGroup *groupList_[VoiceAssistantView::VOICEASSISTANT_MAXTHVIEW]{nullptr}; // OHOS::UIViewGroup *container_{nullptr}; // OHOS::UIViewGroup *initView_{nullptr}; // OHOS::UIViewGroup *voiceAssistantView_{nullptr}; // OHOS::UILabel *voiceTipLabel{nullptr}; // OHOS::UIImageView *voiceIconView{nullptr}; // OHOS::UILabel *TipLabel{nullptr}; // OHOS::UIImageView *BgView{nullptr}; // OHOS::UIImageView *IconView{nullptr}; // OHOS::UIButton *ContinueView{nullptr}; // OHOS::UIButton *ReturnBtn{nullptr}; // OHOS::ImageInfo* imgInfo{nullptr}; // VoiceAssistantOnClickedListener *onClickListener_{nullptr}; // UIView::OnDragListener *OnDragListener_{nullptr}; // GraphicTimer *timer_{nullptr}; // GraphicTimer *waittimeout{nullptr}; // bool ShowInitView(VoiceAssistantView hideView); // bool ShowVoiceView(VoiceAssistantView hideView); // OHOS::UIViewGroup *InitVoiceAssistantView(); // VoiceAssistantChangeView viewMapper_[VOICEASSISTANT_MAXTHVIEW] = { // &TjdUiAppVoiceAssistantView::ShowInitView, // &TjdUiAppVoiceAssistantView::ShowVoiceView, // }; // }; class VoiceAssistantViewBase : public OHOS::UIScrollView { public: VoiceAssistantViewBase() { SetHorizontalScrollState(false); } virtual ~VoiceAssistantViewBase() {} virtual void ShowView() { SetVisible(true); }; virtual void HideView() { SetVisible(false); }; }; class VoiceAssistantMainView : public VoiceAssistantViewBase { public: VoiceAssistantMainView(); ~VoiceAssistantMainView(); OHOS::UILabel & GetDescLabel() { return desc_; } static VoiceAssistantMainView *GetInstance(void); void ShowView() override; void HideView() override; std::string GetCmdContext(); void SetCmdContext(std::string str); GraphicTimer *GetTimer() { return timer_; } private: OHOS::UIImageView bg_; OHOS::UIImageView icon_; OHOS::UILabel desc_; OHOS::UIButton descButtom_; GraphicTimer *timer_{nullptr}; std::string allWord; // 记录显示文字 }; class VoiceAssistantAwakeView : public VoiceAssistantViewBase { public: VoiceAssistantAwakeView(); ~VoiceAssistantAwakeView(); static VoiceAssistantAwakeView *GetInstance(void); void ShowView() override; void HideView() override; GraphicTimer *GetTimer() { return timer_; } private: OHOS::UIImageView bg_; OHOS::UIImageView icon_; OHOS::UILabel desc_; OHOS::UILabel descButtom_; GraphicTimer *timer_{nullptr}; }; class TjdUiAppVoiceAssistantPresenter; class TjdVoiceAssistance; class TjdUiAppVoiceAssistantView : public OHOS::View { public: TjdUiAppVoiceAssistantView(); ~TjdUiAppVoiceAssistantView(); static TjdUiAppVoiceAssistantView *GetInstance(void); void OnStart() override; void OnStop() override; void ShowView(VoiceAssistantIndex showIndex); static VoiceAssistantIndex currentViewIndex_; bool isFirstInto_ = true; // static VoiceAssistantOnClickedListener onclicklister_; private: VoiceAssistantViewBase *viewManager_[VoiceAssistantIndex::VOICEASSISTANT_MAXTHVIEW]{nullptr}; OHOS::UIScrollView *mainView_{nullptr}; void InitTargetView(VoiceAssistantIndex index); TjdVoiceAssistance* vocassistance{nullptr}; }; class TjdVoiceAssistance : public OHOS::AppGroupView { public: TjdVoiceAssistance(); ~TjdVoiceAssistance() override; bool InitView(void *caller) override; static TjdVoiceAssistance *GetInstance(); void SwitchMedium(uint16_t targetView); void VocSwitchApp(uint16_t targetView); int VocResponse(); // 小艺回复我在 int ChangeViewToPlayer(); // 切换到音乐播放界面 int ChangePreSong(); // 切换到上一首 int ChangeNextSong(); // 切换到下一首 // int ChangeStopPlayback(); // 停止播放 int ChangePausePlayback(); // 切换到暂停 int ChangeResumePlayback(); // 切换到播放 int ChangeIncreaseVolume(); // 增加音量 int ChangeDecreaseVolume(); // 减少音量 int ChangeAcceptPhone(); // 接听电话 int ChangeHangupPhone(); // 挂断电话 int ChangeOpenExecise(); // 打开运动 int ChangeOpenMessage(); // 打开短信 int ChangeOpenAlarm(); // 打开闹钟 int ChangeOpenAlipay(); // 打开支付宝支付 int ChangeOpenWechatpay(); // 打开微信支付 // int ResponseWithoutUse(); // 打开语音助手没有操作 void DetermineCause(const int *eventRet); // 根据场景回复命令词 void SetCmdContext(std::string str); // 设置要展示的文字 bool isTrueStopPlay_ = false; private: }; } // namespace TJD #endif