331 lines
8.3 KiB
C++
331 lines
8.3 KiB
C++
#ifndef TJD_UI_APP_ALIPAY_VIEW_H
|
|
#define TJD_UI_APP_ALIPAY_VIEW_H
|
|
|
|
#include "TjdUiAppAlipayPresenter.h"
|
|
#include "TjdUiMultiLanguageExt.h"
|
|
#include "View.h"
|
|
#include "components/ui_barcode.h"
|
|
#include "components/ui_button.h"
|
|
#include "components/ui_checkbox.h"
|
|
#include "components/ui_edit_text.h"
|
|
#include "components/ui_image_animator.h"
|
|
#include "components/ui_image_view.h"
|
|
#include "components/ui_label.h"
|
|
#include "components/ui_list.h"
|
|
#include "components/ui_qrcode.h"
|
|
#include "components/ui_scroll_view_nested.h"
|
|
#include "components/ui_slider.h"
|
|
#include "components/ui_swipe_view.h"
|
|
#include "components/ui_view_group.h"
|
|
#include <list>
|
|
|
|
namespace TJD {
|
|
|
|
/* alipay sdk 支持最多20张公交卡 */
|
|
static const uint8_t ALIPAY_TRANS_LIST_ITEM_LEN = 20;
|
|
|
|
class AlipayViewBase : public OHOS::UIScrollView
|
|
{
|
|
public:
|
|
AlipayViewBase() { SetHorizontalScrollState(false); }
|
|
virtual ~AlipayViewBase() {}
|
|
virtual void ShowView() { SetVisible(true); };
|
|
virtual void HideView() { SetVisible(false); };
|
|
};
|
|
|
|
class AlipayButton : public OHOS::UIViewGroup
|
|
{
|
|
public:
|
|
AlipayButton(){};
|
|
AlipayButton(bool isBlue, const char *text, uint8_t size) { InitView(isBlue, text, size); }
|
|
~AlipayButton() { RemoveAll(); }
|
|
void InitView(bool isBlue, const char *text, uint8_t size);
|
|
|
|
private:
|
|
OHOS::UILabel name_;
|
|
};
|
|
|
|
class AlipayProtocolView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayProtocolView();
|
|
~AlipayProtocolView();
|
|
void SetSwipeViewPage(int page);
|
|
|
|
private:
|
|
OHOS::UISwipeView mainView_;
|
|
|
|
OHOS::UIViewGroup protocolMsgGroup_;
|
|
OHOS::UIImageView protocolSelectCodePoint_;
|
|
OHOS::UIImageView protocolUnSelectCodePoint_;
|
|
OHOS::UILabel protocolMsgTitle_;
|
|
OHOS::UILabel protocolMsgDesc_;
|
|
OHOS::UIImageView protocolEnterView_;
|
|
OHOS::UILabel protocolEnterViewDesc_;
|
|
|
|
OHOS::UIViewGroup bindMsgGroup_;
|
|
OHOS::UIImageView bindSelectCodePoint_;
|
|
OHOS::UIImageView bindUnSelectCodePoint_;
|
|
OHOS::UILabel bindMsgTitle_;
|
|
OHOS::UILabel bindMsgDesc_;
|
|
OHOS::UIImageView bindEnterView_;
|
|
OHOS::UILabel bindEnterViewDesc_;
|
|
};
|
|
|
|
class AlipayLogoView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayLogoView();
|
|
~AlipayLogoView() { RemoveAll(); }
|
|
|
|
private:
|
|
OHOS::UIImageView logo_;
|
|
OHOS::UIImageView desc_;
|
|
};
|
|
|
|
class AlipayBindView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayBindView();
|
|
~AlipayBindView() { RemoveAll(); }
|
|
void ShowView() override;
|
|
void HideView() override;
|
|
|
|
private:
|
|
OHOS::UILabel title_;
|
|
OHOS::UIQrcode qrcode_;
|
|
OHOS::UIImageView qrcodeIcon_;
|
|
};
|
|
|
|
class AlipayWaitView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayWaitView();
|
|
~AlipayWaitView();
|
|
void ShowView() override;
|
|
void HideView() override;
|
|
|
|
private:
|
|
OHOS::UIImageAnimatorView animator_;
|
|
OHOS::UILabel desc_;
|
|
OHOS::ImageAnimatorInfo *bindingAnimatorInfo_;
|
|
};
|
|
|
|
class AlipayBindMsgView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayBindMsgView();
|
|
~AlipayBindMsgView() { RemoveAll(); }
|
|
void ShowBinding(AlipayBindStatus status);
|
|
|
|
private:
|
|
OHOS::UIImageView logo_;
|
|
OHOS::UILabel desc_;
|
|
};
|
|
|
|
class AlipayListView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayListView();
|
|
~AlipayListView() { RemoveAll(); }
|
|
|
|
private:
|
|
class AlipayListItem : public OHOS::UIViewGroup
|
|
{
|
|
public:
|
|
AlipayListItem() {}
|
|
~AlipayListItem() { RemoveAll(); }
|
|
void InitView(const OHOS::ImageInfo *iconRes, const char *title);
|
|
|
|
private:
|
|
OHOS::UIImageView icon_;
|
|
OHOS::UILabel title_;
|
|
};
|
|
|
|
AlipayListItem payCodeGroup_;
|
|
AlipayListItem rideCodeGroup_;
|
|
AlipayListItem settingGroup_;
|
|
AlipayListItem helpGroup_;
|
|
};
|
|
|
|
class AlipayPayQrcodeView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayPayQrcodeView();
|
|
~AlipayPayQrcodeView();
|
|
void AlipayRefreshQrcode(const char *refreshStr);
|
|
void AlipayRefreshBarcode(const char *refreshStr);
|
|
void ShowView() override;
|
|
void HideView() override;
|
|
|
|
private:
|
|
OHOS::UISwipeView mainView_;
|
|
|
|
OHOS::UIViewGroup paymentCodeGroup_;
|
|
OHOS::UIImageView paymentSelectCodePoint_;
|
|
OHOS::UIImageView paymentUnSelectCodePoint_;
|
|
OHOS::UILabel paymentCodeTitle_;
|
|
OHOS::UIViewGroup paymentQrcodeGroup_;
|
|
OHOS::UIQrcode paymentQrcode_;
|
|
OHOS::UIImageView paymentQrcodeIcon_;
|
|
|
|
OHOS::UIViewGroup barcodeGroup_;
|
|
OHOS::UIImageView barcodeSelectCodePoint_;
|
|
OHOS::UIImageView barcodeUnSelectCodePoint_;
|
|
OHOS::UILabel barcodeTitle_;
|
|
OHOS::UIViewGroup barcodeIconGroup_;
|
|
OHOS::UIBarcode barcode_;
|
|
OHOS::UILabel barcodeNum_;
|
|
|
|
OHOS::UIView exitView_;
|
|
};
|
|
|
|
class AlipayRideCodeListView : public AlipayViewBase, public OHOS::UIView::OnClickListener
|
|
{
|
|
public:
|
|
AlipayRideCodeListView();
|
|
~AlipayRideCodeListView();
|
|
bool OnClick(UIView &view, const OHOS::ClickEvent &event) override;
|
|
void ShowView() override;
|
|
void UpdateRideCodeList();
|
|
|
|
private:
|
|
class AlipayRideCodeItem : public OHOS::UIViewGroup
|
|
{
|
|
public:
|
|
AlipayRideCodeItem() {}
|
|
~AlipayRideCodeItem() { RemoveAll(); }
|
|
void InitView(const char *desc);
|
|
|
|
private:
|
|
OHOS::UILabel desc_;
|
|
};
|
|
|
|
struct RideCodeItem
|
|
{
|
|
std::string desc;
|
|
AlipayRideCodeItem *item;
|
|
};
|
|
std::list<std::string> rideCodeList_{nullptr};
|
|
RideCodeItem rideItemList_[ALIPAY_TRANS_LIST_ITEM_LEN];
|
|
};
|
|
|
|
class AlipayRideCodeView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayRideCodeView();
|
|
~AlipayRideCodeView();
|
|
static AlipayRideCodeView *GetInstance();
|
|
void ShowQrcode(const char *desc, const char *qrcode, uint32_t len);
|
|
|
|
private:
|
|
OHOS::UILabel desc_;
|
|
OHOS::UIQrcode qrcode_;
|
|
OHOS::UILabel switch_;
|
|
};
|
|
|
|
class AlipaySettingView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipaySettingView();
|
|
~AlipaySettingView() { RemoveAll(); }
|
|
|
|
private:
|
|
OHOS::UILabel title_;
|
|
OHOS::UILabel name_;
|
|
OHOS::UILabel email_;
|
|
AlipayButton removeBind_;
|
|
};
|
|
|
|
class AlipayHelpView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayHelpView();
|
|
~AlipayHelpView() { RemoveAll(); }
|
|
|
|
private:
|
|
OHOS::UILabel desc_;
|
|
AlipayButton enter_;
|
|
};
|
|
|
|
class AlipayUnBindView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayUnBindView();
|
|
~AlipayUnBindView() { RemoveAll(); }
|
|
|
|
private:
|
|
OHOS::UILabel title_;
|
|
OHOS::UILabel desc_;
|
|
AlipayButton enter_;
|
|
AlipayButton cancel_;
|
|
};
|
|
|
|
class AlipayUnBindSucView : public AlipayViewBase
|
|
{
|
|
public:
|
|
AlipayUnBindSucView();
|
|
~AlipayUnBindSucView() { RemoveAll(); }
|
|
|
|
private:
|
|
OHOS::UILabel desc_;
|
|
AlipayButton enter_;
|
|
};
|
|
|
|
class AlipayErrorMsgView : public AlipayViewBase, public OHOS::UIView::OnClickListener
|
|
{
|
|
public:
|
|
AlipayErrorMsgView();
|
|
~AlipayErrorMsgView() { RemoveAll(); }
|
|
bool OnClick(UIView &view, const OHOS::ClickEvent &event);
|
|
void ShowErrorMsg(const char *desc, AlipayViewIndex showIndex);
|
|
|
|
private:
|
|
OHOS::UIImageView errorIcon_;
|
|
OHOS::UILabel errorDesc_;
|
|
AlipayButton errorButton_;
|
|
AlipayViewIndex showIndex_{ALIPAY_UNKNOWN};
|
|
};
|
|
|
|
class AlipayUIScrollView : public OHOS::UIScrollViewNested
|
|
{
|
|
public:
|
|
AlipayUIScrollView() {}
|
|
~AlipayUIScrollView() {}
|
|
bool OnDragStartEvent(const OHOS::DragEvent &event) override;
|
|
bool OnDragEvent(const OHOS::DragEvent &event) override;
|
|
bool OnDragEndEvent(const OHOS::DragEvent &event) override;
|
|
|
|
private:
|
|
bool isOnStart_{false};
|
|
};
|
|
|
|
class TjdUiAppAlipayPresenter;
|
|
class TjdUiAppAlipayView : public OHOS::View<TjdUiAppAlipayPresenter>
|
|
{
|
|
public:
|
|
TjdUiAppAlipayView();
|
|
~TjdUiAppAlipayView();
|
|
static TjdUiAppAlipayView *GetInstance(void);
|
|
void OnStart() override;
|
|
void OnStop() override;
|
|
|
|
void ShowView(AlipayViewIndex showIndex);
|
|
void ShowBindMsg(AlipayBindStatus status);
|
|
void ShowErrorMsg(const char *desc, AlipayViewIndex onClickShowIndex);
|
|
void ShowRideCode(const char *desc, const char *qrcode);
|
|
void RefreshPayCode(const char *payStr);
|
|
void JumpToConsentBindView();
|
|
|
|
static AlipayViewIndex currentViewIndex_;
|
|
|
|
private:
|
|
void InitTargetView(AlipayViewIndex index);
|
|
|
|
AlipayUIScrollView *mainView_{nullptr};
|
|
AlipayViewBase *viewManager_[ALIPAY_UNKNOWN]{nullptr};
|
|
};
|
|
|
|
} // namespace TJD
|
|
|
|
#endif |