134 lines
3.2 KiB
C++
134 lines
3.2 KiB
C++
/*----------------------------------------------------------------------------
|
|
* 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 <list>
|
|
#include <unordered_map>
|
|
|
|
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<TjdUiAppCallPresenter>
|
|
{
|
|
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 |