#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 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, 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