/*---------------------------------------------------------------------------- * Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved. * * Description: TjdUiAppCallView.h * * Author: luziquan@ss-tjd.com * * Create: 2025-08-16 *--------------------------------------------------------------------------*/ #ifndef TJD_UI_APP_CALL_VIEW_H #define TJD_UI_APP_CALL_VIEW_H #include "TjdUiAppCallPresenter.h" #include "TjdUiMsgCenter.h" #include "View.h" #include "components/ui_button.h" #include "components/ui_image_animator.h" #include "components/ui_image_view.h" #include "components/ui_label_ext.h" #include "components/ui_list.h" #include "components/ui_scroll_view.h" #include "components/ui_slider.h" #include "notification_manager.h" #include #include namespace TJD { class CallViewBase : public OHOS::UIScrollView { public: CallViewBase() { SetHorizontalScrollState(false); } virtual ~CallViewBase() {} virtual void ShowView() { SetVisible(true); }; virtual void HideView() { SetVisible(false); }; }; class CallInView : public OHOS::UIViewGroup { public: CallInView(); ~CallInView() { RemoveAll(); } void SetMsgClickEvent(OHOS::UIView::OnClickListener *listener); void SetCallName(std::string &name); private: OHOS::UIImageView bg_; OHOS::UIImageView callStop_; OHOS::UIImageView callAnswer_; OHOS::UILabel name_; OHOS::UILabelExt status_; }; class CallOutView : public CallViewBase { public: CallOutView(); ~CallOutView() { RemoveAll(); } void ShowView() override; private: OHOS::UIImageView callStop_; OHOS::UILabel name_; OHOS::UILabelExt status_; }; class CallingView : public CallViewBase { public: CallingView(); ~CallingView() { RemoveAll(); } void ShowView() override; void HideView() override; void SetCallTime(std::string &time); private: OHOS::UIImageView callStop_; OHOS::UILabel name_; OHOS::UILabel time_; }; class CallEndView : public CallViewBase { public: CallEndView(); ~CallEndView() { RemoveAll(); } void ShowView() override; void SetCallStatus(std::string &status); private: OHOS::UIImageView callStop_; OHOS::UILabel name_; OHOS::UILabelExt status_; }; class VolumeControlBarView : public CallViewBase { public: VolumeControlBarView(); ~VolumeControlBarView() { RemoveAll(); } int SetVolume(int volume); int GetVolume(void); private: OHOS::UISlider volumeSlider_; }; class TjdUiAppCallPresenter; class TjdUiAppCallView : public OHOS::View { public: TjdUiAppCallView(); ~TjdUiAppCallView(); static TjdUiAppCallView *GetInstance(void); void OnStart() override; void OnStop() override; void ShowView(CallViewIndex showIndex); void SetVolumeControlBarVisable(bool visable); int ChangeVolumeControlBarValue(int volume); int GetVolumeControlBarValue(void); void SetCallingTime(std::string &time); static CallViewIndex currentViewIndex_; private: CallViewBase *viewManager_[CallViewIndex::CALL_UNKNOWN]{nullptr}; OHOS::UIScrollView *mainView_{nullptr}; void InitTargetView(CallViewIndex index); VolumeControlBarView volumeControlBarView_; }; } // namespace TJD #endif