217 lines
7.2 KiB
C++
217 lines
7.2 KiB
C++
#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 <string>
|
|
// #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<TjdUiAppVoiceAssistantPresenter>, 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<TjdUiAppVoiceAssistantPresenter>
|
|
{
|
|
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 |