mcu_hi3321_watch/tjd/ui/app/alipay/TjdUiAppAlipayPresenter.h
2025-05-26 20:15:20 +08:00

117 lines
4.2 KiB
C++

#ifndef TJD_UI_APP_ALIPAY_PRESENTER_H
#define TJD_UI_APP_ALIPAY_PRESENTER_H
#include "Presenter.h"
#include "TjdUiTaskListener.h"
#include "TjdUiScreenDrag.h"
#include "components/root_view.h"
#include "components/ui_slider.h"
#include "components/ui_view.h"
#include "graphic_timer.h"
#include <string>
namespace TJD {
#define ALIPAY_CONSENT_PROTOCOL_VIEWID "btnAlipayConsentProtocol"
#define ALIPAY_CONSENT_BIND_VIEWID "btnAlipayConsentBind"
#define ALIPAY_PAYCODE_VIEWID "btnAlipayPayCode"
#define ALIPAY_RIDECODE_VIEWID "btnAlipayRideCode"
#define ALIPAY_SETTING_VIEWID "btnAlipaySetting"
#define ALIPAY_HELP_VIEWID "btnAlipayHelp"
#define ALIPAY_REMOVE_BIND_VIEWID "btnAlipayRemoveBind"
#define ALIPAY_UNBIND_ENTER_VIEWID "btnAlipayUnbindEnter"
#define ALIPAY_UNBIND_CANCEL_VIEWID "btnAlipayUnbindCancel"
#define ALIPAY_UNBIND_KNOWN_VIEWID "btnAlipayUnbindKnown"
#define ALIPAY_SWITCH_QRCODE_VIEWID "btnAlipaySwitchQrcode"
#define ALIPAY_HELP_KNOWN_VIEWID "btnAlipayHelpKnown"
#define ALIPAY_EXIT_VIEWID "btnAlipayExit"
enum AlipayViewIndex
{
ALIPAY_LOGO = 0, // logo
ALIPAY_PROTOCOL, // 同意协议页面
ALIPAY_BIND, // 绑定页面
ALIPAY_WAITING, // 等待中
ALIPAY_BIND_INFO, // 绑定信息
ALIPAY_LIST, // 列表
ALIPAY_PAY_QRCODE, // 支付二维码
ALIPAY_RIDE_CODE_LIST, // 乘车码列表
ALIPAY_RIDE_QRCODE, // 乘车码二维码
ALIPAY_SETTING, // 设置
ALIPAY_HELP, // 帮助
ALIPAY_UNBIND, // 解绑
ALIPAY_UNBIND_SUC, // 解绑成功
ALIPAY_ERROR, // 错误
ALIPAY_UNKNOWN
};
enum AlipayBindStatus
{
ALIPAY_BIND_SUCCESS = 0,
ALIPAY_BIND_FAIL,
ALIPAY_BIND_MAX
};
class TjdUiAppAlipayView;
class TjdUiAppAlipayPresenter : public OHOS::Presenter<TjdUiAppAlipayView>,
public TjdUiTaskListener,
public OHOS::UIView::OnClickListener,
public TjdUiScreenDragListener,
public OHOS::RootView::OnKeyActListener
{
public:
TjdUiAppAlipayPresenter();
virtual ~TjdUiAppAlipayPresenter();
static TjdUiAppAlipayPresenter *GetInstance(void);
virtual void Notify() override{};
void OnStart() override;
void OnStop() override;
bool OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event) override;
void ScreenDragEventCallback(OHOS::UIView &view, const OHOS::DragEvent &event) override { ViewExitEvent(true); }
bool OnKeyAct(OHOS::UIView &view, const OHOS::KeyEvent &event) override;
void OnClickTrans(OHOS::UIView &view);
bool IsChinese();
bool IsAlipayBinded();
int32_t AlipayGetBindCode(uint8_t *bindStr);
bool AlipayStartBindTimer();
bool AlipayDelayStartBindTimer();
void AlipayStopBindTimer(void);
AlipayViewIndex GetCurrentViewIndex();
uint8_t *AlipayGetTransCode(void);
uint32_t AlipayGetTransCodeLen(void);
static void AlipayMsgTransListCallBackProcFunc(uint32_t actionRes);
static void AlipayMsgTransSpeCardCallBackProcFunc(uint32_t actionRes);
bool AlipayStartSwitchTimer(uint16_t time);
void AlipayStopSwitchTimer();
int32_t AlipayGetPayCode(uint8_t *payStr);
uint32_t AlipayGetCardSum(void);
char *AlipayGetCardTitle(uint32_t index);
char *AlipayGetCardTitle(void);
int32_t AlipayGetNickName(uint8_t *nickName);
int32_t AlipayGetIdName(uint8_t *idStr);
bool AlipayTransStartGetListsTimer(void);
void AlipayTransStopGetListsTimer(void);
void ViewExitEvent(bool isSwipe);
void CompleteLogoEvent(void);
void DeleteJumpTimer();
void StartJumpTimer(AlipayViewIndex jumpView);
void RefreshPayCodeEvent();
void BindSuccessEvent();
void SetScreenBrightnessMax();
void ResetScreenBrightness();
private:
bool StartLogoTimer();
osTimerId_t bindTimerId{nullptr};
osTimerId_t delayStartBindTimerId{nullptr};
osTimerId_t switchTimerId{nullptr};
osTimerId_t transTimerId{nullptr};
osTimerId_t logoTimerId_{nullptr};
osTimerId_t jumpTimerId_{nullptr};
bool isExit_{false};
};
} // namespace TJD
#endif