增加支付宝界面
authorCaisking <3449750381@qq.com>
Thu, 1 Feb 2024 10:47:07 +0000 (18:47 +0800)
committerCaisking <3449750381@qq.com>
Thu, 1 Feb 2024 10:47:07 +0000 (18:47 +0800)
84 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBarCode.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBind.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindAni.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindRes.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayExitBind.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayHelp.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListAdapter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItem.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItemView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayMainView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPayCode.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayRefreshBindCode.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipaySetting.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayGetTransList.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransAni.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransCode.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransEnable.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListAdapter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItem.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItemView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransRes.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransTips.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbind.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbindFinish.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBarCode.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBind.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindAni.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindRes.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayHelp.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListAdapter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListItemView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPayCode.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipaySetting.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayGetTransList.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransAni.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransCode.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransEnable.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListAdapter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListItemView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransRes.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbind.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp
code/sdk/application/wearable/nativeapp/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/nativeapp/nativelauncher/include/NativeLauncher.h
code/sdk/build/config/target_config/brandy/config.py
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_BIND_FAILURE.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_BIND_FAILURE.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_BIND_SUCCESS.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_BIND_SUCCESS.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_LIST_HELP.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_LIST_HELP.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_LIST_PAY.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_LIST_PAY.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_LIST_SETTING.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_LIST_SETTING.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_LIST_TRANS.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_LIST_TRANS.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_PAY_ICON_GREY.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_PAY_ICON_GREY.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/ALIPAY_PAY_ICON_WHITE.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/ALIPAY_PAY_ICON_WHITE.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay/alipay_logo.bin [moved from code/sdk/build/config/target_config/brandy/mk_fs_image/evb4/fs/user/res/alipay_logo.bin with 100% similarity]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_FAILURE.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_SUCCESS.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_HELP.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_PAY.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_SETTING.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_TRANS.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_GREY.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_WHITE.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/alipay_logo.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang [new file with mode: 0644]

index f179865..492b2bf 100644 (file)
@@ -42,6 +42,11 @@ set(PRIVATE_HEADER
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/UIInitializer/
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/InitComponent/include
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/uitest/framework/include
+
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayList
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayTrans
+
     ${UI_SAMPLE_ROOT}/components
     ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/smart_voice_service/interfaces/innerkits/native_c/include
     ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/voice_engine_hal/interfaces/innerkits/native_c/include
@@ -78,6 +83,11 @@ set(PRIVATE_HEADER
     ${ROOT_DIR}/open_source/openharmony/foundation/graphic/surface/interfaces/kits
     ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/interfaces/kits/components
     ${ROOT_DIR}/open_source/openharmony/foundation/multimedia/player/interfaces/kits/
+    ${ROOT_DIR}/open_source/openharmony/third_party/qrcodegen/cpp
+    ${ROOT_DIR}/include/middleware/services/bts/common
+    ${ROOT_DIR}/include/middleware/services/bts/ble
+    ${ROOT_DIR}/include/middleware/services/bts/br
+
 
     ${ROOT_DIR}/include/middleware/services/bts/common
     ${ROOT_DIR}/include/middleware/services/bts/ble
@@ -312,7 +322,39 @@ set(SOURCES
     ${UI_SAMPLE_ROOT}/components/ui_test_video_play/ui_test_video_play.cpp
        # ${UI_SAMPLE_ROOT}/components/ui_test_video_play/media_video_play.cpp
 )
+if("SUPPORT_ALIPAY_SEC" IN_LIST DEFINES)
+set(SOURCES   
+    ${SOURCES}
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayMainView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayBind.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayExitBind.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayBindRes.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayBindAni.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayPayCode.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayBarCode.cpp
+
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipaySetting.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayHelp.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayUnbindFinish.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayUnbind.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayList/AlipayListAdapter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayList/AlipayListView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayList/AlipayListItemView.cpp
 
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayGetTransList.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransCode.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransEnable.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransRes.cpp
+
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransListAdapter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransListView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransListItemView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/src/AlipayTrans/AlipayTransAni.cpp
+)
+endif()
 set(COMPONENT_PUBLIC_CCFLAGS
 )
 
index 26c098c..48657d9 100644 (file)
@@ -27,35 +27,35 @@ typedef enum : uint16_t
 {
     VIEW_INVALID = 0, // 无效视图
     /* ----------------------------- 每一个id对应一个slice ----------------------------- */
-    VIEW_MAIN = 1,               // 主界面
-    VIEW_SETTING,                // 设置
-    VIEW_APPLIST,                // App应用
-    VIEW_MAIN_ALARM,             // 闹钟
-    VIEW_ALARM_POP_UP,           // 闹铃界面
-    VIEW_BLUETOOTH_EARPHONE,     // 连接蓝牙耳机界面
-    VIEW_CALLER_LOG,             // 通话记录界面
-    VIEW_INCOMING_CALL,          // 来电界面
-    VIEW_BLOODOXY,               // 血氧饱和度界面
-    VIEW_COMPASS,                // 指南针界面
-    VIEW_CONNECT_PHONE,          // 连接手机界面
-    VIEW_INDOORWALK,             // 室内步行
-    VIEW_SHUTDOWN_OR_REBOOT,     // 关机或重启界面
-    VIEW_WEATHER,                // 天气
-    VIEW_WEATHER_REPORT,         // 气象报告
-    VIEW_FUTURE_WEATHER,         // 未来天气
-    VIEW_GET_WEATHER_DATA_ERROR, // 获取天气数据失败
-    VIEW_SYSTEM,                 // 系统
-    VIEW_SOUND_VIBRATION,        // 声音与震动
-    VIEW_SYSTEM_VOLUME,          // 系统音量
-    VIEW_CALL_VOLUME,            // 通话音量
-    VIEW_MEDIA_VOLUME,           // 媒体音量
-    VIEW_DISPLAY_BRIGHTNESS,     // 屏幕与亮度
-    VIEW_BRIGHTNESS_CONTROL,     // 亮度调节
-    VIEW_SCREEN_DURATION,        // 亮屏时长
-    VIEW_SECONDARY_FUNCTION,     // 辅助功能
-    VIEW_QUICK_ACCESS,           // 快速访问
-    VIEW_FAST_TRAINING,          // 快速训练
-    VIEW_FAST_TRAINING_ATTENTION,// 快速训练项目选择超出提示
+    VIEW_MAIN = 1,                // 主界面
+    VIEW_SETTING,                 // 设置
+    VIEW_APPLIST,                 // App应用
+    VIEW_MAIN_ALARM,              // 闹钟
+    VIEW_ALARM_POP_UP,            // 闹铃界面
+    VIEW_BLUETOOTH_EARPHONE,      // 连接蓝牙耳机界面
+    VIEW_CALLER_LOG,              // 通话记录界面
+    VIEW_INCOMING_CALL,           // 来电界面
+    VIEW_BLOODOXY,                // 血氧饱和度界面
+    VIEW_COMPASS,                 // 指南针界面
+    VIEW_CONNECT_PHONE,           // 连接手机界面
+    VIEW_INDOORWALK,              // 室内步行
+    VIEW_SHUTDOWN_OR_REBOOT,      // 关机或重启界面
+    VIEW_WEATHER,                 // 天气
+    VIEW_WEATHER_REPORT,          // 气象报告
+    VIEW_FUTURE_WEATHER,          // 未来天气
+    VIEW_GET_WEATHER_DATA_ERROR,  // 获取天气数据失败
+    VIEW_SYSTEM,                  // 系统
+    VIEW_SOUND_VIBRATION,         // 声音与震动
+    VIEW_SYSTEM_VOLUME,           // 系统音量
+    VIEW_CALL_VOLUME,             // 通话音量
+    VIEW_MEDIA_VOLUME,            // 媒体音量
+    VIEW_DISPLAY_BRIGHTNESS,      // 屏幕与亮度
+    VIEW_BRIGHTNESS_CONTROL,      // 亮度调节
+    VIEW_SCREEN_DURATION,         // 亮屏时长
+    VIEW_SECONDARY_FUNCTION,      // 辅助功能
+    VIEW_QUICK_ACCESS,            // 快速访问
+    VIEW_FAST_TRAINING,           // 快速训练
+    VIEW_FAST_TRAINING_ATTENTION, // 快速训练项目选择超出提示
     /* ---------------------------------- 测试界面 ---------------------------------- */
     VIEW_DIAL,    // 切换表盘
     VIEW_MESSAGE, // 信息通知
@@ -65,7 +65,10 @@ typedef enum : uint16_t
     VIEW_OFFLINEVOICE,  // 语音助手界面(暂时不用)
     VIEW_MAIN_ACTIVITY, // 记录步数界面(暂时不用)
     VIEW_UISAMPLE,      // 示例(暂时不用)
-    /* -------------------------------------------------------------------------- */
+/* -------------------------------------------------------------------------- */
+#ifdef SUPPORT_ALIPAY_SEC
+    VIEW_MAIN_ALIPAY,
+#endif
     VIEW_MAX_INTER_APP,       // 在此之前添加native应用ID.
     VIEW_EXTERN_APP = 0xFFFE, // 三方应用
     VIEW_INVALIDE_APP = 0xFFFF,
index cc32501..e7d0021 100644 (file)
@@ -62,9 +62,10 @@ namespace OHOS
         /* --------------------------------测试界面------------------------------------ */
         void InitDialSlice(void);
         void InitBloodSlice(void);
+        void InitMainAlipaySlice(void);
         /* -------------------------------------------------------------------------- */
         void InitSecondaryFunction(void);
-        void InitQuickAccessSlice(void);  
+        void InitQuickAccessSlice(void);
         void InitFastTrainingSlice(void);
         void InitFastTrainingAttentionSlice(void);
 
index 23b21e0..1414586 100644 (file)
@@ -187,6 +187,18 @@ namespace OHOS
     static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_88 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_89.bin";
     static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_89 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_90.bin";
 
+    /* -------------------------------------------------------------------------- */
+    static constexpr const char *PNG_APPLIST_ALIPAY_IMAGE = APP_RES_PATH "/alipay/ailipy_logo.bin"; // 支付宝
+    static constexpr const char *PNG_ALIPAY_BIND_FAILURE = APP_RES_PATH "/alipay/ALIPAY_BIND_FAILURE.bin";
+    static constexpr const char *PNG_ALIPAY_BIND_SUCCESS = APP_RES_PATH "/alipay/ALIPAY_BIND_SUCCESS.bin";
+    static constexpr const char *PNG_ALIPAY_LIST_PAY = APP_RES_PATH "/alipay/ALIPAY_LIST_PAY.bin";
+    static constexpr const char *PNG_ALIPAY_LIST_TRANS = APP_RES_PATH "/alipay/ALIPAY_LIST_TRANS.bin";
+    static constexpr const char *PNG_ALIPAY_LIST_SETTING = APP_RES_PATH "/alipay/ALIPAY_LIST_SETTING.bin";
+    static constexpr const char *PNG_ALIPAY_LIST_HELP = APP_RES_PATH "/alipay/ALIPAY_LIST_HELP.bin";
+    static constexpr const char *PNG_ALIPAY_PAY_ICON_WHITE = APP_RES_PATH "/alipay/ALIPAY_PAY_ICON_WHITE.bin";
+    static constexpr const char *PNG_ALIPAY_PAY_ICON_GREY = APP_RES_PATH "/alipay/ALIPAY_PAY_ICON_GREY.bin";
+    /* -------------------------------------------------------------------------- */
+
     /* ---------------------------------- 闹钟图片 ---------------------------------- */
     static constexpr const char *ALARM_ADD_BUTTON_PATH = APP_RES_PATH "/BLUE_ADD.bin";
     static constexpr const char *ALARM_CLOCK_CLOSE_ADD_PATH = APP_RES_PATH "/CLOSE_RING_CLOCK.bin";
@@ -274,17 +286,17 @@ namespace OHOS
     static constexpr const char *PNG_Message_Wechat = APP_RES_PATH "/message/WeChat-icon.bin"; // 微信消息
     static constexpr const char *PNG_Message_QQ = APP_RES_PATH "/message/QQ-icon.bin";         // QQ消息
     /* ---------------------------------- 通用图片 ---------------------------------- */
-    static constexpr const char *PNG_CHECKBOX_OFF_IMAGE = APP_RES_PATH "/CHECKBOX_OFF.bin";                     // checkbox未选中图片
-    static constexpr const char *PNG_CHECKBOX_ON_IMAGE = APP_RES_PATH "/CHECKBOX_ON.bin";                       // checkbox选中图片
-    static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin";                     //  箭头图片
-    static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin";         //  按钮的背景图片
-    static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin";           //  调节音量图片
-    static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin";  // 调节亮度图片
-    static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin";                // 勾
-    static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin";              // 叉
-    static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin";             // togglebuttton未选中图片
-    static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin";               // togglebuttton选中图片
-    
+    static constexpr const char *PNG_CHECKBOX_OFF_IMAGE = APP_RES_PATH "/CHECKBOX_OFF.bin";                    // checkbox未选中图片
+    static constexpr const char *PNG_CHECKBOX_ON_IMAGE = APP_RES_PATH "/CHECKBOX_ON.bin";                      // checkbox选中图片
+    static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin";                    //  箭头图片
+    static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin";        //  按钮的背景图片
+    static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin";          //  调节音量图片
+    static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin"; // 调节亮度图片
+    static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin";               // 勾
+    static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin";             // 叉
+    static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin";            // togglebuttton未选中图片
+    static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin";              // togglebuttton选中图片
+
     static constexpr const char *PNG_ORANGE_ATTENTION_VECTOR_IMAGE = APP_RES_PATH "/OrangeAttentionVector.bin"; // 橘黄色感叹号图标
     static constexpr const char *PNG_ANIMATOR1_IMAGE = APP_RES_PATH "/Record/animator1.bin";
     static constexpr const char *PNG_ANIMATOR2_IMAGE = APP_RES_PATH "/Record/animator2.bin";
index 8b46b34..ff31e00 100644 (file)
 #include "font/ui_font.h"
 #include "font/font_global_manager.h"
 
-
+#ifdef SUPPORT_ALIPAY_SEC
+#include "AlipayMainView.h"
+#include "AlipayPresenter.h"
+#endif
 namespace OHOS
 {
     struct AppViewMapper
@@ -155,6 +158,9 @@ namespace OHOS
         {VIEW_FAST_TRAINING_ATTENTION, &NativeLauncher::InitFastTrainingAttentionSlice},
 
         {VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
+#ifdef SUPPORT_ALIPAY_SEC
+        {VIEW_MAIN_ALIPAY, &NativeLauncher::InitMainAlipaySlice},
+#endif
 
 #if 0
         {VIEW_MAIN_ACTIVITY, &NativeLauncher::InitActivitySlice},
@@ -190,11 +196,11 @@ namespace OHOS
 
     void NativeLauncher::InitNativeLauncher()
     {
-        //初始化语言
+        // 初始化语言
         GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::VECTOR_FONT_DIR, DEFAULT_VECTOR_FONT_FILENAME);
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "NativeLauncher::InitNativeLauncher");
         /* -------------------------------------------------------------------------- */
-        //注册中文和英语两种语言包
+        // 注册中文和英语两种语言包
         static const char *BIN_LANG_EN = RES_PATH "font/en.lang";
         static const char *BIN_LANG_ZH = RES_PATH "font/zh.lang";
         const char *resFiles[] = {BIN_LANG_ZH, BIN_LANG_EN};
@@ -229,7 +235,19 @@ namespace OHOS
         }
         return;
     }
-
+#ifdef SUPPORT_ALIPAY_SEC
+    void NativeLauncher::InitMainAlipaySlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainAlipaySlice");
+        SliceProxy *mainAlipayView = new AbilitySliceProxy<AlipayMainView, AlipayPresenter>;
+        if (mainAlipayView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainAlipayView is nullptr");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_ALIPAY, mainAlipayView);
+    }
+#endif
     void NativeLauncher::InitMainSampleSlice(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainSampleSlice");
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBarCode.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBarCode.h
new file mode 100644 (file)
index 0000000..67cacbb
--- /dev/null
@@ -0,0 +1,41 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay barcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_BARCODE_H\r
+#define ALIPAY_BARCODE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_barcode.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayBarCode : public UIViewGroup {\r
+public:\r
+    AlipayBarCode(AlipayPresenter *presenter);\r
+    virtual ~AlipayBarCode();\r
+    static AlipayBarCode *GetInstance();\r
+    bool InitView();\r
+    void AlipayRefreshBarcode(const char *refreshStr);\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitButton();\r
+    bool AlipayInitBarcode();\r
+    void AlipayBarcodeReformat(uint8_t *str, uint8_t *strBarcode);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelBarCode { nullptr };\r
+    UILabel *labelPay { nullptr };\r
+    UILabelButton *buttonBarCode { nullptr };\r
+    UIBarcode *alipayBarcode { nullptr };\r
+    UIImageView *alipayImageGrey { nullptr };\r
+    UIImageView *alipayImageWhite { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBind.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBind.h
new file mode 100644 (file)
index 0000000..9adcaee
--- /dev/null
@@ -0,0 +1,32 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_BIND_H\r
+#define ALIPAY_BIND_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+#include "components/ui_qrcode.h"\r
+\r
+namespace OHOS {\r
+class AlipayBind : public UIViewGroup {\r
+public:\r
+    AlipayBind(AlipayPresenter *presenter);\r
+    virtual ~AlipayBind();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelBind { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindAni.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindAni.h
new file mode 100644 (file)
index 0000000..959709d
--- /dev/null
@@ -0,0 +1,35 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind animate view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_BIND_ANI_H\r
+#define ALIPAY_BIND_ANI_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_image_animator.h"\r
+#include "AlipayPresenter.h"\r
+\r
+#define ALIPAY_BIND_SEARCH_IMAGE_NUM 8\r
+\r
+namespace OHOS {\r
+class AlipayBindAni : public UIViewGroup {\r
+public:\r
+    AlipayBindAni(AlipayPresenter *presenter);\r
+    virtual ~AlipayBindAni();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitImageAni(void);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel { nullptr };\r
+    UIImageAnimatorView *alipayImageAni { nullptr };\r
+    ImageAnimatorInfo searchImageInfo[ALIPAY_BIND_SEARCH_IMAGE_NUM];\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindRes.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayBindRes.h
new file mode 100644 (file)
index 0000000..9d45859
--- /dev/null
@@ -0,0 +1,32 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind result view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_BIND_RES_H\r
+#define ALIPAY_BIND_RES_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayBindRes : public UIViewGroup {\r
+public:\r
+    AlipayBindRes(AlipayPresenter *presenter);\r
+    virtual ~AlipayBindRes();\r
+    bool InitView();\r
+    void AlipayRefreshBindRes(void);\r
+\r
+private:\r
+    AlipayPresenter *presenter_;\r
+    bool AlipayInitLabel(const char *resStr);\r
+    bool AlipayInitImage(const char *imageSrc);\r
+    UILabel *alipayLabel { nullptr };\r
+    UIImageView *alipayImage { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayExitBind.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayExitBind.h
new file mode 100644 (file)
index 0000000..48233ff
--- /dev/null
@@ -0,0 +1,32 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay binding process exit binding view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_EXIT_BIND_H\r
+#define ALIPAY_EXIT_BIND_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayExitBind : public UIViewGroup {\r
+public:\r
+    AlipayExitBind(AlipayPresenter *presenter);\r
+    virtual ~AlipayExitBind();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitLabel();\r
+    bool AlipayInitButton();\r
+    bool InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr, const char *viewId);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel[ALIPAY_SET_TWO] { nullptr };\r
+    UILabelButton *alipayButton[ALIPAY_SET_TWO] { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayHelp.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayHelp.h
new file mode 100644 (file)
index 0000000..a1802fd
--- /dev/null
@@ -0,0 +1,32 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay help qrcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_HELP_H\r
+#define ALIPAY_HELP_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+#include "components/ui_qrcode.h"\r
+\r
+namespace OHOS {\r
+class AlipayHelp : public UIViewGroup {\r
+public:\r
+    AlipayHelp(AlipayPresenter *presenter);\r
+    virtual ~AlipayHelp();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelHelp { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListAdapter.h
new file mode 100644 (file)
index 0000000..8a62350
--- /dev/null
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list adapt.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_LIST_ADAPTER_H
+#define ALIPAY_LIST_ADAPTER_H
+
+#include <list>
+#include <string>
+#include "components/ui_list.h"
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+#include "components/abstract_adapter.h"
+#include "wearable_log.h"
+#include "UiConfig.h"
+#include "AlipayListItem.h"
+
+namespace OHOS {
+class AlipayListAdapter : public AbstractAdapter {
+public:
+    explicit AlipayListAdapter();
+    virtual ~AlipayListAdapter();
+
+    /* *
+     * @brief Sets the UIView adapter data, which is a AlipayListItem linked list.
+     *
+     * @param data Indicates the AlipayListItem linked list data.
+     * @since 1.0
+     * @version 1.0
+     */
+    void SetData(std::list<AlipayListItem> &data);
+
+    /* *
+     * @brief Obtains the <b>data</b> size of the UILabel adapter.
+     *
+     * @return Returns the <b>data</b> size of the UILabel adapter.
+     * @since 1.0
+     * @version 1.0
+     */
+    virtual uint16_t GetCount(void) override;
+
+    virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+    virtual void AddListItem(const AlipayListItem &item);
+
+    void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+    {
+        itemClickListener = itemclicklistener;
+    }
+
+private:
+    std::list<AlipayListItem> listData;
+    UIView::OnClickListener *itemClickListener { nullptr };
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItem.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItem.h
new file mode 100644 (file)
index 0000000..aef570a
--- /dev/null
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_LIST_ITEM_H
+#define ALIPAY_LIST_ITEM_H
+
+#include <cstdint>
+#include <string>
+
+namespace OHOS {
+/*
+ * alipayList id.
+ */
+typedef enum : uint16_t {
+    // alipayList item index
+    ALIPAY_LIST_ITEM_PAY,
+    ALIPAY_LIST_ITEM_TRANS,
+    ALIPAY_LIST_ITEM_SETTING,
+    ALIPAY_LIST_ITEM_HELP,
+    ALIPAY_LIST_ITEM_MAX
+} AlipayListIndex;
+
+typedef struct {
+    AlipayListIndex index;
+    const char *viewId;
+    const char *icon;
+    const char *label;
+    bool hasSecondMenu;
+} AlipayListItem;
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItemView.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListItemView.h
new file mode 100644 (file)
index 0000000..8e66752
--- /dev/null
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list item view.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_LIST_ITEM_VIEW_H
+#define ALIPAY_LIST_ITEM_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+
+#include "UiConfig.h"
+#include "AlipayListItem.h"
+#include "AlipayListView.h"
+
+namespace OHOS {
+class AlipayListItemView : public UIViewGroup {
+public:
+    explicit AlipayListItemView();
+    virtual ~AlipayListItemView();
+    virtual void SetItemInfo(const AlipayListItem &itemInfo);
+    virtual void SetUpChild();
+
+private:
+    AlipayListItemView(const AlipayListItemView &);
+
+    UIImageView sIcon;
+    UILabel sLabel;
+    UIImageView sNextImage;
+    AlipayListItem sItemInfo;
+};
+}
+
+#endif
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListView.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayList/AlipayListView.h
new file mode 100644 (file)
index 0000000..91d856c
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_LIST_H
+#define ALIPAY_LIST_H
+
+#include <cstdint>
+#include <map>
+#include "components/ui_image_view.h"
+#include "components/ui_label.h"
+#include "components/ui_label_button.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_list.h"
+#include "components/icon_adapter.h"
+#include "AlipayPresenter.h"
+#include "AppViewIDs.h"
+#include "UiConfig.h"
+#include "AlipayListAdapter.h"
+#include "AlipayListItem.h"
+
+namespace OHOS {
+class AlipayListAdapter;
+class AlipayList : public UIViewGroup {
+public:
+    AlipayList(AlipayPresenter *presenter);
+    virtual ~AlipayList();
+    bool InitListView();
+
+private:
+    void InitAlipayListItem();
+    bool AlipayInitList();
+    void AddAlipayListItemToList(void);
+    AlipayPresenter *presenter_;
+    AlipayListAdapter *listAdapter { nullptr };
+    UIList *contentList { nullptr };
+    AlipayListItem alipayLists[ALIPAY_LIST_ITEM_MAX];
+};
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayMainView.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayMainView.h
new file mode 100644 (file)
index 0000000..6d68a39
--- /dev/null
@@ -0,0 +1,110 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay main view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_MAIN_VIEW_H\r
+#define ALIPAY_MAIN_VIEW_H\r
+\r
+#include <string>\r
+#include "View.h"\r
+#include "window/window.h"\r
+#include "components/ui_view_group.h"\r
+#include "ChangeSliceListener.h"\r
+#include "components/ui_swipe_view.h"\r
+#include "AlipayPresenter.h"\r
+#include "AlipayModel.h"\r
+#include "AlipayBind.h"\r
+#include "AlipayExitBind.h"\r
+#include "AlipayBindRes.h"\r
+#include "AlipayBindAni.h"\r
+#include "AlipayListView.h"\r
+#include "AlipayBarCode.h"\r
+#include "AlipayPayCode.h"\r
+#include "AlipaySetting.h"\r
+#include "AlipayHelp.h"\r
+#include "AlipayUnbindFinish.h"\r
+#include "AlipayUnbind.h"\r
+\r
+#include "AlipayGetTransList.h"\r
+#include "AlipayTransTips.h"\r
+#include "AlipayTransCode.h"\r
+#include "AlipayTransEnable.h"\r
+#include "AlipayTransRes.h"\r
+#include "AlipayTransListView.h"\r
+#include "AlipayTransAni.h"\r
+\r
+namespace OHOS {\r
+class AlipayMainView;\r
+class AlipayMainView : public View<AlipayPresenter> {\r
+public:\r
+    AlipayMainView();\r
+    virtual ~AlipayMainView();\r
+    static AlipayMainView *GetInstance(void);\r
+    void OnStart() override;\r
+    void OnSetUpView() override;\r
+    void OnTearDownView() override;\r
+    void OnStop() override;\r
+    void DropView(UIView &view);\r
+    void SwitchView(UIView &view);\r
+\r
+    void ChangeView(int16 hideView, int16 showView);\r
+    bool ChangePayView(int16 thisView);\r
+    bool ChangeSettingView(int16 thisView);\r
+    bool ChangeHelpView(int16 thisView);\r
+    bool ChangeListView(int16 thisView);\r
+    bool ChangeBindAniView(int16 thisView);\r
+    bool ChangeBindExitView(int16 thisView);\r
+    bool ChangeBindResView(int16 thisView);\r
+    bool ChangeUnbindView(int16 thisView);\r
+    bool ChangeUnbindFinishView(int16 thisView);\r
+    bool ChangeBindView(int16 thisView);\r
+    bool ChangeBarCodeView(int16 thisView);\r
+\r
+    bool ChangeTransView(int16 thisView);\r
+    bool ChangeTransListView(int16 thisView);\r
+    bool ChangeTransEnableView(int16 thisView);\r
+    bool ChangeTransTipsView(int16 thisView);\r
+    bool ChangeTransResView(int16 thisView);\r
+    bool ChangeGetTransListView(int16 thisView);\r
+    bool ChangeTransAniView(int16 thisView);\r
+\r
+    int16 GetListenInter(void);\r
+    int16 GetWhichInter(void);\r
+    bool ClickFunc(int16 interface);\r
+\r
+private:\r
+    bool SetSwipeInter(int16 num);\r
+    void DeleteViceInter(void);\r
+    void DestroyTempView(int16 hideView);\r
+    UIViewGroup *group { nullptr };\r
+    UIViewGroup *container[ALIPAY_INTERFACES_MAX] { nullptr };\r
+\r
+    AlipayBind *alipayBind { nullptr };\r
+    AlipayExitBind *alipayExitBind { nullptr };\r
+    AlipayBindRes *alipayBindRes { nullptr };\r
+    AlipayBindAni *alipayBindAni { nullptr };\r
+    AlipayPayCode *alipayPayCode { nullptr };\r
+    AlipayBarCode *alipayBarCode { nullptr };\r
+    AlipaySetting *alipaySetting { nullptr };\r
+    AlipayUnbind *alipayExitBindSetting { nullptr };\r
+    AlipayUnbindFinish *alipayUnbindFinish { nullptr };\r
+    AlipayHelp *alipayHelp { nullptr };\r
+    AlipayList *alipayList { nullptr };\r
+\r
+    AlipayGetTransList *alipayGetTransList { nullptr };\r
+    AlipayTransTips *alipayTransTips { nullptr };\r
+    AlipayTransCode *alipayTransCode { nullptr };\r
+    AlipayTransEnable *alipayTransEnable { nullptr };\r
+    AlipayTransRes *alipayTransRes { nullptr };\r
+    AlipayTransList *alipayTransList { nullptr };\r
+    AlipayTransAni *alipayTransAni { nullptr };\r
+\r
+    int16 interListen { -1 };     // 监测上一个界面,-1用于还没获得监测界面时的初始化\r
+    int16 alipayWhichInter { 0 }; // 监测当前是哪一个温度界面\r
+    int16 alipayWhichMea { -1 };  // 监测当前处于哪一个监测界面\r
+};\r
+} // namespace OHOS\r
+#endif // MAIN_ALARM_VIEW_Ha
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h
new file mode 100644 (file)
index 0000000..a0cf813
--- /dev/null
@@ -0,0 +1,109 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay model.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_MODEL_H\r
+#define ALIPAY_MODEL_H\r
+\r
+#include "ohos_types.h"\r
+#include "list.h"\r
+#include "source.h"\r
+#include "cmsis_os.h"\r
+#include "ChangeSliceListener.h"\r
+#include "alipay_feature.h"\r
+\r
+namespace OHOS {\r
+void AlipayBindTimerCallBack(void *argument);\r
+void AlipaySwitchTimerCallBack(void *argument);\r
+void AlipayBindCallBackProc(void *argument);\r
+void AlipaySwitchTimerCallBackProc(void *argument);\r
+void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes);\r
+\r
+#define ALIPAY_BIND_STATUS_TIMER_LENGTH 2000\r
+#define ALIPAY_GET_BIND_STR_MAX_LENGTH 256\r
+#define ALIPAY_GET_PAY_STR_MAX_LENGTH 20\r
+#define ALIPAY_GET_AID_STR_MAX_LENGTH 256\r
+#define ALIPAY_GET_ID_STR_MAX_LENGTH 128\r
+#define ALIPAY_GET_NICKNAME_MAX_LENGTH 128\r
+\r
+#define ALIPAY_TRANS_READ_LOCAL_ERR 5\r
+#define ALIPAY_TRANS_READ_BUFF_SHORT 15\r
+#define ALIPAY_TRANS_READ_NETWORK_ERR 7\r
+\r
+#define ALIPAY_TRANS_CODE_LIMITED 40\r
+#define ALIPAY_TRANS_CODE_UNSUPPORTED 43\r
+#define ALIPAY_TRANS_CODE_INVALID 54\r
+#define ALIPAY_TRANS_CODE_COMMON_ERR 56\r
+#define ALIPAY_TRANS_NETWORK_ERR 5\r
+#define ALIPAY_TRANS_STATUS_TIMER_LENGTH 10000\r
+\r
+class AlipayModel {\r
+public:\r
+    AlipayModel();\r
+    virtual ~AlipayModel();\r
+    static AlipayModel *GetInstance(void);\r
+\r
+    bool AlipayInitModel(void);\r
+    void AlipayDeinitModel(void);\r
+    void SetAlipayInterLis(int16 interListen);\r
+    int16 GetAlipayInterLis(void);\r
+    bool AlipayGetBindstate(void);\r
+    int32_t AlipayGetBindCode(uint8_t *bindStr);\r
+    int32_t AlipayGetPayCode(uint8_t *payStr);\r
+    int32_t AlipayGetNickName(uint8_t *nickName);\r
+    int32_t AlipayGetIdName(uint8_t *idStr);\r
+    int32_t AlipayGetAidCode(int8_t *aidStr);\r
+    void AlipayUnbind(void);\r
+    bool AlipayStartBind(void);\r
+    bool AlipayStartSwitchTimer(uint16_t time);\r
+    void AlipayStopBindTimer(void);\r
+    void AlipayStopSwitchTimer();\r
+    void AlipayEnterLpm();\r
+    void AlipayExitLpm();\r
+    int32_t AlipayGetLastTranscode();\r
+    int32_t AlipayGetLocalTranslist();\r
+    int32_t AlipayGetOnlineTranslist();\r
+    int32_t AlipayUpdateTransCard(uint32_t index);\r
+    int32_t AlipayCheckTransCard(uint32_t index);\r
+    int32_t AlipayGetTransCode(uint32_t index);\r
+    bool AlipayTransStartGetListsTimer(void);\r
+    void AlipayTransStopGetListsTimer(void);\r
+    uint32_t AlipaySendMsg(uint32_t msgId);\r
+    mc_alipay_trans_card_info_t* AlipayTransGetCardList(void);\r
+    int32_t AlipayTransGetCardNum(void);\r
+    bool AlipayGetBindFlag(void);\r
+    void AlipaySetBindFlag(bool bindFlag);\r
+    uint32_t AlipayGetSwitchIndex(void);\r
+    void AlipaySetSwitchIndex(uint32_t switchIndex);\r
+    uint32_t AlipayGetRefreshFlag(void);\r
+    void AlipaySetRefreshFlag(uint32_t refreshFlag);\r
+    uint32_t AlipayGetCardNum(void);\r
+    void AlipaySetCardNum(uint32_t cardNum);\r
+    uint32_t AlipayGetCardSum(void);\r
+    void AlipaySetCardSum(uint32_t cardSum);\r
+    char* AlipayGetCardTitle(uint32_t index);\r
+    uint8_t* AlipayGetTransCode(void);\r
+    uint32_t AlipayGetTransCodeLen(void);\r
+    char* AlipayGetCardTitle(void);\r
+private:\r
+    osTimerId_t bindTimerId = NULL;\r
+    osTimerId_t switchTimerId = NULL;\r
+    osTimerId_t transTimerId = NULL;\r
+    int16 alipayInterLis;\r
+    const alipay_svr_api_t *alipayApi;\r
+    bool bindFlag_;\r
+    uint32_t switchIndex_ = 0;\r
+    uint32_t refreshFlag_ = 0;\r
+    uint32_t cardNum_ = 0;\r
+    uint32_t cardSum_ = 0;\r
+    mc_alipay_trans_card_info_t *cardInfo_ = NULL;\r
+    uint8_t* transCode_ = NULL;\r
+    uint32_t transCodeLen_;\r
+    char cardTitle_[ALIPAY_TRANS_CARD_MEMBER_LEN];\r
+};\r
+}\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPayCode.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPayCode.h
new file mode 100644 (file)
index 0000000..55b2ffb
--- /dev/null
@@ -0,0 +1,39 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay pay view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+#ifndef ALIPAY_PAYCODE_H\r
+#define ALIPAY_PAYCODE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_qrcode.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayPayCode : public UIViewGroup {\r
+public:\r
+    AlipayPayCode(AlipayPresenter *presenter);\r
+    virtual ~AlipayPayCode();\r
+    static AlipayPayCode *GetInstance();\r
+    bool InitView();\r
+    void AlipayRefreshQrcode(const char *refreshStr);\r
+\r
+private:\r
+    AlipayPresenter *presenter_;\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitButton();\r
+    bool AlipayInitQrcode();\r
+    UILabel *labelPayCode { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+    UILabelButton *buttonPayCode { nullptr };\r
+    UIImageView *alipayImageGrey { nullptr };\r
+    UIImageView *alipayImageWhite { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h
new file mode 100644 (file)
index 0000000..7037034
--- /dev/null
@@ -0,0 +1,167 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay presenter.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_PRESENTER_H\r
+#define ALIPAY_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+#include "BaseView.h"\r
+#include "UiConfig.h"\r
+#include "wearable_log.h"\r
+#include "color.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+constexpr char *ALIPAY_LIST_PAY_BUTTON = (char *)"alipaylistpay";\r
+constexpr char *ALIPAY_LIST_TRANS_BUTTON = (char *)"alipaylisttrans";\r
+constexpr char *ALIPAY_LIST_SETTING_BUTTON = (char *)"alipaylistsetting";\r
+constexpr char *ALIPAY_LIST_HELP_BUTTON = (char *)"alipaylisthelp";\r
+\r
+constexpr char *ALIPAY_PAY_JUMP = (char *)"alipaypayjump";\r
+constexpr char *ALIPAY_BIND_BUTTON = (char *)"bindbutton";\r
+constexpr char *ALIPAY_UNBIND_BUTTON = (char *)"unbindbutton";\r
+constexpr char *ALIPAY_BIND_CONTINUE = (char *)"alipaybindcontinue";\r
+constexpr char *ALIPAY_INTER_EXIT = (char *)"alipayexit";\r
+\r
+constexpr char *ALIPAY_SETTING_UNBIND = (char *)"alipaysettingunbind";\r
+constexpr char *ALIPAY_SETTING_CANCEL = (char *)"alipaysettingcancel";\r
+constexpr char *ALIPAY_SETTING_FINISH = (char *)"alipaysettingfinish";\r
+\r
+constexpr char *ALIPAY_PAY_QRCODE = (char *)"alipaypayqrcode";\r
+constexpr char *ALIPAY_PAY_BARCODE = (char *)"alipaypaybarcode";\r
+constexpr char *ALIPAY_PAY_SWITCH_BAR = (char *)"alipaypayswitchbar";\r
+constexpr char *ALIPAY_PAY_SWITCH_QR = (char *)"alipaypayswitchqrcode";\r
+\r
+constexpr char *ALIPAY_TRANS_LIST_BUTTON = (char *)"alipaytranslistbutton";\r
+constexpr char *ALIPAY_TRANS_REFRESH_LIST = (char *)"alipaytransrefreshlist";\r
+constexpr char *ALIPAY_TRANS_GET_LIST_EXIT = (char *)"alipaytransgetlistexit";\r
+constexpr char *ALIPAY_TRANS_GET_LIST_FINISH = (char *)"alipaytransgetlistfin";\r
+constexpr char *ALIPAY_TRANS_GET_LIST_RETRY = (char *)"alipaytransgetlistre";\r
+constexpr char *ALIPAY_TRANS_GET_LIST_DETAIL = (char *)"alipaytransgetlistdet";\r
+constexpr char *ALIPAY_TRANS_CERTAIN_BACK_LIST = (char *)"alipaytransbacklist";\r
+constexpr char *ALIPAY_TRANS_CERTAIN_TO_TRANS = (char *)"alipaytranstotranslist";\r
+constexpr char *ALIPAY_TRANS_RETRY_TRANS_CODE = (char *)"alipaytransretrycode";\r
+constexpr char *ALIPAY_TRANS_CODE_RES_DETAIL = (char *)"alipaytranscoderesde";\r
+constexpr char *ALIPAY_TRANS_LIST_RES_DETAIL = (char *)"alipaytranslistresde";\r
+constexpr char *ALIPAY_TRANS_CODE_BACK_LIST = (char *)"alipaytranscodebacklist";\r
+\r
+#define ALIPAY_SET_ZERO 0\r
+#define ALIPAY_SET_ONE 1\r
+#define ALIPAY_SET_TWO 2\r
+\r
+typedef enum {\r
+    ALIPAY_BIND_VIEW = 0,\r
+    ALIPAY_BIND_ANI_VIEW,\r
+    ALIPAY_BIND_EXIT_VIEW,\r
+    ALIPAY_BIND_RES_VIEW,\r
+    ALIPAY_LIST_VIEW,\r
+    ALIPAY_PAY_VIEW,\r
+\r
+    ALIPAY_PAY_BARCODE_VIEW,\r
+    ALIPAY_TRANS_VIEW,\r
+    ALIPAY_SETTING_VIEW,\r
+    ALIPAY_HELP_VIEW,\r
+    ALIPAY_SETTING_UNBIND_VIEW,\r
+\r
+    ALIPAY_SETTING_FINISH_VIEW,\r
+    ALIPAY_GET_BIND_FAILURE_VIEW,\r
+    ALIPAY_TRANS_LIST_VIEW,\r
+    ALIPAY_TRANS_ENABLE_VIEW,\r
+    ALIPAY_TRANS_TIPS_VIEW,\r
+\r
+    ALIPAY_TRANS_RES_VIEW,\r
+    ALIPAY_GET_TRANS_LIST_VIEW,\r
+    ALIPAY_TRANS_ANI_VIEW,\r
+\r
+    ALIPAY_INTERFACES_MAX\r
+} alipayInterfacesId;\r
+\r
+typedef enum {\r
+    ALIPAY_TRANS_TIPS_UNKNOW = 0,\r
+    ALIPAY_TRANS_TIPS_TO_MUCH,\r
+    ALIPAY_TRANS_TIPS_SECURE,\r
+    ALIPAY_TRANS_TIPS_LIST_UNKNOW,\r
+    ALIPAY_TRANS_TIPS_NOT_SUPPORT,\r
+} alipayTransTipsId;\r
+\r
+typedef enum {\r
+    ALIPAY_TRANS_RES_LIST = 0,\r
+    ALIPAY_TRANS_RES_CODE,\r
+} alipayTransResId;\r
+\r
+typedef enum {\r
+    ALIPAY_TRANS_GET_LIST_FIRST = 0,\r
+    ALIPAY_TRANS_GET_LIST_CLICK_DETAIL,\r
+    ALIPAY_TRANS_GET_LIST_CODE_DETAIL,\r
+} alipayTransGetListId;\r
+\r
+class AlipayMainView;\r
+class AlipayPresenter : public Presenter<AlipayMainView>,\r
+    public UIView::OnClickListener,\r
+    public UIView::OnDragListener {\r
+public:\r
+    AlipayPresenter();\r
+    virtual ~AlipayPresenter();\r
+    void OnStart() override;\r
+    void OnPause() override;\r
+    void OnResume() override;\r
+    void OnStop() override;\r
+    static AlipayPresenter *GetInstance();\r
+\r
+    void ClickExitAlipay(UIView &view);\r
+    void ClickJumpSetting(UIView &view);\r
+    void ClickJumpPay(UIView &view);\r
+    void ClickJumpHelp(UIView &view);\r
+    void ClickJumpBindAni(UIView &view);\r
+    void ClickJumpUnbind(UIView &view);\r
+    void ClickJumpBindFinish(UIView &view);\r
+    void ClickBackUnbind(UIView &view);\r
+    void ClickBackBindCode(UIView &view);\r
+    void ClickRefreshQrcode(UIView &view);\r
+    void ClickRefreshBarcode(UIView &view);\r
+    void ClickGetBindStr(UIView &view);\r
+    void ClickSwitchBar(UIView &view);\r
+    void ClickSwitchQr(UIView &view);\r
+    void ClickJumpTrans(UIView &view);\r
+\r
+    void ClickRefreshList(UIView &view);\r
+    void ClickBackList(UIView &view);\r
+    void ClickUpdateList(UIView &view);\r
+    void ClickTransToTransList(UIView &view);\r
+    void ClickRetryTransCode(UIView &view);\r
+    void ClickTransJumpHelp(UIView &view);\r
+    void ClickTranstBackList(UIView &view);\r
+    void ClickTransToTransCode(UIView &view);\r
+    void ClickTransJumpGetList(UIView &view);\r
+    void ClickTransJumpGetCode(UIView &view);\r
+    void ClickTransCodeBackList(UIView &view);\r
+    ColorType CyanColor(void);\r
+    bool OnClick(UIView &view, const ClickEvent &event) override;\r
+    bool OnDrag(UIView &view, const DragEvent &event) override;\r
+    bool ClickFuncId(UIView &view);\r
+    int32_t AlipayGetPayCode(uint8_t *payStr);\r
+    int32_t AlipayGetNickName(uint8_t *nickName);\r
+    int32_t AlipayGetBindCode(uint8_t *bindStr);\r
+    int32_t AlipayGetIdName(uint8_t *idStr);\r
+    int32_t AlipayGetAidCode(int8_t *aidStr);\r
+    bool AlipayGetBindFlag(void);\r
+    void AlipaySetBindFlag(bool bindFlag);\r
+    uint32_t AlipayGetSwitchIndex(void);\r
+    void AlipaySetSwitchIndex(uint32_t switchIndex);\r
+    uint32_t AlipayGetCardNum(void);\r
+    void AlipaySetCardNum(uint32_t cardNum);\r
+    uint32_t AlipayGetCardSum(void);\r
+    void AlipaySetCardSum(uint32_t cardSum);\r
+    char* AlipayGetCardTitle(uint32_t index);\r
+    uint8_t* AlipayGetTransCode(void);\r
+    uint32_t AlipayGetTransCodeLen(void);\r
+    char* AlipayGetCardTitle(void);\r
+private:\r
+    AlipayModel *alipayMode_;\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayRefreshBindCode.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayRefreshBindCode.h
new file mode 100644 (file)
index 0000000..800000b
--- /dev/null
@@ -0,0 +1,35 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay get bindstr fail view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_REFRESH_BIND_CODE_H\r
+#define ALIPAY_REFRESH_BIND_CODE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+#include "components/ui_qrcode.h"\r
+\r
+namespace OHOS {\r
+class AlipayRefreshBind : public UIViewGroup {\r
+public:\r
+    AlipayRefreshBind();\r
+    virtual ~AlipayRefreshBind();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitButton();\r
+    UILabel *labelBind { nullptr };\r
+    UIImageView *imageBind[ALIPAY_SET_THREE] { nullptr };\r
+    UILabelButton *buttonBind { nullptr };\r
+    UILabelButton *backgroudButton { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipaySetting.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipaySetting.h
new file mode 100644 (file)
index 0000000..3f65212
--- /dev/null
@@ -0,0 +1,34 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay setting view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_SETTING_H\r
+#define ALIPAY_SETTING_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+#include "components/ui_qrcode.h"\r
+\r
+namespace OHOS {\r
+class AlipaySetting : public UIViewGroup {\r
+public:\r
+    AlipaySetting(AlipayPresenter *presenter);\r
+    virtual ~AlipaySetting();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitButton();\r
+    bool AlipayInitLabel(void);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelTitle { nullptr };\r
+    UILabel *labelName { nullptr };\r
+    UILabel *labelId { nullptr };\r
+    UILabelButton *buttonSetting { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayGetTransList.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayGetTransList.h
new file mode 100644 (file)
index 0000000..6a7c235
--- /dev/null
@@ -0,0 +1,31 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay get trans list view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_GET_TRANS_LIST_H\r
+#define ALIPAY_GET_TRANS_LIST_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayGetTransList : public UIViewGroup {\r
+public:\r
+    AlipayGetTransList(AlipayPresenter *presenter);\r
+    virtual ~AlipayGetTransList();\r
+    bool InitGetView(uint32_t index);\r
+private:\r
+    AlipayPresenter *presenter_;\r
+    bool AlipayInitLabel(uint32_t index);\r
+    bool AlipayInitButton(uint32_t index);\r
+    bool InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr, const char *viewId);\r
+    UILabel *alipayLabel { nullptr };\r
+    UILabelButton *alipayButton[ALIPAY_SET_TWO] { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransAni.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransAni.h
new file mode 100644 (file)
index 0000000..14f2a36
--- /dev/null
@@ -0,0 +1,35 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind animate view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_TRANS_ANI_H\r
+#define ALIPAY_TRANS_ANI_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_image_animator.h"\r
+#include "AlipayPresenter.h"\r
+\r
+#define ALIPAY_TRANS_SEARCH_IMAGE_NUM 8\r
+\r
+namespace OHOS {\r
+class AlipayTransAni : public UIViewGroup {\r
+public:\r
+    AlipayTransAni(AlipayPresenter *presenter);\r
+    virtual ~AlipayTransAni();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitImageAni(void);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel { nullptr };\r
+    UIImageAnimatorView *alipayImageAni { nullptr };\r
+    ImageAnimatorInfo searchImageInfo[ALIPAY_TRANS_SEARCH_IMAGE_NUM];\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransCode.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransCode.h
new file mode 100644 (file)
index 0000000..884ef27
--- /dev/null
@@ -0,0 +1,35 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay transcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+#ifndef ALIPAY_TRANS_CODE_H\r
+#define ALIPAY_TRANS_CODE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_qrcode.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayTransCode : public UIViewGroup {\r
+public:\r
+    AlipayTransCode(AlipayPresenter *presenter);\r
+    virtual ~AlipayTransCode();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitButton();\r
+    bool AlipayInitQrcode();\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelPayCode { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+    UILabelButton *buttonPayCode { nullptr };;\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransEnable.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransEnable.h
new file mode 100644 (file)
index 0000000..432a9c9
--- /dev/null
@@ -0,0 +1,33 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans enable view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+#ifndef ALIPAY_TRANS_ENABLE_H\r
+#define ALIPAY_TRANS_ENABLE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_qrcode.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayTransEnable : public UIViewGroup {\r
+public:\r
+    AlipayTransEnable(AlipayPresenter *presenter);\r
+    virtual ~AlipayTransEnable();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitQrcode();\r
+    AlipayPresenter *presenter_;\r
+    UILabel *labelEnableCode { nullptr };\r
+    UIQrcode *qrcodeGroup { nullptr };\r
+    UILabel *labelTips { nullptr };;\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListAdapter.h
new file mode 100644 (file)
index 0000000..0b24a7e
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list adapt.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_TRANS_LIST_ADAPTER_H
+#define ALIPAY_TRANS_LIST_ADAPTER_H
+
+#include <list>
+#include <string>
+#include "components/ui_list.h"
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+#include "components/abstract_adapter.h"
+#include "wearable_log.h"
+#include "UiConfig.h"
+#include "AlipayTransListItem.h"
+
+namespace OHOS {
+class AlipayTransListAdapter : public AbstractAdapter {
+public:
+    explicit AlipayTransListAdapter();
+    virtual ~AlipayTransListAdapter();
+
+    /* *
+     * @brief Sets the UIView adapter data, which is a AlipayTransListItem linked list.
+     *
+     * @param data Indicates the AlipayTransListItem linked list data.
+     * @since 1.0
+     * @version 1.0
+     */
+    void SetData(std::list<AlipayTransListItem> &data);
+
+    /* *
+     * @brief Obtains the <b>data</b> size of the UILabel adapter.
+     *
+     * @return Returns the <b>data</b> size of the UILabel adapter.
+     * @since 1.0
+     * @version 1.0
+     */
+    virtual uint16_t GetCount(void) override;
+
+    virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+    virtual void AddListItem(const AlipayTransListItem &item);
+
+    void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+    {
+        itemClickListener = itemclicklistener;
+    }
+
+    void ClearItem(void);
+
+private:
+    std::list<AlipayTransListItem> listData;
+    UIView::OnClickListener *itemClickListener { nullptr };
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItem.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItem.h
new file mode 100644 (file)
index 0000000..6b17b04
--- /dev/null
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_TRANS_LIST_ITEM_H
+#define ALIPAY_TRANS_LIST_ITEM_H
+
+#include <cstdint>
+
+namespace OHOS {
+/*
+ * alipayTransList id.
+ */
+
+typedef struct {
+    uint8_t index;
+    char *viewId;
+    char *cardNo;
+    char *label;
+    char *title;
+} AlipayTransListItem;
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItemView.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListItemView.h
new file mode 100644 (file)
index 0000000..1967fa9
--- /dev/null
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list item view.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_TRANS_LIST_ITEM_VIEW_H
+#define ALIPAY_TRANS_LIST_ITEM_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+
+#include "UiConfig.h"
+#include "AlipayTransListItem.h"
+#include "AlipayTransListView.h"
+
+namespace OHOS {
+class AlipayTransListItemView : public UIViewGroup {
+public:
+    explicit AlipayTransListItemView();
+    virtual ~AlipayTransListItemView();
+    virtual void SetItemInfo(const AlipayTransListItem &itemInfo);
+    virtual void SetUpChild();
+    uint8_t GetAlipayTransListIndex();
+
+private:
+    AlipayTransListItemView(const AlipayTransListItemView &);
+
+    UILabel sLabel;
+    UIImageView sNextImage;
+    AlipayTransListItem sItemInfo;
+};
+}
+
+#endif
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListView.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransListView.h
new file mode 100644 (file)
index 0000000..b38739a
--- /dev/null
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list.
+ * Author:
+ * Create:
+ */
+
+#ifndef ALIPAY_TRANS_LIST_H
+#define ALIPAY_TRANS_LIST_H
+
+#include <cstdint>
+#include <map>
+#include "components/ui_image_view.h"
+#include "components/ui_label.h"
+#include "components/ui_label_button.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_list.h"
+#include "components/ui_button.h"
+#include "components/icon_adapter.h"
+#include "AlipayPresenter.h"
+#include "AppViewIDs.h"
+#include "UiConfig.h"
+#include "AlipayTransListAdapter.h"
+#include "AlipayTransListItem.h"
+
+namespace OHOS {
+
+/* alipay sdk 支持最多20张公交卡 */
+static const uint8_t ALIPAY_TRANS_LIST_ITEM_LEN = 20;
+
+class AlipayTransListAdapter;
+class AlipayTransList : public UIViewGroup {
+public:
+    AlipayTransList(AlipayPresenter *presenter);
+    virtual ~AlipayTransList();
+    bool InitListView();
+    void AlipayTransListUpdate();
+
+private:
+    void InitAlipayTransListItem();
+    bool AlipayInitList();
+    bool AlipayInitButton();
+    bool AlipayInitScroll(void);
+    void AddAlipayTransListItemToList(void);
+    AlipayPresenter *presenter_;
+    AlipayTransListAdapter *listAdapter { nullptr };
+    UIList *contentList { nullptr };
+    AlipayTransListItem alipayTransLists[ALIPAY_TRANS_LIST_ITEM_LEN];
+    uint8_t listLen = 0;
+    UILabelButton *buttonRefresh { nullptr };
+};
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransRes.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransRes.h
new file mode 100644 (file)
index 0000000..e42fd3a
--- /dev/null
@@ -0,0 +1,35 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans action res view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_TRANS_RES_H\r
+#define ALIPAY_TRANS_RES_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayTransRes : public UIViewGroup {\r
+public:\r
+    AlipayTransRes(AlipayPresenter *presenter);\r
+    virtual ~AlipayTransRes();\r
+    bool InitResView(uint32_t index);\r
+    void AlipayTransRefreshRes(void);\r
+private:\r
+    bool AlipayInitLabel(const char *resStr);\r
+    bool AlipayInitImage(const char *imageSrc);\r
+    bool AlipayInitButton(uint32_t index);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel { nullptr };\r
+    UIImageView *alipayImage { nullptr };\r
+    UILabelButton *alipayButton { nullptr };\r
+    UILabelButton *alipayButtonSec { nullptr };\r
+};\r
+    \r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransTips.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayTrans/AlipayTransTips.h
new file mode 100644 (file)
index 0000000..f6ef45f
--- /dev/null
@@ -0,0 +1,34 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans tips view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_TRANS_TIPS_H\r
+#define ALIPAY_TRANS_TIPS_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayTransTips : public UIViewGroup {\r
+public:\r
+    AlipayTransTips(AlipayPresenter *presenter);\r
+    virtual ~AlipayTransTips();\r
+    bool InitTipsView(uint32_t index);\r
+    void AlipayTransRefreshTips(void);\r
+private:\r
+    bool AlipayInitLabel(const char *resStr);\r
+    bool AlipayInitImage(const char *imageSrc);\r
+    bool AlipayInitButton(uint32_t index);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel { nullptr };\r
+    UIImageView *alipayImage { nullptr };\r
+    UILabelButton *alipayButton { nullptr };\r
+};\r
+    \r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbind.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbind.h
new file mode 100644 (file)
index 0000000..434f151
--- /dev/null
@@ -0,0 +1,32 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay remove bind view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_UNBIND_H\r
+#define ALIPAY_UNBIND_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+\r
+namespace OHOS {\r
+class AlipayUnbind : public UIViewGroup {\r
+public:\r
+    AlipayUnbind(AlipayPresenter *presenter);\r
+    virtual ~AlipayUnbind();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitLabel();\r
+    bool AlipayInitButton();\r
+    bool InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr, const char *viewId);\r
+    AlipayPresenter *presenter_;\r
+    UILabel *alipayLabel[ALIPAY_SET_TWO] { nullptr };\r
+    UILabelButton *alipayButton[ALIPAY_SET_TWO] { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbindFinish.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayUnbindFinish.h
new file mode 100644 (file)
index 0000000..8ac78d6
--- /dev/null
@@ -0,0 +1,34 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay removie bind finish view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#ifndef ALIPAY_UNBIND_FINISH_CODE_H\r
+#define ALIPAY_UNBIND_FINISH_CODE_H\r
+\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_button.h"\r
+#include "AlipayPresenter.h"\r
+#include "components/ui_qrcode.h"\r
+\r
+namespace OHOS {\r
+class AlipayUnbindFinish : public UIViewGroup {\r
+public:\r
+    AlipayUnbindFinish(AlipayPresenter *presenter);\r
+    virtual ~AlipayUnbindFinish();\r
+    bool InitView();\r
+\r
+private:\r
+    bool AlipayInitImage(void);\r
+    bool AlipayInitLabel(void);\r
+    bool AlipayInitButton();\r
+    AlipayPresenter *presenter_;\r
+    UILabel *titleUnbind { nullptr };\r
+    UILabel *textUnbind { nullptr };\r
+    UILabelButton *buttonUnbind { nullptr };\r
+};\r
+}\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBarCode.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBarCode.cpp
new file mode 100644 (file)
index 0000000..c5740ed
--- /dev/null
@@ -0,0 +1,254 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay barcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayBarCode.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+#define ALIPAY_BARCODE_SPACE 32\r
+#define ALIPAY_BARCODE_SPACE_INTER 4\r
+#define ALIPAY_BARCODE_SPACE_NUM 3\r
+#define ALIPAY_BARCODE_LABEL_NUM 23\r
+\r
+static AlipayBarCode *g_alipayBarCode = nullptr;\r
+\r
+static const char *BARCODE_TITLE = (char *)"付款码";\r
+static const char *BARCODE_BUTTON = (char *)"切换二维码";\r
+\r
+static const int16 BARCODE_TITLE_FONT = 38;\r
+static const int16 BARCODE_BUTTON_FONT = 35;\r
+\r
+static const int16 BARCODE_TITLE_X = 170;\r
+static const int16 BARCODE_TITLE_Y = 23;\r
+static const int16 BARCODE_TITLE_WIDTH = 114;\r
+static const int16 BARCODE_TITLE_HEIGHT = 53;\r
+\r
+static const int16 BARCODE_BUTTON_X = 139;\r
+static const int16 BARCODE_BUTTON_Y = 380;\r
+static const int16 BARCODE_BUTTON_WIDTH = 176;\r
+static const int16 BARCODE_BUTTON_HEIGHT = 50;\r
+\r
+static const int16 RES_IMAGE_X_GREY = 207;\r
+static const int16 RES_IMAGE_X_WHITE = 232;\r
+static const int16 RES_IMAGE_Y = 13;\r
+static const int16 RES_IMAGE_WIDTH = 15;\r
+static const int16 RES_IMAGE_HEIGHT = 15;\r
+\r
+AlipayBarCode::AlipayBarCode(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayBarCode");\r
+    g_alipayBarCode = this;\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayBarCode::~AlipayBarCode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::~AlipayBarCode");\r
+    RemoveAll();\r
+\r
+    if (labelBarCode != nullptr) {\r
+        delete labelBarCode;\r
+        labelBarCode = nullptr;\r
+    }\r
+    if (buttonBarCode != nullptr) {\r
+        delete buttonBarCode;\r
+        buttonBarCode = nullptr;\r
+    }\r
+    if (alipayImageGrey != nullptr) {\r
+        delete alipayImageGrey;\r
+        alipayImageGrey = nullptr;\r
+    }\r
+    if (alipayImageWhite != nullptr) {\r
+        delete alipayImageWhite;\r
+        alipayImageWhite = nullptr;\r
+    }\r
+    if (alipayBarcode != nullptr) {\r
+        delete alipayBarcode;\r
+        alipayBarcode = nullptr;\r
+    }\r
+    if (labelPay != nullptr) {\r
+        delete labelPay;\r
+        labelPay = nullptr;\r
+    }\r
+    g_alipayBarCode = nullptr;\r
+}\r
+\r
+AlipayBarCode *AlipayBarCode::GetInstance(void)\r
+{\r
+    return g_alipayBarCode;\r
+}\r
+\r
+bool AlipayBarCode::AlipayInitImage(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitImage");\r
+\r
+    alipayImageGrey = new UIImageView();\r
+    if (alipayImageGrey == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitImage new Grey fail");\r
+        return false;\r
+    }\r
+    alipayImageGrey->SetPosition(RES_IMAGE_X_GREY, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageGrey->SetSrc(PNG_ALIPAY_PAY_ICON_GREY);\r
+\r
+    // Set additional property\r
+    alipayImageGrey->SetAutoEnable(false);\r
+    alipayImageGrey->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImageGrey);\r
+\r
+    alipayImageWhite = new UIImageView();\r
+    if (alipayImageWhite == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitImage new White fail");\r
+        return false;\r
+    }\r
+    alipayImageWhite->SetPosition(RES_IMAGE_X_WHITE, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageWhite->SetSrc(PNG_ALIPAY_PAY_ICON_WHITE);\r
+\r
+    // Set additional property\r
+    alipayImageWhite->SetAutoEnable(false);\r
+    alipayImageWhite->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImageWhite);\r
+    return true;\r
+}\r
+\r
+bool AlipayBarCode::AlipayInitLabel(void)\r
+{\r
+    labelBarCode = new UILabel();\r
+    if (labelBarCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitLabel new label fail");\r
+        return false;\r
+    }\r
+    labelBarCode->SetText(BARCODE_TITLE);\r
+    labelBarCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BARCODE_TITLE_FONT);\r
+    labelBarCode->SetPosition(BARCODE_TITLE_X, BARCODE_TITLE_Y, BARCODE_TITLE_WIDTH, BARCODE_TITLE_HEIGHT);\r
+    Add(labelBarCode);\r
+\r
+    return true;\r
+}\r
+\r
+void AlipayBarCode::AlipayBarcodeReformat(uint8_t *str, uint8_t *strBarcode)\r
+{\r
+    for (uint8_t i = 0, j = 0; i < ALIPAY_GET_PAY_STR_MAX_LENGTH && j < ALIPAY_BARCODE_LABEL_NUM; i++, j++) {\r
+        if ((i % ALIPAY_BARCODE_SPACE_INTER == 0) && i != 0 &&\r
+            i <= ALIPAY_BARCODE_SPACE_INTER * ALIPAY_BARCODE_SPACE_NUM) {\r
+            strBarcode[j] = ALIPAY_BARCODE_SPACE;\r
+            j++;\r
+        }\r
+        strBarcode[j] = str[i];\r
+    }\r
+    return;\r
+}\r
+\r
+bool AlipayBarCode::AlipayInitBarcode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitBarcode");\r
+    alipayBarcode = new UIBarcode();\r
+    if (alipayBarcode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayInitBarcode new UIBarcode fail");\r
+        return false;\r
+    }\r
+    alipayBarcode->SetPosition(43, 159, 348, 124);\r
+    alipayBarcode->SetStyle(STYLE_PADDING_TOP, 6);\r
+    alipayBarcode->SetStyle(STYLE_PADDING_BOTTOM, 6);\r
+    alipayBarcode->SetStyle(STYLE_PADDING_LEFT, 10);\r
+    alipayBarcode->SetStyle(STYLE_PADDING_RIGHT, 10);\r
+    alipayBarcode->EnableStretch(true);\r
+    uint8_t str[ALIPAY_GET_PAY_STR_MAX_LENGTH] = {0};\r
+    presenter_->AlipayGetPayCode(str);\r
+    alipayBarcode->SetBarcodeInfo((const char *)str);\r
+    alipayBarcode->SetTouchable(true);\r
+    alipayBarcode->SetOnClickListener(presenter_);\r
+    alipayBarcode->SetViewId(ALIPAY_PAY_BARCODE);\r
+\r
+    Add(alipayBarcode);\r
+\r
+    labelPay = new UILabel();\r
+    if (labelPay == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitBarCode new labelPay fail");\r
+        return false;\r
+    }\r
+    uint8_t strBarcode[ALIPAY_BARCODE_LABEL_NUM] = {0};\r
+    AlipayBarcodeReformat(str, strBarcode);\r
+    labelPay->SetText((char *)strBarcode);\r
+    labelPay->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    labelPay->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    labelPay->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+    labelPay->SetPosition(36, 297, 381, 42);\r
+    Add(labelPay);\r
+    return true;\r
+}\r
+\r
+void AlipayBarCode::AlipayRefreshBarcode(const char *refreshStr)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayRefreshBarcode");\r
+\r
+    if (alipayBarcode == nullptr || labelPay == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::AlipayRefreshBarcode alipayBarcode or labelPay nullptr");\r
+        return;\r
+    }\r
+    alipayBarcode->SetBarcodeInfo(refreshStr);\r
+    uint8_t strBarcode[ALIPAY_BARCODE_LABEL_NUM] = {0};\r
+    AlipayBarcodeReformat((uint8_t *)refreshStr, strBarcode);\r
+    labelPay->SetText((char *)strBarcode);\r
+    labelPay->Invalidate();\r
+\r
+    return;\r
+}\r
+\r
+bool AlipayBarCode::AlipayInitButton()\r
+{\r
+    buttonBarCode = new UILabelButton();\r
+    if (buttonBarCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitBarCode new label fail");\r
+        return false;\r
+    }\r
+    buttonBarCode->SetPosition(BARCODE_BUTTON_X, BARCODE_BUTTON_Y, BARCODE_BUTTON_WIDTH, BARCODE_BUTTON_HEIGHT);\r
+    buttonBarCode->SetText(BARCODE_BUTTON);\r
+    buttonBarCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BARCODE_BUTTON_FONT);\r
+    buttonBarCode->SetViewId(ALIPAY_PAY_SWITCH_QR);\r
+    buttonBarCode->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    buttonBarCode->SetOnClickListener(presenter_);\r
+    Add(buttonBarCode);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayBarCode::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
+    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitBarcode() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitView AlipayInitQrcode() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitImage() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBarCode::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBind.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBind.cpp
new file mode 100644 (file)
index 0000000..6b1e558
--- /dev/null
@@ -0,0 +1,116 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "AlipayBind.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const char *BIND_TITLE = (char *)"使用支付宝扫码绑定";\r
+static const char *BIND_BUTTON = (char *)"重新获取";\r
+static const int16 BIND_TITLE_FONT = 30;\r
+static const int16 BIND_BUTTON_FONT = 38;\r
+static const int16 BIND_TITLE_X = 0;\r
+static const int16 BIND_TITLE_Y = 52;\r
+static const int16 BIND_TITLE_WIDTH = 454;\r
+static const int16 BIND_TITLE_HEIGHT = 42;\r
+static const int16 BIND_IMAGE_X = 130;\r
+static const int16 BIND_IMAGE_Y = 126;\r
+static const int16 BIND_IMAGE_WAITING_X = 114;\r
+static const int16 BIND_IMAGE_WAITING_Y = 111;\r
+static const int16 BACKGROUND_IMAGE_X = 135;\r
+static const int16 BACKGROUND_IMAGE_Y = 125;\r
+static const int16 BIND_WIDTH = 80;\r
+static const int16 BIND_DROP_WIDTH = 45;\r
+static const int16 BIND_DROP_X = 200;\r
+static const int16 BIND_DROP_Y = 415;\r
+static const int16 BIND_BUTTON_X = 120;\r
+static const int16 BIND_BUTTON_Y = 320;\r
+static const int16 BIND_BUTTON_WIDTH = 212;\r
+static const int16 BIND_BUTTON_HEIGHT = 73;\r
+static const int16 ALIPAY_IMAGE_MAX = 2;\r
+static const int16 ALIPAY_IMAGE_Y = 35;\r
+static const int16 ALIPAY_COLD_IMAGE_X = 120;\r
+static const int16 ALIPAY_HOT_IMAGE_X = 275;\r
+static const int16 ALIPAY_IMAGE_WIDTH = 60;\r
+static const int16 ALIPAY_IMAGE_HEIGHT = 58;\r
+\r
+AlipayBind::AlipayBind(AlipayPresenter *present)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBind::AlipayBind");\r
+    presenter_ = present;\r
+}\r
+\r
+AlipayBind::~AlipayBind()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBind::~AlipayBind");\r
+    RemoveAll();\r
+    if (labelBind != nullptr) {\r
+        delete labelBind;\r
+        labelBind = nullptr;\r
+    }\r
+    if (qrcodeGroup != nullptr) {\r
+        delete qrcodeGroup;\r
+        qrcodeGroup = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayBind::AlipayInitImage(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBind::AlipayInitImage");\r
+    qrcodeGroup = new UIQrcode();\r
+    qrcodeGroup->SetPosition(88, 100, 277, 277);\r
+    qrcodeGroup->SetAutoEnable(false);\r
+    qrcodeGroup->SetResizeMode(UIImageView::ImageResizeMode::FILL);\r
+    uint8_t str[ALIPAY_GET_BIND_STR_MAX_LENGTH] = { 0 };\r
+    presenter_->AlipayGetBindCode(str);\r
+    qrcodeGroup->SetQrcodeInfo((const char *)str);\r
+    Add(qrcodeGroup);\r
+    return true;\r
+}\r
+\r
+bool AlipayBind::AlipayInitLabel(void)\r
+{\r
+    labelBind = new UILabel();\r
+    if (labelBind == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBind::InitBind new label fail");\r
+        return false;\r
+    }\r
+    labelBind->SetText(BIND_TITLE);\r
+    labelBind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BIND_TITLE_FONT);\r
+    labelBind->SetPosition(BIND_TITLE_X, BIND_TITLE_Y, BIND_TITLE_WIDTH, BIND_TITLE_HEIGHT);\r
+    labelBind->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    labelBind->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
+    labelBind->SetStyle(STYLE_TEXT_FONT, BIND_TITLE_FONT);\r
+    labelBind->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    Add(labelBind);\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipayBind::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBind::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::White().full);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBind::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitImage() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBind::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindAni.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindAni.cpp
new file mode 100644 (file)
index 0000000..c3f7390
--- /dev/null
@@ -0,0 +1,130 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind animate view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "AlipayBindAni.h"\r
+#include "common/image_cache_manager.h"\r
+#include "graphic_service.h"\r
+\r
+namespace OHOS {\r
+static const int16 ANILABEL_X_FIRST = 151;\r
+static const int16 ANILABEL_Y_FIRST = 257;\r
+static const int16 ANILABEL_WIDTH_FIRST = 151;\r
+static const int16 ANILABEL_HEIGHT_FIRST = 48;\r
+static const char *ANILABEL_TEXT_FIRST = (char *)"正在绑定";\r
+static const int16 ANILABEL_FONT_FIRST = 38;\r
+\r
+const char *searchImagePath[ALIPAY_BIND_SEARCH_IMAGE_NUM] = {\r
+    PNG_A019_080_IMAGE_PATH,\r
+    PNG_A019_081_IMAGE_PATH,\r
+    PNG_A019_082_IMAGE_PATH,\r
+    PNG_A019_083_IMAGE_PATH,\r
+    PNG_A019_084_IMAGE_PATH,\r
+    PNG_A019_085_IMAGE_PATH,\r
+    PNG_A019_086_IMAGE_PATH,\r
+    PNG_A019_087_IMAGE_PATH,\r
+};\r
+\r
+static const int16 ALIPAY_BIND_IMAGE_X = 162;\r
+static const int16 ALIPAY_BIND_IMAGE_Y = 112;\r
+static const int16 ALIPAY_BIND_IMAGE_WIDTH = 128;\r
+static const int16 ALIPAY_BIND_IMAGE_HEIGHT = 128;\r
+\r
+static const int16 ALIPAY_BIND_IMAGE_DELAY = 200;\r
+\r
+static const int16 RES_IMAGE_X = 162;\r
+static const int16 RES_IMAGE_Y = 112;\r
+static const int16 RES_IMAGE_WIDTH = 128;\r
+static const int16 RES_IMAGE_HEIGHT = 128;\r
+\r
+AlipayBindAni::AlipayBindAni(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::AlipayBindAni");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayBindAni::~AlipayBindAni()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::~AlipayBindAni");\r
+    RemoveAll();\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    if (alipayImageAni != nullptr) {\r
+        delete alipayImageAni;\r
+        alipayImageAni = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayBindAni::AlipayInitLabel(void)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::InitExit new alipayLabel fail");\r
+        return false;\r
+    }\r
+    alipayLabel->SetPosition(ANILABEL_X_FIRST, ANILABEL_Y_FIRST, ANILABEL_WIDTH_FIRST, ANILABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText(ANILABEL_TEXT_FIRST);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, ANILABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, ANILABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+    Add(alipayLabel);\r
+    return true;\r
+}\r
+\r
+bool AlipayBindAni::AlipayInitImageAni(void)\r
+{\r
+    alipayImageAni = new UIImageAnimatorView();\r
+    if (alipayImageAni == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::AlipayInitImageAni new alipayImageAni fail");\r
+        return false;\r
+    }\r
+    for (uint8_t i = 0; i < ALIPAY_BIND_SEARCH_IMAGE_NUM; i++) {\r
+        searchImageInfo[i].imageInfo = ImageCacheManager::GetInstance().LoadSingleRes(searchImagePath[i]);\r
+        searchImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
+        searchImageInfo[i].pos.x = ALIPAY_BIND_IMAGE_X;\r
+        searchImageInfo[i].pos.y = ALIPAY_BIND_IMAGE_Y;\r
+        searchImageInfo[i].width = ALIPAY_BIND_IMAGE_WIDTH;\r
+        searchImageInfo[i].height = ALIPAY_BIND_IMAGE_HEIGHT;\r
+    }\r
+\r
+    alipayImageAni->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageAni->SetImageAnimatorSrc(searchImageInfo, ALIPAY_BIND_SEARCH_IMAGE_NUM, ALIPAY_BIND_IMAGE_DELAY);\r
+    alipayImageAni->SetRepeat(true);\r
+    alipayImageAni->SetAutoEnable(false);\r
+    alipayImageAni->SetResizeMode(UIImageView::FILL);\r
+    Add(alipayImageAni);\r
+\r
+    alipayImageAni->Start();\r
+    return true;\r
+}\r
+\r
+bool AlipayBindAni::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::Init");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImageAni() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindAni::InitView AlipayInitImageAni() false");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindRes.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayBindRes.cpp
new file mode 100644 (file)
index 0000000..9a6bd4c
--- /dev/null
@@ -0,0 +1,131 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind result view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayBindRes.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const int16 EXIT_LABEL_X_FIRST = 151;\r
+static const int16 EXIT_LABEL_Y_FIRST = 257;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 151;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
+static const char *EXIT_LABEL_TEXT_FIRST = (char *)"绑定失败";\r
+static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+\r
+static const char *EXIT_LABEL_TEXT_SEC = (char *)"绑定成功";\r
+\r
+static const int16 RES_IMAGE_X = 161;\r
+static const int16 RES_IMAGE_Y = 110;\r
+static const int16 RES_IMAGE_WIDTH = 135;\r
+static const int16 RES_IMAGE_HEIGHT = 135;\r
+\r
+AlipayBindRes::AlipayBindRes(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::AlipayBindRes");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayBindRes::~AlipayBindRes()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::~AlipayBindRes");\r
+    RemoveAll();\r
+\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    if (alipayImage != nullptr) {\r
+        delete alipayImage;\r
+        alipayImage = nullptr;\r
+    }\r
+}\r
+\r
+void AlipayBindRes::AlipayRefreshBindRes(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::AlipayRefreshBindRes");\r
+\r
+    if (alipayLabel == nullptr || alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::AlipayRefreshBindRes nullptr");\r
+        return;\r
+    }\r
+    // alipayLabel->Set\r
+    if (presenter_->AlipayGetBindFlag()) {\r
+        alipayLabel->SetText(EXIT_LABEL_TEXT_SEC);\r
+        alipayImage->SetSrc(PNG_ALIPAY_BIND_SUCCESS);\r
+    } else {\r
+        alipayLabel->SetText(EXIT_LABEL_TEXT_FIRST);\r
+        alipayImage->SetSrc(PNG_ALIPAY_BIND_FAILURE);\r
+    }\r
+    alipayLabel->Invalidate();\r
+    alipayImage->Invalidate();\r
+\r
+    return;\r
+}\r
+\r
+bool AlipayBindRes::AlipayInitLabel(const char *resStr)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitExit new alipayLabel fail");\r
+        return false;\r
+    }\r
+    alipayLabel->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST, EXIT_LABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText(resStr);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+\r
+    Add(alipayLabel);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayBindRes::AlipayInitImage(const char *imageSrc)\r
+{\r
+    alipayImage = new UIImageView();\r
+    if (alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::AlipayInitImage new alipayImage fail");\r
+        return false;\r
+    }\r
+    alipayImage->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImage->SetSrc(imageSrc);\r
+\r
+    // Set additional property\r
+    alipayImage->SetAutoEnable(false);\r
+    alipayImage->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImage);\r
+    return true;\r
+}\r
+\r
+bool AlipayBindRes::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitExit");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    const char *resStr = EXIT_LABEL_TEXT_SEC;\r
+    if (AlipayInitLabel(resStr) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImage(PNG_ALIPAY_BIND_SUCCESS) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp
new file mode 100644 (file)
index 0000000..08944b8
--- /dev/null
@@ -0,0 +1,167 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay binding process exit binding view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "AlipayExitBind.h"\r
+\r
+namespace OHOS {\r
+static const int16 EXIT_LABEL_X_FIRST = 132;\r
+static const int16 EXIT_LABEL_X_SEC = 0;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 189;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
+\r
+static const int16 EXIT_LABEL_Y_FIRST = 57;\r
+static const int16 EXIT_LABEL_Y_SECOND = 154;\r
+static const int16 EXIT_LABEL_WIDTH_SEC = 454;\r
+static const int16 EXIT_LABEL_HEIGHT_SEC = 83;\r
+static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+static const int16 EXIT_LABEL_FONT_SEC = 30;\r
+\r
+static const char *EXIT_LABEL_TEXT_FIRST = (char *)"未完成绑定";\r
+static const char *EXIT_LABEL_TEXT_SECOND = (char *)"当前未完成绑定,退出在进来\n需要重新扫码绑定";\r
+\r
+static const int16 EXIT_BUTTON_EXIT_X = 50;\r
+static const int16 EXIT_BUTTON_EXIT_Y = 312;\r
+\r
+static const int16 EXIT_BUTTON_BIND_X = 233;\r
+static const int16 EXIT_BUTTON_BIND_Y = 312;\r
+\r
+static const char *EXIT_BUTTON_TEXT_FIRST = (char *)"退出";\r
+static const char *EXIT_BUTTON_TEXT_SECOND = (char *)"去绑定";\r
+\r
+static const int16 EXIT_BUTTON_WIDTH = 169;\r
+static const int16 EXIT_BUTTON_HEIGHT = 73;\r
+static const int16 EXIT_BUTTON_FONT = 38;\r
+\r
+AlipayExitBind::AlipayExitBind(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::AlipayExitBind");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayExitBind::~AlipayExitBind()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::~AlipayExitBind");\r
+    RemoveAll();\r
+    for (int32_t labelNum = ALIPAY_SET_ZERO; labelNum < ALIPAY_SET_TWO; labelNum++) {\r
+        if (alipayLabel[labelNum] != nullptr) {\r
+            delete alipayLabel[labelNum];\r
+            alipayLabel[labelNum] = nullptr;\r
+        }\r
+    }\r
+    for (int32_t buttonNum = ALIPAY_SET_ZERO; buttonNum < ALIPAY_SET_TWO; buttonNum++) {\r
+        if (alipayButton[buttonNum] != nullptr) {\r
+            delete alipayButton[buttonNum];\r
+            alipayButton[buttonNum] = nullptr;\r
+        }\r
+    }\r
+}\r
+\r
+bool AlipayExitBind::AlipayInitLabel()\r
+{\r
+    alipayLabel[ALIPAY_SET_ZERO] = new UILabel();\r
+    if (alipayLabel[ALIPAY_SET_ZERO] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::InitExit new alipayLabel[ALIPAY_SET_ZERO] fail");\r
+        return false;\r
+    }\r
+\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST,\r
+        EXIT_LABEL_HEIGHT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetText(EXIT_LABEL_TEXT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+\r
+    Add(alipayLabel[ALIPAY_SET_ZERO]);\r
+\r
+    alipayLabel[ALIPAY_SET_ONE] = new UILabel();\r
+    if (alipayLabel[ALIPAY_SET_ONE] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::InitExit new alipayLabel[ALIPAY_SET_ONE] fail");\r
+        return false;\r
+    }\r
+    alipayLabel[ALIPAY_SET_ONE]->SetPosition(EXIT_LABEL_X_SEC, EXIT_LABEL_Y_SECOND, EXIT_LABEL_WIDTH_SEC,\r
+        EXIT_LABEL_HEIGHT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetText(EXIT_LABEL_TEXT_SECOND);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 6);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);\r
+    Add(alipayLabel[ALIPAY_SET_ONE]);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayExitBind::InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr,\r
+    const char *viewId)\r
+{\r
+    alipayButton[num] = new UILabelButton();\r
+    if (alipayButton[num] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::InitSimilarButton new alipayButton[%d] fail", num);\r
+        return false;\r
+    }\r
+    int64_t backColor = 0;\r
+\r
+    if (num == 0) {\r
+        backColor = 0xff4a83bf;\r
+        alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+    } else if (num == 1) {\r
+        backColor = 0xff0b1928;\r
+    }\r
+    alipayButton[num]->SetPosition(alipayX, alipayY, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT);\r
+    alipayButton[num]->SetText(buttonStr);\r
+    alipayButton[num]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_BUTTON_FONT);\r
+    alipayButton[num]->SetViewId(viewId);\r
+    alipayButton[num]->SetStyleForState(STYLE_BORDER_COLOR, backColor, UIButton::RELEASED);\r
+    alipayButton[num]->SetOnClickListener(presenter_);\r
+\r
+    Add(alipayButton[num]);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayExitBind::AlipayInitButton()\r
+{\r
+    if (InitSimilarButton(ALIPAY_SET_ZERO, EXIT_BUTTON_EXIT_X, EXIT_BUTTON_EXIT_Y, EXIT_BUTTON_TEXT_FIRST,\r
+        ALIPAY_INTER_EXIT) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayExitBind::AlipayInitButton new alipayButton[ALIPAY_SET_ZERO] fail");\r
+        return false;\r
+    }\r
+    if (InitSimilarButton(ALIPAY_SET_ONE, EXIT_BUTTON_BIND_X, EXIT_BUTTON_BIND_Y, EXIT_BUTTON_TEXT_SECOND,\r
+        ALIPAY_BIND_CONTINUE) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayExitBind::AlipayInitButton new alipayButton[ALIPAY_SET_ONE] fail");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayExitBind::InitView()\r
+{\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayExitBind::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayHelp.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayHelp.cpp
new file mode 100644 (file)
index 0000000..9f29ded
--- /dev/null
@@ -0,0 +1,116 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay help qrcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayHelp.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const char *HELP_TITLE = (char*)"使用支付宝扫码求助";\r
+static const int16 HELP_TITLE_FONT = 30;\r
+static const int16 HELP_TITLE_X = 0;\r
+static const int16 HELP_TITLE_Y = 52;\r
+static const int16 HELP_TITLE_WIDTH = 454;\r
+static const int16 HELP_TITLE_HEIGHT = 42;\r
+\r
+static const int16 ALIPAY_IMAGE_MAX = 2;\r
+static const int16 ALIPAY_IMAGE_Y = 35;\r
+static const int16 ALIPAY_IMAGE_WIDTH = 60;\r
+static const int16 ALIPAY_IMAGE_HEIGHT = 58;\r
+\r
+AlipayHelp::AlipayHelp(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayHelp::AlipayHelp");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayHelp::~AlipayHelp()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayHelp::~AlipayHelp");\r
+    RemoveAll();\r
+\r
+    if (labelHelp != nullptr) {\r
+        delete labelHelp;\r
+        labelHelp = nullptr;\r
+    }\r
+    if (qrcodeGroup != nullptr) {\r
+        delete qrcodeGroup;\r
+        qrcodeGroup = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayHelp::AlipayInitImage(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayHelp::AlipayInitImage");\r
+\r
+    qrcodeGroup = new UIQrcode();\r
+    if (qrcodeGroup == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayHelp::AlipayInitImage qrcodeGroup nullptr");\r
+        return false;\r
+    }\r
+    qrcodeGroup->SetPosition(78, 96, 278, 278);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_LEFT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_RIGHT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_TOP, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_BOTTOM, 10);\r
+    qrcodeGroup->SetAutoEnable(false);\r
+    qrcodeGroup->SetResizeMode(UIImageView::ImageResizeMode::FILL);\r
+    int8_t strAid[ALIPAY_GET_AID_STR_MAX_LENGTH] = { 0 };\r
+    presenter_->AlipayGetAidCode(strAid);\r
+    qrcodeGroup->SetQrcodeInfo((const char *)strAid);\r
+\r
+    Add(qrcodeGroup);\r
+\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipayHelp::AlipayInitLabel(void)\r
+{\r
+    labelHelp = new UILabel();\r
+    if (labelHelp == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayHelp::AlipayInitLabel new labelHelp fail");\r
+        return false;\r
+    }\r
+    labelHelp->SetText(HELP_TITLE);\r
+    labelHelp->SetFont(DEFAULT_VECTOR_FONT_FILENAME, HELP_TITLE_FONT);\r
+    labelHelp->SetPosition(HELP_TITLE_X, HELP_TITLE_Y, HELP_TITLE_WIDTH, HELP_TITLE_HEIGHT);\r
+    labelHelp->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    labelHelp->SetStyle(STYLE_TEXT_FONT, HELP_TITLE_FONT);\r
+    labelHelp->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    \r
+    Add(labelHelp);\r
+\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipayHelp::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayHelp::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
+    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayHelp::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+    \r
+    if (AlipayInitImage() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayHelp::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+    \r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListAdapter.cpp
new file mode 100644 (file)
index 0000000..75b2d2d
--- /dev/null
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list adapt.
+ * Author:
+ * Create:
+ */
+
+#include "AlipayListAdapter.h"
+#include "AlipayListItemView.h"
+
+namespace OHOS {
+AlipayListAdapter::AlipayListAdapter()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListAdapter::AlipayListAdapter()");
+}
+
+AlipayListAdapter::~AlipayListAdapter()
+{
+    listData.clear();
+}
+
+uint16_t AlipayListAdapter::GetCount(void)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListAdapter::GetCount(), size:%u", listData.size());
+    return listData.size();
+}
+
+void AlipayListAdapter::SetData(std::list<AlipayListItem> &data)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListAdapter::SetData()");
+    if (!listData.empty()) {
+        listData.clear();
+    }
+    std::list<AlipayListItem>::iterator it;
+    for (it = data.begin(); it != data.end(); it++) {
+        listData.push_back(*it);
+    }
+}
+
+UIView *AlipayListAdapter::GetView(UIView *inView, int16_t index)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListAdapter::GetView(), addr %x, index:%u", inView, index);
+    if (listData.empty()) {
+        return nullptr;
+    }
+    if (index < 0) {
+        return nullptr;
+    }
+    size_t uindex = index;
+    if (uindex >= listData.size()) {
+        return nullptr;
+    }
+
+    std::list<AlipayListItem>::iterator it = listData.begin();
+    for (int i = 0; i < index; i++) {
+        it++;
+    }
+    AlipayListItem itemData = *it;
+    AlipayListItemView *item = nullptr;
+    if (inView == nullptr) {
+        item = new AlipayListItemView();
+    } else {
+        item = static_cast<AlipayListItemView *>(inView);
+    }
+
+    item->SetItemInfo(itemData);
+    item->SetViewId(itemData.viewId);
+    item->SetOnClickListener(itemClickListener);
+    return item;
+}
+
+void AlipayListAdapter::AddListItem(const AlipayListItem &item)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListAdapter::AddListItem()");
+    listData.push_back(item);
+}
+} // namespace OHOS
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListItemView.cpp
new file mode 100644 (file)
index 0000000..4cd238d
--- /dev/null
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list item view.
+ * Author:
+ * Create:
+ */
+
+#include "wearable_log.h"
+#include "AlipayListItemView.h"
+
+namespace OHOS {
+static constexpr int16 ALIPAY_LIST_ICON_X = 20;
+static constexpr int16 NUM_22 = 22;
+static constexpr int16_t ALIPAY_LIST_ICON_WIDTH = 64;
+static constexpr int16_t ALIPAY_LIST_ICON_HEIGHT = 64;
+static constexpr int16_t ALIPAY_LIST_ITEM_BUTTON_HEIGHT = 100;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_WIDTH = 122;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_HEIGHT = 100;
+static constexpr int16_t ALIPAY_LIST_ITEM_FONT_SIZE = 40;
+static constexpr int16_t ALIPAY_LISTS_RESIZE_SIZE = 100;
+static constexpr int16_t ALIPAY_LIST_SICON_Y = 15;
+static constexpr int16 NUMS_2 = 2;
+static constexpr int16 NUMS_50 = 50;
+
+AlipayListItemView::AlipayListItemView()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListItemView::AlipayListItemView()");
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, ALIPAY_LIST_ITEM_BUTTON_HEIGHT);
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+    SetTouchable(true);
+    SetUpChild();
+
+    Add(&sIcon);
+    Add(&sLabel);
+    Add(&sNextImage);
+}
+
+AlipayListItemView::~AlipayListItemView()
+{
+    Remove(&sIcon);
+    Remove(&sLabel);
+    Remove(&sNextImage);
+}
+
+void AlipayListItemView::SetItemInfo(const AlipayListItem &itemInfo)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListItemView::SetItemInfo()");
+    sItemInfo = itemInfo;
+    sIcon.SetSrc(itemInfo.icon);
+    sLabel.SetText(itemInfo.label);
+    sNextImage.SetVisible(itemInfo.hasSecondMenu);
+}
+
+void AlipayListItemView::SetUpChild()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListItemView::SetUpChild()");
+    sIcon.SetPosition(ALIPAY_LIST_ICON_X, ALIPAY_LIST_SICON_Y);
+    sIcon.Resize(ALIPAY_LIST_ICON_WIDTH, ALIPAY_LIST_ICON_HEIGHT);
+
+    sIcon.SetAutoEnable(false);
+    sIcon.SetResizeMode(UIImageView::FILL);
+    sIcon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+    sLabel.SetPosition(ALIPAY_LIST_ITEM_LABEL_WIDTH, 0);
+    sLabel.Resize(ALIPAY_LIST_ITEM_LABEL_WIDTH, ALIPAY_LIST_ITEM_LABEL_HEIGHT);
+    sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, ALIPAY_LIST_ITEM_FONT_SIZE);
+    sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
+    sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
+    sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+
+    sNextImage.SetSrc(PNG_SETTING_NEXT_IMAGE);
+    sNextImage.SetPosition(LA_HORIZONTAL_RESOLUTION - NUMS_50, (SETTING_ITEM_HEIGHT - sNextImage.GetHeight()) / NUMS_2);
+    sNextImage.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+}
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayList/AlipayListView.cpp
new file mode 100644 (file)
index 0000000..3c44c3a
--- /dev/null
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay list view.
+ * Author:
+ * Create:
+ */
+
+#include <string>
+#include "AlipayListView.h"
+#include "AlipayListItem.h"
+#include "cmsis_os2.h"
+
+namespace OHOS {
+static constexpr int16_t ALIPAY_LIST_POSITION_X = 33;
+static constexpr int16_t ALIPAY_LIST_POSITION_Y = 59;
+static constexpr int16_t ALIPAY_LIST_SCROLLBLANKSIZE = 100;
+static constexpr int16 MAX_SCR_DIS = 1000;
+static constexpr int16 LIST_POS = 20;
+static constexpr int16 SNUM_2 = 2;
+
+AlipayList::AlipayList(AlipayPresenter *presenter)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::AlipayList");
+    presenter_ = presenter;
+}
+
+AlipayList::~AlipayList()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::~AlipayList");
+    RemoveAll();
+
+    if (listAdapter != nullptr) {
+        delete listAdapter;
+        listAdapter = nullptr;
+    }
+    if (contentList != nullptr) {
+        delete contentList;
+        contentList = nullptr;
+    }
+}
+
+bool AlipayList::AlipayInitList()
+{
+    listAdapter = new AlipayListAdapter();
+    if (listAdapter == nullptr) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::OnStart::listAdapter is nullptr");
+        return false;
+    }
+    listAdapter->SetItemClickListener(presenter_);
+    InitAlipayListItem();
+    contentList = new UIList();
+    if (contentList == nullptr) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::OnStart::contentList is nullptr");
+        return false;
+    }
+    contentList->SetPosition(ALIPAY_LIST_POSITION_X, ALIPAY_LIST_POSITION_Y);
+    contentList->Resize(HORIZONTAL_RESOLUTION - ALIPAY_LIST_POSITION_X, VERTICAL_RESOLUTION - ALIPAY_LIST_POSITION_Y);
+    contentList->SetScrollBlankSize(ALIPAY_LIST_SCROLLBLANKSIZE);
+    contentList->SetSelectPosition(ALIPAY_LIST_POSITION_Y);
+    contentList->SetDraggable(true);
+    contentList->SetThrowDrag(false);
+    contentList->EnableAutoAlign(true);
+    contentList->SetMaxScrollDistance(MAX_SCR_DIS);
+
+    AddAlipayListItemToList();
+    Add(contentList);
+    contentList->SetAdapter(listAdapter);
+    return true;
+}
+
+void AlipayList::InitAlipayListItem()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListModel::InitAlipayListItem()");
+    alipayLists[0] = {ALIPAY_LIST_ITEM_PAY, ALIPAY_LIST_PAY_BUTTON, PNG_ALIPAY_LIST_PAY, "付款码", true};
+    alipayLists[1] = {ALIPAY_LIST_ITEM_TRANS, ALIPAY_LIST_TRANS_BUTTON, PNG_ALIPAY_LIST_TRANS, "乘车码", true};
+    alipayLists[2] = {ALIPAY_LIST_ITEM_SETTING, ALIPAY_LIST_SETTING_BUTTON, PNG_ALIPAY_LIST_SETTING, "设置", true};
+    alipayLists[3] = {ALIPAY_LIST_ITEM_HELP, ALIPAY_LIST_HELP_BUTTON, PNG_ALIPAY_LIST_HELP, "帮助", true};
+}
+
+bool AlipayList::InitListView()
+{
+    SetDraggable(true);
+    SetTouchable(true);
+    SetOnDragListener(presenter_);
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+
+    if (AlipayInitList() == false) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayList::InitView AlipayInitList() false");
+        return false;
+    }
+
+    return true;
+}
+
+void AlipayList::AddAlipayListItemToList(void)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::AddAlipayListItemToList");
+    for (uint8_t i = 0; i < ALIPAY_LIST_ITEM_MAX; i++) {
+        listAdapter->AddListItem(alipayLists[i]);
+    }
+}
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp
new file mode 100644 (file)
index 0000000..10bad7d
--- /dev/null
@@ -0,0 +1,814 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay app main view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "AlipayMainView.h"\r
+#include "UiConfig.h"\r
+#include "alipay_feature.h"\r
+\r
+namespace OHOS {\r
+#define ALIPAY_BIND_SUCCESS_RES_TIMER_LENGTH 3000\r
+#define ALIPAY_BIND_FAILURE_RES_TIMER_LENGTH 8000\r
+\r
+static AlipayMainView *g_alipayMainView = nullptr;\r
+\r
+static const int16 LABEL_FIRST_X = 200;\r
+static const int16 LABEL_FIRST_Y = 60;\r
+static const int16 LABEL_FIRST_WIDTH = 150;\r
+static const int16 LABEL_FIRST_HEIGHT = 45;\r
+static const int16 LABEL_FIRST_FONT = 35;\r
+\r
+AlipayMainView::AlipayMainView()\r
+{\r
+    g_alipayMainView = this;\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::AlipayMainView");\r
+}\r
+\r
+AlipayMainView::~AlipayMainView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::~AlipayMainView");\r
+    int16 numGroup;\r
+    for (numGroup = ALIPAY_SET_ZERO; numGroup < ALIPAY_INTERFACES_MAX; numGroup++) {\r
+        if (container[numGroup] != nullptr) {\r
+            container[numGroup] = nullptr;\r
+        }\r
+    }\r
+    DeleteViceInter();\r
+    group = nullptr;\r
+    g_alipayMainView = nullptr;\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::~AlipayMainView");\r
+}\r
+\r
+AlipayMainView *AlipayMainView::GetInstance(void)\r
+{\r
+    return g_alipayMainView;\r
+}\r
+\r
+void AlipayMainView::OnStart()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnStart");\r
+    View<AlipayPresenter>::OnStart();\r
+    BaseView::RootView(Color::Black().full);\r
+    alipayInterfacesId startView;\r
+    bool bindFlag = AlipayModel::GetInstance()->AlipayGetBindstate();\r
+    if (!bindFlag) {\r
+        alipayBind = new AlipayBind(presenter_);\r
+        if (alipayBind == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView:: OnStart alipayBind null error!");\r
+            return;\r
+        }\r
+        alipayBind->InitView();\r
+        startView = ALIPAY_BIND_VIEW;\r
+        container[startView] = alipayBind;\r
+        AlipayModel::GetInstance()->AlipayStartBind();\r
+    } else {\r
+        alipayList = new AlipayList(presenter_);\r
+        if (alipayList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView:: OnStart alipayList null error!");\r
+            return;\r
+        }\r
+        alipayList->InitListView();\r
+        startView = ALIPAY_LIST_VIEW;\r
+        container[startView] = alipayList;\r
+    }\r
+    AlipayModel::GetInstance()->SetAlipayInterLis(startView);\r
+    group = container[startView];\r
+    alipayWhichInter = startView;\r
+\r
+    RootView::GetInstance()->Add(container[startView]);\r
+\r
+    return;\r
+}\r
+\r
+void AlipayMainView::OnSetUpView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnSetUpView");\r
+    View<AlipayPresenter>::OnSetUpView();\r
+\r
+    if (group == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnSetUpView group null error!");\r
+        return;\r
+    }\r
+\r
+    RootView::GetInstance()->Add(group);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RootView::GetInstance()->Add");\r
+\r
+    // show timerView\r
+    Draw();\r
+}\r
+\r
+void AlipayMainView::OnTearDownView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnTearDownView");\r
+    View<AlipayPresenter>::OnTearDownView();\r
+\r
+    return;\r
+}\r
+\r
+void AlipayMainView::OnStop()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnStop");\r
+    View<AlipayPresenter>::OnStop();\r
+    if (container_ != nullptr) {\r
+        container_->RemoveAll();\r
+        delete container_;\r
+        container_ = nullptr;\r
+    }\r
+    group->RemoveAll();\r
+    RootView::GetInstance()->ClearOnKeyActListener();\r
+    RootView::GetInstance()->RemoveAll();\r
+    return;\r
+}\r
+\r
+void AlipayMainView::DeleteViceInter(void)\r
+{\r
+    if (alipayBind != nullptr) {\r
+        delete alipayBind;\r
+        alipayBind = nullptr;\r
+    }\r
+    if (alipayExitBind != nullptr) {\r
+        delete alipayExitBind;\r
+        alipayExitBind = nullptr;\r
+    }\r
+    if (alipayBindRes != nullptr) {\r
+        delete alipayBindRes;\r
+        alipayBindRes = nullptr;\r
+    }\r
+    if (alipayBindAni != nullptr) {\r
+        delete alipayBindAni;\r
+        alipayBindAni = nullptr;\r
+    }\r
+\r
+    if (alipayPayCode != nullptr) {\r
+        delete alipayPayCode;\r
+        alipayPayCode = nullptr;\r
+    }\r
+    if (alipayBarCode != nullptr) {\r
+        delete alipayBarCode;\r
+        alipayBarCode = nullptr;\r
+    }\r
+    if (alipaySetting != nullptr) {\r
+        delete alipaySetting;\r
+        alipaySetting = nullptr;\r
+    }\r
+    if (alipayExitBindSetting != nullptr) {\r
+        delete alipayExitBindSetting;\r
+        alipayExitBindSetting = nullptr;\r
+    }\r
+    if (alipayUnbindFinish != nullptr) {\r
+        delete alipayUnbindFinish;\r
+        alipayUnbindFinish = nullptr;\r
+    }\r
+\r
+    if (alipayHelp != nullptr) {\r
+        delete alipayHelp;\r
+        alipayHelp = nullptr;\r
+    }\r
+\r
+    if (alipayList != nullptr) {\r
+        delete alipayList;\r
+        alipayList = nullptr;\r
+    }\r
+\r
+    if (alipayGetTransList != nullptr) {\r
+        delete alipayGetTransList;\r
+        alipayGetTransList = nullptr;\r
+    }\r
+    if (alipayTransTips != nullptr) {\r
+        delete alipayTransTips;\r
+        alipayTransTips = nullptr;\r
+    }\r
+    if (alipayTransCode != nullptr) {\r
+        delete alipayTransCode;\r
+        alipayTransCode = nullptr;\r
+    }\r
+    if (alipayTransEnable != nullptr) {\r
+        delete alipayTransEnable;\r
+        alipayTransEnable = nullptr;\r
+    }\r
+    if (alipayTransRes != nullptr) {\r
+        delete alipayTransRes;\r
+        alipayTransRes = nullptr;\r
+    }\r
+    if (alipayTransList != nullptr) {\r
+        delete alipayTransList;\r
+        alipayTransList = nullptr;\r
+    }\r
+\r
+    if (alipayTransAni != nullptr) {\r
+        delete alipayTransAni;\r
+        alipayTransAni = nullptr;\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+int16 AlipayMainView::GetWhichInter(void)\r
+{\r
+    return alipayWhichInter;\r
+}\r
+\r
+int16 AlipayMainView::GetListenInter(void)\r
+{\r
+    return interListen;\r
+}\r
+\r
+void AlipayMainView::DropView(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView");\r
+    if (&view == container[ALIPAY_PAY_BARCODE_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_BARCODE_VIEW]");\r
+        ChangeView(ALIPAY_PAY_BARCODE_VIEW, ALIPAY_PAY_VIEW);\r
+    } else if (&view == container[ALIPAY_PAY_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_VIEW]");\r
+        AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
+        ChangeView(ALIPAY_PAY_VIEW, ALIPAY_LIST_VIEW);\r
+    } else if (&view == container[ALIPAY_SETTING_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_SETTING_VIEW]");\r
+        ChangeView(ALIPAY_SETTING_VIEW, ALIPAY_LIST_VIEW);\r
+    } else if (&view == container[ALIPAY_HELP_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_HELP_VIEW]");\r
+        ChangeView(ALIPAY_HELP_VIEW, ALIPAY_LIST_VIEW);\r
+    } else if (&view == container[ALIPAY_BIND_ANI_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_BIND_ANI_VIEW]");\r
+        ChangeView(ALIPAY_BIND_ANI_VIEW, ALIPAY_BIND_EXIT_VIEW);\r
+    } else if (&view == container[ALIPAY_LIST_VIEW] || &view == container[ALIPAY_BIND_VIEW]) {\r
+        AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+    } else if (&view == container[ALIPAY_TRANS_LIST_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_LIST_VIEW]");\r
+        ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
+    } else if (&view == container[ALIPAY_TRANS_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_VIEW]");\r
+        ChangeView(ALIPAY_TRANS_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+    } else if (&view == container[ALIPAY_TRANS_ENABLE_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_ENABLE_VIEW]");\r
+        AlipayModel::GetInstance()->AlipayTransStopGetListsTimer();\r
+        ChangeView(ALIPAY_TRANS_ENABLE_VIEW, ALIPAY_LIST_VIEW);\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+void AlipayMainView::SwitchView(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::SwitchView");\r
+    if (&view == container[ALIPAY_PAY_VIEW]) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_VIEW]");\r
+        ChangeView(ALIPAY_PAY_VIEW, ALIPAY_PAY_BARCODE_VIEW);\r
+    } else if (&view == container[ALIPAY_BIND_RES_VIEW] && presenter_->AlipayGetBindFlag()) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_BIND_VIEW]");\r
+        AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
+        ChangeView(ALIPAY_BIND_RES_VIEW, ALIPAY_LIST_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+bool AlipayMainView::ChangePayView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangePayView");\r
+    AlipayModel::GetInstance()->AlipayStartSwitchTimer(60000);\r
+    if (container[thisView] == nullptr) {\r
+        alipayPayCode = new AlipayPayCode(presenter_);\r
+        if (alipayPayCode == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangePayView alipayPayCode null error!");\r
+            return false;\r
+        }\r
+        if (alipayPayCode->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangePayView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayPayCode;\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    } else {\r
+        uint8_t payStr[ALIPAY_GET_PAY_STR_MAX_LENGTH] = { 0 };\r
+        presenter_->AlipayGetPayCode(payStr);\r
+        alipayPayCode->AlipayRefreshQrcode((const char *)payStr);\r
+    }\r
+\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeSettingView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeSettingView");\r
+    if (container[thisView] == nullptr) {\r
+        alipaySetting = new AlipaySetting(presenter_);\r
+        if (alipaySetting == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeSettingView alipayPayCode null error!");\r
+            return false;\r
+        }\r
+        if (alipaySetting->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeSettingView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipaySetting;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeHelpView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeHelpView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayHelp = new AlipayHelp(presenter_);\r
+        if (alipayHelp == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeHelpView alipayHelp null error!");\r
+            return false;\r
+        }\r
+        if (alipayHelp->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeHelpView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayHelp;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeBindAniView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindAniView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayBindAni = new AlipayBindAni(presenter_);\r
+        if (alipayBindAni == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindAniView alipayBindAni null error!");\r
+            return false;\r
+        }\r
+        if (alipayBindAni->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindAniView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayBindAni;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeBindExitView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindExitView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayExitBind = new AlipayExitBind(presenter_);\r
+        if (alipayExitBind == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindExitView alipayExitBind null error!");\r
+            return false;\r
+        }\r
+        if (alipayExitBind->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindExitView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayExitBind;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeBindResView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindResView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayBindRes = new AlipayBindRes(presenter_);\r
+        if (alipayBindRes == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindResView alipayBindRes null error!");\r
+            return false;\r
+        }\r
+        if (alipayBindRes->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindResView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayBindRes;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayBindRes->AlipayRefreshBindRes();\r
+    if (presenter_->AlipayGetBindFlag()) {\r
+        AlipayModel::GetInstance()->AlipayStartSwitchTimer(ALIPAY_BIND_SUCCESS_RES_TIMER_LENGTH);\r
+    } else {\r
+        AlipayModel::GetInstance()->AlipayStartSwitchTimer(ALIPAY_BIND_FAILURE_RES_TIMER_LENGTH);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeUnbindView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeUnbindView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayExitBindSetting = new AlipayUnbind(presenter_);\r
+        if (alipayExitBindSetting == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "AlipayMainView::ChangeUnbindView alipayExitBindSetting null error!");\r
+            return false;\r
+        }\r
+        if (alipayExitBindSetting->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeUnbindView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayExitBindSetting;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeUnbindFinishView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeUnbindFinishView");\r
+    AlipayModel::GetInstance()->AlipayUnbind();\r
+    if (container[thisView] == nullptr) {\r
+        alipayUnbindFinish = new AlipayUnbindFinish(presenter_);\r
+        if (alipayUnbindFinish == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "AlipayMainView::ChangeUnbindFinishView alipayUnbindFinish null error!");\r
+            return false;\r
+        }\r
+        if (alipayUnbindFinish->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeUnbindFinishView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayUnbindFinish;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeBindView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindView");\r
+    AlipayModel::GetInstance()->AlipayStartBind();\r
+    if (container[thisView] == nullptr) {\r
+        alipayBind = new AlipayBind(presenter_);\r
+        if (alipayBind == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindView alipayBind null error!");\r
+            return false;\r
+        }\r
+        if (alipayBind->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayBind;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransCode = new AlipayTransCode(presenter_);\r
+        if (alipayTransCode == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransView alipayTransCode null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransCode->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransCode;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransListView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransListView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransList = new AlipayTransList(presenter_);\r
+        if (alipayTransList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransListView alipayTransList null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransList->InitListView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransListView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransList;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransEnableView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransEnableView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransEnable = new AlipayTransEnable(presenter_);\r
+        if (alipayTransEnable == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "AlipayMainView::ChangeTransEnableView alipayTransEnable null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransEnable->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransEnableView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransEnable;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransTipsView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransTipsView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransTips = new AlipayTransTips(presenter_);\r
+        if (alipayTransTips == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransTipsView alipayTransTips null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransTips->InitTipsView(presenter_->AlipayGetSwitchIndex()) == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransTipsView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransTips;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransResView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransResView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransRes = new AlipayTransRes(presenter_);\r
+        if (alipayTransRes == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransResView alipayTransRes null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransRes->InitResView(presenter_->AlipayGetSwitchIndex()) == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransResView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransRes;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeGetTransListView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeGetTransListView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayGetTransList = new AlipayGetTransList(presenter_);\r
+        if (alipayGetTransList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "AlipayMainView::ChangeGetTransListView alipayGetTransList null error!");\r
+            return false;\r
+        }\r
+        if (alipayGetTransList->InitGetView(presenter_->AlipayGetSwitchIndex()) == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeGetTransListView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayGetTransList;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeTransAniView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransProcessView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayTransAni = new AlipayTransAni(presenter_);\r
+        if (alipayTransAni == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransProcessView alipayTransAni null error!");\r
+            return false;\r
+        }\r
+        if (alipayTransAni->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeTransProcessView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayTransAni;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeBarCodeView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBarView");\r
+    AlipayModel::GetInstance()->AlipayStartSwitchTimer(60000);\r
+    if (container[thisView] == nullptr) {\r
+        alipayBarCode = new AlipayBarCode(presenter_);\r
+        if (alipayBarCode == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBarView alipayPayCode null error!");\r
+            return false;\r
+        }\r
+        if (alipayBarCode->InitView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBarView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayBarCode;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    } else {\r
+        uint8_t barStr[ALIPAY_GET_PAY_STR_MAX_LENGTH] = { 0 };\r
+        presenter_->AlipayGetPayCode(barStr);\r
+        AlipayBarCode::GetInstance()->AlipayRefreshBarcode((const char *)barStr);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+bool AlipayMainView::ChangeListView(int16 thisView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeListView");\r
+    if (container[thisView] == nullptr) {\r
+        alipayList = new AlipayList(presenter_);\r
+        if (alipayList == nullptr) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeListView alipayList null error!");\r
+            return false;\r
+        }\r
+        if (alipayList->InitListView() == false) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeListView  InitView null error!");\r
+            return false;\r
+        }\r
+\r
+        container[thisView] = alipayList;\r
+\r
+        RootView::GetInstance()->Add(container[thisView]);\r
+    }\r
+    alipayWhichInter = thisView;\r
+    alipayWhichMea = thisView;\r
+    return true;\r
+}\r
+\r
+struct AlipayViewMapper {\r
+    const int16 viewId;\r
+    bool (AlipayMainView::*func)(int16 thisView);\r
+};\r
+\r
+static const AlipayViewMapper ViewMapper[] = {\r
+    {ALIPAY_PAY_VIEW, &AlipayMainView::ChangePayView},\r
+    {ALIPAY_SETTING_VIEW, &AlipayMainView::ChangeSettingView},\r
+    {ALIPAY_PAY_BARCODE_VIEW, &AlipayMainView::ChangeBarCodeView},\r
+    {ALIPAY_LIST_VIEW, &AlipayMainView::ChangeListView},\r
+    {ALIPAY_HELP_VIEW, &AlipayMainView::ChangeHelpView},\r
+    {ALIPAY_BIND_ANI_VIEW, &AlipayMainView::ChangeBindAniView},\r
+    {ALIPAY_BIND_EXIT_VIEW, &AlipayMainView::ChangeBindExitView},\r
+    {ALIPAY_BIND_RES_VIEW, &AlipayMainView::ChangeBindResView},\r
+    {ALIPAY_SETTING_UNBIND_VIEW, &AlipayMainView::ChangeUnbindView},\r
+    {ALIPAY_SETTING_FINISH_VIEW, &AlipayMainView::ChangeUnbindFinishView},\r
+    {ALIPAY_BIND_VIEW, &AlipayMainView::ChangeBindView},\r
+    {ALIPAY_TRANS_VIEW, &AlipayMainView::ChangeTransView},\r
+    {ALIPAY_TRANS_LIST_VIEW, &AlipayMainView::ChangeTransListView},\r
+    {ALIPAY_TRANS_ENABLE_VIEW, &AlipayMainView::ChangeTransEnableView},\r
+    {ALIPAY_TRANS_TIPS_VIEW, &AlipayMainView::ChangeTransTipsView},\r
+    {ALIPAY_TRANS_RES_VIEW, &AlipayMainView::ChangeTransResView},\r
+    {ALIPAY_GET_TRANS_LIST_VIEW, &AlipayMainView::ChangeGetTransListView},\r
+    {ALIPAY_TRANS_ANI_VIEW, &AlipayMainView::ChangeTransAniView},\r
+\r
+};\r
+\r
+bool AlipayMainView::ClickFunc(int16 interface)\r
+{\r
+    int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);\r
+    for (int i = 0; i < funcSize; i++) {\r
+        if (interface == ViewMapper[i].viewId) {\r
+            bool jug = (this->*(ViewMapper[i].func))(interface);\r
+            if (jug == false) {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: ChangeInterFace[%d] false", interface);\r
+                return false;\r
+            }\r
+            return true;\r
+        }\r
+    }\r
+    return false;\r
+}\r
+\r
+static const int16 DestroyMapper[] = {\r
+    ALIPAY_TRANS_TIPS_VIEW,\r
+    ALIPAY_TRANS_RES_VIEW,\r
+    ALIPAY_GET_TRANS_LIST_VIEW,\r
+    ALIPAY_TRANS_VIEW,\r
+    ALIPAY_TRANS_LIST_VIEW,\r
+};\r
+\r
+void AlipayMainView::DestroyTempView(int16 hideView)\r
+{\r
+    int viewSize = sizeof(DestroyMapper) / sizeof(DestroyMapper[0]);\r
+    for (int i = 0; i < viewSize; i++) {\r
+        if (hideView == DestroyMapper[i]) {\r
+            RootView::GetInstance()->Remove(container[hideView]);\r
+            container[hideView] = nullptr;\r
+            break;\r
+        }\r
+    }\r
+    if (hideView == ALIPAY_TRANS_TIPS_VIEW) {\r
+        delete alipayTransTips;\r
+        alipayTransTips = nullptr;\r
+    } else if (hideView == ALIPAY_TRANS_RES_VIEW) {\r
+        delete alipayTransRes;\r
+        alipayTransRes = nullptr;\r
+    } else if (hideView == ALIPAY_GET_TRANS_LIST_VIEW) {\r
+        delete alipayGetTransList;\r
+        alipayGetTransList = nullptr;\r
+    } else if (hideView == ALIPAY_TRANS_VIEW) {\r
+        delete alipayTransCode;\r
+        alipayTransCode = nullptr;\r
+    } else if (hideView == ALIPAY_TRANS_LIST_VIEW) {\r
+        delete alipayTransList;\r
+        alipayTransList = nullptr;\r
+    }\r
+}\r
+\r
+void AlipayMainView::ChangeView(int16 hideView, int16 showView)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeView hideView = %d, showView = %d", hideView,\r
+        showView);\r
+    if (container[hideView] == nullptr) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeView hideView container is null: %x.",\r
+            container[hideView]);\r
+        return;\r
+    }\r
+    if (hideView > ALIPAY_INTERFACES_MAX) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeView Overstep ones bounds");\r
+        return;\r
+    }\r
+    interListen = hideView;\r
+    if (ClickFunc(showView) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeView ClickFunc error");\r
+        return;\r
+    }\r
+\r
+    container[hideView]->SetVisible(false);\r
+    container[showView]->SetVisible(true);\r
+\r
+    AlipayModel::GetInstance()->SetAlipayInterLis(showView);\r
+\r
+    Draw();\r
+    DestroyTempView(hideView);\r
+    return;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp
new file mode 100644 (file)
index 0000000..4c468ea
--- /dev/null
@@ -0,0 +1,578 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay model.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "alipay_feature.h"\r
+#include "AlipayModel.h"\r
+#include "AlipayMainView.h"\r
+#include "graphic_service.h"\r
+\r
+namespace OHOS {\r
+AlipayModel::AlipayModel() : alipayApi(alipay_svr_get_api())\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayModel");\r
+}\r
+\r
+AlipayModel::~AlipayModel()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::~AlipayModel");\r
+}\r
+\r
+AlipayModel *AlipayModel::GetInstance(void)\r
+{\r
+    static AlipayModel alipayModel;\r
+    return &alipayModel;\r
+}\r
+\r
+void AlipayModel::SetAlipayInterLis(int16 interListen)\r
+{\r
+    alipayInterLis = interListen;\r
+}\r
+\r
+int16 AlipayModel::GetAlipayInterLis(void)\r
+{\r
+    return alipayInterLis;\r
+}\r
+\r
+void AlipayBindCallBackProc(void *argument)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc in.");\r
+    const alipay_svr_api_t *alipay_api = alipay_svr_get_api();\r
+    int32_t status = 0;\r
+    int32_t ret = alipay_api->get_bind_status(&status);\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+        return;\r
+    }\r
+\r
+    int16_t currentView = AlipayModel::GetInstance()->GetAlipayInterLis();\r
+    uint32_t reFlag = AlipayModel::GetInstance()->AlipayGetRefreshFlag();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
+        "AlipayModel::AlipayBindProc get_bind_status fail,ret :%d,status:%u,flag:%u.", ret, status, reFlag);\r
+    if (status == ALIPAY_INTER_STATUS_START_BINDING && currentView == ALIPAY_BIND_VIEW) {\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_BIND_VIEW, ALIPAY_BIND_ANI_VIEW);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_START_BINDING");\r
+        AlipayModel::GetInstance()->AlipaySetRefreshFlag(1);\r
+        return;\r
+    } else if (ALIPAY_INTER_STATUS_BINDING_OK == status && reFlag == 1) {\r
+        AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_OK");\r
+        AlipayModel::GetInstance()->AlipaySetBindFlag(true);\r
+        \r
+        AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+    } else if (ALIPAY_INTER_STATUS_BINDING_FAIL == status && reFlag == 1) {\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+        AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+        AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+    }\r
+}\r
+\r
+void AlipayBindTimerCallBack(void *argument)\r
+{\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayBindCallBackProc, argument));\r
+}\r
+\r
+bool AlipayModel::AlipayStartBind(void)\r
+{\r
+    if (bindTimerId == NULL) {\r
+        bindTimerId = osTimerNew(AlipayBindTimerCallBack, osTimerPeriodic, (void *)0, NULL);\r
+        if (bindTimerId == NULL) {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Create timer fail.");\r
+            return false;\r
+        }\r
+    }\r
+\r
+    int32_t retcode = osTimerStart(bindTimerId, ALIPAY_BIND_STATUS_TIMER_LENGTH);\r
+    if (retcode != 0) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Start timer fail");\r
+        return false;\r
+    }\r
+\r
+    alipayApi->bind_start();\r
+    uint8_t str[ALIPAY_GET_BIND_STR_MAX_LENGTH] = { 0 };\r
+    AlipayGetBindCode(str);\r
+    return true;\r
+}\r
+\r
+void AlipaySwitchTimerCallBackProc(void *argument)\r
+{\r
+    UNUSED(argument);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipaySwitchTimerCallBackProc in.");\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        return;\r
+    }\r
+    int16 alipayLis = AlipayModel::GetInstance()->GetAlipayInterLis();\r
+    int16 bindState = AlipayModel::GetInstance()->AlipayGetBindFlag();\r
+    if (alipayLis == ALIPAY_BIND_RES_VIEW && bindState == true) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ALIPAY_BIND_RES_VIEW bindState true in.");\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_BIND_RES_VIEW, ALIPAY_LIST_VIEW);\r
+    } else if (alipayLis == ALIPAY_BIND_RES_VIEW && bindState == false) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ALIPAY_BIND_RES_VIEW bindState false in.");\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_BIND_RES_VIEW, ALIPAY_BIND_VIEW);\r
+    } else if (alipayLis == ALIPAY_PAY_VIEW) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ALIPAY_PAY_VIEW in.");\r
+        uint8_t payStr[ALIPAY_GET_PAY_STR_MAX_LENGTH] = { 0 };\r
+        AlipayModel::GetInstance()->AlipayGetPayCode(payStr);\r
+        if (AlipayPayCode::GetInstance() != nullptr) {\r
+            AlipayPayCode::GetInstance()->AlipayRefreshQrcode((const char *)payStr);\r
+            AlipayModel::GetInstance()->AlipayStartSwitchTimer(60000);\r
+        }\r
+    } else if (alipayLis == ALIPAY_PAY_BARCODE_VIEW) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ALIPAY_PAY_BARCODE_VIEW in.");\r
+        uint8_t barStr[ALIPAY_GET_PAY_STR_MAX_LENGTH] = { 0 };\r
+        AlipayModel::GetInstance()->AlipayGetPayCode(barStr);\r
+        if (AlipayBarCode::GetInstance() != nullptr) {\r
+            AlipayBarCode::GetInstance()->AlipayRefreshBarcode((const char *)barStr);\r
+            AlipayModel::GetInstance()->AlipayStartSwitchTimer(60000);\r
+        }\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+void AlipaySwitchTimerCallBack(void *argument)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipaySwitchTimerCallBack in.");\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipaySwitchTimerCallBackProc, argument));\r
+}\r
+\r
+bool AlipayModel::AlipayStartSwitchTimer(uint16_t time)\r
+{\r
+    if (switchTimerId == NULL) {\r
+        switchTimerId = osTimerNew(AlipaySwitchTimerCallBack, osTimerOnce, (void *)0, NULL);\r
+        if (switchTimerId == NULL) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartSwitchTimer Create timer fail.");\r
+            return false;\r
+        }\r
+    } else {\r
+        osTimerStop(switchTimerId);\r
+    }\r
+\r
+    int32_t retcode = osTimerStart(switchTimerId, time);\r
+    if (retcode != 0) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartSwitchTimer Start timer fail");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+\r
+void AlipayModel::AlipayStopSwitchTimer()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopSwitchTimer stop timer.");\r
+    if (switchTimerId != NULL) {\r
+        osTimerStop(switchTimerId);\r
+    }\r
+    return;\r
+}\r
+\r
+bool AlipayModel::AlipayGetBindstate(void)\r
+{\r
+    bool state = alipayApi->get_bind_state();\r
+    return state;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetBindCode(uint8_t *bindStr)\r
+{\r
+    int32_t bindStrLen = ALIPAY_GET_BIND_STR_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_bind_str(bindStr, &bindStrLen);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetBindCode Get bind str.%s-%d", (char *)bindStr, ret);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetPayCode(uint8_t *payStr)\r
+{\r
+    uint32_t payStrLen = ALIPAY_GET_PAY_STR_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_pay_str(payStr, &payStrLen);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetPayCode Get pay str:%s.", (char *)payStr);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetNickName(uint8_t *nickName)\r
+{\r
+    uint32_t nickNameLen = ALIPAY_GET_NICKNAME_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_nickname(nickName, &nickNameLen);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetNickName Get nickstr:%s.", (char *)nickName);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetIdName(uint8_t *idStr)\r
+{\r
+    uint32_t idStrLen = ALIPAY_GET_ID_STR_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_logon_id(idStr, &idStrLen);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetIdName Get Idname:%s.", (char *)idStr);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetAidCode(int8_t *aidStr)\r
+{\r
+    uint32_t aidStrLen = ALIPAY_GET_AID_STR_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_aid_str(aidStr, &aidStrLen);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetAidCode Get aidstr:%s.", (char *)aidStr);\r
+    return ret;\r
+}\r
+\r
+void AlipayModel::AlipayUnbind(void)\r
+{\r
+    int32_t ret = alipayApi->remove_bind();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetAidCode unbind ret:%u.", ret);\r
+    return;\r
+}\r
+\r
+void AlipayModel::AlipayStopBindTimer(void)\r
+{\r
+    if (bindTimerId == NULL) {\r
+        return;\r
+    }\r
+    int32_t ret = osTimerStop(bindTimerId);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopBindTimer in,%u.", ret);\r
+    return;\r
+}\r
+\r
+void AlipayModel::AlipayEnterLpm(void)\r
+{\r
+    alipayApi->enter_lpm();\r
+    return;\r
+}\r
+\r
+void AlipayModel::AlipayExitLpm(void)\r
+{\r
+    alipayApi->exit_lpm();\r
+    return;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetLastTranscode()\r
+{\r
+    memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
+    memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
+    uint32_t len = ALIPAY_TRANS_CODE_MAX_LEN;\r
+\r
+    int32_t ret = alipayApi->get_last_transcode(cardTitle_, transCode_, &len);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:ret:%u,len:%u.", ret, len);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetLocalTranslist()\r
+{\r
+    cardInfo_ = AlipayTransGetCardList();\r
+    memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,\r
+        sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
+    uint32_t localListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
+    int32_t ret = alipayApi->get_local_translist(cardInfo_, &localListSize, &cardSum_);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:%u.", ret);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetOnlineTranslist()\r
+{\r
+    cardInfo_ = AlipayTransGetCardList();\r
+    mc_alipay_trans_card_info_t *onLineList = NULL;\r
+\r
+    onLineList = (mc_alipay_trans_card_info_t *)malloc(sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
+    if (onLineList == NULL) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist alloc fail.");\r
+        return -1;\r
+    }\r
+    memset_s(onLineList, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,\r
+        sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
+\r
+    uint32_t onListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
+    uint32_t onLineNum = 0;\r
+    int32_t ret = alipayApi->get_online_translist(onLineList, &onListSize, &onLineNum);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist in,ret:%u,num:%u.", ret, onLineNum);\r
+\r
+    if (ret == 0) {\r
+        memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,\r
+            sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
+        memcpy_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, onLineList, onListSize);\r
+        cardSum_ = onLineNum;\r
+    }\r
+    free(onLineList);\r
+    onLineList = NULL;\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayUpdateTransCard(uint32_t index)\r
+{\r
+    int32_t ret = alipayApi->update_trans_cardinfo(&cardInfo_[index]);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayUpdateTransCard in:%u.", ret);\r
+    return ret;\r
+}\r
+\r
+int32_t AlipayModel::AlipayCheckTransCard(uint32_t index)\r
+{\r
+    mc_alipay_tans_card_status_t cardStatus = { 0 };\r
+    int32_t ret = alipayApi->check_trans_cartstatus(&cardInfo_[index], &cardStatus);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+    if (cardStatus.card_exits == true && cardStatus.remain_use_count >= ALIPAY_TRANS_CARD_MIN_VALID_NUM) {\r
+        return 0;\r
+    }\r
+    return -1;\r
+}\r
+\r
+int32_t AlipayModel::AlipayGetTransCode(uint32_t index)\r
+{\r
+    cardInfo_ = AlipayTransGetCardList();\r
+    memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
+    memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
+    transCodeLen_ = ALIPAY_TRANS_CODE_MAX_LEN;\r
+    int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_);\r
+    if (ret == 0) {\r
+        memcpy_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, cardInfo_[index].title, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
+    }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+    return ret;\r
+}\r
+\r
+void AlipayTransGetListsCallBackProc(void *argument)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransGetListsCallBackProc in.");\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+        return;\r
+    }\r
+\r
+    int32_t ret = AlipayModel::GetInstance()->AlipayGetOnlineTranslist();\r
+    if (ret != 0) {\r
+        return;\r
+    }\r
+    int16_t currentView = AlipayModel::GetInstance()->GetAlipayInterLis();\r
+    if (currentView != ALIPAY_TRANS_ENABLE_VIEW) {\r
+        return;\r
+    }\r
+    if (AlipayModel::GetInstance()->AlipayGetCardSum() == 0) {\r
+        return;\r
+    }\r
+    AlipayModel::GetInstance()->AlipayTransStopGetListsTimer();\r
+    AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ENABLE_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayTransGetListsTimerCallBack(void *argument)\r
+{\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayTransGetListsCallBackProc, argument));\r
+}\r
+\r
+bool AlipayModel::AlipayTransStartGetListsTimer(void)\r
+{\r
+    if (transTimerId == NULL) {\r
+        transTimerId = osTimerNew(AlipayTransGetListsTimerCallBack, osTimerPeriodic, (void *)0, NULL);\r
+        if (transTimerId == NULL) {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayTransStartGetLists Create timer fail.");\r
+            return false;\r
+        }\r
+    }\r
+\r
+    int32_t retcode = osTimerStart(transTimerId, ALIPAY_TRANS_STATUS_TIMER_LENGTH);\r
+    if (retcode != 0) {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayTransStartGetLists Start timer fail");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+void AlipayModel::AlipayTransStopGetListsTimer(void)\r
+{\r
+    if (transTimerId == NULL) {\r
+        return;\r
+    }\r
+    int32_t ret = osTimerStop(transTimerId);\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayTransStopGetListsTimer in,%u.", ret);\r
+    return;\r
+}\r
+\r
+void AlipayMsgTransListCallBackProcFunc(uint32_t actionRes)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransListCallBackProcFunc in.");\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+        return;\r
+    }\r
+\r
+    if (actionRes == 0) {\r
+        uint32_t cardSum = AlipayModel::GetInstance()->AlipayTransGetCardNum();\r
+        AlipayModel::GetInstance()->AlipaySetCardSum(cardSum);\r
+        if (cardSum == 0) {\r
+            AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_ENABLE_VIEW);\r
+        } else {\r
+            AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+        }\r
+    } else if (actionRes == ALIPAY_TRANS_CARD_LIST_NET_ERROR) {\r
+        AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_RES_LIST);\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+    } else {\r
+        if (actionRes == ALIPAY_TRANS_CARD_LIST_OWN_TOO_MANY_CARD) {\r
+            AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_TO_MUCH);\r
+        } else {\r
+            AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_UNKNOW);\r
+        }\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayMsgTransSpeCardCallBackProcFunc(uint32_t actionRes)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransSpeCardCallBackProcFunc in.");\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+        return;\r
+    }\r
+    uint32_t index = AlipayModel::GetInstance()->AlipayGetCardNum();\r
+    if (actionRes == 0) {\r
+        int32_t ret = AlipayModel::GetInstance()->AlipayGetTransCode(index);\r
+        if (ret != 0) {\r
+            AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+        } else {\r
+            AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_VIEW);\r
+        }\r
+    } else if (actionRes == ALIPAY_TRANS_CODE_NET_ERROR) {\r
+        AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE);\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+    } else {\r
+        if (actionRes == ALIPAY_TRANS_CODE_DATA_LIMIT) {\r
+            AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);\r
+        } else if (actionRes == ALIPAY_TRANS_CODE_NOT_SUPPORT) {\r
+            AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);\r
+        } else {\r
+            AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);\r
+        }\r
+        AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes)\r
+{\r
+    if (msgId == ALIPAY_MSG_UPDATA_TRANS_LIST) {\r
+        GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayMsgTransListCallBackProcFunc, actionRes));\r
+    } else if (msgId == ALIPAY_MSG_UPDATA_SPECIAL_CARD) {\r
+        GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayMsgTransSpeCardCallBackProcFunc, actionRes));\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+uint32_t AlipayModel::AlipaySendMsg(uint32_t msgId)\r
+{\r
+    uint32_t msg = cardNum_;\r
+    uint16_t msg_len = sizeof(uint32_t);\r
+    errcode_t retcode = svr_alipay_msg_write(msgId, (uint8_t *)&msg, msg_len, false);\r
+    return (uint32_t)retcode;\r
+}\r
+\r
+mc_alipay_trans_card_info_t *AlipayModel::AlipayTransGetCardList(void)\r
+{\r
+    mc_alipay_trans_context_t *alipayTransContext = svr_alipay_get_trans_context();\r
+    return alipayTransContext->card_info;\r
+}\r
+\r
+int32_t AlipayModel::AlipayTransGetCardNum(void)\r
+{\r
+    mc_alipay_trans_context_t *alipayTransContext = svr_alipay_get_trans_context();\r
+    return alipayTransContext->card_len;\r
+}\r
+\r
+bool AlipayModel::AlipayInitModel(void)\r
+{\r
+    transCode_ = (uint8_t *)malloc(ALIPAY_TRANS_CODE_MAX_LEN);\r
+    if (transCode_ == NULL) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayInitModel transCode_ alloc failure.");\r
+        return false;\r
+    }\r
+    uint32_t retCode = svr_alipay_init_trans_context();\r
+    if (retCode != 0) {\r
+        free(transCode_);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayInitModel svr_alipay_init_trans_context failure.");\r
+        return false;\r
+    }\r
+    svr_alipay_register_cb(AlipayMsgCallBack);\r
+    return true;\r
+}\r
+\r
+void AlipayModel::AlipayDeinitModel(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayDeinitModel in.");\r
+    if (transCode_ != NULL) {\r
+        free(transCode_);\r
+        transCode_ = NULL;\r
+    }\r
+    svr_alipay_deinit_trans_context();\r
+    return;\r
+}\r
+\r
+bool AlipayModel::AlipayGetBindFlag(void)\r
+{\r
+    return bindFlag_;\r
+}\r
+void AlipayModel::AlipaySetBindFlag(bool bindFlag)\r
+{\r
+    bindFlag_ = bindFlag;\r
+}\r
+\r
+uint32_t AlipayModel::AlipayGetSwitchIndex(void)\r
+{\r
+    return switchIndex_;\r
+}\r
+\r
+void AlipayModel::AlipaySetSwitchIndex(uint32_t switchIndex)\r
+{\r
+    switchIndex_ = switchIndex;\r
+}\r
+\r
+uint32_t AlipayModel::AlipayGetRefreshFlag(void)\r
+{\r
+    return refreshFlag_;\r
+}\r
+\r
+void AlipayModel::AlipaySetRefreshFlag(uint32_t refreshFlag)\r
+{\r
+    refreshFlag_ = refreshFlag;\r
+}\r
+\r
+uint32_t AlipayModel::AlipayGetCardNum(void)\r
+{\r
+    return cardNum_;\r
+}\r
+\r
+void AlipayModel::AlipaySetCardNum(uint32_t cardNum)\r
+{\r
+    cardNum_ = cardNum;\r
+}\r
+\r
+uint32_t AlipayModel::AlipayGetCardSum(void)\r
+{\r
+    return cardSum_;\r
+}\r
+\r
+void AlipayModel::AlipaySetCardSum(uint32_t cardSum)\r
+{\r
+    cardSum_ = cardSum;\r
+}\r
+\r
+char* AlipayModel::AlipayGetCardTitle(uint32_t index)\r
+{\r
+    return cardInfo_[index].title;\r
+}\r
+\r
+uint8_t* AlipayModel::AlipayGetTransCode(void)\r
+{\r
+    return transCode_;\r
+}\r
+\r
+uint32_t AlipayModel::AlipayGetTransCodeLen(void)\r
+{\r
+    return transCodeLen_;\r
+}\r
+\r
+char* AlipayModel::AlipayGetCardTitle(void)\r
+{\r
+    return cardTitle_;\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPayCode.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPayCode.cpp
new file mode 100644 (file)
index 0000000..ad73a51
--- /dev/null
@@ -0,0 +1,228 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay pay view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayPayCode.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static AlipayPayCode *g_alipayPayCode = nullptr;\r
+\r
+static const char *PAYCODE_TITLE = (char *)"付款码";\r
+static const char *PAYCODE_BUTTON = (char *)"切换条形码";\r
+static const int16 PAYCODE_TITLE_FONT = 38;\r
+static const int16 PAYCODE_BUTTON_FONT = 35;\r
+static const int16 PAYCODE_TITLE_X = 170;\r
+static const int16 PAYCODE_TITLE_Y = 23;\r
+static const int16 PAYCODE_TITLE_WIDTH = 114;\r
+static const int16 PAYCODE_TITLE_HEIGHT = 53;\r
+\r
+static const int16 PAYCODE_BUTTON_X = 139;\r
+static const int16 PAYCODE_BUTTON_Y = 380;\r
+static const int16 PAYCODE_BUTTON_WIDTH = 176;\r
+static const int16 PAYCODE_BUTTON_HEIGHT = 50;\r
+\r
+static const int16 QRCODE_BUTTON_X = 139;\r
+static const int16 QRCODE_BUTTON_Y = 382;\r
+static const int16 QRCODE_BUTTON_WIDTH = 176;\r
+static const int16 QRCODE_BUTTON_HEIGHT = 50;\r
+\r
+static const int16 PAYCODE_IMAGE_X = 76;\r
+static const int16 PAYCODE_IMAGE_Y = 76;\r
+static const int16 PAYCODE_IMAGE_WAITING_X = 302;\r
+static const int16 PAYCODE_IMAGE_WAITING_Y = 302;\r
+\r
+static const int16 PAYCODE_WIDTH = 80;\r
+static const int16 PAYCODE_DROP_WIDTH = 45;\r
+static const int16 PAYCODE_DROP_X = 200;\r
+static const int16 PAYCODE_DROP_Y = 415;\r
+\r
+static const int16 RES_IMAGE_X_GREY = 232;\r
+static const int16 RES_IMAGE_X_WHITE = 207;\r
+static const int16 RES_IMAGE_Y = 13;\r
+static const int16 RES_IMAGE_WIDTH = 15;\r
+static const int16 RES_IMAGE_HEIGHT = 15;\r
+\r
+AlipayPayCode::AlipayPayCode(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayPayCode");\r
+    g_alipayPayCode = this;\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayPayCode::~AlipayPayCode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::~AlipayPayCode");\r
+    RemoveAll();\r
+    if (labelPayCode != nullptr) {\r
+        delete labelPayCode;\r
+        labelPayCode = nullptr;\r
+    }\r
+    if (buttonPayCode != nullptr) {\r
+        delete buttonPayCode;\r
+        buttonPayCode = nullptr;\r
+    }\r
+    if (qrcodeGroup != nullptr) {\r
+        delete qrcodeGroup;\r
+        qrcodeGroup = nullptr;\r
+    }\r
+    if (alipayImageGrey != nullptr) {\r
+        delete alipayImageGrey;\r
+        alipayImageGrey = nullptr;\r
+    }\r
+    if (alipayImageWhite != nullptr) {\r
+        delete alipayImageWhite;\r
+        alipayImageWhite = nullptr;\r
+    }\r
+    g_alipayPayCode = nullptr;\r
+}\r
+\r
+AlipayPayCode *AlipayPayCode::GetInstance(void)\r
+{\r
+    return g_alipayPayCode;\r
+}\r
+\r
+bool AlipayPayCode::AlipayInitImage(void)\r
+{\r
+    alipayImageGrey = new UIImageView();\r
+    if (alipayImageGrey == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitImage new tempImage fail");\r
+        return false;\r
+    }\r
+    alipayImageGrey->SetPosition(RES_IMAGE_X_GREY, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageGrey->SetSrc(PNG_ALIPAY_PAY_ICON_GREY);\r
+\r
+    // Set additional property\r
+    alipayImageGrey->SetAutoEnable(false);\r
+    alipayImageGrey->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImageGrey);\r
+\r
+    alipayImageWhite = new UIImageView();\r
+    if (alipayImageWhite == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitImage new tempImage fail");\r
+        return false;\r
+    }\r
+    alipayImageWhite->SetPosition(RES_IMAGE_X_WHITE, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageWhite->SetSrc(PNG_ALIPAY_PAY_ICON_WHITE);\r
+\r
+    // Set additional property\r
+    alipayImageWhite->SetAutoEnable(false);\r
+    alipayImageWhite->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImageWhite);\r
+    return true;\r
+}\r
+\r
+bool AlipayPayCode::AlipayInitQrcode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitQrcode");\r
+    qrcodeGroup = new UIQrcode();\r
+    if (qrcodeGroup == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitQrcode qrcodeGroup nullptr");\r
+        return false;\r
+    }\r
+    qrcodeGroup->SetPosition(76, 76, 282, 282);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_LEFT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_RIGHT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_TOP, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_BOTTOM, 10);\r
+    qrcodeGroup->SetAutoEnable(false);\r
+    qrcodeGroup->SetResizeMode(UIImageView::ImageResizeMode::FILL);\r
+    uint8_t str[ALIPAY_GET_PAY_STR_MAX_LENGTH] = {0};\r
+    presenter_->AlipayGetPayCode(str);\r
+    qrcodeGroup->SetECCLevel(QrCode::Ecc::QUARTILE);\r
+    qrcodeGroup->SetQrcodeInfo((const char *)str);\r
+    qrcodeGroup->SetTouchable(true);\r
+    qrcodeGroup->SetOnClickListener(presenter_);\r
+    qrcodeGroup->SetViewId(ALIPAY_PAY_QRCODE);\r
+\r
+    Add(qrcodeGroup);\r
+\r
+    return true;\r
+}\r
+\r
+void AlipayPayCode::AlipayRefreshQrcode(const char *refreshStr)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayRefreshQrcode");\r
+\r
+    if (qrcodeGroup == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayRefreshQrcode qrcodeGroup nullptr");\r
+        return;\r
+    }\r
+    qrcodeGroup->SetECCLevel(QrCode::Ecc::QUARTILE);\r
+    qrcodeGroup->SetQrcodeInfo(refreshStr);\r
+\r
+    return;\r
+}\r
+\r
+bool AlipayPayCode::AlipayInitLabel(void)\r
+{\r
+    labelPayCode = new UILabel();\r
+    if (labelPayCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitLabel new label fail");\r
+        return false;\r
+    }\r
+    labelPayCode->SetText(PAYCODE_TITLE);\r
+    labelPayCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, PAYCODE_TITLE_FONT);\r
+    labelPayCode->SetPosition(PAYCODE_TITLE_X, PAYCODE_TITLE_Y, PAYCODE_TITLE_WIDTH, PAYCODE_TITLE_HEIGHT);\r
+    Add(labelPayCode);\r
+\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipayPayCode::AlipayInitButton()\r
+{\r
+    buttonPayCode = new UILabelButton();\r
+    if (buttonPayCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::AlipayInitButton new labelbutton fail");\r
+        return false;\r
+    }\r
+    buttonPayCode->SetPosition(PAYCODE_BUTTON_X, PAYCODE_BUTTON_Y, PAYCODE_BUTTON_WIDTH, PAYCODE_BUTTON_HEIGHT);\r
+    buttonPayCode->SetText(PAYCODE_BUTTON);\r
+    buttonPayCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, PAYCODE_BUTTON_FONT);\r
+    buttonPayCode->SetViewId(ALIPAY_PAY_SWITCH_BAR);\r
+    buttonPayCode->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    buttonPayCode->SetOnClickListener(presenter_);\r
+    Add(buttonPayCode);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayPayCode::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
+    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImage() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitQrcode() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView AlipayInitQrcode() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp
new file mode 100644 (file)
index 0000000..d260f9d
--- /dev/null
@@ -0,0 +1,496 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay presenter.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "AlipayPresenter.h"\r
+#include "AlipayMainView.h"\r
+#include "ChangeSliceListener.h"\r
+#include "graphic_service.h"\r
+#include "string"\r
+#include "iostream"\r
+#include "sstream"\r
+#include "errcode.h"\r
+#include "pm_definition.h"\r
+#include "AlipayListView.h"\r
+#include "AlipayListItemView.h"\r
+#include "AlipayTransListItemView.h"\r
+#include "AlipayTransListView.h"\r
+\r
+namespace OHOS {\r
+static AlipayPresenter *g_alipayPresenter = nullptr;\r
+\r
+ColorType AlipayPresenter::CyanColor()\r
+{\r
+    return Color::GetColorFromRGB(0x1C, 0xF4, 0xED);\r
+}\r
+\r
+AlipayPresenter::AlipayPresenter()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter new");\r
+    alipayMode_ = AlipayModel::GetInstance();\r
+    g_alipayPresenter = this;\r
+}\r
+\r
+AlipayPresenter::~AlipayPresenter()\r
+{\r
+    g_alipayPresenter = nullptr;\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::~AlipayPresenter");\r
+}\r
+\r
+AlipayPresenter *AlipayPresenter::GetInstance()\r
+{\r
+    return g_alipayPresenter;\r
+}\r
+\r
+void AlipayPresenter::OnStart()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStart");\r
+    Presenter<AlipayMainView>::OnStart();\r
+    alipayMode_->AlipayExitLpm();\r
+    if (alipayMode_->AlipayInitModel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::OnStart AlipayInitModel fail.");\r
+        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+        return;\r
+    }\r
+    svr_alipay_create_task();\r
+}\r
+\r
+void AlipayPresenter::OnPause(void) {}\r
+\r
+void AlipayPresenter::OnResume(void) {}\r
+\r
+void AlipayPresenter::OnStop(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStop");\r
+    svr_alipay_destroy_task();\r
+    alipayMode_->AlipayDeinitModel();\r
+    alipayMode_->AlipayEnterLpm();\r
+}\r
+\r
+bool AlipayPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+{\r
+    if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&\r
+        (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) {\r
+        view_->DropView(view);\r
+    }\r
+    if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT) {\r
+        view_->SwitchView(view);\r
+    }\r
+    return true;\r
+}\r
+\r
+void AlipayPresenter::ClickExitAlipay(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickExitAlipay start");\r
+    uint16 preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+    NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpPay(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickPromptWear start");\r
+    view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_PAY_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpTrans(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpTrans start");\r
+    int32_t ret = alipayMode_->AlipayGetLocalTranslist();\r
+    if (ret != 0) {\r
+        AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_FIRST);\r
+        view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);\r
+    } else if (ret == 0) {\r
+        int32_t get_res = alipayMode_->AlipayGetLastTranscode();\r
+        if (get_res == 0) {\r
+            view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
+        } else {\r
+            view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+        }\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickRefreshList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRefreshList start");\r
+    alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
+    view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickBackList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickBackList start");\r
+    view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickUpdateList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickUpdateList start");\r
+    alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
+    view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransJumpHelp(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransJumpHelp start");\r
+    view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_HELP_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTranstBackList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTranstBackList start");\r
+    int16_t currentView = alipayMode_->GetAlipayInterLis();\r
+    view_->ChangeView(currentView, ALIPAY_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransToTransList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransJumpHelp start");\r
+    int16_t currentView = alipayMode_->GetAlipayInterLis();\r
+    view_->ChangeView(currentView, ALIPAY_TRANS_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransToTransCode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransToTransCode start");\r
+    AlipayTransListItemView *alipayTransListItemView = static_cast<AlipayTransListItemView *>(&view);\r
+    uint32_t index = alipayTransListItemView->GetAlipayTransListIndex();\r
+    if (index >= AlipayGetCardSum()) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransToTransCode index error:%u", index);\r
+        return;\r
+    }\r
+    AlipaySetCardNum(index);\r
+    int32_t ret = alipayMode_->AlipayCheckTransCard(index);\r
+    if (ret != 0) {\r
+        alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_SPECIAL_CARD);\r
+        view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
+        return;\r
+    }\r
+    \r
+    ret = alipayMode_->AlipayGetTransCode(index);\r
+    if (ret == 0) {\r
+        view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
+    } else if (ret == ALIPAY_TRANS_CODE_NET_ERROR) {\r
+        AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE);\r
+        view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+    } else {\r
+        if (ret == ALIPAY_TRANS_CODE_DATA_LIMIT) {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);\r
+        } else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);\r
+        } else {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);\r
+        }\r
+        view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickRetryTransCode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRetryTransCode start");\r
+    uint32_t index = AlipayGetCardNum();\r
+    int32_t ret = alipayMode_->AlipayGetTransCode(index);\r
+    if (ret == 0) {\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
+    } else if (ret == ALIPAY_TRANS_CODE_NET_ERROR) {\r
+        AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE);\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+    } else {\r
+        if (ret == ALIPAY_TRANS_CODE_DATA_LIMIT) {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);\r
+        } else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);\r
+        } else {\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);\r
+        }\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransJumpGetList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransJumpGetList start");\r
+    AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_CLICK_DETAIL);\r
+    view_->ChangeView(ALIPAY_TRANS_RES_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransJumpGetCode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransJumpGetCode start");\r
+    AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_CODE_DETAIL);\r
+    view_->ChangeView(ALIPAY_TRANS_RES_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickTransCodeBackList(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransCodeBackList start");\r
+    view_->ChangeView(ALIPAY_TRANS_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpSetting(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpSetting start");\r
+    view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_SETTING_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpHelp(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpHelp start");\r
+    view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_HELP_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpBindAni(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpBindAni start");\r
+    view_->ChangeView(ALIPAY_BIND_EXIT_VIEW, ALIPAY_BIND_ANI_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpUnbind(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpUnbind start");\r
+    view_->ChangeView(ALIPAY_SETTING_VIEW, ALIPAY_SETTING_UNBIND_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickJumpBindFinish(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpBindFinish start");\r
+    view_->ChangeView(ALIPAY_SETTING_UNBIND_VIEW, ALIPAY_SETTING_FINISH_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickBackUnbind(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickBackUnbind start");\r
+    view_->ChangeView(ALIPAY_SETTING_UNBIND_VIEW, ALIPAY_SETTING_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickBackBindCode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickBackBindCode start");\r
+    view_->ChangeView(ALIPAY_SETTING_FINISH_VIEW, ALIPAY_BIND_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickRefreshQrcode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRefreshQrcode start");\r
+    AlipayPayCode *alipayPayCodeView = AlipayPayCode::GetInstance();\r
+    if (alipayPayCodeView == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayPresenter::ClickRefreshQrcode AlipayPayCode::GetInstance() nullptr");\r
+        return;\r
+    }\r
+    alipayMode_->AlipayStartSwitchTimer(60000);\r
+    uint8_t str[ALIPAY_GET_PAY_STR_MAX_LENGTH] = {0};\r
+    AlipayGetPayCode(str);\r
+    alipayPayCodeView->AlipayRefreshQrcode((const char *)str);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickRefreshBarcode(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRefreshBarcode start");\r
+    AlipayBarCode *alipayBarCodeView = AlipayBarCode::GetInstance();\r
+    if (alipayBarCodeView == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayPresenter::ClickRefreshBarcode AlipayBarCode::GetInstance() nullptr");\r
+        return;\r
+    }\r
+    alipayMode_->AlipayStartSwitchTimer(60000);\r
+    uint8_t str[ALIPAY_GET_PAY_STR_MAX_LENGTH] = {0};\r
+    AlipayGetPayCode(str);\r
+    alipayBarCodeView->AlipayRefreshBarcode((const char *)str);\r
+\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickGetBindStr(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickGetBindStr start");\r
+    uint8_t str[ALIPAY_GET_BIND_STR_MAX_LENGTH] = {0};\r
+    int32_t ret = AlipayGetBindCode(str);\r
+    if (ret == 0) {\r
+        view_->ChangeView(ALIPAY_GET_BIND_FAILURE_VIEW, ALIPAY_BIND_VIEW);\r
+    }\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickSwitchBar(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickSwitchBar start");\r
+    view_->ChangeView(ALIPAY_PAY_VIEW, ALIPAY_PAY_BARCODE_VIEW);\r
+    return;\r
+}\r
+\r
+void AlipayPresenter::ClickSwitchQr(UIView &view)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickSwitchQR start");\r
+    view_->ChangeView(ALIPAY_PAY_BARCODE_VIEW, ALIPAY_PAY_VIEW);\r
+    return;\r
+}\r
+\r
+struct AlipayPresentMapper1 {\r
+    const char *viewId;\r
+    void (AlipayPresenter::*func)(UIView &view);\r
+};\r
+\r
+static const AlipayPresentMapper1 PresentMapper[] = {\r
+    {ALIPAY_INTER_EXIT, &AlipayPresenter::ClickExitAlipay},\r
+    {ALIPAY_LIST_PAY_BUTTON, &AlipayPresenter::ClickJumpPay},\r
+    {ALIPAY_PAY_SWITCH_BAR, &AlipayPresenter::ClickSwitchBar},\r
+    {ALIPAY_PAY_SWITCH_QR, &AlipayPresenter::ClickSwitchQr},\r
+    {ALIPAY_LIST_SETTING_BUTTON, &AlipayPresenter::ClickJumpSetting},\r
+    {ALIPAY_LIST_HELP_BUTTON, &AlipayPresenter::ClickJumpHelp},\r
+    {ALIPAY_BIND_CONTINUE, &AlipayPresenter::ClickJumpBindAni},\r
+    {ALIPAY_UNBIND_BUTTON, &AlipayPresenter::ClickJumpUnbind},\r
+    {ALIPAY_SETTING_UNBIND, &AlipayPresenter::ClickJumpBindFinish},\r
+    {ALIPAY_SETTING_CANCEL, &AlipayPresenter::ClickBackUnbind},\r
+    {ALIPAY_SETTING_FINISH, &AlipayPresenter::ClickBackBindCode},\r
+    {ALIPAY_PAY_QRCODE, &AlipayPresenter::ClickRefreshQrcode},\r
+    {ALIPAY_BIND_BUTTON, &AlipayPresenter::ClickGetBindStr},\r
+    {ALIPAY_PAY_BARCODE, &AlipayPresenter::ClickRefreshBarcode},\r
+    {ALIPAY_LIST_TRANS_BUTTON, &AlipayPresenter::ClickJumpTrans},\r
+    {ALIPAY_TRANS_REFRESH_LIST, &AlipayPresenter::ClickRefreshList},\r
+    {ALIPAY_TRANS_GET_LIST_EXIT, &AlipayPresenter::ClickBackList},\r
+    {ALIPAY_TRANS_GET_LIST_FINISH, &AlipayPresenter::ClickUpdateList},\r
+    {ALIPAY_TRANS_GET_LIST_DETAIL, &AlipayPresenter::ClickTransJumpHelp},\r
+    {ALIPAY_TRANS_CERTAIN_BACK_LIST, &AlipayPresenter::ClickTranstBackList},\r
+    {ALIPAY_TRANS_CERTAIN_TO_TRANS, &AlipayPresenter::ClickTransToTransList},\r
+    {ALIPAY_TRANS_LIST_BUTTON, &AlipayPresenter::ClickTransToTransCode},\r
+    {ALIPAY_TRANS_RETRY_TRANS_CODE, &AlipayPresenter::ClickRetryTransCode},\r
+    {ALIPAY_TRANS_LIST_RES_DETAIL, &AlipayPresenter::ClickTransJumpGetList},\r
+    {ALIPAY_TRANS_CODE_RES_DETAIL, &AlipayPresenter::ClickTransJumpGetCode},\r
+    {ALIPAY_TRANS_CODE_BACK_LIST, &AlipayPresenter::ClickTransCodeBackList},\r
+};\r
+\r
+bool AlipayPresenter::ClickFuncId(UIView &view)\r
+{\r
+    if (view.GetViewId() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickFuncId buttonName nullptr error!");\r
+        return false;\r
+    }\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickFuncId buttonName = %s", view.GetViewId());\r
+    for (uint16 i = 0; i < sizeof(PresentMapper) / sizeof(PresentMapper[0]); i++) {\r
+        if (strcmp(view.GetViewId(), PresentMapper[i].viewId) == 0) {\r
+            (this->*(PresentMapper[i].func))(view);\r
+            return true;\r
+        }\r
+    }\r
+    return false;\r
+}\r
+\r
+bool AlipayPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::OnClick %s", view.GetViewId());\r
+    UNUSED(event);\r
+\r
+    ClickFuncId(view);\r
+    return true;\r
+}\r
+\r
+int32_t AlipayPresenter::AlipayGetPayCode(uint8_t *payStr)\r
+{\r
+    return alipayMode_->AlipayGetPayCode(payStr);\r
+}\r
+\r
+int32_t AlipayPresenter::AlipayGetNickName(uint8_t *nickName)\r
+{\r
+    return alipayMode_->AlipayGetNickName(nickName);\r
+}\r
+\r
+int32_t AlipayPresenter::AlipayGetBindCode(uint8_t *bindStr)\r
+{\r
+    return alipayMode_->AlipayGetBindCode(bindStr);\r
+}\r
+\r
+int32_t AlipayPresenter::AlipayGetIdName(uint8_t *idStr)\r
+{\r
+    return alipayMode_->AlipayGetIdName(idStr);\r
+}\r
+\r
+int32_t AlipayPresenter::AlipayGetAidCode(int8_t *aidStr)\r
+{\r
+    return alipayMode_->AlipayGetAidCode(aidStr);\r
+}\r
+\r
+bool AlipayPresenter::AlipayGetBindFlag(void)\r
+{\r
+    return alipayMode_->AlipayGetBindFlag();\r
+}\r
+\r
+void AlipayPresenter::AlipaySetBindFlag(bool bindFlag)\r
+{\r
+    alipayMode_->AlipaySetBindFlag(bindFlag);\r
+}\r
+\r
+uint32_t AlipayPresenter::AlipayGetSwitchIndex(void)\r
+{\r
+    return alipayMode_->AlipayGetSwitchIndex();\r
+}\r
+void AlipayPresenter::AlipaySetSwitchIndex(uint32_t switchIndex)\r
+{\r
+    alipayMode_->AlipaySetSwitchIndex(switchIndex);\r
+}\r
+\r
+uint32_t AlipayPresenter::AlipayGetCardNum(void)\r
+{\r
+    return alipayMode_->AlipayGetCardNum();\r
+}\r
+\r
+void AlipayPresenter::AlipaySetCardNum(uint32_t cardNum)\r
+{\r
+    alipayMode_->AlipaySetCardNum(cardNum);\r
+}\r
+\r
+uint32_t AlipayPresenter::AlipayGetCardSum(void)\r
+{\r
+    return alipayMode_->AlipayGetCardSum();\r
+}\r
+\r
+void AlipayPresenter::AlipaySetCardSum(uint32_t cardSum)\r
+{\r
+    alipayMode_->AlipaySetCardSum(cardSum);\r
+}\r
+\r
+char* AlipayPresenter::AlipayGetCardTitle(uint32_t index)\r
+{\r
+    return alipayMode_->AlipayGetCardTitle(index);\r
+}\r
+\r
+uint8_t* AlipayPresenter::AlipayGetTransCode(void)\r
+{\r
+    return alipayMode_->AlipayGetTransCode();\r
+}\r
+\r
+uint32_t AlipayPresenter::AlipayGetTransCodeLen(void)\r
+{\r
+    return alipayMode_->AlipayGetTransCodeLen();\r
+}\r
+\r
+char* AlipayPresenter::AlipayGetCardTitle(void)\r
+{\r
+    return alipayMode_->AlipayGetCardTitle();\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipaySetting.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipaySetting.cpp
new file mode 100644 (file)
index 0000000..4b2527b
--- /dev/null
@@ -0,0 +1,168 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay setting view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipaySetting.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const char *SETTING_TITLE = (char *)"设置";\r
+static const char *SETTING_BUTTON = (char *)"解除绑定";\r
+\r
+static const int16 SETTING_TITLE_FONT = 38;\r
+static const int16 SETTING_TITLE_X = 0;\r
+static const int16 SETTING_TITLE_Y = 35;\r
+static const int16 SETTING_TITLE_WIDTH = 454;\r
+static const int16 SETTING_TITLE_HEIGHT = 53;\r
+\r
+static const int16 SETTING_NAME_FONT = 38;\r
+static const int16 SETTING_NAME_X = 0;\r
+static const int16 SETTING_NAME_Y = 142;\r
+static const int16 SETTING_NAME_WIDTH = 454;\r
+static const int16 SETTING_NAME_HEIGHT = 53;\r
+\r
+static const int16 SETTING_ID_FONT = 30;\r
+static const int16 SETTING_ID_X = 0;\r
+static const int16 SETTING_ID_Y = 198;\r
+static const int16 SETTING_ID_WIDTH = 454;\r
+static const int16 SETTING_ID_HEIGHT = 109;\r
+\r
+static const int16 SETTING_BUTTON_X = 121;\r
+static const int16 SETTING_BUTTON_Y = 320;\r
+static const int16 SETTING_BUTTON_WIDTH = 212;\r
+static const int16 SETTING_BUTTON_HEIGHT = 73;\r
+static const int16 SETTING_BUTTON_FONT = 38;\r
+\r
+AlipaySetting::AlipaySetting(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipaySetting::AlipaySetting");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipaySetting::~AlipaySetting()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipaySetting::~AlipaySetting");\r
+    RemoveAll();\r
+\r
+    if (labelTitle != nullptr) {\r
+        delete labelTitle;\r
+        labelTitle = nullptr;\r
+    }\r
+    if (labelName != nullptr) {\r
+        delete labelName;\r
+        labelName = nullptr;\r
+    }\r
+    if (labelId != nullptr) {\r
+        delete labelId;\r
+        labelId = nullptr;\r
+    }\r
+    if (buttonSetting != nullptr) {\r
+        delete buttonSetting;\r
+        buttonSetting = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipaySetting::AlipayInitButton()\r
+{\r
+    buttonSetting = new UILabelButton();\r
+    if (buttonSetting == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::AlipayInitButton new label fail");\r
+        return false;\r
+    }\r
+    buttonSetting->SetPosition(SETTING_BUTTON_X, SETTING_BUTTON_Y, SETTING_BUTTON_WIDTH, SETTING_BUTTON_HEIGHT);\r
+    buttonSetting->SetText(SETTING_BUTTON);\r
+    buttonSetting->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    buttonSetting->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_BUTTON_FONT);\r
+    buttonSetting->SetViewId(ALIPAY_UNBIND_BUTTON);\r
+    buttonSetting->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+    buttonSetting->SetOnClickListener(presenter_);\r
+    Add(buttonSetting);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipaySetting::AlipayInitLabel(void)\r
+{\r
+    labelTitle = new UILabel();\r
+    if (labelTitle == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::AlipayInitLabel new labelTitle fail");\r
+        return false;\r
+    }\r
+    labelTitle->SetText(SETTING_TITLE);\r
+    labelTitle->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_TITLE_FONT);\r
+    labelTitle->SetPosition(SETTING_TITLE_X, SETTING_TITLE_Y, SETTING_TITLE_WIDTH, SETTING_TITLE_HEIGHT);\r
+    labelTitle->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    labelTitle->SetStyle(STYLE_TEXT_FONT, SETTING_TITLE_FONT);\r
+    labelTitle->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+\r
+    Add(labelTitle);\r
+\r
+    labelName = new UILabel();\r
+    if (labelName == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::AlipayInitLabel new labelName fail");\r
+        return false;\r
+    }\r
+    uint8_t str[ALIPAY_GET_NICKNAME_MAX_LENGTH] = {0};\r
+    presenter_->AlipayGetNickName(str);\r
+    labelName->SetText((const char *)str);\r
+    labelName->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_NAME_FONT);\r
+    labelName->SetPosition(SETTING_NAME_X, SETTING_NAME_Y, SETTING_NAME_WIDTH, SETTING_NAME_HEIGHT);\r
+    labelName->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    labelName->SetStyle(STYLE_TEXT_FONT, SETTING_NAME_FONT);\r
+    labelName->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    labelName->SetRollSpeed(30);\r
+    labelName->SetRollStartPos(SETTING_NAME_X);\r
+\r
+    Add(labelName);\r
+\r
+    labelId = new UILabel();\r
+    if (labelTitle == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::AlipayInitLabel new labelId fail");\r
+        return false;\r
+    }\r
+    uint8_t strID[ALIPAY_GET_ID_STR_MAX_LENGTH] = {0};\r
+    presenter_->AlipayGetIdName(strID);\r
+    labelId->SetText((const char *)strID);\r
+    labelId->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_ID_FONT);\r
+    labelId->SetPosition(SETTING_ID_X, SETTING_ID_Y, SETTING_ID_WIDTH, SETTING_ID_HEIGHT);\r
+    labelId->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    labelId->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+    labelId->SetStyle(STYLE_TEXT_FONT, SETTING_ID_FONT);\r
+    labelId->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    labelId->SetRollSpeed(30);\r
+    labelId->SetRollStartPos(SETTING_ID_X);\r
+\r
+    Add(labelId);\r
+\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipaySetting::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipaySetting::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipaySetting::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayGetTransList.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayGetTransList.cpp
new file mode 100644 (file)
index 0000000..5776b78
--- /dev/null
@@ -0,0 +1,167 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay get trans list view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayGetTransList.h"\r
+\r
+namespace OHOS {\r
+static const int16 EXIT_LABEL_X_FIRST = 60;\r
+static const int16 EXIT_LABEL_Y_FIRST = 79;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 333;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 238;\r
+\r
+static const int16 EXIT_LABEL_FONT_FIRST = 30;\r
+static const char *GET_TRANS_LIST_TEXT_1 =\r
+    (char *)"初次使用,完成以下步骤\n1.手机设置-蓝牙,打开并与手表连接配对;\n2.手机“运动健康”确保设备已连接;";\r
+static const char *GET_TRANS_LIST_TEXT_2 =\r
+    (char *)"完成以下步骤,请重试\n1.手机设置-蓝牙,打开并与手表连接配对;\n2.手机“运动健康”确保设备已连接;";\r
+static const int16 EXIT_BUTTON_EXIT_X = 50;\r
+static const int16 EXIT_BUTTON_EXIT_Y = 312;\r
+\r
+static const int16 EXIT_BUTTON_BIND_X = 233;\r
+static const int16 EXIT_BUTTON_BIND_Y = 312;\r
+\r
+static const char *GET_TRANS_LISTBUTTON_TEXT_LEFT1 = (char *)"退出";\r
+static const char *GET_TRANS_LISTBUTTON_TEXT_RIGHT1 = (char *)"已完成";\r
+\r
+static const char *GET_TRANS_LISTBUTTON_TEXT_LEFT2 = (char *)"重试";\r
+static const char *GET_TRANS_LISTBUTTON_TEXT_RIGHT2 = (char *)"详情";\r
+\r
+static const int16 EXIT_BUTTON_WIDTH = 169;\r
+static const int16 EXIT_BUTTON_HEIGHT = 73;\r
+static const int16 EXIT_BUTTON_FONT = 38;\r
+\r
+typedef struct AlipayTransGetListInfo {\r
+    const char *str;\r
+    const char *button_left;\r
+    const char *button_right;\r
+    const char *label_left;\r
+    const char *label_right;\r
+} AlipayTransGetListInfo;\r
+static const AlipayTransGetListInfo g_AlipayTransGetListMapper[] = {\r
+    {GET_TRANS_LIST_TEXT_1, ALIPAY_TRANS_CERTAIN_BACK_LIST, ALIPAY_TRANS_GET_LIST_FINISH, GET_TRANS_LISTBUTTON_TEXT_LEFT1, GET_TRANS_LISTBUTTON_TEXT_RIGHT1},\r
+    {GET_TRANS_LIST_TEXT_2, ALIPAY_TRANS_GET_LIST_FINISH, ALIPAY_TRANS_GET_LIST_DETAIL, GET_TRANS_LISTBUTTON_TEXT_LEFT2, GET_TRANS_LISTBUTTON_TEXT_RIGHT2},\r
+    {GET_TRANS_LIST_TEXT_2, ALIPAY_TRANS_RETRY_TRANS_CODE, ALIPAY_TRANS_GET_LIST_DETAIL, GET_TRANS_LISTBUTTON_TEXT_LEFT2, GET_TRANS_LISTBUTTON_TEXT_RIGHT2},\r
+\r
+};\r
+\r
+AlipayGetTransList::AlipayGetTransList(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::AlipayGetTransList");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayGetTransList::~AlipayGetTransList()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::~AlipayGetTransList");\r
+    RemoveAll();\r
+    int ButtonNum;\r
+\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    for (ButtonNum = ALIPAY_SET_ZERO; ButtonNum < ALIPAY_SET_TWO; ButtonNum++) {\r
+        if (alipayButton[ButtonNum] != nullptr) {\r
+            delete alipayButton[ButtonNum];\r
+            alipayButton[ButtonNum] = nullptr;\r
+        }\r
+    }\r
+}\r
+\r
+bool AlipayGetTransList::AlipayInitLabel(uint32_t index)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::InitExit new alipayLabel fail");\r
+        return false;\r
+    }\r
+\r
+    alipayLabel->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST, EXIT_LABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText(g_AlipayTransGetListMapper[index].str);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    alipayLabel->SetStyle(STYLE_LINE_SPACE, 6);\r
+\r
+    Add(alipayLabel);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayGetTransList::InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr,\r
+    const char *viewId)\r
+{\r
+    alipayButton[num] = new UILabelButton();\r
+    if (alipayButton[num] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::InitSimilarButton new alipayButton[%d] fail", num);\r
+        return false;\r
+    }\r
+    int64_t backColor = 0;\r
+    if (num == 0) {\r
+        backColor = 0xff4a83bf;\r
+        alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+    } else if (num == 1) {\r
+        backColor = 0xff0b1928;\r
+    }\r
+    alipayButton[num]->SetPosition(alipayX, alipayY, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT);\r
+    alipayButton[num]->SetText(buttonStr);\r
+    alipayButton[num]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_BUTTON_FONT);\r
+    alipayButton[num]->SetViewId(viewId);\r
+    alipayButton[num]->SetStyleForState(STYLE_BORDER_COLOR, backColor, UIButton::RELEASED);\r
+    alipayButton[num]->SetOnClickListener(presenter_);\r
+\r
+    Add(alipayButton[num]);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayGetTransList::AlipayInitButton(uint32_t index)\r
+{\r
+    if (InitSimilarButton(ALIPAY_SET_ZERO, EXIT_BUTTON_EXIT_X, EXIT_BUTTON_EXIT_Y,\r
+        g_AlipayTransGetListMapper[index].label_left, g_AlipayTransGetListMapper[index].button_left) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayGetTransList::AlipayInitButton new alipayButton[ALIPAY_SET_ZERO] fail");\r
+        return false;\r
+    }\r
+    if (InitSimilarButton(ALIPAY_SET_ONE, EXIT_BUTTON_BIND_X, EXIT_BUTTON_BIND_Y,\r
+        g_AlipayTransGetListMapper[index].label_right, g_AlipayTransGetListMapper[index].button_right) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "AlipayGetTransList::AlipayInitButton new alipayButton[ALIPAY_SET_ONE] fail");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayGetTransList::InitGetView(uint32_t index)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::InitGetView index:%u", index);\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    if (AlipayInitLabel(index) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::InitView AlipayInitLabel false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton(index) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayGetTransList::InitView AlipayInitButton false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransAni.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransAni.cpp
new file mode 100644 (file)
index 0000000..cb34a59
--- /dev/null
@@ -0,0 +1,136 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay bind animate view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayTransAni.h"\r
+#include "common/image_cache_manager.h"\r
+#include "graphic_service.h"\r
+\r
+namespace OHOS {\r
+static const int16 ANILABEL_X_FIRST = 151;\r
+static const int16 ANILABEL_Y_FIRST = 257;\r
+static const int16 ANILABEL_WIDTH_FIRST = 151;\r
+static const int16 ANILABEL_HEIGHT_FIRST = 48;\r
+static const char *ANILABEL_TEXT_FIRST = (char *)"正在获取";\r
+static const int16 ANILABEL_FONT_FIRST = 38;\r
+\r
+const char *transSearchImagePath[ALIPAY_TRANS_SEARCH_IMAGE_NUM] = {\r
+    PNG_A019_080_IMAGE_PATH,\r
+    PNG_A019_081_IMAGE_PATH,\r
+    PNG_A019_082_IMAGE_PATH,\r
+    PNG_A019_083_IMAGE_PATH,\r
+    PNG_A019_084_IMAGE_PATH,\r
+    PNG_A019_085_IMAGE_PATH,\r
+    PNG_A019_086_IMAGE_PATH,\r
+    PNG_A019_087_IMAGE_PATH,\r
+};\r
+\r
+static const int16 ALIPAY_TRANS_IMAGE_X = 162;\r
+static const int16 ALIPAY_TRANS_IMAGE_Y = 112;\r
+static const int16 ALIPAY_TRANS_IMAGE_WIDTH = 128;\r
+static const int16 ALIPAY_TRANS_IMAGE_HEIGHT = 128;\r
+\r
+static const int16 ALIPAY_TRANS_IMAGE_DELAY = 200;\r
+\r
+static const int16 RES_IMAGE_X = 162;\r
+static const int16 RES_IMAGE_Y = 112;\r
+static const int16 RES_IMAGE_WIDTH = 128;\r
+static const int16 RES_IMAGE_HEIGHT = 128;\r
+\r
+AlipayTransAni::AlipayTransAni(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::AlipayTransAni");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayTransAni::~AlipayTransAni()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::~AlipayTransAni");\r
+    RemoveAll();\r
+\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    if (alipayImageAni != nullptr) {\r
+        delete alipayImageAni;\r
+        alipayImageAni = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayTransAni::AlipayInitLabel(void)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::InitExit new alipayLabel fail");\r
+        return false;\r
+    }\r
+    alipayLabel->SetPosition(ANILABEL_X_FIRST, ANILABEL_Y_FIRST, ANILABEL_WIDTH_FIRST, ANILABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText(ANILABEL_TEXT_FIRST);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, ANILABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, ANILABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+\r
+    Add(alipayLabel);\r
+\r
+    return true;\r
+}\r
+\r
+\r
+bool AlipayTransAni::AlipayInitImageAni(void)\r
+{\r
+    alipayImageAni = new UIImageAnimatorView();\r
+    if (alipayImageAni == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::AlipayInitImageAni new alipayImageAni fail");\r
+        return false;\r
+    }\r
+    for (uint8_t i = 0; i < ALIPAY_TRANS_SEARCH_IMAGE_NUM; i++) {\r
+        searchImageInfo[i].imageInfo = ImageCacheManager::GetInstance().LoadSingleRes(transSearchImagePath[i]);\r
+        searchImageInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
+        searchImageInfo[i].pos.x = ALIPAY_TRANS_IMAGE_X;\r
+        searchImageInfo[i].pos.y = ALIPAY_TRANS_IMAGE_Y;\r
+        searchImageInfo[i].width = ALIPAY_TRANS_IMAGE_WIDTH;\r
+        searchImageInfo[i].height = ALIPAY_TRANS_IMAGE_HEIGHT;\r
+    }\r
+\r
+    alipayImageAni->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageAni->SetImageAnimatorSrc(searchImageInfo, ALIPAY_TRANS_SEARCH_IMAGE_NUM, ALIPAY_TRANS_IMAGE_DELAY);\r
+    alipayImageAni->SetRepeat(true);\r
+    alipayImageAni->SetAutoEnable(false);\r
+    alipayImageAni->SetResizeMode(UIImageView::FILL);\r
+    Add(alipayImageAni);\r
+\r
+    alipayImageAni->Start();\r
+    return true;\r
+}\r
+\r
+bool AlipayTransAni::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::Init");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImageAni() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransAni::InitView AlipayInitImageAni() false");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransCode.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransCode.cpp
new file mode 100644 (file)
index 0000000..784472d
--- /dev/null
@@ -0,0 +1,139 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay transcode view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayTransCode.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const char *TRANSCODE_BUTTON = (char *)"切换交通卡";\r
+static const int16 TRANSCODE_TITLE_FONT = 30;\r
+static const int16 TRANSCODE_BUTTON_FONT = 35;\r
+static const int16 TRANSCODE_TITLE_X = 120;\r
+static const int16 TRANSCODE_TITLE_Y = 24;\r
+static const int16 TRANSCODE_TITLE_WIDTH = 212;\r
+static const int16 TRANSCODE_TITLE_HEIGHT = 42;\r
+\r
+static const int16 TRANSCODE_BUTTON_X = 139;\r
+static const int16 TRANSCODE_BUTTON_Y = 386;\r
+static const int16 TRANSCODE_BUTTON_WIDTH = 176;\r
+static const int16 TRANSCODE_BUTTON_HEIGHT = 50;\r
+\r
+AlipayTransCode::AlipayTransCode(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::AlipayTransCode");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayTransCode::~AlipayTransCode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::~AlipayTransCode");\r
+    RemoveAll();\r
+    if (labelPayCode != nullptr) {\r
+        delete labelPayCode;\r
+        labelPayCode = nullptr;\r
+    }\r
+    if (buttonPayCode != nullptr) {\r
+        delete buttonPayCode;\r
+        buttonPayCode = nullptr;\r
+    }\r
+    if (qrcodeGroup != nullptr) {\r
+        delete qrcodeGroup;\r
+        qrcodeGroup = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayTransCode::AlipayInitQrcode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::AlipayInitQrcode");\r
+\r
+    qrcodeGroup = new UIQrcode();\r
+    if (qrcodeGroup == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::AlipayInitQrcode qrcodeGroup nullptr");\r
+        return false;\r
+    }\r
+    qrcodeGroup->SetPosition(70, 70, 298, 298);\r
+    qrcodeGroup->SetECCLevel(QrCode::Ecc::LOW);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_LEFT, 8);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_RIGHT, 8);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_TOP, 8);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_BOTTOM, 8);\r
+    qrcodeGroup->SetAutoEnable(false);\r
+    qrcodeGroup->SetResizeMode(UIImageView::ImageResizeMode::FILL);\r
+    qrcodeGroup->SetQrcodeInfo(presenter_->AlipayGetTransCode(), presenter_->AlipayGetTransCodeLen());\r
+\r
+    Add(qrcodeGroup);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransCode::AlipayInitLabel(void)\r
+{\r
+    labelPayCode = new UILabel();\r
+    if (labelPayCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::AlipayInitLabel new label fail");\r
+        return false;\r
+    }\r
+    labelPayCode->SetText((const char *)presenter_->AlipayGetCardTitle());\r
+    labelPayCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TRANSCODE_TITLE_FONT);\r
+    labelPayCode->SetPosition(TRANSCODE_TITLE_X, TRANSCODE_TITLE_Y, TRANSCODE_TITLE_WIDTH, TRANSCODE_TITLE_HEIGHT);\r
+    labelPayCode->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    labelPayCode->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    labelPayCode->SetRollSpeed(30);\r
+    labelPayCode->SetRollStartPos(TRANSCODE_TITLE_X);\r
+    Add(labelPayCode);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransCode::AlipayInitButton()\r
+{\r
+    buttonPayCode = new UILabelButton();\r
+    if (buttonPayCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::AlipayInitButton new button fail");\r
+        return false;\r
+    }\r
+    buttonPayCode->SetPosition(TRANSCODE_BUTTON_X, TRANSCODE_BUTTON_Y, TRANSCODE_BUTTON_WIDTH, TRANSCODE_BUTTON_HEIGHT);\r
+    buttonPayCode->SetText(TRANSCODE_BUTTON);\r
+    buttonPayCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TRANSCODE_BUTTON_FONT);\r
+    buttonPayCode->SetViewId(ALIPAY_TRANS_CODE_BACK_LIST);\r
+\r
+    buttonPayCode->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    buttonPayCode->SetOnClickListener(presenter_);\r
+    Add(buttonPayCode);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransCode::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
+    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitQrcode() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::InitView AlipayInitQrcode() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransCode::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransEnable.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransEnable.cpp
new file mode 100644 (file)
index 0000000..967d616
--- /dev/null
@@ -0,0 +1,125 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans enable view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayTransEnable.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const char *TRANSCODE_TITLE = (char *)"乘车码未开通";\r
+static const int16 TRANSCODE_TITLE_FONT = 30;\r
+static const int16 TRANSCODE_TITLE_X = 136;\r
+static const int16 TRANSCODE_TITLE_Y = 45;\r
+static const int16 TRANSCODE_TITLE_WIDTH = 182;\r
+static const int16 TRANSCODE_TITLE_HEIGHT = 42;\r
+\r
+static const char *TRANSCODE_TIPS = (char *)"使用支付宝扫码开通";\r
+static const char *TRANSCODE_URL = (char *)"alipays://platformapi/startapp?appId=20002047&scene=bus";\r
+static const int16 TRANSCODE_TIPS_FONT = 30;\r
+static const int16 TRANSCODE_TIPS_X = 91;\r
+static const int16 TRANSCODE_TIPS_Y = 362;\r
+static const int16 TRANSCODE_TIPS_WIDTH = 270;\r
+static const int16 TRANSCODE_TIPS_HEIGHT = 42;\r
+\r
+AlipayTransEnable::AlipayTransEnable(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::AlipayTransEnable");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayTransEnable::~AlipayTransEnable()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::~AlipayTransEnable");\r
+    RemoveAll();\r
+    if (labelEnableCode != nullptr) {\r
+        delete labelEnableCode;\r
+        labelEnableCode = nullptr;\r
+    }\r
+    if (qrcodeGroup != nullptr) {\r
+        delete qrcodeGroup;\r
+        qrcodeGroup = nullptr;\r
+    }\r
+    if (labelTips != nullptr) {\r
+        delete labelTips;\r
+        labelTips = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayTransEnable::AlipayInitQrcode()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::AlipayInitQrcode");\r
+    qrcodeGroup = new UIQrcode();\r
+    if (qrcodeGroup == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::AlipayInitQrcode qrcodeGroup nullptr");\r
+        return false;\r
+    }\r
+    qrcodeGroup->SetPosition(102, 100, 231, 231);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_LEFT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_RIGHT, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_TOP, 10);\r
+    qrcodeGroup->SetStyle(STYLE_PADDING_BOTTOM, 10);\r
+    qrcodeGroup->SetAutoEnable(false);\r
+    qrcodeGroup->SetResizeMode(UIImageView::ImageResizeMode::FILL);\r
+    qrcodeGroup->SetQrcodeInfo(TRANSCODE_URL);\r
+    qrcodeGroup->SetTouchable(true);\r
+    qrcodeGroup->SetOnClickListener(presenter_);\r
+    qrcodeGroup->SetViewId(ALIPAY_PAY_QRCODE);\r
+\r
+    Add(qrcodeGroup);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransEnable::AlipayInitLabel(void)\r
+{\r
+    labelEnableCode = new UILabel();\r
+    if (labelEnableCode == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::AlipayInitLabel new labelEnableCode fail");\r
+        return false;\r
+    }\r
+    labelEnableCode->SetText(TRANSCODE_TITLE);\r
+    labelEnableCode->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TRANSCODE_TITLE_FONT);\r
+    labelEnableCode->SetPosition(TRANSCODE_TITLE_X, TRANSCODE_TITLE_Y, TRANSCODE_TITLE_WIDTH, TRANSCODE_TITLE_HEIGHT);\r
+    Add(labelEnableCode);\r
+\r
+    labelTips = new UILabel();\r
+    if (labelTips == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::AlipayInitLabel new labelTips fail");\r
+        return false;\r
+    }\r
+    labelTips->SetText(TRANSCODE_TIPS);\r
+    labelTips->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TRANSCODE_TIPS_FONT);\r
+    labelTips->SetPosition(TRANSCODE_TIPS_X, TRANSCODE_TIPS_Y, TRANSCODE_TIPS_WIDTH, TRANSCODE_TIPS_HEIGHT);\r
+    Add(labelTips);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransEnable::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
+    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitQrcode() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransEnable::InitView AlipayInitQrcode() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListAdapter.cpp
new file mode 100644 (file)
index 0000000..703c4b2
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay trans list adapt.
+ * Author:
+ * Create:
+ */
+
+#include "AlipayTransListAdapter.h"
+#include "AlipayTransListItemView.h"
+
+namespace OHOS {
+AlipayTransListAdapter::AlipayTransListAdapter()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListAdapter::AlipayTransListAdapter()");
+}
+
+AlipayTransListAdapter::~AlipayTransListAdapter()
+{
+    listData.clear();
+}
+
+uint16_t AlipayTransListAdapter::GetCount(void)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListAdapter::GetCount(), size:%u", listData.size());
+    return listData.size();
+}
+
+void AlipayTransListAdapter::ClearItem(void)
+{
+    listData.clear();
+}
+
+void AlipayTransListAdapter::SetData(std::list<AlipayTransListItem> &data)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListAdapter::SetData()");
+    if (!listData.empty()) {
+        listData.clear();
+    }
+    std::list<AlipayTransListItem>::iterator it;
+    for (it = data.begin(); it != data.end(); it++) {
+        listData.push_back(*it);
+    }
+}
+
+UIView *AlipayTransListAdapter::GetView(UIView *inView, int16_t index)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListAdapter::GetView(), addr %x, index:%u", inView, index);
+    if (listData.empty()) {
+        return nullptr;
+    }
+    if (index < 0) {
+        return nullptr;
+    }
+    size_t uindex = index;
+    if (uindex >= listData.size()) {
+        return nullptr;
+    }
+
+    std::list<AlipayTransListItem>::iterator it = listData.begin();
+    for (int i = 0; i < index; i++) {
+        it++;
+    }
+    AlipayTransListItem itemData = *it;
+    AlipayTransListItemView *item = nullptr;
+    if (inView == nullptr) {
+        item = new AlipayTransListItemView();
+    } else {
+        item = static_cast<AlipayTransListItemView *>(inView);
+    }
+
+    item->SetItemInfo(itemData);
+    item->SetViewId(itemData.viewId);
+    item->SetOnClickListener(itemClickListener);
+    return item;
+}
+
+void AlipayTransListAdapter::AddListItem(const AlipayTransListItem &item)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListAdapter::AddListItem()");
+    listData.push_back(item);
+}
+} // namespace OHOS
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListItemView.cpp
new file mode 100644 (file)
index 0000000..aa4b0f0
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay trans list item view.
+ * Author:
+ * Create:
+ */
+
+#include "wearable_log.h"
+#include "AlipayTransListItemView.h"
+
+namespace OHOS {
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_BUTTON_HEIGHT = 95;
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_X = 53;
+
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_WIDTH = 347;
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_HEIGHT = 90;
+
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_FONT_SIZE = 35;
+
+AlipayTransListItemView::AlipayTransListItemView()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListItemView::AlipayTransListItemView()");
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, ALIPAY_TRANS_LIST_ITEM_BUTTON_HEIGHT);
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+    SetTouchable(true);
+    SetUpChild();
+
+    Add(&sLabel);
+}
+
+AlipayTransListItemView::~AlipayTransListItemView()
+{
+    Remove(&sLabel);
+}
+
+void AlipayTransListItemView::SetItemInfo(const AlipayTransListItem &itemInfo)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListItemView::SetItemInfo()");
+    sItemInfo = itemInfo;
+    sLabel.SetText(itemInfo.label);
+}
+
+void AlipayTransListItemView::SetUpChild()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListItemView::SetUpChild()");
+
+    sLabel.SetPosition(ALIPAY_TRANS_LIST_ITEM_LABEL_X, 0);
+    sLabel.Resize(ALIPAY_TRANS_LIST_ITEM_LABEL_WIDTH, ALIPAY_TRANS_LIST_ITEM_LABEL_HEIGHT);
+    sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, ALIPAY_TRANS_LIST_ITEM_FONT_SIZE);
+    sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
+    sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
+    sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+}
+
+uint8_t AlipayTransListItemView::GetAlipayTransListIndex()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListItemView::GetAlipayTransListIndex()");
+    return sItemInfo.index;
+}
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransListView.cpp
new file mode 100644 (file)
index 0000000..bab3370
--- /dev/null
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: alipay trans list view.
+ * Author:
+ * Create:
+ */
+
+#include <string>
+#include "AlipayTransListView.h"
+#include "AlipayTransListItem.h"
+#include "AlipayModel.h"
+#include "cmsis_os2.h"
+#include "common_def.h"
+
+namespace OHOS {
+static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_X = 33;
+static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_Y = 59;
+static constexpr int16_t ALIPAY_TRANS_LIST_SCROLLBLANKSIZE = 50;
+static constexpr int16 MAX_SCR_DIS = 900;
+static constexpr int16 LIST_POS = 20;
+static constexpr int16 SNUM_2 = 2;
+
+static const int16 REFRESH_BUTTON_FONT = 38;
+static const int16 REFRESH_BUTTON_X = 189;
+static const int16 REFRESH_BUTTON_Y = 400;
+static const int16 REFRESH_BUTTON_WIDTH = 76;
+static const int16 REFRESH_BUTTON_HEIGHT = 53;
+static const char *REFRESH_BUTTON = (char *)"刷新";
+
+AlipayTransList::AlipayTransList(AlipayPresenter *presenter)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AlipayTransList");
+    presenter_ = presenter;
+}
+
+AlipayTransList::~AlipayTransList()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::~AlipayTransList");
+    RemoveAll();
+
+    if (listAdapter != nullptr) {
+        delete listAdapter;
+        listAdapter = nullptr;
+    }
+    if (contentList != nullptr) {
+        delete contentList;
+        contentList = nullptr;
+    }
+    if (buttonRefresh != nullptr) {
+        delete buttonRefresh;
+        buttonRefresh = nullptr;
+    }
+}
+
+bool AlipayTransList::AlipayInitList()
+{
+    listAdapter = new AlipayTransListAdapter();
+    if (listAdapter == nullptr) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AlipayInitList listAdapter is nullptr");
+        return false;
+    }
+    listAdapter->SetItemClickListener(presenter_);
+    InitAlipayTransListItem();
+    contentList = new UIList();
+    if (contentList == nullptr) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AlipayInitList contentList is nullptr");
+        return false;
+    }
+    contentList->SetPosition(ALIPAY_TRANS_LIST_POSITION_X, ALIPAY_TRANS_LIST_POSITION_Y);
+    contentList->Resize(HORIZONTAL_RESOLUTION - ALIPAY_TRANS_LIST_POSITION_X, VERTICAL_RESOLUTION - 115);
+    contentList->SetScrollBlankSize(ALIPAY_TRANS_LIST_SCROLLBLANKSIZE);
+    contentList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
+    contentList->SetDraggable(true);
+    contentList->SetThrowDrag(false);
+    contentList->EnableAutoAlign(true);
+    contentList->SetMaxScrollDistance(MAX_SCR_DIS);
+    contentList->SetYScrollBarVisible(true);
+    AddAlipayTransListItemToList();
+    Add(contentList);
+    contentList->SetAdapter(listAdapter);
+    return true;
+}
+
+void AlipayTransList::InitAlipayTransListItem()
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListModel::InitAlipayTransListItem()");
+    uint8_t cardCount = (uint8_t)min(presenter_->AlipayGetCardSum(), ALIPAY_TRANS_LIST_ITEM_LEN);
+    for (uint8_t i = 0; i < cardCount; i++) {
+        alipayTransLists[i].index = i;
+        alipayTransLists[i].viewId = ALIPAY_TRANS_LIST_BUTTON;
+        alipayTransLists[i].label = presenter_->AlipayGetCardTitle(i);
+    }
+    listLen = cardCount;
+}
+
+bool AlipayTransList::AlipayInitButton()
+{
+    buttonRefresh = new UILabelButton();
+    if (buttonRefresh == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AlipayInitButton new label fail");
+        return false;
+    }
+    buttonRefresh->SetPosition(REFRESH_BUTTON_X, REFRESH_BUTTON_Y, REFRESH_BUTTON_WIDTH, REFRESH_BUTTON_HEIGHT);
+    buttonRefresh->SetText(REFRESH_BUTTON);
+    buttonRefresh->SetFont(DEFAULT_VECTOR_FONT_FILENAME, REFRESH_BUTTON_FONT);
+
+    buttonRefresh->SetViewId(ALIPAY_TRANS_REFRESH_LIST);
+
+    buttonRefresh->SetTextColor(Color::Blue());
+    buttonRefresh->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    buttonRefresh->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+
+    buttonRefresh->SetOnClickListener(presenter_);
+    Add(buttonRefresh);
+
+    return true;
+}
+
+
+bool AlipayTransList::InitListView()
+{
+    SetDraggable(true);
+    SetTouchable(true);
+    SetOnDragListener(presenter_);
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+
+    if (AlipayInitList() == false) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransList::InitView AlipayInitList() false");
+        return false;
+    }
+
+    if (AlipayInitButton() == false) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransList::InitView AlipayInitButton() false");
+        return false;
+    }
+
+    return true;
+}
+
+void AlipayTransList::AddAlipayTransListItemToList(void)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AddAlipayTransListItemToList");
+    for (uint8_t i = 0; i < listLen; i++) {
+        listAdapter->AddListItem(alipayTransLists[i]);
+    }
+}
+
+void AlipayTransList::AlipayTransListUpdate(void)
+{
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransList::AlipayTransListUpdate");
+    listAdapter->ClearItem();
+    InitAlipayTransListItem();
+    AddAlipayTransListItemToList();
+    contentList->ScrollTo(0);
+    contentList->RefreshList();
+}
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransRes.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransRes.cpp
new file mode 100644 (file)
index 0000000..e0fed12
--- /dev/null
@@ -0,0 +1,197 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans action res view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayTransRes.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const int16 EXIT_LABEL_X_FIRST = 38;\r
+static const int16 EXIT_LABEL_Y_FIRST = 179;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 378;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 84;\r
+\r
+static const int16 EXIT_LABEL_FONT_FIRST = 30;\r
+\r
+static const char *EXIT_LABEL_TEXT_1 = (char *)"网络异常,请打开手机运动健康app,并确保设备已连接后再重试";\r
+\r
+static const int16 RES_IMAGE_X = 170;\r
+static const int16 RES_IMAGE_Y = 55;\r
+static const int16 RES_IMAGE_WIDTH = 112;\r
+static const int16 RES_IMAGE_HEIGHT = 112;\r
+\r
+static const char *RECOGNIZE_BUTTON = (char *)"确定";\r
+static const int16 RECOGNIZE_BUTTON_FONT = 38;\r
+static const int16 RECOGNIZE_BUTTON_X = 50;\r
+static const int16 RECOGNIZE_BUTTON_Y = 312;\r
+static const int16 RECOGNIZE_BUTTON_WIDTH = 169;\r
+static const int16 RECOGNIZE_BUTTON_HEIGHT = 73;\r
+\r
+static const char *RECOGNIZE_BUTTON_SEC = (char *)"详情";\r
+static const int16 RECOGNIZE_BUTTON_SEC_FONT = 38;\r
+static const int16 RECOGNIZE_BUTTON_SEC_X = 233;\r
+static const int16 RECOGNIZE_BUTTON_SEC_Y = 312;\r
+static const int16 RECOGNIZE_BUTTON_SEC_WIDTH = 169;\r
+static const int16 RECOGNIZE_BUTTON_SEC_HEIGHT = 73;\r
+\r
+typedef struct AlipayTransResInfo {\r
+    const char *str;\r
+    const char *button_left;\r
+    const char *button_right;\r
+} AlipayTransResInfo;\r
+static const AlipayTransResInfo g_AlipayTransResMapper[] = {\r
+    {EXIT_LABEL_TEXT_1, ALIPAY_TRANS_CERTAIN_BACK_LIST,  ALIPAY_TRANS_LIST_RES_DETAIL},\r
+    {EXIT_LABEL_TEXT_1, ALIPAY_TRANS_CERTAIN_TO_TRANS,  ALIPAY_TRANS_CODE_RES_DETAIL},\r
+\r
+};\r
+\r
+AlipayTransRes::AlipayTransRes(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayTransRes");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayTransRes::~AlipayTransRes()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::~AlipayTransRes");\r
+    RemoveAll();\r
+\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    if (alipayImage != nullptr) {\r
+        delete alipayImage;\r
+        alipayImage = nullptr;\r
+    }\r
+\r
+    if (alipayButton != nullptr) {\r
+        delete alipayButton;\r
+        alipayButton = nullptr;\r
+    }\r
+    if (alipayButtonSec != nullptr) {\r
+        delete alipayButtonSec;\r
+        alipayButtonSec = nullptr;\r
+    }\r
+}\r
+\r
+void AlipayTransRes::AlipayTransRefreshRes(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayRefreshBindRes");\r
+\r
+    if (alipayLabel == nullptr || alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayRefreshBindRes nullptr");\r
+        return;\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+bool AlipayTransRes::AlipayInitLabel(const char *resStr)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayInitLabel new alipayLabel fail");\r
+        return false;\r
+    }\r
+    alipayLabel->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST, EXIT_LABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText(resStr);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+\r
+    Add(alipayLabel);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransRes::AlipayInitImage(const char *imageSrc)\r
+{\r
+    alipayImage = new UIImageView();\r
+    if (alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayInitImage new tempImage fail");\r
+        return false;\r
+    }\r
+    alipayImage->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImage->SetSrc(imageSrc);\r
+\r
+    // Set additional property\r
+    alipayImage->SetAutoEnable(false);\r
+    alipayImage->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImage);\r
+    return true;\r
+}\r
+\r
+bool AlipayTransRes::AlipayInitButton(uint32_t index)\r
+{\r
+    alipayButton = new UILabelButton();\r
+    if (alipayButton == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayInitButton new alipayButton fail");\r
+        return false;\r
+    }\r
+    alipayButton->SetPosition(RECOGNIZE_BUTTON_X, RECOGNIZE_BUTTON_Y, RECOGNIZE_BUTTON_WIDTH,\r
+        RECOGNIZE_BUTTON_HEIGHT);\r
+    alipayButton->SetText(RECOGNIZE_BUTTON);\r
+    alipayButton->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, RECOGNIZE_BUTTON_FONT);\r
+    alipayButton->SetViewId(g_AlipayTransResMapper[index].button_left);\r
+    alipayButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff4a83bf, UIButton::PRESSED);\r
+    alipayButton->SetOnClickListener(presenter_);\r
+    alipayButton->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
+    alipayButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+    Add(alipayButton);\r
+\r
+    alipayButtonSec = new UILabelButton();\r
+    if (alipayButtonSec == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::AlipayInitButton new alipayButtonSec fail");\r
+        return false;\r
+    }\r
+    alipayButtonSec->SetPosition(RECOGNIZE_BUTTON_SEC_X, RECOGNIZE_BUTTON_SEC_Y, RECOGNIZE_BUTTON_WIDTH,\r
+        RECOGNIZE_BUTTON_HEIGHT);\r
+    alipayButtonSec->SetText(RECOGNIZE_BUTTON_SEC);\r
+    alipayButtonSec->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayButtonSec->SetFont(DEFAULT_VECTOR_FONT_FILENAME, RECOGNIZE_BUTTON_FONT);\r
+    alipayButtonSec->SetViewId(g_AlipayTransResMapper[index].button_right);\r
+    alipayButtonSec->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    alipayButtonSec->SetOnClickListener(presenter_);\r
+    Add(alipayButtonSec);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransRes::InitResView(uint32_t index)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::InitExit");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    if (AlipayInitLabel(g_AlipayTransResMapper[index].str) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImage(PNG_ALIPAY_BIND_FAILURE) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitButton(index) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransRes::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp
new file mode 100644 (file)
index 0000000..2f92fed
--- /dev/null
@@ -0,0 +1,172 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay trans tips view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayTransTips.h"\r
+#include "AlipayModel.h"\r
+\r
+namespace OHOS {\r
+static const int16 TIPS_LABEL_X_FIRST = 38;\r
+static const int16 TIPS_LABEL_Y_FIRST = 179;\r
+static const int16 TIPS_LABEL_WIDTH_FIRST = 378;\r
+static const int16 TIPS_LABEL_HEIGHT_FIRST = 84;\r
+static const int16 TIPS_LABEL_FONT_FIRST = 30;\r
+\r
+static const char *TIPS_LABEL_TEXT_1 = (char *)"未知错误_具体错误码,请联系设备厂商解决";\r
+static const char *TIPS_LABEL_TEXT_2 = (char *)"开通的乘车码数量太多,清在手机支付宝-出行-管理中,管理后再用";\r
+static const char *TIPS_LABEL_TEXT_3 = (char *)"存在安全风险,12小时内不可用,请切换到手机侧使用";\r
+static const char *TIPS_LABEL_TEXT_4 = (char *)"未知错误_具体错误码,请联系设备厂商解决";\r
+static const char *TIPS_LABEL_TEXT_5 = (char *)"暂不支持,请切换到手机侧使用";\r
+\r
+static const int16 RES_IMAGE_X = 170;\r
+static const int16 RES_IMAGE_Y = 55;\r
+static const int16 RES_IMAGE_WIDTH = 112;\r
+static const int16 RES_IMAGE_HEIGHT = 112;\r
+\r
+static const char *RECOGNIZE_BUTTON = (char *)"确定";\r
+static const int16 RECOGNIZE_BUTTON_FONT = 38;\r
+static const int16 RECOGNIZE_BUTTON_X = 120;\r
+static const int16 RECOGNIZE_BUTTON_Y = 320;\r
+static const int16 RECOGNIZE_BUTTON_WIDTH = 212;\r
+static const int16 RECOGNIZE_BUTTON_HEIGHT = 73;\r
+\r
+typedef struct AlipayTransTipsInfo {\r
+    const char *str;\r
+    const char *button;\r
+} AlipayTransTipsInfo;\r
+static const AlipayTransTipsInfo g_AlipayTransTipsMapper[] = {\r
+    {TIPS_LABEL_TEXT_1, ALIPAY_TRANS_CERTAIN_BACK_LIST},\r
+    {TIPS_LABEL_TEXT_2, ALIPAY_TRANS_CERTAIN_BACK_LIST},\r
+    {TIPS_LABEL_TEXT_3, ALIPAY_TRANS_CERTAIN_TO_TRANS},\r
+    {TIPS_LABEL_TEXT_4, ALIPAY_TRANS_CERTAIN_TO_TRANS},\r
+    {TIPS_LABEL_TEXT_5, ALIPAY_TRANS_CERTAIN_TO_TRANS},\r
+};\r
+\r
+AlipayTransTips::AlipayTransTips(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::AlipayTransTips");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayTransTips::~AlipayTransTips()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::~AlipayTransTips");\r
+    RemoveAll();\r
+\r
+    if (alipayLabel != nullptr) {\r
+        delete alipayLabel;\r
+        alipayLabel = nullptr;\r
+    }\r
+\r
+    if (alipayImage != nullptr) {\r
+        delete alipayImage;\r
+        alipayImage = nullptr;\r
+    }\r
+\r
+    if (alipayButton != nullptr) {\r
+        delete alipayButton;\r
+        alipayButton = nullptr;\r
+    }\r
+}\r
+\r
+void AlipayTransTips::AlipayTransRefreshTips(void)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::AlipayTransRefreshTips");\r
+\r
+    if (alipayLabel == nullptr || alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::AlipayTransRefreshTips nullptr");\r
+        return;\r
+    }\r
+\r
+    return;\r
+}\r
+\r
+bool AlipayTransTips::AlipayInitLabel(const char *resStr)\r
+{\r
+    alipayLabel = new UILabel();\r
+    if (alipayLabel == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitExit new alipayLabel fail");\r
+        return false;\r
+    }\r
+    alipayLabel->SetPosition(TIPS_LABEL_X_FIRST, TIPS_LABEL_Y_FIRST, TIPS_LABEL_WIDTH_FIRST, TIPS_LABEL_HEIGHT_FIRST);\r
+    alipayLabel->SetText((const char *)resStr);\r
+    alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TIPS_LABEL_FONT_FIRST);\r
+    alipayLabel->SetStyle(STYLE_TEXT_FONT, TIPS_LABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+\r
+    Add(alipayLabel);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransTips::AlipayInitImage(const char *imageSrc)\r
+{\r
+    alipayImage = new UIImageView();\r
+    if (alipayImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::AlipayInitImage new alipayImage fail");\r
+        return false;\r
+    }\r
+    alipayImage->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImage->SetSrc(imageSrc);\r
+\r
+    // Set additional property\r
+    alipayImage->SetAutoEnable(false);\r
+    alipayImage->SetResizeMode(UIImageView::FILL);\r
+\r
+    Add(alipayImage);\r
+    return true;\r
+}\r
+\r
+bool AlipayTransTips::AlipayInitButton(uint32_t index)\r
+{\r
+    alipayButton = new UILabelButton();\r
+    if (alipayButton == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::AlipayInitButton new alipayButton fail");\r
+        return false;\r
+    }\r
+    alipayButton->SetPosition(RECOGNIZE_BUTTON_X, RECOGNIZE_BUTTON_Y, RECOGNIZE_BUTTON_WIDTH,\r
+        RECOGNIZE_BUTTON_HEIGHT);\r
+    alipayButton->SetText(RECOGNIZE_BUTTON);\r
+    alipayButton->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, RECOGNIZE_BUTTON_FONT);\r
+    alipayButton->SetViewId(g_AlipayTransTipsMapper[index].button);\r
+    alipayButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    alipayButton->SetOnClickListener(presenter_);\r
+    Add(alipayButton);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayTransTips::InitTipsView(uint32_t index)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitTipsView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+\r
+    if (AlipayInitLabel(g_AlipayTransTipsMapper[index].str) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitImage(PNG_ALIPAY_BIND_FAILURE) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitImage() false");\r
+        return false;\r
+    }\r
+\r
+    if (AlipayInitButton(index) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbind.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbind.cpp
new file mode 100644 (file)
index 0000000..5c6d185
--- /dev/null
@@ -0,0 +1,165 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay remove bind view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include "layout/grid_layout.h"\r
+#include "font/ui_font.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayUnbind.h"\r
+\r
+namespace OHOS {\r
+static const int16 EXIT_LABEL_X_FIRST = 132;\r
+static const int16 EXIT_LABEL_Y_FIRST = 57;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 189;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
+\r
+static const int16 EXIT_LABEL_X_SEC = 44;\r
+static const int16 EXIT_LABEL_Y_SECOND = 126;\r
+static const int16 EXIT_LABEL_WIDTH_SEC = 365;\r
+static const int16 EXIT_LABEL_HEIGHT_SEC = 128;\r
+\r
+static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+static const int16 EXIT_LABEL_FONT_SEC = 30;\r
+\r
+static const char *UNBIND_LABEL_TEXT_FIRST = (char *)"解除绑定";\r
+static const char *UNBIND_LABEL_TEXT_SECOND = (char *)"解绑后将无法使用支付宝各项解锁功能,确认解绑?";\r
+\r
+static const int16 EXIT_BUTTON_EXIT_X = 50;\r
+static const int16 EXIT_BUTTON_EXIT_Y = 312;\r
+\r
+static const int16 EXIT_BUTTON_BIND_X = 233;\r
+static const int16 EXIT_BUTTON_BIND_Y = 312;\r
+\r
+static const char *UNBIND_BUTTON_TEXT_FIRST = (char *)"确认";\r
+static const char *UNBIND_BUTTON_TEXT_SECOND = (char *)"取消";\r
+\r
+static const int16 EXIT_BUTTON_WIDTH = 169;\r
+static const int16 EXIT_BUTTON_HEIGHT = 73;\r
+static const int16 EXIT_BUTTON_FONT = 38;\r
+\r
+AlipayUnbind::AlipayUnbind(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::AlipayUnbind");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayUnbind::~AlipayUnbind()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::~AlipayUnbind");\r
+    RemoveAll();\r
+    for (int32_t labelNum = ALIPAY_SET_ZERO; labelNum < ALIPAY_SET_TWO; labelNum++) {\r
+        if (alipayLabel[labelNum] != nullptr) {\r
+            delete alipayLabel[labelNum];\r
+            alipayLabel[labelNum] = nullptr;\r
+        }\r
+    }\r
+    for (int32_t buttonNum = ALIPAY_SET_ZERO; buttonNum < ALIPAY_SET_TWO; buttonNum++) {\r
+        if (alipayButton[buttonNum] != nullptr) {\r
+            delete alipayButton[buttonNum];\r
+            alipayButton[buttonNum] = nullptr;\r
+        }\r
+    }\r
+}\r
+\r
+bool AlipayUnbind::AlipayInitLabel()\r
+{\r
+    alipayLabel[ALIPAY_SET_ZERO] = new UILabel();\r
+    if (alipayLabel[ALIPAY_SET_ZERO] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitExit new alipayLabel[ALIPAY_SET_ZERO] fail");\r
+        return false;\r
+    }\r
+\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST,\r
+        EXIT_LABEL_HEIGHT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetText(UNBIND_LABEL_TEXT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+\r
+    Add(alipayLabel[ALIPAY_SET_ZERO]);\r
+\r
+    alipayLabel[ALIPAY_SET_ONE] = new UILabel();\r
+    if (alipayLabel[ALIPAY_SET_ONE] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitExit new alipayLabel[ALIPAY_SET_ONE] fail");\r
+        return false;\r
+    }\r
+    alipayLabel[ALIPAY_SET_ONE]->SetPosition(EXIT_LABEL_X_SEC, EXIT_LABEL_Y_SECOND, EXIT_LABEL_WIDTH_SEC,\r
+        EXIT_LABEL_HEIGHT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetText(UNBIND_LABEL_TEXT_SECOND);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 12);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    Add(alipayLabel[ALIPAY_SET_ONE]);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayUnbind::InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, const char *buttonStr, const char *viewId)\r
+{\r
+    alipayButton[num] = new UILabelButton();\r
+    if (alipayButton[num] == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitSimilarButton new alipayButton[%d] fail", num);\r
+        return false;\r
+    }\r
+    int64_t backColor = 0;\r
+    if (num == 0) {\r
+        backColor = 0xff4a83bf;\r
+        alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+    } else if (num == 1) {\r
+        backColor = 0xff0b1928;\r
+    }\r
+    alipayButton[num]->SetPosition(alipayX, alipayY, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT);\r
+    alipayButton[num]->SetText(buttonStr);\r
+    alipayButton[num]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_BUTTON_FONT);\r
+    alipayButton[num]->SetViewId(viewId);\r
+    alipayButton[num]->SetStyleForState(STYLE_BORDER_COLOR, backColor, UIButton::RELEASED);\r
+    alipayButton[num]->SetOnClickListener(presenter_);\r
+\r
+    Add(alipayButton[num]);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayUnbind::AlipayInitButton()\r
+{\r
+    if (InitSimilarButton(ALIPAY_SET_ZERO, EXIT_BUTTON_EXIT_X, EXIT_BUTTON_EXIT_Y, UNBIND_BUTTON_TEXT_FIRST,\r
+        ALIPAY_SETTING_UNBIND) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::AlipayInitButton new alipayButton[ALIPAY_SET_ZERO] fail");\r
+        return false;\r
+    }\r
+    if (InitSimilarButton(ALIPAY_SET_ONE, EXIT_BUTTON_BIND_X, EXIT_BUTTON_BIND_Y, UNBIND_BUTTON_TEXT_SECOND,\r
+        ALIPAY_SETTING_CANCEL) == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::AlipayInitButton new alipayButton[ALIPAY_SET_ONE] fail");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayUnbind::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    \r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbind::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+    return true;\r
+}\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp
new file mode 100644 (file)
index 0000000..b7f4940
--- /dev/null
@@ -0,0 +1,140 @@
+/**\r
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.\r
+ * Description: alipay removie bind finish view.\r
+ * Author:\r
+ * Create:\r
+ */\r
+\r
+#include "UiConfig.h"\r
+#include <string>\r
+#include "cmsis_os.h"\r
+#include "AlipayUnbindFinish.h"\r
+\r
+namespace OHOS {\r
+static AlipayUnbindFinish *g_alipayUnbindFinish = nullptr;\r
+\r
+static const char *UNBIND_FINISH_TITLE = (char *)"解绑成功";\r
+static const char *UNBIND_FINISH_TEXT =\r
+    (char *)"设备侧已解绑,请到手机支付宝搜索进入“智能设备”小程序查看,若手机侧未解绑,则需要操作解绑";\r
+\r
+static const char *UNBIND_FINISH_BUTTON = (char *)"确认";\r
+\r
+static const int16 UNBIND_FINISH_TITLE_FONT = 38;\r
+static const int16 UNBIND_FINISH_TITLE_X = 0;\r
+static const int16 UNBIND_FINISH_TITLE_Y = 35;\r
+static const int16 UNBIND_FINISH_TITLE_WIDTH = 454;\r
+static const int16 UNBIND_FINISH_TITLE_HEIGHT = 53;\r
+\r
+static const int16 UNBIND_FINISH_TEXT_FONT = 30;\r
+static const int16 UNBIND_FINISH_TEXT_X = 38;\r
+static const int16 UNBIND_FINISH_TEXT_Y = 126;\r
+static const int16 UNBIND_FINISH_TEXT_WIDTH = 380;\r
+static const int16 UNBIND_FINISH_TEXT_HEIGHT = 166;\r
+\r
+static const int16 UNBIND_FINISH_BUTTON_FONT = 38;\r
+static const int16 UNBIND_FINISH_BUTTON_X = 120;\r
+static const int16 UNBIND_FINISH_BUTTON_Y = 320;\r
+static const int16 UNBIND_FINISH_BUTTON_WIDTH = 212;\r
+static const int16 UNBIND_FINISH_BUTTON_HEIGHT = 73;\r
+\r
+AlipayUnbindFinish::AlipayUnbindFinish(AlipayPresenter *presenter)\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::AlipayUnbindFinish");\r
+    presenter_ = presenter;\r
+}\r
+\r
+AlipayUnbindFinish::~AlipayUnbindFinish()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::~AlipayUnbindFinish");\r
+    RemoveAll();\r
+\r
+    if (titleUnbind != nullptr) {\r
+        delete titleUnbind;\r
+        titleUnbind = nullptr;\r
+    }\r
+    if (textUnbind != nullptr) {\r
+        delete textUnbind;\r
+        textUnbind = nullptr;\r
+    }\r
+    if (buttonUnbind != nullptr) {\r
+        delete buttonUnbind;\r
+        buttonUnbind = nullptr;\r
+    }\r
+}\r
+\r
+bool AlipayUnbindFinish::AlipayInitLabel(void)\r
+{\r
+    titleUnbind = new UILabel();\r
+    if (titleUnbind == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::AlipayInitLabel new label fail");\r
+        return false;\r
+    }\r
+    titleUnbind->SetText(UNBIND_FINISH_TITLE);\r
+    titleUnbind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UNBIND_FINISH_TITLE_FONT);\r
+    titleUnbind->SetPosition(UNBIND_FINISH_TITLE_X, UNBIND_FINISH_TITLE_Y, UNBIND_FINISH_TITLE_WIDTH,\r
+        UNBIND_FINISH_TITLE_HEIGHT);\r
+    titleUnbind->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    titleUnbind->SetStyle(STYLE_TEXT_FONT, UNBIND_FINISH_TITLE_FONT);\r
+    titleUnbind->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+\r
+    Add(titleUnbind);\r
+\r
+    titleUnbind = new UILabel();\r
+    if (titleUnbind == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::AlipayInitLabel new label fail");\r
+        return false;\r
+    }\r
+    titleUnbind->SetText(UNBIND_FINISH_TEXT);\r
+    titleUnbind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UNBIND_FINISH_TEXT_FONT);\r
+    titleUnbind->SetPosition(UNBIND_FINISH_TEXT_X, UNBIND_FINISH_TEXT_Y, UNBIND_FINISH_TEXT_WIDTH,\r
+        UNBIND_FINISH_TEXT_HEIGHT);\r
+    titleUnbind->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    titleUnbind->SetStyle(STYLE_TEXT_FONT, UNBIND_FINISH_TEXT_FONT);\r
+    titleUnbind->SetStyle(STYLE_LINE_SPACE, 6);\r
+\r
+    Add(titleUnbind);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayUnbindFinish::AlipayInitButton()\r
+{\r
+    buttonUnbind = new UILabelButton();\r
+    if (buttonUnbind == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::AlipayInitButton new label fail");\r
+        return false;\r
+    }\r
+    buttonUnbind->SetPosition(UNBIND_FINISH_BUTTON_X, UNBIND_FINISH_BUTTON_Y, UNBIND_FINISH_BUTTON_WIDTH,\r
+        UNBIND_FINISH_BUTTON_HEIGHT);\r
+    buttonUnbind->SetText(UNBIND_FINISH_BUTTON);\r
+    buttonUnbind->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    buttonUnbind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UNBIND_FINISH_BUTTON_FONT);\r
+    buttonUnbind->SetViewId(ALIPAY_SETTING_FINISH);\r
+    buttonUnbind->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+    buttonUnbind->SetOnClickListener(presenter_);\r
+    Add(buttonUnbind);\r
+\r
+    return true;\r
+}\r
+\r
+bool AlipayUnbindFinish::InitView()\r
+{\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::InitView");\r
+    SetDraggable(true);\r
+    SetTouchable(true);\r
+    SetOnDragListener(presenter_);\r
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+    SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+\r
+    if (AlipayInitLabel() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::InitView AlipayInitLabel() false");\r
+        return false;\r
+    }\r
+    if (AlipayInitButton() == false) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::InitView AlipayInitButton() false");\r
+        return false;\r
+    }\r
+\r
+    return true;\r
+}\r
+}
\ No newline at end of file
index fe71744..975907b 100644 (file)
@@ -26,6 +26,9 @@ namespace OHOS
         {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行", nullptr},
         {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气", nullptr},
         {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", nullptr},
+#ifdef SUPPORT_ALIPAY_SEC
+        {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", nullptr},
+#endif
 #if 0
         {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温", nullptr},
         {VIEW_CALLER_LOG, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "通话记录", nullptr},
index 6366261..a7e04c6 100644 (file)
@@ -114,7 +114,9 @@ void ConnectPhonePresenter::ConfirmOnClick()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter bt gap_br_set_bt_scan_mode ret = 0x%x", ret);
     }
 
+#ifndef SUPPORT_ALIPAY_SEC
     BleAdvStart();
+#endif
 }
 
 bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event)
index 63c3c0b..9ac25f5 100755 (executable)
@@ -1,3 +1,13 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-01-29 19:58:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-02-01 17:13:46
+ * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativelauncher/include/AppViewIDs.h
+ * @Description: 
+ * @
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved. 
+ */
 /*
  * Copyright (c) 2020-2021 CompanyNameMagicTag.
  * Licensed under the Apache License, Version 2.0 (the "License");
index 6494d50..770104c 100755 (executable)
@@ -1,3 +1,13 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-01-29 19:58:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-02-01 17:14:12
+ * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativelauncher/include/NativeLauncher.h
+ * @Description: 
+ * @
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved. 
+ */
 /*
  * Copyright (c) 2020-2021 CompanyNameMagicTag.
  * Licensed under the Apache License, Version 2.0 (the "License");
index 0f8413f..69cdaa5 100755 (executable)
@@ -151,15 +151,15 @@ target = {
                           "audio_manager",
                           "custom_utils",
                           "rotary_encoder",
-                          "nativelauncher",
-                        #   "fd230launcher",
+                          #"nativelauncher",
+                           "fd230launcher",
                           "batterry_service"
                                                  ],
         'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'],
         'dsp_version': 'max',
         'packet': True,
-        'fs_image_path':'evb4',
-        # 'fs_image_path':'fd230',
+        #'fs_image_path':'evb4',
+         'fs_image_path':'fd230',
         'fs_image': True
     },
     #native-xts: liteos + uikit + nandflash + mipi + psram + audio  典型合封UIKIT版本
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_FAILURE.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_FAILURE.bin
new file mode 100644 (file)
index 0000000..120b4f2
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_FAILURE.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_SUCCESS.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_SUCCESS.bin
new file mode 100644 (file)
index 0000000..89af5fe
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_BIND_SUCCESS.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_HELP.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_HELP.bin
new file mode 100644 (file)
index 0000000..07872c9
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_HELP.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_PAY.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_PAY.bin
new file mode 100644 (file)
index 0000000..4b0c3ed
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_PAY.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_SETTING.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_SETTING.bin
new file mode 100644 (file)
index 0000000..f37a192
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_SETTING.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_TRANS.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_TRANS.bin
new file mode 100644 (file)
index 0000000..89337fa
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_LIST_TRANS.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_GREY.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_GREY.bin
new file mode 100644 (file)
index 0000000..5feb117
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_GREY.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_WHITE.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_WHITE.bin
new file mode 100644 (file)
index 0000000..a26ed67
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/ALIPAY_PAY_ICON_WHITE.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/alipay_logo.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/alipay_logo.bin
new file mode 100644 (file)
index 0000000..db057a1
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/alipay/alipay_logo.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
new file mode 100644 (file)
index 0000000..a58e4c0
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
new file mode 100644 (file)
index 0000000..309da6b
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.
+* Description: language
+* Author: Graphic develop team
+* Create: 2021-07-06
+*/
+
+#ifndef UI_RESOURCE_STRING_H
+#define UI_RESOURCE_STRING_H
+#include <cstdint>
+namespace OHOS {
+enum UIResourceTextId : uint16_t {
+    STR_IMAGE = 0,\r
+    STR_PROGRESSBAR = 1,\r
+    STR_SLIDEUNLOCK = 2,\r
+    STR_LISTBOX = 3,\r
+    STR_BUTTON = 4,\r
+    STR_SCROLLVIEW = 5,\r
+    STR_SCROLLGRID = 6,\r
+    STR_CLOCK = 7,\r
+    STR_DISTURBANCE = 8,\r
+    STR_BRIGHT = 9,\r
+    STR_PHONE = 10,\r
+    STR_LANGAGE = 11,\r
+    STR_ALARM = 12,\r
+    STR_SYSTEM = 13,\r
+    STR_SPO2 = 14,\r
+    STR_COMPASS = 15,\r
+    STR_INDOORWALK = 16,\r
+    STR_WEATHER = 17,\r
+    STR_SYSTEMSETTING = 18,\r
+    STR_MAX_ID = 19,\r
+}; // UIResourceTextId\r
+
+enum FontLanguageId : uint8_t {
+    LANGUAGE_ID_ZH,\r
+    LANGUAGE_ID_EN,\r
+    LANGUAGE_ID_MAX\r
+}; // UITextLanguageTextId\r
+}\r
+#endif  /* UI_RESOURCE_STRING_H */\r
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang
new file mode 100644 (file)
index 0000000..de8ffb0
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ