From 3936d39f7ad09431547dfd68fd01475071c66c36 Mon Sep 17 00:00:00 2001 From: wangyu Date: Thu, 5 Mar 2026 18:33:30 +0800 Subject: [PATCH] init --- .gitignore | 12 + AppScope/app.json5 | 10 + AppScope/resources/base/element/string.json | 28 + .../base/media/ic_launcher_background.png | Bin 0 -> 6531 bytes .../base/media/ic_launcher_foreground.png | Bin 0 -> 52251 bytes AppScope/resources/base/media/layer_logo.json | 6 + build-profile.json5 | 97 +++ code-linter.json5 | 32 + entry/.gitignore | 6 + entry/build-profile.json5 | 28 + entry/hvigorfile.ts | 6 + entry/obfuscation-rules.txt | 28 + entry/oh-package-lock.json5 | 72 ++ entry/oh-package.json5 | 13 + entry/src/main/ets/MyAbilityStage.ets | 9 + .../src/main/ets/callback/DialogCallback.ets | 5 + entry/src/main/ets/common/Constants.ets | 19 + entry/src/main/ets/common/EventConstants.ets | 272 ++++++++ entry/src/main/ets/common/RouterUrls.ets | 146 ++++ entry/src/main/ets/dialog/BindPhoneDialog.ets | 205 ++++++ .../src/main/ets/dialog/DiamondRuleDialog.ets | 59 ++ entry/src/main/ets/dialog/DownloadDialog.ets | 220 ++++++ entry/src/main/ets/dialog/EditTextDialog.ets | 128 ++++ .../ets/dialog/JoinWxGroupCourseDialog.ets | 179 +++++ entry/src/main/ets/dialog/LoadingDialog.ets | 81 +++ entry/src/main/ets/dialog/LoginTipDialog.ets | 80 +++ .../main/ets/dialog/MaterialLoadingDialog.ets | 84 +++ .../main/ets/dialog/PrivacyPolicyDialog.ets | 100 +++ entry/src/main/ets/dialog/SimpleTipDialog.ets | 111 +++ entry/src/main/ets/dialog/TipDialog.ets | 121 ++++ entry/src/main/ets/entity/AccountEntity.ets | 13 + entry/src/main/ets/entity/BannerEntity.ets | 5 + entry/src/main/ets/entity/ConfigEntity.ets | 59 ++ .../main/ets/entity/DiamondDetailEntity.ets | 7 + .../src/main/ets/entity/DiamondRuleEntity.ets | 18 + .../main/ets/entity/DownloadHistoryEntity.ets | 102 +++ entry/src/main/ets/entity/HomeMenuEntity.ets | 23 + entry/src/main/ets/entity/LoginEntity.ets | 7 + entry/src/main/ets/entity/MaterialEntity.ets | 13 + .../main/ets/entity/MaterialInfoEntity.ets | 87 +++ .../src/main/ets/entity/MediaRecordEntity.ets | 14 + entry/src/main/ets/entity/NoticeEntity.ets | 6 + entry/src/main/ets/entity/OrderEntity.ets | 14 + entry/src/main/ets/entity/OrderPayEntity.ets | 16 + entry/src/main/ets/entity/SendCodeEntity.ets | 3 + entry/src/main/ets/entity/UploadImgEntity.ets | 4 + .../src/main/ets/entity/UserConfigEntity.ets | 12 + entry/src/main/ets/entity/UserEntity.ets | 30 + entry/src/main/ets/entity/VipMealEntity.ets | 16 + .../main/ets/entity/VipPermissionEntity.ets | 13 + entry/src/main/ets/entity/WxServiceEntity.ets | 8 + entry/src/main/ets/entity/WxVideoConfig.ets | 8 + entry/src/main/ets/entity/WxVideoEntity.ets | 6 + .../main/ets/entryability/EntryAbility.ets | 46 ++ .../entrybackupability/EntryBackupAbility.ets | 16 + .../src/main/ets/manager/AVSessionManager.ets | 61 ++ .../ets/manager/EventReportGlobalManager.ets | 11 + .../main/ets/manager/LocalMediaManager.ets | 67 ++ .../main/ets/manager/LoginGlobalManager.ets | 92 +++ entry/src/main/ets/manager/MediaManager.ets | 119 ++++ entry/src/main/ets/manager/ShareManager.ets | 40 ++ .../main/ets/manager/UserConfigManager.ets | 368 ++++++++++ entry/src/main/ets/net/Api.ets | 116 ++++ entry/src/main/ets/net/ApiService.ets | 390 +++++++++++ entry/src/main/ets/net/AxiosRequest.ets | 168 +++++ entry/src/main/ets/net/HttpResult.ets | 15 + entry/src/main/ets/net/MediaDownloader.ets | 426 ++++++++++++ .../src/main/ets/net/request/LoginRequest.ets | 9 + .../main/ets/pages/audio/AudioPlayerPage.ets | 237 +++++++ entry/src/main/ets/pages/guide/GuidePage.ets | 90 +++ entry/src/main/ets/pages/login/LoginPage.ets | 355 ++++++++++ .../pages/login/qrcode/QrcodeLoginPage.ets | 81 +++ entry/src/main/ets/pages/main/MainPage.ets | 177 +++++ .../src/main/ets/pages/main/home/HomePage.ets | 457 +++++++++++++ .../ets/pages/main/home/course/CoursePage.ets | 22 + .../pages/main/home/link/TakeMaterialPage.ets | 600 +++++++++++++++++ .../home/link/material/AudioMaterialPage.ets | 114 ++++ .../home/link/material/ImageMaterialPage.ets | 117 ++++ .../home/link/material/TextMaterialPage.ets | 93 +++ .../home/link/material/VideoMaterialPage.ets | 117 ++++ .../main/home/material/MaterialDetailPage.ets | 228 +++++++ .../pages/main/home/tools/AddAudioPage.ets | 329 +++++++++ .../main/home/tools/AddWaterMarkerPage.ets | 425 ++++++++++++ .../pages/main/home/tools/ClipVideoPage.ets | 467 +++++++++++++ .../pages/main/home/tools/MD5ResetPage.ets | 289 ++++++++ .../pages/main/home/tools/RemoveAudioPage.ets | 295 ++++++++ .../pages/main/home/tools/TakeAudioPage.ets | 287 ++++++++ .../pages/main/home/tools/VideoMirrorPage.ets | 321 +++++++++ .../main/home/tools/VideoReversePage.ets | 296 ++++++++ .../ets/pages/main/home/wx/WxVideoPage.ets | 633 ++++++++++++++++++ .../home/wx/material/WxImageMaterialPage.ets | 146 ++++ .../home/wx/material/WxVideoMaterialPage.ets | 145 ++++ .../src/main/ets/pages/main/mine/MinePage.ets | 436 ++++++++++++ .../pages/main/mine/diamond/DiamondPage.ets | 436 ++++++++++++ .../mine/history/DownloadHistoryItemPage.ets | 143 ++++ .../main/mine/history/DownloadHistoryPage.ets | 102 +++ .../pages/main/mine/setting/SettingsPage.ets | 103 +++ .../main/mine/setting/about/AboutPage.ets | 43 ++ .../mine/setting/account/BindAccountPage.ets | 186 +++++ .../setting/account/ManageAccountPage.ets | 130 ++++ .../mine/setting/feedback/FeedbackPage.ets | 247 +++++++ .../pages/main/mine/user/UserSettingsPage.ets | 108 +++ .../main/ets/pages/main/mine/vip/VipPage.ets | 453 +++++++++++++ .../ets/pages/main/record/AudioRecordPage.ets | 86 +++ .../ets/pages/main/record/ImageRecordPage.ets | 101 +++ .../main/ets/pages/main/record/RecordPage.ets | 137 ++++ .../ets/pages/main/record/VideoRecordPage.ets | 101 +++ .../main/ets/pages/photo/PhotoViewPage.ets | 32 + .../src/main/ets/pages/splash/SplashPage.ets | 149 +++++ .../main/ets/pages/video/VideoPlayerPage.ets | 209 ++++++ entry/src/main/ets/pages/web/WebPage.ets | 46 ++ .../main/ets/utils/AESpkcs7paddingUtil.ets | 11 + entry/src/main/ets/utils/MediaUtils.ets | 38 ++ entry/src/main/ets/utils/PasteboardUtils.ets | 63 ++ entry/src/main/ets/utils/PayUtils.ets | 50 ++ entry/src/main/ets/utils/PrefUtils.ets | 68 ++ entry/src/main/ets/utils/SaveUtils.ets | 118 ++++ entry/src/main/ets/utils/ToastUtils.ets | 20 + entry/src/main/ets/utils/WantUtils.ets | 16 + .../utils/wechat/WXApiEventHandlerImpl.ets | 45 ++ entry/src/main/ets/view/AccountItemView.ets | 108 +++ entry/src/main/ets/view/AddImageItemView.ets | 50 ++ entry/src/main/ets/view/DiamondItemView.ets | 69 ++ .../src/main/ets/view/DiamondRuleItemView.ets | 15 + .../main/ets/view/DownloadHistoryItemView.ets | 68 ++ entry/src/main/ets/view/EmptyView.ets | 54 ++ entry/src/main/ets/view/MaterialItemView.ets | 170 +++++ entry/src/main/ets/view/RecordItemView.ets | 224 +++++++ entry/src/main/ets/view/RectCropView.ets | 218 ++++++ entry/src/main/ets/view/TextItemChildView.ets | 28 + entry/src/main/ets/view/TextItemView.ets | 35 + entry/src/main/ets/view/TitleBar.ets | 77 +++ entry/src/main/ets/view/VipMealItemView.ets | 84 +++ entry/src/main/ets/view/WaterMarkerView.ets | 239 +++++++ .../src/main/ets/viewModel/AuthViewModel.ets | 29 + .../src/main/ets/viewModel/BaseViewModel.ets | 17 + .../ets/viewModel/BindAccountViewModel.ets | 65 ++ .../main/ets/viewModel/DiamondViewModel.ets | 107 +++ .../viewModel/DownloadHistoryViewModel.ets | 45 ++ .../main/ets/viewModel/FeedbackViewModel.ets | 78 +++ .../src/main/ets/viewModel/HomeViewModel.ets | 40 ++ .../ets/viewModel/LinkRecognizeViewModel.ets | 95 +++ .../src/main/ets/viewModel/LoginViewModel.ets | 64 ++ .../src/main/ets/viewModel/MainViewModel.ets | 26 + .../ets/viewModel/ManageAccountViewModel.ets | 46 ++ .../src/main/ets/viewModel/MineViewModel.ets | 64 ++ .../ets/viewModel/QrcodeLoginViewModel.ets | 25 + .../main/ets/viewModel/SettingsViewModel.ets | 25 + .../ets/viewModel/UserSettingsViewModel.ets | 82 +++ entry/src/main/ets/viewModel/VipViewModel.ets | 88 +++ .../main/ets/viewModel/WxVideoViewModel.ets | 112 ++++ entry/src/main/module.json5 | 107 +++ .../main/resources/base/element/color.json | 106 +++ .../main/resources/base/element/float.json | 8 + .../main/resources/base/element/string.json | 16 + .../base/media/ic_action_delete.webp | Bin 0 -> 1984 bytes .../resources/base/media/ic_action_share.webp | Bin 0 -> 2076 bytes .../resources/base/media/ic_add_audio.png | Bin 0 -> 7139 bytes .../resources/base/media/ic_add_image.webp | Bin 0 -> 264 bytes .../resources/base/media/ic_add_video.png | Bin 0 -> 1153 bytes .../main/resources/base/media/ic_ali_pay.webp | Bin 0 -> 2008 bytes .../resources/base/media/ic_ali_pay3.webp | Bin 0 -> 1838 bytes .../main/resources/base/media/ic_area_bg.webp | Bin 0 -> 1110 bytes .../resources/base/media/ic_arrow_dp16.png | Bin 0 -> 454 bytes .../resources/base/media/ic_arrow_dp22.png | Bin 0 -> 549 bytes .../resources/base/media/ic_audio_thumb.webp | Bin 0 -> 51568 bytes .../src/main/resources/base/media/ic_back.svg | 1 + .../resources/base/media/ic_bind_phone.webp | Bin 0 -> 1632 bytes .../main/resources/base/media/ic_bind_wx.webp | Bin 0 -> 1772 bytes .../resources/base/media/ic_black_back.svg | 1 + .../resources/base/media/ic_check_false.webp | Bin 0 -> 712 bytes .../resources/base/media/ic_check_true.webp | Bin 0 -> 810 bytes .../resources/base/media/ic_clear_record.webp | Bin 0 -> 692 bytes .../resources/base/media/ic_clear_text.webp | Bin 0 -> 504 bytes .../main/resources/base/media/ic_close.webp | Bin 0 -> 478 bytes .../main/resources/base/media/ic_close2.webp | Bin 0 -> 1844 bytes .../resources/base/media/ic_close_dialog.webp | Bin 0 -> 600 bytes .../resources/base/media/ic_completed.png | Bin 0 -> 14571 bytes .../main/resources/base/media/ic_copy_id.webp | Bin 0 -> 530 bytes .../main/resources/base/media/ic_coupon.webp | Bin 0 -> 1766 bytes .../main/resources/base/media/ic_course1.webp | Bin 0 -> 183682 bytes .../main/resources/base/media/ic_course2.webp | Bin 0 -> 102252 bytes .../main/resources/base/media/ic_course3.webp | Bin 0 -> 162284 bytes .../resources/base/media/ic_course_thumb.webp | Bin 0 -> 24472 bytes .../base/media/ic_default_avatar.webp | Bin 0 -> 2732 bytes .../resources/base/media/ic_delete_img.webp | Bin 0 -> 668 bytes .../base/media/ic_delete_material.webp | Bin 0 -> 470 bytes .../main/resources/base/media/ic_diamond.webp | Bin 0 -> 1642 bytes .../base/media/ic_diamond_count_bg.webp | Bin 0 -> 4662 bytes .../base/media/ic_diamond_meal_checked.webp | Bin 0 -> 680 bytes .../base/media/ic_diamond_rule_indicator.webp | Bin 0 -> 1682 bytes .../base/media/ic_diamond_rule_top_bg.webp | Bin 0 -> 73448 bytes .../base/media/ic_diamond_top_bg.webp | Bin 0 -> 3808 bytes .../base/media/ic_diamond_used_count_bg.webp | Bin 0 -> 4662 bytes .../base/media/ic_diamond_vip_bg1.webp | Bin 0 -> 5752 bytes .../base/media/ic_diamond_vip_bg2.webp | Bin 0 -> 2746 bytes .../resources/base/media/ic_download1.webp | Bin 0 -> 562 bytes .../base/media/ic_download_disable.webp | Bin 0 -> 1220 bytes .../base/media/ic_download_enable.webp | Bin 0 -> 620 bytes .../resources/base/media/ic_downloading.png | Bin 0 -> 13528 bytes .../resources/base/media/ic_empty_audio.webp | Bin 0 -> 10926 bytes .../resources/base/media/ic_empty_coupon.webp | Bin 0 -> 10574 bytes .../resources/base/media/ic_empty_data.webp | Bin 0 -> 10570 bytes .../resources/base/media/ic_empty_image.webp | Bin 0 -> 10098 bytes .../resources/base/media/ic_empty_text.webp | Bin 0 -> 10402 bytes .../resources/base/media/ic_empty_video.webp | Bin 0 -> 10612 bytes .../main/resources/base/media/ic_guide_1.webp | Bin 0 -> 50226 bytes .../main/resources/base/media/ic_guide_2.webp | Bin 0 -> 68424 bytes .../main/resources/base/media/ic_guide_3.webp | Bin 0 -> 72192 bytes .../main/resources/base/media/ic_guide_4.webp | Bin 0 -> 60052 bytes .../resources/base/media/ic_guide_bg.webp | Bin 0 -> 18106 bytes .../resources/base/media/ic_guide_cover.webp | Bin 0 -> 57736 bytes .../resources/base/media/ic_home_default.webp | Bin 0 -> 1078 bytes .../resources/base/media/ic_home_icon1.webp | Bin 0 -> 1588 bytes .../resources/base/media/ic_home_icon10.webp | Bin 0 -> 1256 bytes .../resources/base/media/ic_home_icon2.webp | Bin 0 -> 1530 bytes .../resources/base/media/ic_home_icon3.webp | Bin 0 -> 1570 bytes .../resources/base/media/ic_home_icon4.webp | Bin 0 -> 1854 bytes .../resources/base/media/ic_home_icon5.webp | Bin 0 -> 1602 bytes .../resources/base/media/ic_home_icon6.webp | Bin 0 -> 1592 bytes .../resources/base/media/ic_home_icon7.webp | Bin 0 -> 1636 bytes .../resources/base/media/ic_home_icon8.webp | Bin 0 -> 1578 bytes .../resources/base/media/ic_home_icon9.webp | Bin 0 -> 1614 bytes .../base/media/ic_home_link_start.webp | Bin 0 -> 440 bytes .../media/ic_home_link_support_icon1.webp | Bin 0 -> 1344 bytes .../media/ic_home_link_support_icon2.webp | Bin 0 -> 1406 bytes .../media/ic_home_link_support_icon3.webp | Bin 0 -> 1202 bytes .../resources/base/media/ic_home_select.webp | Bin 0 -> 906 bytes .../resources/base/media/ic_home_top_bg.webp | Bin 0 -> 124814 bytes .../base/media/ic_home_top_icon1.webp | Bin 0 -> 14284 bytes .../base/media/ic_home_top_icon2.webp | Bin 0 -> 5946 bytes .../base/media/ic_home_top_icon3.webp | Bin 0 -> 5998 bytes .../base/media/ic_home_top_menu_arrow1.webp | Bin 0 -> 338 bytes .../base/media/ic_home_top_menu_arrow2.webp | Bin 0 -> 346 bytes .../base/media/ic_home_top_menu_arrow3.webp | Bin 0 -> 344 bytes .../base/media/ic_home_top_menu_bg1.webp | Bin 0 -> 6582 bytes .../base/media/ic_home_top_menu_bg2.webp | Bin 0 -> 4324 bytes .../base/media/ic_home_top_menu_bg3.webp | Bin 0 -> 4654 bytes .../base/media/ic_image_water_marker.webp | Bin 0 -> 2868 bytes .../base/media/ic_left_top_rect.webp | Bin 0 -> 674 bytes .../main/resources/base/media/ic_link.webp | Bin 0 -> 1188 bytes .../main/resources/base/media/ic_loading.png | Bin 0 -> 4005 bytes .../resources/base/media/ic_login_code.webp | Bin 0 -> 1240 bytes .../resources/base/media/ic_login_logo.webp | Bin 0 -> 2620 bytes .../resources/base/media/ic_login_phone.webp | Bin 0 -> 612 bytes .../resources/base/media/ic_login_top_bg.webp | Bin 0 -> 11072 bytes .../base/media/ic_material_default.webp | Bin 0 -> 920 bytes .../base/media/ic_material_select.webp | Bin 0 -> 774 bytes .../resources/base/media/ic_mine_default.webp | Bin 0 -> 1410 bytes .../resources/base/media/ic_mine_icon1.webp | Bin 0 -> 790 bytes .../resources/base/media/ic_mine_icon2.webp | Bin 0 -> 1014 bytes .../resources/base/media/ic_mine_icon3.webp | Bin 0 -> 892 bytes .../resources/base/media/ic_mine_icon4.webp | Bin 0 -> 990 bytes .../resources/base/media/ic_mine_icon5.webp | Bin 0 -> 948 bytes .../resources/base/media/ic_mine_icon6.webp | Bin 0 -> 588 bytes .../resources/base/media/ic_mine_icon7.webp | Bin 0 -> 808 bytes .../resources/base/media/ic_mine_select.webp | Bin 0 -> 1192 bytes .../resources/base/media/ic_mine_top_bg.webp | Bin 0 -> 41722 bytes .../resources/base/media/ic_mine_vip_bg.webp | Bin 0 -> 2320 bytes .../resources/base/media/ic_mirror_h.webp | Bin 0 -> 3272 bytes .../resources/base/media/ic_mirror_v.webp | Bin 0 -> 3250 bytes .../main/resources/base/media/ic_notice.webp | Bin 0 -> 5102 bytes .../resources/base/media/ic_notify_icon.webp | Bin 0 -> 7926 bytes .../resources/base/media/ic_onekey_login.webp | Bin 0 -> 1738 bytes .../resources/base/media/ic_pay_false.webp | Bin 0 -> 594 bytes .../resources/base/media/ic_pay_false2.webp | Bin 0 -> 842 bytes .../resources/base/media/ic_pay_true.webp | Bin 0 -> 836 bytes .../resources/base/media/ic_pay_true2.webp | Bin 0 -> 938 bytes .../resources/base/media/ic_placeholder.webp | Bin 0 -> 3178 bytes .../base/media/ic_placeholder_black.webp | Bin 0 -> 3056 bytes .../resources/base/media/ic_play_video.webp | Bin 0 -> 3786 bytes .../base/media/ic_playback_helper.webp | Bin 0 -> 1544 bytes .../base/media/ic_player_controls_pause.png | Bin 0 -> 470 bytes .../base/media/ic_player_controls_play.png | Bin 0 -> 962 bytes .../media/ic_qrcode_login_computer_black.webp | Bin 0 -> 6858 bytes .../base/media/ic_reupload_video.png | Bin 0 -> 1433 bytes .../base/media/ic_right_bottom_rect.webp | Bin 0 -> 696 bytes .../main/resources/base/media/ic_scan.webp | Bin 0 -> 838 bytes .../base/media/ic_share_material.webp | Bin 0 -> 736 bytes .../resources/base/media/ic_splash_bg.webp | Bin 0 -> 139144 bytes .../resources/base/media/ic_splash_logo.webp | Bin 0 -> 10648 bytes .../base/media/ic_tab_indicator.webp | Bin 0 -> 598 bytes .../base/media/ic_text_water_marker.webp | Bin 0 -> 2798 bytes .../base/media/ic_tip_dialog_top_bg.webp | Bin 0 -> 36132 bytes .../resources/base/media/ic_tool_default.webp | Bin 0 -> 1574 bytes .../resources/base/media/ic_tool_select.webp | Bin 0 -> 1264 bytes .../resources/base/media/ic_video_helper.webp | Bin 0 -> 1888 bytes .../main/resources/base/media/ic_vip_bg1.webp | Bin 0 -> 4656 bytes .../main/resources/base/media/ic_vip_bg2.webp | Bin 0 -> 4832 bytes .../resources/base/media/ic_vip_fire_tag.webp | Bin 0 -> 550 bytes .../resources/base/media/ic_vip_pay_btn.webp | Bin 0 -> 2504 bytes .../resources/base/media/ic_vip_tips.webp | Bin 0 -> 29936 bytes .../resources/base/media/ic_vip_top_bg.webp | Bin 0 -> 16740 bytes .../base/media/ic_wx_group_tip1.webp | Bin 0 -> 19180 bytes .../resources/base/media/ic_wx_group_tip2.png | Bin 0 -> 129658 bytes .../base/media/ic_wx_group_tip3.webp | Bin 0 -> 15470 bytes .../base/media/ic_wx_group_tip4.webp | Bin 0 -> 27614 bytes .../base/media/ic_wx_group_tip5.webp | Bin 0 -> 25840 bytes .../base/media/ic_wx_group_tip_bg.webp | Bin 0 -> 7288 bytes .../base/media/ic_wx_group_tip_indicator.webp | Bin 0 -> 1464 bytes .../resources/base/media/ic_wx_login.webp | Bin 0 -> 1822 bytes .../main/resources/base/media/ic_wx_pay.webp | Bin 0 -> 1994 bytes .../main/resources/base/media/ic_wx_pay3.webp | Bin 0 -> 1622 bytes .../base/media/ic_wx_video_course.png | Bin 0 -> 2131 bytes entry/src/main/resources/base/media/yq_0.webp | Bin 0 -> 456 bytes entry/src/main/resources/base/media/yq_1.webp | Bin 0 -> 448 bytes .../src/main/resources/base/media/yq_10.webp | Bin 0 -> 240 bytes .../src/main/resources/base/media/yq_11.webp | Bin 0 -> 540 bytes .../src/main/resources/base/media/yq_12.webp | Bin 0 -> 240 bytes .../src/main/resources/base/media/yq_13.webp | Bin 0 -> 418 bytes .../src/main/resources/base/media/yq_14.webp | Bin 0 -> 272 bytes .../src/main/resources/base/media/yq_15.webp | Bin 0 -> 454 bytes .../src/main/resources/base/media/yq_16.webp | Bin 0 -> 432 bytes .../src/main/resources/base/media/yq_17.webp | Bin 0 -> 264 bytes .../src/main/resources/base/media/yq_18.webp | Bin 0 -> 510 bytes .../src/main/resources/base/media/yq_19.webp | Bin 0 -> 330 bytes entry/src/main/resources/base/media/yq_2.webp | Bin 0 -> 450 bytes .../src/main/resources/base/media/yq_20.webp | Bin 0 -> 268 bytes .../src/main/resources/base/media/yq_21.webp | Bin 0 -> 256 bytes .../src/main/resources/base/media/yq_22.webp | Bin 0 -> 488 bytes .../src/main/resources/base/media/yq_23.webp | Bin 0 -> 488 bytes .../src/main/resources/base/media/yq_24.webp | Bin 0 -> 400 bytes .../src/main/resources/base/media/yq_25.webp | Bin 0 -> 372 bytes .../src/main/resources/base/media/yq_26.webp | Bin 0 -> 556 bytes .../src/main/resources/base/media/yq_27.webp | Bin 0 -> 496 bytes .../src/main/resources/base/media/yq_28.webp | Bin 0 -> 306 bytes .../src/main/resources/base/media/yq_29.webp | Bin 0 -> 384 bytes entry/src/main/resources/base/media/yq_3.webp | Bin 0 -> 342 bytes .../src/main/resources/base/media/yq_30.webp | Bin 0 -> 288 bytes .../src/main/resources/base/media/yq_31.webp | Bin 0 -> 426 bytes .../src/main/resources/base/media/yq_32.webp | Bin 0 -> 376 bytes .../src/main/resources/base/media/yq_33.webp | Bin 0 -> 350 bytes .../src/main/resources/base/media/yq_34.webp | Bin 0 -> 432 bytes .../src/main/resources/base/media/yq_35.webp | Bin 0 -> 420 bytes .../src/main/resources/base/media/yq_36.webp | Bin 0 -> 486 bytes .../src/main/resources/base/media/yq_37.webp | Bin 0 -> 322 bytes .../src/main/resources/base/media/yq_38.webp | Bin 0 -> 438 bytes .../src/main/resources/base/media/yq_39.webp | Bin 0 -> 420 bytes entry/src/main/resources/base/media/yq_4.webp | Bin 0 -> 346 bytes .../src/main/resources/base/media/yq_40.webp | Bin 0 -> 418 bytes .../src/main/resources/base/media/yq_41.webp | Bin 0 -> 452 bytes .../src/main/resources/base/media/yq_42.webp | Bin 0 -> 390 bytes .../src/main/resources/base/media/yq_43.webp | Bin 0 -> 488 bytes .../src/main/resources/base/media/yq_44.webp | Bin 0 -> 272 bytes .../src/main/resources/base/media/yq_45.webp | Bin 0 -> 480 bytes .../src/main/resources/base/media/yq_46.webp | Bin 0 -> 264 bytes .../src/main/resources/base/media/yq_47.webp | Bin 0 -> 350 bytes .../src/main/resources/base/media/yq_48.webp | Bin 0 -> 420 bytes .../src/main/resources/base/media/yq_49.webp | Bin 0 -> 320 bytes entry/src/main/resources/base/media/yq_5.webp | Bin 0 -> 396 bytes .../src/main/resources/base/media/yq_50.webp | Bin 0 -> 456 bytes entry/src/main/resources/base/media/yq_6.webp | Bin 0 -> 460 bytes entry/src/main/resources/base/media/yq_7.webp | Bin 0 -> 416 bytes entry/src/main/resources/base/media/yq_8.webp | Bin 0 -> 354 bytes entry/src/main/resources/base/media/yq_9.webp | Bin 0 -> 342 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 34 + .../main/resources/dark/element/color.json | 8 + .../rawfile/effect/download_complete.pag | Bin 0 -> 2432 bytes .../resources/rawfile/effect/downloading.pag | Bin 0 -> 1585 bytes .../main/resources/rawfile/effect/loading.pag | Bin 0 -> 590 bytes .../resources/rawfile/effect/processing.pag | Bin 0 -> 590 bytes .../resources/rawfile/font/almmShuHeiTi.ttf | Bin 0 -> 1360412 bytes .../main/resources/rawfile/font/ddp500m.otf | Bin 0 -> 23432 bytes .../rawfile/font/youSheBiaoTiHei.ttf | Bin 0 -> 1414784 bytes entry/src/mock/mock-config.json5 | 2 + entry/src/ohosTest/ets/test/Ability.test.ets | 35 + entry/src/ohosTest/ets/test/List.test.ets | 5 + entry/src/ohosTest/module.json5 | 12 + entry/src/test/List.test.ets | 5 + entry/src/test/LocalUnit.test.ets | 33 + hvigor/hvigor-config.json5 | 22 + hvigorfile.ts | 6 + oh-package-lock.json5 | 197 ++++++ oh-package.json5 | 21 + package-lock.json | 17 + package.json | 5 + 377 files changed, 17674 insertions(+) create mode 100644 .gitignore create mode 100644 AppScope/app.json5 create mode 100644 AppScope/resources/base/element/string.json create mode 100644 AppScope/resources/base/media/ic_launcher_background.png create mode 100644 AppScope/resources/base/media/ic_launcher_foreground.png create mode 100644 AppScope/resources/base/media/layer_logo.json create mode 100644 build-profile.json5 create mode 100644 code-linter.json5 create mode 100644 entry/.gitignore create mode 100644 entry/build-profile.json5 create mode 100644 entry/hvigorfile.ts create mode 100644 entry/obfuscation-rules.txt create mode 100644 entry/oh-package-lock.json5 create mode 100644 entry/oh-package.json5 create mode 100644 entry/src/main/ets/MyAbilityStage.ets create mode 100644 entry/src/main/ets/callback/DialogCallback.ets create mode 100644 entry/src/main/ets/common/Constants.ets create mode 100644 entry/src/main/ets/common/EventConstants.ets create mode 100644 entry/src/main/ets/common/RouterUrls.ets create mode 100644 entry/src/main/ets/dialog/BindPhoneDialog.ets create mode 100644 entry/src/main/ets/dialog/DiamondRuleDialog.ets create mode 100644 entry/src/main/ets/dialog/DownloadDialog.ets create mode 100644 entry/src/main/ets/dialog/EditTextDialog.ets create mode 100644 entry/src/main/ets/dialog/JoinWxGroupCourseDialog.ets create mode 100644 entry/src/main/ets/dialog/LoadingDialog.ets create mode 100644 entry/src/main/ets/dialog/LoginTipDialog.ets create mode 100644 entry/src/main/ets/dialog/MaterialLoadingDialog.ets create mode 100644 entry/src/main/ets/dialog/PrivacyPolicyDialog.ets create mode 100644 entry/src/main/ets/dialog/SimpleTipDialog.ets create mode 100644 entry/src/main/ets/dialog/TipDialog.ets create mode 100644 entry/src/main/ets/entity/AccountEntity.ets create mode 100644 entry/src/main/ets/entity/BannerEntity.ets create mode 100644 entry/src/main/ets/entity/ConfigEntity.ets create mode 100644 entry/src/main/ets/entity/DiamondDetailEntity.ets create mode 100644 entry/src/main/ets/entity/DiamondRuleEntity.ets create mode 100644 entry/src/main/ets/entity/DownloadHistoryEntity.ets create mode 100644 entry/src/main/ets/entity/HomeMenuEntity.ets create mode 100644 entry/src/main/ets/entity/LoginEntity.ets create mode 100644 entry/src/main/ets/entity/MaterialEntity.ets create mode 100644 entry/src/main/ets/entity/MaterialInfoEntity.ets create mode 100644 entry/src/main/ets/entity/MediaRecordEntity.ets create mode 100644 entry/src/main/ets/entity/NoticeEntity.ets create mode 100644 entry/src/main/ets/entity/OrderEntity.ets create mode 100644 entry/src/main/ets/entity/OrderPayEntity.ets create mode 100644 entry/src/main/ets/entity/SendCodeEntity.ets create mode 100644 entry/src/main/ets/entity/UploadImgEntity.ets create mode 100644 entry/src/main/ets/entity/UserConfigEntity.ets create mode 100644 entry/src/main/ets/entity/UserEntity.ets create mode 100644 entry/src/main/ets/entity/VipMealEntity.ets create mode 100644 entry/src/main/ets/entity/VipPermissionEntity.ets create mode 100644 entry/src/main/ets/entity/WxServiceEntity.ets create mode 100644 entry/src/main/ets/entity/WxVideoConfig.ets create mode 100644 entry/src/main/ets/entity/WxVideoEntity.ets create mode 100644 entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 entry/src/main/ets/manager/AVSessionManager.ets create mode 100644 entry/src/main/ets/manager/EventReportGlobalManager.ets create mode 100644 entry/src/main/ets/manager/LocalMediaManager.ets create mode 100644 entry/src/main/ets/manager/LoginGlobalManager.ets create mode 100644 entry/src/main/ets/manager/MediaManager.ets create mode 100644 entry/src/main/ets/manager/ShareManager.ets create mode 100644 entry/src/main/ets/manager/UserConfigManager.ets create mode 100644 entry/src/main/ets/net/Api.ets create mode 100644 entry/src/main/ets/net/ApiService.ets create mode 100644 entry/src/main/ets/net/AxiosRequest.ets create mode 100644 entry/src/main/ets/net/HttpResult.ets create mode 100644 entry/src/main/ets/net/MediaDownloader.ets create mode 100644 entry/src/main/ets/net/request/LoginRequest.ets create mode 100644 entry/src/main/ets/pages/audio/AudioPlayerPage.ets create mode 100644 entry/src/main/ets/pages/guide/GuidePage.ets create mode 100644 entry/src/main/ets/pages/login/LoginPage.ets create mode 100644 entry/src/main/ets/pages/login/qrcode/QrcodeLoginPage.ets create mode 100644 entry/src/main/ets/pages/main/MainPage.ets create mode 100644 entry/src/main/ets/pages/main/home/HomePage.ets create mode 100644 entry/src/main/ets/pages/main/home/course/CoursePage.ets create mode 100644 entry/src/main/ets/pages/main/home/link/TakeMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/link/material/AudioMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/link/material/ImageMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/link/material/TextMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/link/material/VideoMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/material/MaterialDetailPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/AddAudioPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/AddWaterMarkerPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/ClipVideoPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/MD5ResetPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/RemoveAudioPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/TakeAudioPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/VideoMirrorPage.ets create mode 100644 entry/src/main/ets/pages/main/home/tools/VideoReversePage.ets create mode 100644 entry/src/main/ets/pages/main/home/wx/WxVideoPage.ets create mode 100644 entry/src/main/ets/pages/main/home/wx/material/WxImageMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/home/wx/material/WxVideoMaterialPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/MinePage.ets create mode 100644 entry/src/main/ets/pages/main/mine/diamond/DiamondPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/history/DownloadHistoryItemPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/history/DownloadHistoryPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/setting/SettingsPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/setting/about/AboutPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/setting/account/BindAccountPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/setting/account/ManageAccountPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/setting/feedback/FeedbackPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/user/UserSettingsPage.ets create mode 100644 entry/src/main/ets/pages/main/mine/vip/VipPage.ets create mode 100644 entry/src/main/ets/pages/main/record/AudioRecordPage.ets create mode 100644 entry/src/main/ets/pages/main/record/ImageRecordPage.ets create mode 100644 entry/src/main/ets/pages/main/record/RecordPage.ets create mode 100644 entry/src/main/ets/pages/main/record/VideoRecordPage.ets create mode 100644 entry/src/main/ets/pages/photo/PhotoViewPage.ets create mode 100644 entry/src/main/ets/pages/splash/SplashPage.ets create mode 100644 entry/src/main/ets/pages/video/VideoPlayerPage.ets create mode 100644 entry/src/main/ets/pages/web/WebPage.ets create mode 100644 entry/src/main/ets/utils/AESpkcs7paddingUtil.ets create mode 100644 entry/src/main/ets/utils/MediaUtils.ets create mode 100644 entry/src/main/ets/utils/PasteboardUtils.ets create mode 100644 entry/src/main/ets/utils/PayUtils.ets create mode 100644 entry/src/main/ets/utils/PrefUtils.ets create mode 100644 entry/src/main/ets/utils/SaveUtils.ets create mode 100644 entry/src/main/ets/utils/ToastUtils.ets create mode 100644 entry/src/main/ets/utils/WantUtils.ets create mode 100644 entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets create mode 100644 entry/src/main/ets/view/AccountItemView.ets create mode 100644 entry/src/main/ets/view/AddImageItemView.ets create mode 100644 entry/src/main/ets/view/DiamondItemView.ets create mode 100644 entry/src/main/ets/view/DiamondRuleItemView.ets create mode 100644 entry/src/main/ets/view/DownloadHistoryItemView.ets create mode 100644 entry/src/main/ets/view/EmptyView.ets create mode 100644 entry/src/main/ets/view/MaterialItemView.ets create mode 100644 entry/src/main/ets/view/RecordItemView.ets create mode 100644 entry/src/main/ets/view/RectCropView.ets create mode 100644 entry/src/main/ets/view/TextItemChildView.ets create mode 100644 entry/src/main/ets/view/TextItemView.ets create mode 100644 entry/src/main/ets/view/TitleBar.ets create mode 100644 entry/src/main/ets/view/VipMealItemView.ets create mode 100644 entry/src/main/ets/view/WaterMarkerView.ets create mode 100644 entry/src/main/ets/viewModel/AuthViewModel.ets create mode 100644 entry/src/main/ets/viewModel/BaseViewModel.ets create mode 100644 entry/src/main/ets/viewModel/BindAccountViewModel.ets create mode 100644 entry/src/main/ets/viewModel/DiamondViewModel.ets create mode 100644 entry/src/main/ets/viewModel/DownloadHistoryViewModel.ets create mode 100644 entry/src/main/ets/viewModel/FeedbackViewModel.ets create mode 100644 entry/src/main/ets/viewModel/HomeViewModel.ets create mode 100644 entry/src/main/ets/viewModel/LinkRecognizeViewModel.ets create mode 100644 entry/src/main/ets/viewModel/LoginViewModel.ets create mode 100644 entry/src/main/ets/viewModel/MainViewModel.ets create mode 100644 entry/src/main/ets/viewModel/ManageAccountViewModel.ets create mode 100644 entry/src/main/ets/viewModel/MineViewModel.ets create mode 100644 entry/src/main/ets/viewModel/QrcodeLoginViewModel.ets create mode 100644 entry/src/main/ets/viewModel/SettingsViewModel.ets create mode 100644 entry/src/main/ets/viewModel/UserSettingsViewModel.ets create mode 100644 entry/src/main/ets/viewModel/VipViewModel.ets create mode 100644 entry/src/main/ets/viewModel/WxVideoViewModel.ets create mode 100644 entry/src/main/module.json5 create mode 100644 entry/src/main/resources/base/element/color.json create mode 100644 entry/src/main/resources/base/element/float.json create mode 100644 entry/src/main/resources/base/element/string.json create mode 100644 entry/src/main/resources/base/media/ic_action_delete.webp create mode 100644 entry/src/main/resources/base/media/ic_action_share.webp create mode 100644 entry/src/main/resources/base/media/ic_add_audio.png create mode 100644 entry/src/main/resources/base/media/ic_add_image.webp create mode 100644 entry/src/main/resources/base/media/ic_add_video.png create mode 100644 entry/src/main/resources/base/media/ic_ali_pay.webp create mode 100644 entry/src/main/resources/base/media/ic_ali_pay3.webp create mode 100644 entry/src/main/resources/base/media/ic_area_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_arrow_dp16.png create mode 100644 entry/src/main/resources/base/media/ic_arrow_dp22.png create mode 100644 entry/src/main/resources/base/media/ic_audio_thumb.webp create mode 100644 entry/src/main/resources/base/media/ic_back.svg create mode 100644 entry/src/main/resources/base/media/ic_bind_phone.webp create mode 100644 entry/src/main/resources/base/media/ic_bind_wx.webp create mode 100644 entry/src/main/resources/base/media/ic_black_back.svg create mode 100644 entry/src/main/resources/base/media/ic_check_false.webp create mode 100644 entry/src/main/resources/base/media/ic_check_true.webp create mode 100644 entry/src/main/resources/base/media/ic_clear_record.webp create mode 100644 entry/src/main/resources/base/media/ic_clear_text.webp create mode 100644 entry/src/main/resources/base/media/ic_close.webp create mode 100644 entry/src/main/resources/base/media/ic_close2.webp create mode 100644 entry/src/main/resources/base/media/ic_close_dialog.webp create mode 100644 entry/src/main/resources/base/media/ic_completed.png create mode 100644 entry/src/main/resources/base/media/ic_copy_id.webp create mode 100644 entry/src/main/resources/base/media/ic_coupon.webp create mode 100644 entry/src/main/resources/base/media/ic_course1.webp create mode 100644 entry/src/main/resources/base/media/ic_course2.webp create mode 100644 entry/src/main/resources/base/media/ic_course3.webp create mode 100644 entry/src/main/resources/base/media/ic_course_thumb.webp create mode 100644 entry/src/main/resources/base/media/ic_default_avatar.webp create mode 100644 entry/src/main/resources/base/media/ic_delete_img.webp create mode 100644 entry/src/main/resources/base/media/ic_delete_material.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_count_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_meal_checked.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_rule_indicator.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_rule_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_used_count_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_vip_bg1.webp create mode 100644 entry/src/main/resources/base/media/ic_diamond_vip_bg2.webp create mode 100644 entry/src/main/resources/base/media/ic_download1.webp create mode 100644 entry/src/main/resources/base/media/ic_download_disable.webp create mode 100644 entry/src/main/resources/base/media/ic_download_enable.webp create mode 100644 entry/src/main/resources/base/media/ic_downloading.png create mode 100644 entry/src/main/resources/base/media/ic_empty_audio.webp create mode 100644 entry/src/main/resources/base/media/ic_empty_coupon.webp create mode 100644 entry/src/main/resources/base/media/ic_empty_data.webp create mode 100644 entry/src/main/resources/base/media/ic_empty_image.webp create mode 100644 entry/src/main/resources/base/media/ic_empty_text.webp create mode 100644 entry/src/main/resources/base/media/ic_empty_video.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_1.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_2.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_3.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_4.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_guide_cover.webp create mode 100644 entry/src/main/resources/base/media/ic_home_default.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon1.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon10.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon2.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon3.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon4.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon5.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon6.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon7.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon8.webp create mode 100644 entry/src/main/resources/base/media/ic_home_icon9.webp create mode 100644 entry/src/main/resources/base/media/ic_home_link_start.webp create mode 100644 entry/src/main/resources/base/media/ic_home_link_support_icon1.webp create mode 100644 entry/src/main/resources/base/media/ic_home_link_support_icon2.webp create mode 100644 entry/src/main/resources/base/media/ic_home_link_support_icon3.webp create mode 100644 entry/src/main/resources/base/media/ic_home_select.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_icon1.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_icon2.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_icon3.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_arrow1.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_arrow2.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_arrow3.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_bg1.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_bg2.webp create mode 100644 entry/src/main/resources/base/media/ic_home_top_menu_bg3.webp create mode 100644 entry/src/main/resources/base/media/ic_image_water_marker.webp create mode 100644 entry/src/main/resources/base/media/ic_left_top_rect.webp create mode 100644 entry/src/main/resources/base/media/ic_link.webp create mode 100644 entry/src/main/resources/base/media/ic_loading.png create mode 100644 entry/src/main/resources/base/media/ic_login_code.webp create mode 100644 entry/src/main/resources/base/media/ic_login_logo.webp create mode 100644 entry/src/main/resources/base/media/ic_login_phone.webp create mode 100644 entry/src/main/resources/base/media/ic_login_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_material_default.webp create mode 100644 entry/src/main/resources/base/media/ic_material_select.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_default.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon1.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon2.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon3.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon4.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon5.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon6.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_icon7.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_select.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_mine_vip_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_mirror_h.webp create mode 100644 entry/src/main/resources/base/media/ic_mirror_v.webp create mode 100644 entry/src/main/resources/base/media/ic_notice.webp create mode 100644 entry/src/main/resources/base/media/ic_notify_icon.webp create mode 100644 entry/src/main/resources/base/media/ic_onekey_login.webp create mode 100644 entry/src/main/resources/base/media/ic_pay_false.webp create mode 100644 entry/src/main/resources/base/media/ic_pay_false2.webp create mode 100644 entry/src/main/resources/base/media/ic_pay_true.webp create mode 100644 entry/src/main/resources/base/media/ic_pay_true2.webp create mode 100644 entry/src/main/resources/base/media/ic_placeholder.webp create mode 100644 entry/src/main/resources/base/media/ic_placeholder_black.webp create mode 100644 entry/src/main/resources/base/media/ic_play_video.webp create mode 100644 entry/src/main/resources/base/media/ic_playback_helper.webp create mode 100644 entry/src/main/resources/base/media/ic_player_controls_pause.png create mode 100644 entry/src/main/resources/base/media/ic_player_controls_play.png create mode 100644 entry/src/main/resources/base/media/ic_qrcode_login_computer_black.webp create mode 100644 entry/src/main/resources/base/media/ic_reupload_video.png create mode 100644 entry/src/main/resources/base/media/ic_right_bottom_rect.webp create mode 100644 entry/src/main/resources/base/media/ic_scan.webp create mode 100644 entry/src/main/resources/base/media/ic_share_material.webp create mode 100644 entry/src/main/resources/base/media/ic_splash_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_splash_logo.webp create mode 100644 entry/src/main/resources/base/media/ic_tab_indicator.webp create mode 100644 entry/src/main/resources/base/media/ic_text_water_marker.webp create mode 100644 entry/src/main/resources/base/media/ic_tip_dialog_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_tool_default.webp create mode 100644 entry/src/main/resources/base/media/ic_tool_select.webp create mode 100644 entry/src/main/resources/base/media/ic_video_helper.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_bg1.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_bg2.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_fire_tag.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_pay_btn.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_tips.webp create mode 100644 entry/src/main/resources/base/media/ic_vip_top_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip1.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip2.png create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip3.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip4.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip5.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip_bg.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_group_tip_indicator.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_login.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_pay.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_pay3.webp create mode 100644 entry/src/main/resources/base/media/ic_wx_video_course.png create mode 100644 entry/src/main/resources/base/media/yq_0.webp create mode 100644 entry/src/main/resources/base/media/yq_1.webp create mode 100644 entry/src/main/resources/base/media/yq_10.webp create mode 100644 entry/src/main/resources/base/media/yq_11.webp create mode 100644 entry/src/main/resources/base/media/yq_12.webp create mode 100644 entry/src/main/resources/base/media/yq_13.webp create mode 100644 entry/src/main/resources/base/media/yq_14.webp create mode 100644 entry/src/main/resources/base/media/yq_15.webp create mode 100644 entry/src/main/resources/base/media/yq_16.webp create mode 100644 entry/src/main/resources/base/media/yq_17.webp create mode 100644 entry/src/main/resources/base/media/yq_18.webp create mode 100644 entry/src/main/resources/base/media/yq_19.webp create mode 100644 entry/src/main/resources/base/media/yq_2.webp create mode 100644 entry/src/main/resources/base/media/yq_20.webp create mode 100644 entry/src/main/resources/base/media/yq_21.webp create mode 100644 entry/src/main/resources/base/media/yq_22.webp create mode 100644 entry/src/main/resources/base/media/yq_23.webp create mode 100644 entry/src/main/resources/base/media/yq_24.webp create mode 100644 entry/src/main/resources/base/media/yq_25.webp create mode 100644 entry/src/main/resources/base/media/yq_26.webp create mode 100644 entry/src/main/resources/base/media/yq_27.webp create mode 100644 entry/src/main/resources/base/media/yq_28.webp create mode 100644 entry/src/main/resources/base/media/yq_29.webp create mode 100644 entry/src/main/resources/base/media/yq_3.webp create mode 100644 entry/src/main/resources/base/media/yq_30.webp create mode 100644 entry/src/main/resources/base/media/yq_31.webp create mode 100644 entry/src/main/resources/base/media/yq_32.webp create mode 100644 entry/src/main/resources/base/media/yq_33.webp create mode 100644 entry/src/main/resources/base/media/yq_34.webp create mode 100644 entry/src/main/resources/base/media/yq_35.webp create mode 100644 entry/src/main/resources/base/media/yq_36.webp create mode 100644 entry/src/main/resources/base/media/yq_37.webp create mode 100644 entry/src/main/resources/base/media/yq_38.webp create mode 100644 entry/src/main/resources/base/media/yq_39.webp create mode 100644 entry/src/main/resources/base/media/yq_4.webp create mode 100644 entry/src/main/resources/base/media/yq_40.webp create mode 100644 entry/src/main/resources/base/media/yq_41.webp create mode 100644 entry/src/main/resources/base/media/yq_42.webp create mode 100644 entry/src/main/resources/base/media/yq_43.webp create mode 100644 entry/src/main/resources/base/media/yq_44.webp create mode 100644 entry/src/main/resources/base/media/yq_45.webp create mode 100644 entry/src/main/resources/base/media/yq_46.webp create mode 100644 entry/src/main/resources/base/media/yq_47.webp create mode 100644 entry/src/main/resources/base/media/yq_48.webp create mode 100644 entry/src/main/resources/base/media/yq_49.webp create mode 100644 entry/src/main/resources/base/media/yq_5.webp create mode 100644 entry/src/main/resources/base/media/yq_50.webp create mode 100644 entry/src/main/resources/base/media/yq_6.webp create mode 100644 entry/src/main/resources/base/media/yq_7.webp create mode 100644 entry/src/main/resources/base/media/yq_8.webp create mode 100644 entry/src/main/resources/base/media/yq_9.webp create mode 100644 entry/src/main/resources/base/profile/backup_config.json create mode 100644 entry/src/main/resources/base/profile/main_pages.json create mode 100644 entry/src/main/resources/dark/element/color.json create mode 100644 entry/src/main/resources/rawfile/effect/download_complete.pag create mode 100644 entry/src/main/resources/rawfile/effect/downloading.pag create mode 100644 entry/src/main/resources/rawfile/effect/loading.pag create mode 100644 entry/src/main/resources/rawfile/effect/processing.pag create mode 100644 entry/src/main/resources/rawfile/font/almmShuHeiTi.ttf create mode 100644 entry/src/main/resources/rawfile/font/ddp500m.otf create mode 100644 entry/src/main/resources/rawfile/font/youSheBiaoTiHei.ttf create mode 100644 entry/src/mock/mock-config.json5 create mode 100644 entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 entry/src/ohosTest/ets/test/List.test.ets create mode 100644 entry/src/ohosTest/module.json5 create mode 100644 entry/src/test/List.test.ets create mode 100644 entry/src/test/LocalUnit.test.ets create mode 100644 hvigor/hvigor-config.json5 create mode 100644 hvigorfile.ts create mode 100644 oh-package-lock.json5 create mode 100644 oh-package.json5 create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d2ff201 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/AppScope/app.json5 b/AppScope/app.json5 new file mode 100644 index 0000000..0dfa6ea --- /dev/null +++ b/AppScope/app.json5 @@ -0,0 +1,10 @@ +{ + "app": { + "bundleName": "com.ylqh.hm_cube", + "vendor": "devcon", + "versionCode": 210, + "versionName": "2.1.0", + "icon": "$media:layer_logo", + "label": "$string:app_name" + } +} \ No newline at end of file diff --git a/AppScope/resources/base/element/string.json b/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..3da3fac --- /dev/null +++ b/AppScope/resources/base/element/string.json @@ -0,0 +1,28 @@ +{ + "string": [ + { + "name": "app_name", + "value": "素材魔方" + }, + { + "name": "oaid_reason", + "value": "为了更好的为您提供服务,请求授权广告跨应用关联访问权限" + }, + { + "name": "read_pasteboard_reason", + "value": "为了方便识别您复制的链接并跳转相关页面,请求授权剪贴板读取权限" + }, + { + "name": "privacy_content", + "value": "请你务必审慎阅读、充分理解服务协议和隐私政策各条款,包括但不限于:为了更好的向你提供服务,我们需要访问你的相册、位置信息等。你可阅读《隐私政策》了解详细信息。如果你同意,请点击下面同意按钮开始接受我们的服务。" + }, + { + "name": "wx_video_course", + "value": "1、点击【添加助手】,自动跳转进入微信创建快存助手;\n2、进入微信视频号,选择视频分享至-客服消息-素材助手;\n3、返回【素材魔方APP】微信视频号页面,下拉刷新即可下载微信号视频;" + }, + { + "name": "wx_playback_course", + "value": "1、点击【添加直播回放助手】;\n2、自动跳转进入微信小程序,扫二维码加入群聊;\n3、成功加入会自动绑定您的ID,若显示绑定失败可回到我们APP,点击复制我的ID后发送至群聊即可重新绑定;\n4、绑定成功就可以去微信直播回放页面,选择直播回放视频分享到群聊里,返回我们APP刷新即可;" + } + ] +} diff --git a/AppScope/resources/base/media/ic_launcher_background.png b/AppScope/resources/base/media/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ac49221ba47992a20cdf81c87f41f360f8f129 GIT binary patch literal 6531 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

BsZMtZ-i7@eO+%TvTod_v2(7G})7tRGAd-opdC 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

b5y<2ADer91Up3>aI?XZc znoVNitk0t12I;z;JW8z|JB4oUh*Dz^aT_N8#9a$HD#u_k$(2crIn6Ywewr1I#~rrS zZYCaLZY}W|`g@&>Y^F6dV4`rjLb4#~VT|DOG&#)$S08w%c>^89KJxwgawBJf)5Cl& z-NABb+(TMlc?bH_fqc`>Lc}268oGBd zH^X70zWhEFO@fUwFhxrL)s5+-FZdnuI${*1l~ToloTZ$FY!w~#n6Y%}67_tdTE=n4 zG|U7*lNd7!vO^?bmULBMtq2oiQQ1?T2%k4nvf}CKNJ?bdJgZ=ot-cr>ft1>^cw8{Z zFQh!wxWcg3{$_+B(RBoU6&4*qf#;E5c(%l(!09 z5@t_~9rA5Q3vsV@c06&e9U=&{%t8g5z?zs-Z^uRCM*3Rk?f35$E!hj&hAvmdn_dQg zWpBM`ApV3N?-{${^#W5-<#vVHEVWFcGUN|3@ctopdVB|S%2QEeANSNADYmf0+;6Ws z(O0bIzwy<}P4?M*{<|GaIHuY%_+rFZsa>z%-b%!=nRmS@9Xk|o`1Am^|ElIg?-p6u zp(cAl!1MIf2F|(XKAK#KGcnWw;`@~%i^e4M@5VVXsaAiTTMn|5{VCWi5(Z#t0CdnIW;L0sI&cxi-^5dR!w zsOFCFGL|hcBeC%1eb+iqIqWLlms1w@c9s@UpImV?8FTK7zn%e!_?Lu)kBaNY3e%=6 zO}Rgbl<#sV8MtZ@#7@T!1%y3pTj6c^I9S@4tl0HZ+6CM!A9(kY&f+TJru`=Fm9_EL zggUfwGq!# zW105G4kBRMSzx(*>?QWt;Zf=Xw7O)}vc>O~4S#DnofyeZX|6fDajLa4cCl|`oP8dz zG!iaU-@_;FJkvL8dNr`K)9`Joylx=(+%(uGaPQTgd$@6OeiI_cB>8?S*wuIsQb9)c zaYB_iZMb7^B96ujm_|2K!P9N;gLEOAp%tjkK4zEE#e%CNwo@wCbw^%Piz(UeW=_ZT zAju56h-uB=yhR0@HdbJWALW?Tbi6jk7SrU(Sa3XBt>cls_H*r1-?|-B!3az;8&15g zYoY8Z1Yxb};I)+I4Z0rxy2g1cSvXiMv!L=nYddBeZHwvHP{fgWw7{ur+$@VSB4g@p z>7Th>$EJwFd8tYIk%f5?QO{e4k&$?A*#OS8cFrr)Fi_nYgsA+vs#qf0e{QhTi!5J|F9EbKwyl6KQ`{^-4k=N`8%^;~QD0%x#leLS)L_CU0< za{DEgo$jsyh$aVZvf=%f4cFsS_1K(Bl7HWQ{1}NjF!4mBc>~IJq!QRD zvEUAM2c*m#ygf02p_U8f21e3;hY%I;gKe~hirSDZ0ZRN-rw8^im-0-pjF6J;xh4Nv zmH3;DS{4@F&-kPoLL|4i&rmiMM1d-|E747zO8lJ*w?=7!DXgNy1etbWek>9{)fzv_ zGO`;U+tn}mE%HchL4@xNm)2vy@N1JJ*_ouFJuU$76N2Nk!FVC-ohO|acyiOWU>k*R zFH$}{`lj*A_VtPB7B&Jc}A+nXpyyiZY|DNhz_0(%F-F*o6m+;YkOB8UA^tv%#=R-yxkcF0maGGA(RJ( zo~Hmr=7kn&Bw5}6Mj}#Dr=Q4gJ?n*N&@;ibg89irOmX#>5&MdT0wqq$(K`p=SdPfa zI?vxw7M$CO2pez%8YpDw@t4Dkg=bnBthNLU=^%-XxpS@Gmb>|Qy5XiVF`k=g9U75v z)7^az>Z?)vO_sT4E{+#_7wMuX%eI4EW59Vp8R4w8ur6tF`UMGlD|lqZz=xOAEb9C_ z&I)lw4lGzVr8(_EU1#h!|IDndd9?mat|7v?ZI@>NO9eet1Rm(-<=gEtbT_vTp$xjv ze)|r_|9C2H2su5}enOgVYh?N-@pKk6LwqZrXd|~pnXdGo)+%c-;~gMI*hmz{ctp#w}?s{=|aDM6Av1TFXI;S7Tw`;FK)j4yc zrZaF*Pz|l6-S+>8WU3_8*UUFG>e>&RVCO9smL)@m5V`{2z zTg5Skq|ozoJ-%PBj%y>3%x%W$>*@D^zgu;h7=V{H2D33NbWN~5w`r`^Q!6Kg@kHMr z2T*Z&v0TjvaW&p2*>7}jIPQds2?)%F0YtaOUr|P!LUmfa^o66jd*p*^R_RZYE|}P& z8@C1vIlywK{etn@eR(3P586Pnia#&NcNR+PVG7%n=(skdodH!?`UQ0E#hC>7k@-l; zBtNUMbsm@`wy>CH z-u{?8DpvJ@hbDkAcbwbn0h&fe(t<(z`mN=gl8fv&hu|1HiO0RLL)f*yIom#>^!O|` zt--zKSaa_tB=)K2wJ0e{38)l!u9p!{KGzu86`yP@VoK3hk8f~YJ6v<+OVRp#(o0-z z?{@Y7==mT$_wPOpKRS@n2nM)7Zhq@rYGi)HGr{)oH?8#jiW;ppz8ije{NYfgWc&Yv zuWou$@(gRobt8!i*jZBrBTGgok@9p}XoN`&A2FN;qL`xv!$C-alI$%;j<=EUqVm6k z+G9txe$_i9*b!gMz}*J!Nu$VA$^tPy+0wvAYSUKb5#Zl*vRW7L5D-a4wi=xKFSu&# z4=7(d^_n1ehYr9fBz1-Y33VT1afq_$GAm`sPXE#NTVy^XUgA6r|I?&gA68qcUA^_M zTHa!aS^q26KoQWrhmhwbV7_VF2B${WRj~=K7T=t-Sh9o0vX|cQv!+o~7ALjLi}Wa> z7VN(=FFIUiR+G+?{+$${%;3^9VsuY5m zLhBz;PE3DHtFCKs=ZKb11xlymE!i$fqSmR3@jM(4n0t@PGo;Jm{pI2kWK*iqUl_ZY zgt`wk)KI&0>mhnnpOxl=7OkT6?vcD=q^EV}mqnBn?^=x0eMwza+=7wt)FZohdy!|! zyMC*+GAsq*Nr#k12d|p%9~Bn(EzW?Sl;9*r*&|>Q#Hz!aA?3zHotekUSsfXk?fx1t z)|*E8RY#i18&mkoeNU5N0~E~cma!E8>u1b1Z!HXH4dbHc`CCn3)LVSU zU~?;};IxSi`kupNYH~eYA-0o2J57)cHx=K@8|6m=E~xpwp@9}yMt}*conN@B@;lfl zOWyfDi6!l!OpmFvWjgd^N`cQ)zK{xjE`MpAe1uk{;)>oT{03Bufz$w)pNQA?*+;MV z!(tTmIc0@)p(vQ9M;9&JW(%}P=dmc~$SZF$V&Y5_j(|WB0c(fAK>FyKl`NkB0h!=P zT0-ftF_XAD53Fc-??BkbkrC0?OwcYV@-uwDd_48Oa}puYfC1v{aTgAsLzg}*etycU zFr6JS{GrO@DMA43iwhSH%56=hu$eTQrQiNg7;{Px!%M~2^Ftx+`K&Q|AoI3>jr@FW z&5ANojzKVr9j5hd9PBBt9ms4=!TQgjTE6rA*GRqCPPUt2q=5&>kRoI#WHSmwl9x8V zW-5p>;z2al_M#G3;VZ+2;508lT5o$o!9P;sr)5k& z)gLv>Sg@7!4IWSlb_u25X{8Bv=b)U3T|13m#a}{aHBkJmtSX|MH>X80u^9v` zTmof@x~rJ-g0T8a1a0cdcVL`x>lmHVgl|VQ_*wPUnu8&EcZPJ?JIAofE?CDXqr{bp zM=@Mz8^~~Q_wu*Gn_I{e*vt=!qutjdnTfXMxmP~A{CcgYg$0KRTHb<%wI6^cW)+)z zb=$|w&w-4ODEOshqeXLf%dg@tDb#mNjQtj1fDqlzWgp^2^Rl(JsKdSd_ff9ZLl**F zG;&dR3Z#fKgR#@SC%KBPW*xhq``ai7B#|?G#buz1(@lauQWyTS-HQFn!ie2pTt|?S zpJd3z%N`V?M2QK6C{L$^?#+=WQ?$1-+6?UWMv37kAMgNU_nM5>gQXgH)avYX_u=j68&Y(;)il2N)X?$>aVXUC0 zyxOTUmKUZD&G<^q!8jutDo8m{Qk5ra!2y!$6 zmJ|JN#y~*q32HwAdrX z+l&t8$YYu1@_=X}8YzxNKQJkA2U)zWcamzxxbd)DCYq+Cvfm!=vs3G4H)XWd-5 z3$pZw%OuqcWr0V2Ls{vMK(<14gS?_L6{gAL$7nV?kcoRq+cNW24GTMkC=MTUO7anG zbp1}@Nk~|56|OM$5fybX{@R+1$N)hA`o@#lcJ#n6ACyVgcUH!qYebG_`}FH-Uq?Z| zgBm*WqCc^h(BvOY6G9<(^+5~`qBUUrSLEPo_zN@AYIzzF6D<$ZidIv6 z(hfb#7t@5gnTpM_Vrdi{TKLa`2PzvzLM@#Z<=6dJ0=rn~tK>=(qb3-iC zhPU=5${~jD)ECyCYmA;l1}SHNH^Qd4jS7NXvL9iq+otysY?_+{nm#E{fDO4uo@mBK zdpMcM1N1+6FWrc1fQ;k>M({IG`zEIjrbnt40Z)}l_zhj*HwCnK zI<5`~0dBMs}C&&wYhe<{}mj2Yh9h^bt5XgZh>%SW0fMGoxq z8OBE28&l0`!3zDwPD`^bh}qaTbk}F*y6dzqe2VM^-FSh_UA8SXm5Xk_!OhNAbg53T zX)dKJl4vQq&%?s;XdDq_TT;l_PkI}jnEo*J(K>Ugeb^=G*2Gj8|Ct$l>JsdgD=^54 zS|ZfG44?u1VC^F{;o6PQG&N?*JyB>5(K+t;@BFY!ryhRLclLQ8cp_KOfahv?^`t%k z^u{;vO=y_5Xioym(5_s_g`)rL!r-G+OyDI*Tp8Orh>Gj#;|gr{>R*Hfl6f6Sz>dCA z%mt|jyK&eEdyZQWvv3#xUcnO^RboGOfM=w=yHo4XnaOpi!v=W4=7|-UG5s>i#ceTA z;ir;sPp$V-GKK$0=^kHSqD^^MdYbGaA%)wcs4>dIR$__@g+VHtM4ngg9fdTi)Rb;U zEKfgXg8w(l0XhL-vf`Cw>|vTSeyhdhU$>^nXw!0@u5kT%2>B{L#eN4oN;ADI;um^i zvo;UrUx9KVH$^Lw)FRkG)e|sS{Y5NU!FGCh;_WKsM|KXt^E;gm4-@9i&-}iuZf%a* z*Otw7gT=OeCoCFBDR=?T@4P|Ki<;#^PTMc)S{)vMN-@AQL@^E=ap*thhLnmC_qCDO z(CR2 zBnJU$Bt-?JJ5;0_>6At~hZx{pn{$5edB42>!MQF!cn-UOgek&>4ZDonyE+IFP#tY${UVHwK-Ypv*_No zd6T}Rv~`M#u_V8td4(W6T2jsej&uJBBCBVjbSsNpX^nv$wfY}DuEyW^Tv=I5tu zzT|#uv@ED$H5A>kZGU7m(4aEw7g122k`F7wNr4Z!MV^%DY>#*8z*1PCvc(0JxF0PQ z^_1DUW-ZmXs#@z`yzue7eg;OvXd!rIa$EYu_b3-DVRl{0R!PmVk!``&CyIFm%cw)3_>OqG)(i=LgoRhB`4=IU}#J#axaTabdVg`baz$^V1X@Rw02U1^{8z zzTcZGNTZ35qOe{}Gb5bJL2s=2{dt=b*DumN4sQ-tj%*d;{BHCt`+*guN2IbvE%Kgb zJHg68enj_uly*0uX)xYsBb(sXddw1MVXh*8L0!mLpEbHD(*eI(Q{TJINgik(E4Ql-s$*`b9pTp< zWtZ+oZ7wl09~gX*rn8!J$!yU$6@-xG-ji=@TZEc73hF4gV%ZQ@i9N?iI*vC=d=>&8BJ0YB`5%+pw$0xcCLb|52vyVDd=)V%ghGNF2)9LJ*F8Eq}-PJcqK51#t$8tuoy+<9r+50aCkEij+e4##%mV3JDbyqoOkb|q{iO8eSp?f?Y}f$J1E!C{$E};X zc>-(_)AyzMhw5V2ctD8X4m=Iin&py9+b(4Wyhf&o1TMMBBWmEQ*~+c)ln|IN2t;+5LGcq|h=Kx6utRDgc&H z>IrLFu7-v%WCem`N#~NgWArs$m&J_2gWj28Te*7cHx~V67cHf{;Z(@Tr^}<0iy4qf z6p3Oj=^X*dV_wA3?!+u6GMx<)==Fc6wdmY~xsf&DKJW89i*&cNc+gwFPfVi|wZDZ$ z1`imeneAxh{W*IQ>%$p@g)t3fy`4Qa!E3$-PQ5J&*+NSGt@Ti-Piyf|{-5M_CbdaD zR{5_6JsT*WnXBW3wbLr&8PBuxahcK#+1}Ui#AoA7vJaX0{^drbB737w7sCv4DOu*$ z^dCokrt6Q>=RIbf5&R~4X83^Vg^*h@^DD)PG?ULFclLzaYM-rq&L&!>+q%CyCV>q% z0QP&tVpMuUP6uLxcn3EZHCXSnPTfjdU>-T!9gWfH^xZJRYaN*8?On?~E$6>wVSHrb zqm+!o)Ep47t}%t(ecIR~?S-pAP@&e0L{q*%<=z|hX#J1x&)YZu9&zRYvdY`DywGx6 zw{pF6KtXk%I@j~_hIVaS_GVf3X3@=mG_pQHyO$%4_zT^jxpc4q4=vmfnoU9%taS1Y zWwX2)U9M;nQ|x*F9*b^qxUDg(mHh6h^y3MThgPoe9ayOB`tj6?K_Hv@1jpr?IIr5I z^8ZP{{9CDDDtvL@Kx$+2@)OiHIFKS`e_iT@Qr5N8z~6SP6ojcaonQdMW4zG~@)@UC z#=`amPSM=6yPE1btrio5^uHMh@;mos_>}t|a`rV`Bf=GZc9$46wz)pJz+lnmp{ZVc zXpPyh%-;Re|HD(yG;>rgUz0U$?=*THbBp?9q4gmC2tX&&y3CSPMbJIJgXA8F^D^`_TQil z?phAIMTfOEZVT67(SzW{YsDAIGB8&@P^qNEm(?z3Vl&~mj$7*6one=_W8B{W&{4hx z0$*pPf`BEOnHuei7c9I*`lx{zf?Efj0GMz5$eQ$z2jCOv3PEw7!S1qQ=+Z3jH11J7 zc-*AfOo?%^@@B! zm}PFY{Mg@~c6=^1GzjLjVa^x=Gqw^0xt|L({avWwu1o#v3!Dg2Tt=Y1FnZ_|Rb49B z21}@nIKr$cJ`u69fiCW-gD%D!>%rC!f|q+InzxVe)ljx1YjL_AppGKJ6&8A6w@X)t zsCU3|F5GYEP*c|>@b59=1!@$gLo`tSyI`9D6xH&22L-HSu&}e{hWZE7;mgq6x1dv> zmJ*rpu9aQs%udhDHPI~(D8eqV0@lNRbWzHR4{Q8EN7e|to(H|j)BUMX1z5!o#V1BF zu2JZ(Ab!DIc{{+xMdvywWO;`R)lR_pNQ2YyD^JJgQ$eI?Ec5*n=h)1s^&<-oP=KfQ_7#SzzHDdxs|;<*sSz zHqdh?XHT!EW`bMZ;*vkY;>WYR!M3}sG88~8B~c_@XLjj#iqhAp6T$D@75)ZM7FY6n zA4d7yG#Traey!Z~2{1FPiXIfduwkZNm}PW?-?2{Y7<*wUWQ4ky%che=$VM@;GmFK=O)_>`Otn4s(5 zzX3p#ZG6E5%j;8o;-OT5HlJWT{f`hTm@7-9L-;msGz=g=<&J&rAt@c)^BE{#I2JRz z?!ZuQo7Y6&k6)0W=u$z!x^Af)w8R?y^NtNbR%)r=aYUtfwcT}n9d1c7nE^oZi%TBu ztRRnDUB89yEMK#mog%4BsF@t!gxPr zrq*{}u-bzxn4A=(iI!#igMW5d7YW?8Q`@PB9P;k^x#ASm6at`nvUsZ?J3m<2DKl>l zAxyS#?y^pJMSUazh?fA60yFmFtjRA|e=QVW~nLY}7Qx->0eRnjPu;npT;tgbo3n+|x&owntB z9wXPyY~}~_nKs%myM@WiUe|0TQi=h441a_OtJsV8t|?YL$FyfeMl9VFH|R{{hPLzb z*i?aBW?2$qiFP1>SY9L`==tXD8HBZ2ZVlv3Y`ptvM5;nwB)|kDv}|K9+aq>_O=-Bs zc%RQhIF_+9M1CX%?zn16T9g!#x*EN00F7}zlBa!HR#Rrsr6ws`@gSYt`?xoet)#q; z);}7U`?m6$YbSMx+R?XoX#uO>ixZA38%<(yhYcxk|3X=W@kSRVr9=9Hhw`o%8Uf-j z7;kKTRjZ|Fxh+mQ(sW4p=!o~QhEa^A>i~#vUbhd}P`>=-Kuzd~AMNDV*Mi?wJT}K% zkmpZ>f8VnteVt$W86mWC26CRMk3qM0B>lLf*Zm-A&w0Up9|SpK_zX3W{EEf;?TnV5 ziI`=UECz!{q!f3rn=j_mPu(?JFM(MrkN(hRre*R+^9fSS6HuRHi z3{#l_FNE8@B_X^0P@FA!4?|d>!wczuCwdv^6m)8%%Z=OnH* z_l~Gj_8(L1)47WbB?uAF%&@9k`b2%uT}^US>RLod9Y?swlNgIebS z-ZRNmSEv`R03>od{@Tm_$~DBMTye0Sy1#`FX>n8Sa$K+mql78c*@&xeWAV$95bKe- z^HM!!<+-}wCHNO*cxRK;j(_E7QhhwXa19KUF=a2F`0;?j`6xPl$0GW_)r30G{sDsh zDib`=}~jmVX(3zvV1VK01-< z7QJ}mN>?{9k?N)t9bNo1>NtHAYm5OukQXDxx$kyXVxkWJ3EstINs^FXYRM%u0eUGo z9w({mR*JiVYHAYy%ufak*g8*QO<8ZSfE_(Bko#7C_L9`*6(@xhP-LB+1(1n$U0js! zEo?z?On>KxvaOtqcxE`);SprZrOfjCM{5S)@X6Xf8ag2tj)hng*wIVlYFN-BVT&#RauG~ zLw-Wot@lX*u3Gem!oItu-lsm40E6Miv70lS&P-VCo=$Yjt!NuaPWV-s&RnHs0XDN) z+E%D*!bow?gZJI^%9i=fF`x8p7zEf{TQPIFVT3Wd8%$lrV4;GO4GcV`@ryLviHvXE z5*>Ttk-0IK$fyHD?;%ol++NTbcS=iHW-fseyi35nuDxAfl0hH|fA}yn=Cb`^&)X0O zX<2qKAA0Aly%}meW+dZ1gMiHJDz|8*fHBIIk_onwM#lvA*&SkNBaWS_Nld27?#Gz{ zfzP5M%_r{*emacqqa|5yb9U`O^O;LrEjMe-!WwSU#1;{^9m;k+O_|#h8%_VZrNO%} z!^N~W3OdbAYXnYX38vQ6;e*wW`D&SzCTYj{#xr4Wg2^Y(F~MZtS6JCv4{jcG3Y}z& z>cPGVScUzgSUmT-BXCy^k>XdZ%w=qve7>pZ)Ny}%3|(>}7hjUKc9w73c#Nsf9NM6xC7U&ul{FkRV=6SQ}GyY_%+D^jFot*AnI$plMCI z%y%Hg<1?T`d;&}SG?(PpCop^@7`BBvQcc~~I{rI-^!8OIVm%00$ZjU_ZIy@R(4ShT z#R2Xe@o0lw3bSFJMPeOo_Y@c{x+?^f=4>&xw=F4Q?I!NEt-_*4jtUXmANdaISW0Ku zC_kR7)0ygiA*Ozd z5}QlKbYAcs6|SQ%*b2;PjDKG;nuvf~Qmsl`)3ZbpzmT=QYqJ-fm2qusw39Ht3(Esp zb;?-zi0X8&49C`qUe7SuQdo>z+-pZC4pRH_Ok400EO!K%2!R*@jF$-c{BIebRVWxujYy8xpB>_ksrt)EUg~tuB1S(qo{wlcI=h?>nQh(P5 zpUK=h(zYxTTl1pemp>N?D7YpuSd)geII?bA$bIK^Y$l#+G*y$xy~C5aRE17Vh2CmCnOKbd^j`HKa3-T+GXuXC zzKlUPk~{>Z+}Uy|_MxKqT)oFcHloqWn9s*CGQar^0s-k_{_|t3tO(V;*;M$e@YfeO z?iKJ<9@r+^eJZY$r;3RlHu&`HYtB^8%S#TX=A0GQm)-l^?d{8*FTvcpqT zL!!mFo7%(A{*b*0HpJ!#V=~T)=XHe2+u9t2)&{Wq39+Kd#Csnn=7~a#zxAvW+vj)O zi#^wcsjkA1)!`$Lf()csRtC1U$RELLo`oTtoy==eF<9If_rM3Fm2WH2ij;=dOK7Hh zXPZi7qO!2~;9$H1U0Ty7smNqeMJn6#zQXL^AL_a{;6(QB()(a$_IddS{4?q=A9A{A zTs%uNm4ih0OnO~|p_1#9>gh%eRk^8)lbL5{Y_o2d3z)Bd%&=BsWLgDqZ!Z zh)5Gj}yKzM&$pj7zjLz<2f-rS+u#a`9!srIuwLtC_8fFf;`( zr%mrj4b$=+#scO+jm~*E@4eBaN#65#By~uo$aOtYmz$5lM?cxUY;wMuS=q@KQk>uo zqY=1txt`wc{KEd5vn{Dj8veRcNwEFQGfxAx$@XmTpz-AQ9uN~|Fp~*QscEch=k~hV zR{At-#@fZB^q=%xo8pGy&$qUVX5NJn=e)vX_UD@RIB!TkKNG7=$(lMz^>W{g01Sva zGo^)=4v)2o6!N>rB6KM%u)4z>jP4{z_DlxMXF;A>&z z|AZ4S|KR7)f=epr@}YYIqt|~?iqV!|`S>)94PExVzptRo!^_RC`7(EiGq|6;oiIF7 z+Lu{c`#!LDiQ))}x+lOf#IlY^xmKA4_F2)U;}qpWlgldR{nHkl<=z%HJ8snm?Gx9_ zQ`2w$^nocdxfWa5E#WferD~>2xeA#*secr`J_&bZi>>5(@n}ej8-0C9w60U+1;=t_ zj|`&bPJZ4=ivu>-O{4h;8FDiT&TiGT{mAC<(MhCTUT0GnOf8>K8n40m;(W8gJ=<&0 z@@KDU4hYBU{c&8!s&P*zB<0R2-`$HrT>{9Z&enSrI#%7AsW0x7vZ;%&9rk$!yO0oh z2msKAwoQ62Y(Xna7ITsVPTfbw=t(h7;Rs?E;Kc<#Rw|0cYo64P`Q1up%$ zn@i&dADsNW-5ACxyp_W+c1Go8Y+dz*%S{@stH1;7eE1itkMA(QxG#4chLGPlUd#Qs z?f7mC86pZ6pM9yCWd$oYA)57Iy&23HmUXWqpp2`|;;J%Up;%=#*x2Xs9SYCY$&>Mv zg0lWTq9pJs@@;W`FNCA+gQELF+@46h zD%IK3*(;wBi^%6|5+zIwCf5Y+kvz>?TntVuc4k&$nul;3*e#l7xAW4<&V@smqJ#u6 z_Ir3+aUH_U;{$T>&2MXbcDRMu>uPjTf3J=oR?T8rAU^@=4@eg=7Z;ccIM-m@Y2&}- zFAd|IgY(LcCws)4-$b@4`oEyfjxU+mij+ zYYHlB7yqppuq9>iSk*g&30&WP6z{y$(>9=n@on_Mef8(7v-wBRKHz9}eMtvdj;Zy9 z+Y!@A;jTq_5NGa!&JzPIb5XR!6+;qst3PFeskQyx7%4v|k$P&`C)ma1&yH7TuGhs2 z0KFNZ;Slf7+e#*tb;dq8*8Cr_QXr#%q0=6%l$A8vu-Ium&Tb>qM3}0-(Y{~6T$c9y zYB+N7`vXU|W{FAL!0CS*p~1w-HkQ5tf@{h42mL4b^Y3B+U5l+Xcqh&ZNU!DdVtKE3 z%R6)aKp8vz^fO%z4ZH(sRfyPzz|61;{l&W;8Q6O>1B{l(j%z`lRWmQ~uG)~xKMzRy zwa9GCbc@Beg~8PjqzM;kT@+VedKN8*;?ui1b`9qzXat52Yw2+MiBY!;`-e6sY#`MB z280cvDowarY15nK`{ms`UIdmJ3Hx!U?&gJ3c;^Sm?Dx54I6RRA!+DwVBx#k+U0to# zsqxvqVs7yd>0EO#b}N;A_lHZFx(^RC$h_zsJI7JH_k^fl_>g-1PNiujWnFnN?EMAw^(bD?|$n8WRpjg=U@D@h~I9Z`I2-I1w1a!S>V zaMk{vr^^HMFz@QH&np?8Kd(rSGqdwfUQHb9FJe_54t~qw2A;6J~mMzy!?C92m zXz>12KteJpnn}FIXSceZ2;x z$*INO&N+n#)X?K8pvRA9yQvtusm_fi6Ri(tb?SL3GkNYr8uK_h$ZGuLgD}8SuDGf) zMIA26RDfORoI*?(++6(YJc907hp;bXK=%Y@RAW3+;;?$1M_+mK;SQEgO<55yNoh#o z`eE!D-gSYb9~l)X64cOpv_^eBhTtlmBa|P9jA~E@5U}A7yJPMHOz0!(CFN)%b^hgV z(?>7$$(H%bGm(qz@^iKL(d6$Jf);nS^V>Y-n5dY( z+tf+IOSf^x7>%c)$j>508eV~<6BeFM zUL0C79@{(o=vCRp!5`zj@JE9_>&Y@?tWc;~+~<5RN%zH6jFmVLMCE0j^Yy?#sbf&* zg%q0UCcr-ayranjwl2Tp1{N$@V}mi!W0^(8M7oP6|BN&1jf~}7JSvHd_?g`Z{gf$h z%P8haRb{D5Pmb_L4jv`sMUF#O2M#;gg$+n#62k<7ME&P;851eXk*`Rm+>KLa;_#?r zQi4T&EqB7@dZ!&%<{7rqyHBOYUSZMR&!MFYr+GAV+xY*Um)e~f;Yy{uEsZx}pCBDo zo9lhh#t-6kh!9wJx#2+Z-zt4;`BtNbV=0cW4rf(tW!U zlhbvgJD&8kTa>FjduAXaTD7$VO1>LK2n?S{+KwvyNEl!J=L2GGddxf{4DU*5FUjW) zA2^ONI{Ifr_x@dCod^ssf1wgL!rn=u+q!xkZF0}_81>HNrEOIQ*3Z1AwzRTb^TjPR zliR8BehF%1*?)E`GI~lyfA8B^y!qJ~b$r%8!nvjbAEh44%j=34Pw=!`RF6J4O0wrA zlvjJ}I(WPXX_{*wbbn}_YVYts_??rg97*B#O=^h7i)}D-*aN!f8` zbI<#!EG8s%pR4%thG+8*((2D9AgzQt?T}>k%2FjoQeu=T@As_ZmhA9Cj#XI6hf#IB zg8!7gu^#FC@=3~dEer0BZ*Ijz8i2XQrrR*Z9`=2Ruwx@PXXWH0vPi`Hrg8cSv3a;M z>Oli%RWy?qXTQQa`%`*&k~~M`TPEIp=}nAJ2+5VU9mo%5j3Lg{D@D#H>V2YwxY}l zz5=V+vl%JH7J7*fm^+f)@DKE=gUzg5aKWWPj{C)t{f%lfy=h*me=R9Bu+_ovNp)7e zH6Aqw!It{fT5+kvQtbG#J?Eph`p?36Wvkxds^wsa*^&?GpCZ>Cz!#2#-h}rqZKOr$ z>w+9>_D3y}S_;G~CIu)zv}VzWzPO<|$pAw>l&hlhEW=pgkRgmzlCQMs9Iw;z4on-s zlhcd6mDD`8jO0w4Z*g1cI|8s?{F7NchH}vz$$o&jGN=<~Bv)Vc`W9&z6wgAnc|6Ef z6rG>TRXL|zGbgy-GJ00Ylf;*wgba}cR(pzP<~p$M%@jz!{Ww;BW`KZsOb$QW{PAAB zUF^Oq$V?Y+5U+TmUW$`Egol5lzW(0EpxxncH3&@;WAGT?z~w-44b6Snksry17)dQd9`xV8yu zp&m+&CCd}@U8x<3N!=!kr40a8|2|WDzVcM$O3WzPGUrx8z=WX9@7H&W`}=&&Kw{+^ z>k*Emrc>jMN~c|}CH~XOi_=!ohgaorVB!MVBFZT(?|dNeC$%5)M}klG_2;e54JGf; zcw2<{_GT65I9SvUhPN+`|K!(l#MPx%`U+M5;#pc~Q<@bh2nBGH>&u z93Gcrudp@ZD|Q(&72fGS(mWm)LE4LIleRCl`qD6g!lh5+a&^n^mc;0* z;kQK~_A9&(Twbv}ocNKX6V8vT@s_5!O*OUq+Rkj?1Bz!X@q5m(cI^R$q7y%vi?u#(fyRDH5b2Zjw zH|aSk)d<%nLbOy%?Wr z@dnrA>li;SGzq&VU6ua~^-fA)Q=Ui{u{#M;u304dVI5o+-+&w8Jn-*48Qxu)upIuy zix@8_6u>%iNqt0IF4w<=Y}bvsQcs0Ws+4Kzdpfn5G%HAm)=|NuZi9@=>fFAe&!O04 z7{+9zqxSQ;nUmMVu-K;@(J;NV$=Cu=$2c8VV{{gV(9$tdAAUqtCkmcCw!ek$G2Uba z(nCJx+ctyEb}Kr{3Y@C#bC@LSqRqKkI%ADj2ntM${mnG#R@c0oiIOh)lH_%ND=qEY-bQ#PoQ-_|0$51!KZze4USXc(O| z7q8B#jcvXGih2*-b0M(ctRg<3(ZON-j$db}f1XxmeIDKSov)Q%yB0^Jz7l`Iakk#| zJMOw8etmP98ZE1z)QP0G>2K$9=rPd7?7C`V^0oT51`Q*<8TQB}}QS0y(J zDD;MRi+ry&(U3gsnqWkmW$C_=J!^vU|n>_WR_%)tecYF%~Y`DeRdynS6#jiP4G3eD3%ZV ztzv?FoV6rv_JIQkR>e?}^RP5+`jM2)vo8yorg62gg9F&vQkj8@>?&t`dPE1{jBA%r z89VQ{Jo_3>(LA!yp%bOiGy8KQm5Y;iV8QCK9v7VGyGFyuHJUvKRLA;maf^W|UWBG7 zS2Fq1Zska|QijS){+DXw!Mi(3Ib45|00Z z#w*+b?CMF;UhlAF8Z6)UW8BYg;3Y+ly4KN=J{6(B(F#nT=jPH$obK9wFqt}9ILxz zy(kC@3#(ukfE4QZas~&_XK$3|;S@)mR~>(eQs1P&^$^c}JeTk%d<93WZ(C_kuH9%@ z;D^w46+$v~WjTYr;gu(&j^HEQwWNjyFLIoI!HqwX#fz9Ihg+c1$z}$w#mT7a(T2qg z0$PWHbPjAg-EJ5m9#|sOnX)d|my~bI_=pHK=a=YSRjW zCleN;bVi)d;#~igrmyTL>3^U2lQCk^Gm=WV;yia?=iZi`-MnOMEw`umlftJmuJ+lB zo9Ld~px#9@(az}?&EEP^XMw3+}*xjM)gW?t{~wQF69#j;XoJ?8y(MqAy!vK!p#NVf3`*-0J;{5X8ZX&)j@ zMsy@H8}xFJR`t4$KT39w|E;Qp@4uxMf5MC-o~f?{YqJJxi(?~cl>4PB@Z3egx2Uvm zQJABk-X4!UIyDN{c!C+Tg%)QG<^EiNC$poCzU5*sZ)uHn^yTW75i&M*{F_gpE7>^RoA8(u3n_Ee=wrh303 znnKBz7v0ke=}5@+v*WRcVtAZ4p`m~_+*#a3=QYBN=h+@Aw?9w zwSnqaCE&Q8dl0Nbl+H%mCG@lDQxK&eXM=8!b#tG>T?(8WErIlo)Zaepza_}Lr0vIB zTAI1R{uf)(p!Ie-%VDCjSQ~#(OAOA1c}lP@_@YgS<#`yz>|b_wqe>BL zxjB}GTIS+teCTV)1#P!aBaKI?Z+H_8{NW0gyM}CkSEMooc^)P#AiBo>;*sp(arj{x zer;{hc9E|*0f~MEWf!P9filyjwwlyD$;s4!Jso3p;DU1$IK+c*ZxU2C;{seCDquFt zc;jU}rbD{5UPyu#RmkZR<9zuDR_@&3INhNAn^DjB=9#oq$mB6;jrg z;}%*oFf=f__^$@+n)pHA1<(V55g!l$Jy!qYe`qv8ff|^8P2>-31xWkWumuZmPNelZ zQ(qLY7Zc(8J*#qm?bM0kr%vQ|5gOi%JA>fIm5S9%`Zsg;Gigq{zyh({g-SQRa`^H@ zc4QeoF~E%6%KuvL4CZ?lnr|5jJCw;SKcj^kqTWEPS26zxK~G!3D5sh^w-k`Nb8Y-(tjqXDW$Qwyu-eYm_r&`taDio&>}tUc z@zNLdNTi2*`?lQz1qzdqXfx0fMP}P~6oeG=(;B_@b&(^II=a3qCLj9knu)M-8gr(`g$4(9&bR8xJ*DA%0j~9EU&s=fu|a)VcVV7(F=-$Hse;WpgjU zQ||$$YX8Taa2^zT`XhmkLBw5TZ>u%^Rh9bLm+E#Y2j<*I!xuTfL|Q0tMm+nb7hISM z{M+`NCuDmYYd!pIA!SE%#Q~(C-x`k>s5-PZ<>HQ#@ABGE%|+=hUkL7pv%g~_^|JpJ zdqp-kHIUz$KW-puNELK0AqS+(xlWnUloYL5m0#TaRriEiIEPf|TK@1oMmvP;1(|D2 zeJk?M9*h=fWC^uF|)i0)U{TjykM- zTkij4y6)t)w)t<^83+=p0?IT{fpdlx<+p;SOpsU-z@2k@3P0DP^=TBAVHduB@?-(b zS&ylEYi-bu1xX+X;^!cU1k@4VizPj-n}>*_2G6^ePaj+bpEPQ+<#?efw`)t9C>i?2 z(BqUh0LP~t3ncZY|4!OS6Z$X6P$oRp%!;@Pt3N+!*yM8F^RM2~&2@i0iLl|v>dBP0Q<7Rm#E~CbP;bE2xs1sj zedTsZXBzcbt&iVF@tYV2VsepaZ$=0hA?#biLpSoST{j}>unR0DVR^M98ej?YL_YVa zO9-%K56oL$b*MP-8E7oIckG2nE?zhV21&bK$)eo@cM@JyJ%J>PWzmOb7j_|{)S_W3 zK$HQeFHfuWM-!FD{4JRa1e{=qU0i?O#YheI)MU*nHPIj*-m2OTtHVl;5?H>$**Wby z+sY~KR!=gJvVC?FJL!$6sRc`dHY|}Lj%S62BnoR6mPmxG_pk(^lv&5|wLl8oWYz^c z)0z^FG4y(NteU2b4+u9NgKL5Sfu|2ls~w^x9%N}yQfPJQG*`P86c$0G>e3I3oODnW^2%P5N{6#goi6}P zsmZ!PYTGm;2Z~k)*1tw_fRbDgh!yhp8SL(UQq1MuTM5{+O4<2cGjB|ed!39BgohXr z1iIvH+`LxeJk1{;lK>14LfIsWyv?Y@3QfD8fncTEyWlwGZ*=X%?iCJy!~$+6JLod3^V8wea>qaA@;V{MWt)_+&2Sqc+>BY~#Dp z>lW1pszz^`o_~f6{}HmF$)D34?PVw8q?}`X+^Nl!NA*hy0=d7%K6iCJXY8o*OLE!l z*?bdEX6R8fr;qYzcoUD|;@{VqyoAesSo^X+EzW2`+2=jg{x}p(j0csKKv6LdU3>ex ztJNdlsi^n~<+*1XVHo*CIHC@0`;Ap6M%oMJeFDg_K1B`}l!u8GryZ@%&ArPL4C3Uc zU9<5j+gIk-YLFcQ8B|Xf6fdk2?wquYO)RXjeJnFu>M+4<4v1oMmZgDrfyouq*?`TV qzy9x^|FyvXTHyb00hITVOsCQ2=r%P47QC|oL(4yUkbB?w<^KUX>v^>R literal 0 HcmV?d00001 diff --git a/AppScope/resources/base/media/layer_logo.json b/AppScope/resources/base/media/layer_logo.json new file mode 100644 index 0000000..e5be61f --- /dev/null +++ b/AppScope/resources/base/media/layer_logo.json @@ -0,0 +1,6 @@ +{ + "layered-image": { + "foreground": "$media:ic_launcher_foreground", + "background": "$media:ic_launcher_background" + } +} \ No newline at end of file diff --git a/build-profile.json5 b/build-profile.json5 new file mode 100644 index 0000000..3a98672 --- /dev/null +++ b/build-profile.json5 @@ -0,0 +1,97 @@ +{ + "app": { + "signingConfigs": [ + { + "name": "release", + "type": "HarmonyOS", + "material": { + "storeFile": "D:/android/签名/hmos/hmos.p12", + "storePassword": "000000188D653F4B8748579F0084CAC913B6D6AB6FF60084FB0F318CC52AC425A874B607DD8261F9", + "keyAlias": "__uni__1be0b2f", + "keyPassword": "00000018779445CEA4B7EA75CB8F722F9DA76CBDBC5CE7C083CE8B5E1973141BF17E654C7237F5EF", + "signAlg": "SHA256withECDSA", + "profile": "D:/android/签名/hmos/素材魔方/cube_releaseRelease.p7b", + "certpath": "D:/android/签名/hmos/素材魔方/cube_release.cer" + } + }, + { + "name": "debug", + "type": "HarmonyOS", + "material": { + "storeFile": "D:/android/签名/hmos/hmos.p12", + "storePassword": "000000188D653F4B8748579F0084CAC913B6D6AB6FF60084FB0F318CC52AC425A874B607DD8261F9", + "keyAlias": "__uni__1be0b2f", + "keyPassword": "00000018779445CEA4B7EA75CB8F722F9DA76CBDBC5CE7C083CE8B5E1973141BF17E654C7237F5EF", + "signAlg": "SHA256withECDSA", + "profile": "D:/android/签名/hmos/素材魔方/cube_debugDebug.p7b", + "certpath": "D:/android/签名/hmos/素材魔方/cube_debug.cer" + } + } + ], + "products": [ + { + "name": "default", + "signingConfig": "release", + "targetSdkVersion": "5.1.0(18)", + "compatibleSdkVersion": "5.0.4(16)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + }, + { + "name": "debug", + "signingConfig": "debug", + "targetSdkVersion": "5.1.0(18)", + "compatibleSdkVersion": "5.0.4(16)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release", + "buildOption": { + "nativeLib": { + "filter": { + //根据正则表达式排除匹配到的.so文件,匹配到的so文件将不会被打包 + "excludes": [ + "**/x86_64/*.so", + "**/armeabi-v7a/*.so" + //排除所有x86_64架构的so文件 + ], + //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件 + "enableOverride": true + } + } + } + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default", + "debug" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/code-linter.json5 b/code-linter.json5 new file mode 100644 index 0000000..073990f --- /dev/null +++ b/code-linter.json5 @@ -0,0 +1,32 @@ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@security/no-unsafe-aes": "error", + "@security/no-unsafe-hash": "error", + "@security/no-unsafe-mac": "warn", + "@security/no-unsafe-dh": "error", + "@security/no-unsafe-dsa": "error", + "@security/no-unsafe-ecdsa": "error", + "@security/no-unsafe-rsa-encrypt": "error", + "@security/no-unsafe-rsa-sign": "error", + "@security/no-unsafe-rsa-key": "error", + "@security/no-unsafe-dsa-key": "error", + "@security/no-unsafe-dh-key": "error", + "@security/no-unsafe-3des": "error" + } +} \ No newline at end of file diff --git a/entry/.gitignore b/entry/.gitignore new file mode 100644 index 0000000..e2713a2 --- /dev/null +++ b/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/entry/build-profile.json5 b/entry/build-profile.json5 new file mode 100644 index 0000000..4d61187 --- /dev/null +++ b/entry/build-profile.json5 @@ -0,0 +1,28 @@ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/entry/hvigorfile.ts b/entry/hvigorfile.ts new file mode 100644 index 0000000..c6edcd9 --- /dev/null +++ b/entry/hvigorfile.ts @@ -0,0 +1,6 @@ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/entry/obfuscation-rules.txt b/entry/obfuscation-rules.txt new file mode 100644 index 0000000..1781290 --- /dev/null +++ b/entry/obfuscation-rules.txt @@ -0,0 +1,28 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation +-keep-property-name +quickLoginAnonymousPhone + +-keep +./oh_modules/@ohos/imageknifepro \ No newline at end of file diff --git a/entry/oh-package-lock.json5 b/entry/oh-package-lock.json5 new file mode 100644 index 0000000..52698da --- /dev/null +++ b/entry/oh-package-lock.json5 @@ -0,0 +1,72 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@getui/gtc@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/GTC-HM-1.0.5-20241203.har": "@getui/gtc@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/GTC-HM-1.0.5-20241203.har", + "@getui/gysdk@1.0.10": "@getui/gysdk@1.0.10", + "@ohos/axios@^2.2.6": "@ohos/axios@2.2.6", + "cmccssosdk@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/quick_login_hm_1.0.2.har": "cmccssosdk@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/quick_login_hm_1.0.2.har", + "ctaccount@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/ctaccount_v1.1.2.har": "ctaccount@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/ctaccount_v1.1.2.har", + "dljson@../oh_modules/.ohpm/ctaccount@qccjk9bmoqtng+2vpbi+2wqjznsjx4thqhodhlvlvn0=/oh_modules/ctaccount/library/dlJson.har": "dljson@../oh_modules/.ohpm/ctaccount@qccjk9bmoqtng+2vpbi+2wqjznsjx4thqhodhlvlvn0=/oh_modules/ctaccount/library/dlJson.har", + "unicom_login_harmony@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/unicom_login_harmony_v1.0.4AR001B0214.har": "unicom_login_harmony@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/unicom_login_harmony_v1.0.4AR001B0214.har" + }, + "packages": { + "@getui/gtc@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/GTC-HM-1.0.5-20241203.har": { + "name": "@getui/gtc", + "version": "1.0.5", + "resolved": "../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/GTC-HM-1.0.5-20241203.har", + "registryType": "local" + }, + "@getui/gysdk@1.0.10": { + "name": "@getui/gysdk", + "version": "1.0.10", + "integrity": "sha512-wsPJMEtrDgVi3uWizD1Yg96hkoK9uhPUzXkR6daNGsxHaf0bRtjg79aRDkE7o6xTHNyOVkPI/1l/5cDiZqbIow==", + "resolved": "https://repo.harmonyos.com/ohpm/@getui/gysdk/-/gysdk-1.0.10.har", + "registryType": "ohpm", + "dependencies": { + "@getui/gtc": "file:./libs/GTC-HM-1.0.5-20241203.har", + "unicom_login_harmony": "file:./libs/unicom_login_harmony_v1.0.4AR001B0214.har", + "cmccssosdk": "file:./libs/quick_login_hm_1.0.2.har", + "ctaccount": "file:./libs/ctaccount_v1.1.2.har" + } + }, + "@ohos/axios@2.2.6": { + "name": "@ohos/axios", + "version": "2.2.6", + "integrity": "sha512-A1JqGe6XaeqWyjQETitFW4EkubQS7Fv7h0YG5a/ry3/a/vOgVGzwC4y5KAhvMzVv1tYjfY0ntMtV2kJGlmOHcQ==", + "resolved": "https://repo.harmonyos.com/ohpm/@ohos/axios/-/axios-2.2.6.har", + "registryType": "ohpm" + }, + "cmccssosdk@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/quick_login_hm_1.0.2.har": { + "name": "cmccssosdk", + "version": "1.0.0", + "resolved": "../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/quick_login_hm_1.0.2.har", + "registryType": "local" + }, + "ctaccount@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/ctaccount_v1.1.2.har": { + "name": "ctaccount", + "version": "1.1.2", + "resolved": "../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/ctaccount_v1.1.2.har", + "registryType": "local", + "dependencies": { + "dljson": "file:library/dlJson.har" + } + }, + "dljson@../oh_modules/.ohpm/ctaccount@qccjk9bmoqtng+2vpbi+2wqjznsjx4thqhodhlvlvn0=/oh_modules/ctaccount/library/dlJson.har": { + "name": "dljson", + "version": "0.0.5", + "resolved": "../oh_modules/.ohpm/ctaccount@qccjk9bmoqtng+2vpbi+2wqjznsjx4thqhodhlvlvn0=/oh_modules/ctaccount/library/dlJson.har", + "registryType": "local" + }, + "unicom_login_harmony@../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/unicom_login_harmony_v1.0.4AR001B0214.har": { + "name": "unicom_login_harmony", + "version": "1.0.4", + "resolved": "../oh_modules/.ohpm/@getui+gysdk@1.0.10/oh_modules/@getui/gysdk/libs/unicom_login_harmony_v1.0.4AR001B0214.har", + "registryType": "local" + } + } +} \ No newline at end of file diff --git a/entry/oh-package.json5 b/entry/oh-package.json5 new file mode 100644 index 0000000..3b94d70 --- /dev/null +++ b/entry/oh-package.json5 @@ -0,0 +1,13 @@ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "@ohos/axios": "^2.2.6", + "@getui/gysdk": "1.0.10" + } +} + diff --git a/entry/src/main/ets/MyAbilityStage.ets b/entry/src/main/ets/MyAbilityStage.ets new file mode 100644 index 0000000..341953f --- /dev/null +++ b/entry/src/main/ets/MyAbilityStage.ets @@ -0,0 +1,9 @@ +import { AbilityStage } from '@kit.AbilityKit'; +import { PrefUtils } from './utils/PrefUtils'; + +export default class MyAbilityStage extends AbilityStage { + + onCreate(): void { + PrefUtils.init(this.context) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/callback/DialogCallback.ets b/entry/src/main/ets/callback/DialogCallback.ets new file mode 100644 index 0000000..5d54288 --- /dev/null +++ b/entry/src/main/ets/callback/DialogCallback.ets @@ -0,0 +1,5 @@ +export declare class DialogCallback { + confirm?: () => void; + + cancel?: () => void; +} \ No newline at end of file diff --git a/entry/src/main/ets/common/Constants.ets b/entry/src/main/ets/common/Constants.ets new file mode 100644 index 0000000..5bc2755 --- /dev/null +++ b/entry/src/main/ets/common/Constants.ets @@ -0,0 +1,19 @@ +export class Constants { + static readonly BASE_URL = "https://material.u8t.cn" //正式地址 + static readonly TEST_URL = "https://material.u8t.cn" //测试地址 + + static readonly WEB_URL = "" //网页版地址 + + static readonly APP_ID = "10040" + // + static readonly WX_APP_ID = "wx19e5013ad43754c8" //微信APPID + static readonly MINI_PROGRAM_APP_ID = "gh_b38277bd004a" //小程序 + static readonly UMENG_APP_KEY = "6883311979267e0210c15cb9" //友盟 + // + static readonly USER_AGREEMENT = "https://material.u8t.cn/static/policy/user.html" //用户协议 + static readonly PRIVACY_POLICY = "https://material.u8t.cn/static/policy/provacy.html" //隐私政策 + static readonly RENEW_AGREEMENT = "https://material.u8t.cn/static/policy/renew.html" //自动续费协议 + // + static readonly ENCRYPT = "wE8x4EnIHgyGOyjnoluzI2vk60wz5eNI" + static readonly SIGNATURE = "hfLLOtXRjd0e1Ac7O6sAXrECH2E828S9" +} \ No newline at end of file diff --git a/entry/src/main/ets/common/EventConstants.ets b/entry/src/main/ets/common/EventConstants.ets new file mode 100644 index 0000000..8a28b1f --- /dev/null +++ b/entry/src/main/ets/common/EventConstants.ets @@ -0,0 +1,272 @@ +export class EventConstants { + /*---------------------------------------------APP事件---------------------------------------------*/ + static readonly LoginSuccessEvent = "LoginSuccessEvent" + static readonly LogoutSuccessEvent = "LogoutSuccessEvent" + static readonly HomeRefreshEvent = "HomeRefreshEvent" + static readonly RecordRefreshEvent = "RecordRefreshEvent" + static readonly MineRefreshEvent = "MineRefreshEvent" + static readonly MediaActionEvent = "MediaActionEvent" + static readonly JumpToRecordEvent = "JumpToRecordEvent" + static readonly DownloadHistoryRefreshEvent = "DownloadHistoryRefreshEvent" + + + /*-------------------------------------------客户端上报事件-------------------------------------------*/ + static readonly APP_LAUNCH = "client.launch" //app启动 + + static readonly GUIDE_LAUNCH = "client.guide.launch" //引导页启动 + + static readonly GUIDE_OPPORTUNITY_SCROLL = "client.guide.content.scroll" //滑动切换引导页内容 + + static readonly GUIDE_SKIP = "client.guide.pay.skip" //跳过引导页支付 + + static readonly APP_ACTIVE = "client.home.active" //app激活 + + static readonly HOME_BOTTOM_TAB_CHECK = "client.main.bottom.tab.check" //底部tab切换 + + static readonly HOME_NOTICE_CHECK = "client.main.notice.check" //首页通知点击 + + static readonly GOODS_SELECT = "client.goods.select" //点击切换支付的会员类型 + + static readonly PAY_SELECT = "client.pay.select" //点击切换支付类型 + + static readonly PAY_PAY = "client.pay.pay" //支付按钮点击 + + static readonly CHALLENGE_TASK_PAY_PAY = "client.challenge.task.pay.pay" //0元挑战支付按钮点击 + + static readonly PAY_SUCCESS = "client.pay.success" //支付成功 + + static readonly PAY_CANCEL = "client.pay.cancel" //支付取消 + + static readonly ERROR_CLIENT_WXPAY_ERR = "client.wxpay.err" //微信支付失败 + + static readonly ERROR_CLIENT_ALIPAY_ERR = "client.alipay.err" //支付宝支付失败 + + static readonly ERROR_CLIENT_DOWNLOAD_IMG = "client.download.img.err" //图片下载失败 + + static readonly ERROR_CLIENT_DOWNLOAD_VIDEO = "client.download.video.err" //视频下载失败 + + static readonly ERROR_CLIENT_DOWNLOAD_AUDIO = "client.download.audio.err" //音频下载失败 + + static readonly CANCEL_DOWNLOAD_VIDEO = "client.download.video.cancel" //取消视频下载 + + static readonly PAUSE_DOWNLOAD_VIDEO = "client.download.video.pause" //暂停视频下载 + + static readonly CONTINUE_DOWNLOAD_VIDEO = "client.download.video.continue" //继续视频下载 + + static readonly RESTART_DOWNLOAD_VIDEO = "client.download.video.restart" //重新视频下载 + + static readonly SPEED_UP_DOWNLOAD_VIDEO = "client.download.video.speed.up" //加速视频下载 + + static readonly BACKGROUND_CLIENT_DOWNLOAD = "client.download.background" //后台下载 + + static readonly FLOAT_WINDOW_CLICK = "client.float.window.click" //点击悬浮窗 + + static readonly PKG_UPDATE = "client.pkg.update" //升级弹窗点击更新 + + static readonly PKG_CANCEL = "client.pkg.cancel" //升级弹窗点击取消 + + static readonly GET_MATERIAL = "client.get.material" //获取素材 + + static readonly GET_MATERIAL_CANCEL = "client.get.material.cancel" //取消获取素材 + + static readonly DIALOG_CONFIRM_SAVE_FILE = "client.dialog.confirm.save.file" //保存文件地址弹框确认 + + static readonly DIALOG_GO_TO_VIEW = "client.dialog.go.to.view" //前往保存文件的地址查看 + + static readonly JUMP_TO_ABOUT_US = "client.jump.to.about.us" //界面跳转 + + static readonly JUMP_TO_LINK_EXTRACT = "client.jump.to.link.extract" //跳转链接提取 + + static readonly JUMP_TO_WECHAT_VIDEO = "client.jump.to.wechat.video" //跳转视频号 + + static readonly JUMP_TO_WECHAT_PLAYBACK = "client.jump.to.wechat.video.playback" //跳转直播回放 + + static readonly JUMP_TO_COURSE_WX_VIDEO = "client.course.wechat.video" //视频号视频教程 + + static readonly JUMP_TO_COURSE_PLAYBACK = "client.course.playback" //直播回放视频教程 + + static readonly JUMP_TO_HOME_TOOL = "client.jump.to.home.tool" //跳转首页工具 + + static readonly MAIN_CENTER_ENABLE = "client.main.center.enable" //首页跳转个人中心 + + static readonly JUMP_TO_MEMBER_RECHARGE = "client.jump.to.member.recharge" //跳转到充值页 + + static readonly JUMP_TO_LOGIN = "client.jump.to.login" //跳转到登录页 + + static readonly JUMP_TO_SYSTEM_SETTING = "client.jump.to.system.setting" //跳转到系统设置 + + static readonly JUMP_TO_USER_SETTING = "client.jump.to.user.setting" //跳转到用户设置 + + static readonly JUMP_TO_FEEDBACK = "client.jump.to.feedback" //跳转到意见反馈 + + static readonly JUMP_TO_ACCOUNT_BIND = "client.jump.to.account.bind" //跳转到账号绑定 + + static readonly JUMP_TO_ACCOUNT_MANAGE = "client.jump.to.account.manage" //跳转到账号管理 + + static readonly JUMP_TO_DOWNLOAD_HISTORY = "client.jump.to.download.history" //跳转到下载记录 + + static readonly JUMP_TO_DOWNLOAD_TASK_LIST = "client.jump.to.download.task.list" //跳转到下载任务列表 + + static readonly JUMP_TO_RECHARGE_DIAMOND = "client.jump.to.recharge.diamond" //跳转到钻石充值 + + static readonly JUMP_TO_COUPON_LIST = "client.jump.to.coupon.list" //跳转优惠券列表 + + static readonly JUMP_TO_CHALLENGE_TASK = "client.jump.to.challenge.task" //跳转到0元挑战 + + static readonly JUMP_TO_SHARE_WX_VIDEO = "client.jump.to.wechat.share.video" //跳转到视频号分享 + + static readonly JUMP_TO_SHARE_WX_PLAYBACK = "client.jump.to.wechat.share.playback" //跳转到直播回放分享 + + static readonly JUMP_TO_COURSE = "client.jump.to.course" //跳转到指导教程 + + static readonly DOWNLOAD_FILE = "client.download.file" //下载文件 + + static readonly TRANSPOND_FILE = "client.transpond.file" //转发文件 + + static readonly MATERIAL_COPY_TEXT = "client.material.copy.text" //复制文字 + + static readonly MATERIAL_TYPE_CHECK = "client.material.type.check" //素材切换 + + static readonly MATERIAL_ALL_SELECT = "client.material.all.select" //全部选中素材 + + static readonly MATERIAL_SELECT = "client.material.select" //选择素材 + + static readonly TOOLS_VIDEO_EXTRACT_AUDIO = "client.tools.video.audio" //提取音频 + + static readonly MATERIAL_PLAY_VIDEO = "client.material.play.video" //播发视频 + + static readonly GET_CODE = "client.get.code" //获取验证码 + + static readonly LOGIN = "client.login" //登录 + + static readonly SWITCH_ACCOUNT = "client.switch.account" //切换账户 + + static readonly ACCOUNT_BIND = "client.account.bind" //绑定账号 + + static readonly ACCOUNT_BIND_CANCEL = "client.account.bind.cancel" //取消绑定账号 + + static readonly CHECK_AGREEMENT = "client.check.agreement" //切换协议状态 + + static readonly VIEW_AGREEMENT = "client.view.agreement" //查看用户协议 + + static readonly PRIVACY_POLICY_CLICK_OK = "client.privacy.policy.click.ok" //同意隐私协议 + + static readonly SHARE_APP = "client.share.app" //分享app + + static readonly CLEAR_CACHE = "client.clear.cache" //清除缓存 + + static readonly CONTACT_SERVICE = "client.contact.service" //联系客服 + + static readonly EXIT_LOGIN = "client.exit.login" //退出登录 + + static readonly CANCEL_ACCOUNT = "client.cancel.account" //注销账户 + + static readonly MEMBER_FORCE_LOGIN = "client.member.force.login" //会员强制登录 + + static readonly GET_MATERIAL_TIMES_USE_UP = "client.times.use.up.get.material" //获取素材次数已用完 + + static readonly PICTURE_HANDLE_TIMES_USE_UP = "client.times.use.up.picture.handle" //图片处理次数已用完 + + static readonly CHECK_LOGIN_TYPE = "client.check.login.type" //切换登录方式 + + static readonly OPEN_SCREEN_AD_SHOW = "client.ad.open.screen.show" //开屏广告展示 + + static readonly OPEN_SCREEN_AD_SKIP = "client.ad.open.screen.skip" //开屏广告跳过 + + static readonly OPEN_SCREEN_AD_CLICK = "client.ad.open.screen.click" //开屏广告点击 + + static readonly BANNER_AD_SHOW = "client.ad.banner.show" //banner广告展示 + + static readonly BANNER_AD_CLOSE = "client.ad.banner.close" //banner广告关闭 + + static readonly BANNER_AD_CLICK = "client.ad.banner.click" //banner广告点击 + + static readonly INSERT_SCREEN_AD_SHOW = "client.ad.insert.screen.show" //插屏广告展示 + + static readonly INSERT_SCREEN_AD_CLOSE = "client.ad.insert.screen.close" //插屏广告关闭 + + static readonly INSERT_SCREEN_AD_CLICK = "client.ad.insert.screen.click" //插屏广告点击 + + static readonly INSERT_SCREEN_AD_SKIP_VIDEO = "client.ad.insert.screen.skip.video" //跳过插屏广告 + + static readonly INCENTIVE_AD_SHOW = "client.ad.incentive.show" //激励广告展示 + + static readonly INCENTIVE_AD_CLOSE = "client.ad.incentive.close" //激励广告关闭 + + static readonly INCENTIVE_AD_REWARD = "client.ad.incentive.reward" //激励广告已获取到奖励 + + static readonly INCENTIVE_AD_SKIP_VIDEO = "client.ad.incentive.skip.video" //跳过激励广告 + + static readonly ACCOUNT_UNBIND = "client.account.unbind" //解除绑定账号 + + static readonly HISTORY_RECORD_TYPE_CHECK = "client.history.record.type.check" //历史记录切换 + + static readonly CLOSE_FREE_TIME_USES_UP_DIALOG = + "client.free.time.uses.up.dialog.close" //关闭免费次数用完的提示框 + + static readonly CHECK_FREE_TIME_USES_UP_DIALOG = + "client.free.time.uses.up.dialog.check" //免费次数用完的提示框切换充值类型 + + static readonly CONFIRM_FREE_TIME_USES_UP_DIALOG = + "client.free.time.uses.up.dialog.confirm" //确认免费次数用完的提示框 + + static readonly MULTI_DELETE_FILE = "client.multi.delete.file" //批量删除文件 + + static readonly MULTI_TRANSMIT_FILE = "client.multi.transmit.file" //批量转发文件 + + static readonly PREVIEW_DELETE_FILE = "client.preview.delete.file" //预览时删除文件 + + static readonly PREVIEW_TRANSMIT_FILE = "client.preview.transmit.file" //预览时删除文件 + + static readonly PREVIEW_HANDLE_IMAGE = "client.preview.handle.image" //预览时进行图片处理 + + static readonly TOOLS_HANDLE_IMAGE_START = "client.tools.handle.image.start" //图片处理开始 + + static readonly TOOLS_HANDLE_SAVE_IMAGE = "client.tools.handle.save.image" //保存已处理过的图片至相册 + + static readonly AUTO_SWITCH_DOWNLOAD_URL = "client.auto.switch.download.url" //自动切换下载链接 + + static readonly HAND_SWITCH_DOWNLOAD_URL = "client.hand.switch.download.url" //手动切换下载链接立即加速 + + static readonly HOME_BANNER_CLICK = "client.home.banner.click" + + static readonly COUPON_ANIMATION_PLAY = "client.coupon.animation.play" //播放优惠券动画 + + static readonly COUPON_ANIMATION_CLOSE = "client.coupon.animation.close" //关闭优惠券动画 + + static readonly COUPON_RECEIVE = "client.coupon.receive" //领取优惠券 + + static readonly COUPON_REDEEM_ENABLE = "client.coupon.redeem.enable" //优惠券兑换按钮点击 + + static readonly COUPON_REDEEM_INFO = "client.coupon.redeem.info" //优惠券兑换详情 + + static readonly COUPON_REDEEM = "client.coupon.redeem" //优惠券兑换 + + static readonly COUPON_REDEEM_SUCCESS = "client.coupon.redeem.success" //优惠券兑换成功 + + static readonly COUPON_REDEEM_SUCCESS_CONFIRM = "client.coupon.redeem.success.confirm" //优惠券兑换成功 + + static readonly COUPON_VIEW = "client.coupon.view" //查看优惠券 + + static readonly COUPON_DIALOG_CHECK = "client.coupon.dialog.check" //切换优惠券 + + static readonly COUPON_DIALOG_CLOSE = "client.coupon.dialog.close" //关闭优惠券 + + static readonly COUPON_DIALOG_CONFIRM = "client.coupon.dialog.confirm" //确认优惠券 + + static readonly COPY_USER_ID = "client.copy_user_id" //复制用户id + + static readonly SHOW_PALYBACK_HINT_DIALOG = "client.show.playback.hint.dialog" + + static readonly EXIT_APP = "client.exit.app" //退出APP + + static readonly SHOW_DIALOG = "client.show.dialog" //弹出退出app的弹框 + + static readonly START_COUPON_ANIMATION = "client.start.coupon.animation" + + static readonly CHALLENGE_TASK_SIGN_IN = "client.challenge.tasK.sign.in" //签到 + + static readonly CHALLENGE_TASK_SIGN_IN_SUCCESS = "client.challenge.tasK.sign.in.success" //签到成功 + + static readonly CHALLENGE_TASK_SIGN_IN_FAIL = "client.challenge.tasK.sign.in.fail" //签到失败 +} \ No newline at end of file diff --git a/entry/src/main/ets/common/RouterUrls.ets b/entry/src/main/ets/common/RouterUrls.ets new file mode 100644 index 0000000..d26eca5 --- /dev/null +++ b/entry/src/main/ets/common/RouterUrls.ets @@ -0,0 +1,146 @@ +export class RouterUrls { + /** + * 通用web加载页 + */ + static readonly WEB_PAGE = "pages/web/WebPage" + + /** + * 引导页 + */ + static readonly GUIDE_PAGE = "pages/guide/GuidePage" + + /** + * 登录页 + */ + static readonly LOGIN_PAGE = "pages/login/LoginPage" + + /** + * 扫码登录页 + */ + static readonly QRCODE_LOGIN_PAGE = "pages/login/qrcode/QrcodeLoginPage" + + /** + * 主页 + */ + static readonly MAIN_PAGE = "pages/main/MainPage" + + /** + * 链接提取页 + */ + static readonly TAKE_MATERIAL_PAGE = "pages/main/home/link/TakeMaterialPage" + + /** + * 提取教程页 + */ + static readonly COURSE_PAGE = "pages/main/home/course/CoursePage" + + /** + * 视频号提取页 + */ + static readonly WX_VIDEO_PAGE = "pages/main/home/wx/WxVideoPage" + + /** + * 添加水印页 + */ + static readonly ADD_WATER_MARKER_PAGE = "pages/main/home/tools/AddWaterMarkerPage" + + /** + * MD5去重页 + */ + static readonly MD5_RESET_PAGE = "pages/main/home/tools/MD5ResetPage" + + /** + * 视频倒放页 + */ + static readonly VIDEO_REVERSE_PAGE = "pages/main/home/tools/VideoReversePage" + + /** + * 视频裁剪页 + */ + static readonly VIDEO_MIRROR_PAGE = "pages/main/home/tools/VideoMirrorPage" + + /** + * 视频裁剪页 + */ + static readonly CLIP_VIDEO_PAGE = "pages/main/home/tools/ClipVideoPage" + + /** + * 去除音乐页 + */ + static readonly REMOVE_AUDIO_PAGE = "pages/main/home/tools/RemoveAudioPage" + + /** + * 添加音乐页 + */ + static readonly ADD_AUDIO_PAGE = "pages/main/home/tools/AddAudioPage" + + /** + * 视频转音频页 + */ + static readonly TAKE_AUDIO_PAGE = "pages/main/home/tools/TakeAudioPage" + + /** + * 素材详情页 + */ + static readonly MATERIAL_DETAIL_PAGE = "pages/main/home/material/MaterialDetailPage" + + /** + * 用户设置页 + */ + static readonly USER_SETTINGS_PAGE = "pages/main/mine/user/UserSettingsPage" + + /** + * vip页 + */ + static readonly VIP_PAGE = "pages/main/mine/vip/VipPage" + + /** + * 下载记录页 + */ + static readonly DOWNLOAD_HISTORY_PAGE = "pages/main/mine/history/DownloadHistoryPage" + + /** + * 钻石充值页 + */ + static readonly RECHARGE_DIAMOND_PAGE = "pages/main/mine/diamond/DiamondPage" + + /** + * 设置页 + */ + static readonly SETTING_PAGE = "pages/main/mine/setting/SettingsPage" + + /** + * 意见反馈页 + */ + static readonly FEEDBACK_PAGE = "pages/main/mine/setting/feedback/FeedbackPage" + + /** + * 关于页 + */ + static readonly ABOUT_PAGE = "pages/main/mine/setting/about/AboutPage" + + /** + * 账号绑定页 + */ + static readonly BIND_ACCOUNT_PAGE = "pages/main/mine/setting/account/BindAccountPage" + + /** + * 账号管理页 + */ + static readonly MANAGE_ACCOUNT_PAGE = "pages/main/mine/setting/account/ManageAccountPage" + + /** + * 视频播放页 + */ + static readonly VIDEO_PLAYER_PAGE = "pages/video/VideoPlayerPage" + + /** + * 音频播放页 + */ + static readonly AUDIO_PLAYER_PAGE = "pages/audio/AudioPlayerPage" + + /** + * 图片查看页 + */ + static readonly PHOTO_VIEW_PAGE = "pages/photo/PhotoViewPage" +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/BindPhoneDialog.ets b/entry/src/main/ets/dialog/BindPhoneDialog.ets new file mode 100644 index 0000000..2a2395d --- /dev/null +++ b/entry/src/main/ets/dialog/BindPhoneDialog.ets @@ -0,0 +1,205 @@ +import { StrUtil } from '@pura/harmony-utils'; +import { plainToInstance } from 'class-transformer'; +import { SendCodeEntity } from '../entity/SendCodeEntity'; +import { apiService } from '../net/ApiService'; +import { HttpResult } from '../net/HttpResult'; +import { ToastUtils } from '../utils/ToastUtils'; +import { LoadingDialog } from './LoadingDialog'; + +@CustomDialog +export struct BindPhoneDialog { + controller: CustomDialogController; + + success: () => void = () => {} + + phone: string = ''; + code: string = ''; + timestamp: string = ''; + intervalId: number = -1; + + @State countDownTime: number = 0; + + build() { + RelativeContainer() { + Text('绑定手机号') + .width('auto') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + left: { anchor: '__container__', align: HorizontalAlign.Start }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + }) + .margin({ top: 18 }) + .id('tv_title') + + Image($r('app.media.ic_close')) + .width(20) + .height(20) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .margin({ top: 12, right: 12 }) + .onClick(() => { + this.controller.close(); + }) + + TextInput({ placeholder: '请输入手机号' }) + .height(48) + .type(InputType.PhoneNumber) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 15 }) + .maxLength(11) + .backgroundColor($r('app.color.color_222222')) + .borderRadius(8) + .margin({ top: 20, left: 16, right: 16 }) + .alignRules({ + top: { anchor: 'tv_title', align: VerticalAlign.Bottom } + }) + .id('et_phone') + .onChange((value: string) => { + this.phone = value; + }) + + Row() { + TextInput({ placeholder: '请输入验证码' }) + .height(48) + .type(InputType.Number) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 15 }) + .maxLength(6) + .backgroundColor($r('app.color.color_222222')) + .borderRadius(8) + .margin({ left: 16, right: 12 }) + .id('et_code') + .onChange((value: string) => { + this.code = value; + }) + .layoutWeight(1) + + Text(this.countDownTime === 0 && StrUtil.isEmpty(this.timestamp) ? '获取验证码' : this.countDownTime > 0 ? `${this.countDownTime}s` : '重新发送') + .width(110) + .height(48) + .textAlign(TextAlign.Center) + .fontColor($r("app.color.color_466afd")) + .fontSize(15) + .backgroundColor($r('app.color.color_222222')) + .borderRadius(8) + .margin({ right: 16 }) + .onClick(() => { + this.sendCode(this.phone); + }) + } + .alignRules({ + top: { anchor: 'et_phone', align: VerticalAlign.Bottom } + }) + .margin({ top: 14 }) + .id('layout_code') + + Stack() { + Button('确定', { type: ButtonType.Capsule, stateEffect: true }) + .width('100%') + .height(46) + .fontColor(Color.White) + .fontSize(15) + .fontWeight(FontWeight.Medium) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .onClick(() => { + this.bindPhone(); + }) + } + .padding({ left: 16, right: 16 }) + .margin({ top: 55 }) + .alignRules({ + top: { anchor: 'layout_code', align: VerticalAlign.Bottom } + }) + } + .width('100%') + .height(320) + .borderRadius(20) + .backgroundColor($r('app.color.window_background')) + } + + sendCode(phone: string) { + if (StrUtil.isEmpty(this.phone)) { + ToastUtils.show('请输入手机号'); + return; + } + if (this.phone.length != 11) { + ToastUtils.show('请输入正确的手机号'); + return; + } + LoadingDialog.show(this.getUIContext()); + try { + apiService.sendCode(phone) + .then((result: HttpResult) => { + if (result.isSuccess()) { + ToastUtils.show('验证码已发送'); + const codeEntity = plainToInstance(SendCodeEntity, result.data); + this.timestamp = codeEntity.timestamp; + this.countDownTime = 60; + this.intervalId = setInterval(() => { + if (this.countDownTime > 0) { + this.countDownTime-- + } else { + if (this.intervalId !== 0) { + clearInterval(this.intervalId); + } + } + }, 1000) + } else { + ToastUtils.show(result.message, true); + } + }) + .finally(() => { + LoadingDialog.dismiss(); + }) + } catch (e) { + LoadingDialog.dismiss(); + console.log(e); + ToastUtils.show(e); + } + } + + bindPhone() { + if (StrUtil.isEmpty(this.phone)) { + ToastUtils.show('请输入手机号'); + return; + } + if (this.phone.length != 11) { + ToastUtils.show('请输入正确的手机号'); + return; + } + if (StrUtil.isEmpty(this.code)) { + ToastUtils.show('请输入验证码'); + return; + } + LoadingDialog.show(this.getUIContext()); + try { + apiService.loginByPhone(this.phone, this.code, this.timestamp, true) + .then((result: HttpResult) => { + if (result.isSuccess()) { + ToastUtils.show('绑定成功'); + this.controller.close(); + this.success(); + } else { + ToastUtils.show(result.message, true) + } + }) + .finally(() => { + LoadingDialog.dismiss(); + }) + } catch (e) { + LoadingDialog.dismiss(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/DiamondRuleDialog.ets b/entry/src/main/ets/dialog/DiamondRuleDialog.ets new file mode 100644 index 0000000..fb455bb --- /dev/null +++ b/entry/src/main/ets/dialog/DiamondRuleDialog.ets @@ -0,0 +1,59 @@ +import { DiamondRuleEntity } from "../entity/DiamondRuleEntity"; +import { DiamondRuleItemView } from "../view/DiamondRuleItemView"; + +@CustomDialog +export struct DiamondRuleDialog { + controller: CustomDialogController; + + build() { + RelativeContainer() { + Image($r('app.media.ic_diamond_rule_top_bg')).width('100%').aspectRatio(1.811) + + Image($r('app.media.ic_diamond_rule_indicator')).width(86).height(16) + .alignRules({ + left: {anchor: 'tv_title', align: HorizontalAlign.Start}, + right: {anchor: 'tv_title', align: HorizontalAlign.End}, + bottom: {anchor: 'tv_title', align: VerticalAlign.Bottom} + }) + .margin({left: -8, bottom: -4}) + Text('规则说明').fontColor($r('app.color.color_1a1a1a')).fontSize(20).fontFamily('almmsht').id('tv_title') + .alignRules({ + left: {anchor: '__container__', align: HorizontalAlign.Start}, + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .width('auto') + .margin({top: 20}) + + Image($r('app.media.ic_close2')).width(24).height(24) + .alignRules({ + top: {anchor: 'tv_title', align: VerticalAlign.Top}, + right: {anchor: '__container__', align: HorizontalAlign.End}, + bottom: {anchor: 'tv_title', align: VerticalAlign.Bottom} + }) + .margin({right: 16}) + .onClick(() => { + this.controller.close() + }) + + List({space: 20}) { + ForEach(DiamondRuleEntity.getRuleList(), (item: DiamondRuleEntity) => { + ListItem() { + DiamondRuleItemView({entity: item}) + } + }) + } + .width('auto') + .height('auto') + .margin({left: 16, top: 24, right: 16, bottom: 30}) + .backgroundColor(Color.White) + .borderRadius(10) + .padding({left: 16, top: 20, right: 16, bottom: 20}) + .alignRules({ + top: {anchor: 'tv_title', align: VerticalAlign.Bottom} + }) + } + .width('100%') + .height('auto') + .backgroundColor('#F6F6F6') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/DownloadDialog.ets b/entry/src/main/ets/dialog/DownloadDialog.ets new file mode 100644 index 0000000..df07083 --- /dev/null +++ b/entry/src/main/ets/dialog/DownloadDialog.ets @@ -0,0 +1,220 @@ +import { ComponentContent } from '@kit.ArkUI'; +import { AppUtil, DisplayUtil, FileUtil, FormatUtil, NumberUtil, StrUtil, WindowUtil } from '@pura/harmony-utils'; +import { DialogCallback } from '../callback/DialogCallback'; + +export enum DownloadStatus { + COMPLETED, + DOWNLOADING, + VIDEO_DOWNLOADING, + AUDIO_DOWNLOADING, + PROCESSING, + PROCESSING_PROGRESS, + TAKING +} + +export declare class DownloadDialogOption { + status: DownloadStatus + totalSize: number + progress: number + totalCount: number + index: number + isAudio?: boolean + callback?: DialogCallback +} + +@Builder +function defaultBuilder(option: DownloadDialogOption) { + Column() { + Text((option.status === DownloadStatus.DOWNLOADING ? '下载中' : + option.status === DownloadStatus.VIDEO_DOWNLOADING ? '视频下载中' : + option.status === DownloadStatus.AUDIO_DOWNLOADING ? '音频下载中' : '处理中') + + (option.totalCount > 1 ? ` ${option.index + 1}/${option.totalCount}` : '')) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(16) + .visibility(option.status === DownloadStatus.COMPLETED ? Visibility.None : Visibility.Visible) + + Image(option.status === DownloadStatus.COMPLETED ? $r('app.media.ic_completed') : $r('app.media.ic_downloading')) + .width(80) + .height(80) + .margin({ top: 20 }) + + Stack() { + Column() { + Stack({ alignContent: Alignment.Start }) { + Progress({ value: option.progress, total: option.totalSize, type: ProgressType.Linear }) + .width('100%') + .style({ strokeWidth: 12, strokeRadius: 6 }) + .color('#FC4F54') + .colorBlend($r('app.color.color_10ffffff')) + .borderRadius(6) + + Text(FormatUtil.getFormatPercentage(option.progress / option.totalSize, 1)) + .width(40) + .height(18) + .textAlign(TextAlign.Center) + .fontColor(Color.White) + .fontSize(10) + .borderRadius(10) + .borderWidth(1) + .borderColor($r('app.color.color_80ffffff')) + .backgroundColor($r("app.color.color_466afd")) + .translate({ x: (AppUtil.getUIContext().px2vp(DisplayUtil.getWidth()) * 0.8 - 80) * option.progress / option.totalSize }) + } + + Text(`${FileUtil.getFormatFileSize(option.progress)}/${option.totalSize !== 0 ? + FileUtil.getFormatFileSize(option.totalSize) : '获取中'}`) + .fontColor($r('app.color.color_999999')) + .fontSize(12) + .margin({ top: 16 }) + .visibility(option.status === DownloadStatus.PROCESSING ? Visibility.Hidden : Visibility.Visible) + + Row() { + Button('取消下载', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(36) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (option.callback?.cancel) { + option.callback.cancel() + } + DownloadDialog.dismiss() + }) + + Button('后台下载', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(36) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 10 }) + .onClick(() => { + if (option.callback?.confirm) { + option.callback.confirm() + } + DownloadDialog.dismiss() + }) + .visibility(Visibility.None) + } + .margin({ top: 16 }) + } + .margin({ top: 20 }) + .visibility(option.status === DownloadStatus.COMPLETED ? Visibility.None : Visibility.Visible) + + Column() { + Text(option.isAudio ? '已保存到本地' : '已保存到系统相册中').fontColor($r('app.color.color_90ffffff')).fontSize(16) + + Text(option.isAudio ? '文件管理/我的手机/Download/素材魔方' : '文件管理/我的手机/Download/图库') + .fontColor($r('app.color.color_999999')) + .fontSize(12) + .margin({ top: 10 }) + + Row() { + Button('取消', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(36) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (option.callback?.cancel) { + option.callback.cancel() + } + DownloadDialog.dismiss() + }) + + Blank().width(10) + + Button('前往查看', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(36) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .onClick(() => { + if (option.callback?.confirm) { + option.callback.confirm() + } + DownloadDialog.dismiss() + }) + } + .margin({ top: 16 }) + } + .margin({ top: 20 }) + .visibility(option.status === DownloadStatus.COMPLETED ? Visibility.Visible : Visibility.None) + } + } + .width('80%') + .borderRadius(10) + .backgroundColor($r('app.color.color_222222')) + .padding(20) +} + +export class DownloadDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + confirm?: () => void; + cancel?: () => void; + + private static instance: DownloadDialog | null = null; + + static show(context: UIContext, option: DownloadDialogOption) { + if (DownloadDialog.instance === null) { + DownloadDialog.instance = new DownloadDialog(context, option); + } + DownloadDialog.instance?.openDialog(); + } + + static update(option: DownloadDialogOption) { + DownloadDialog.instance?.updateDialog(option); + } + + static dismiss() { + if (DownloadDialog.instance !== null) { + DownloadDialog.instance.closeDialog(); + DownloadDialog.instance = null; + } + } + + constructor(context: UIContext, option: DownloadDialogOption) { + this.context = context; + this.confirm = option.callback?.confirm + this.cancel = option.callback?.cancel + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder), option); + } + + + openDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + onWillDismiss: () => { + return false + } + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } + + updateDialog(option: DownloadDialogOption) { + option.callback = { confirm: this.confirm, cancel: this.cancel } + this.contentNode?.update(option); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/EditTextDialog.ets b/entry/src/main/ets/dialog/EditTextDialog.ets new file mode 100644 index 0000000..3741070 --- /dev/null +++ b/entry/src/main/ets/dialog/EditTextDialog.ets @@ -0,0 +1,128 @@ +import { ComponentContent } from '@kit.ArkUI'; +import { StrUtil } from '@pura/harmony-utils'; +import { DialogCallback } from '../callback/DialogCallback'; +import { ToastUtils } from '../utils/ToastUtils'; + +export declare class EditTextDialogOption { + title?: string; + content?: string; + hintText?: string; + confirm?: (content: string) => void; +} + +@Builder +function defaultBuilder(option: EditTextDialogOption) { + Column() { + RelativeContainer() { + Text(option.title ?? '编辑') + .width('auto') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontWeight(FontWeight.Medium) + .alignRules( { + left: {anchor: '__container__', align: HorizontalAlign.Start}, + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + + Image($r('app.media.ic_close')).width(20).height(20) + .alignRules( { + top: {anchor: '__container__', align: VerticalAlign.Top}, + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .margin({ right: 16 }) + .onClick(() => { + EditTextDialog.dismiss() + }) + } + .width('100%') + .height(30) + + TextInput({ placeholder: option.hintText ?? '请输入', text: option.content}) + .width('90%') + .height(48) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 15 }) + .maxLength(12) + .backgroundColor($r('app.color.color_222222')) + .borderRadius(8) + .margin({ top: 16 }) + .onChange((content) => { + option.content = content + }) + + Button('确定', { type: ButtonType.Capsule, stateEffect: true }) + .fontColor(Color.White) + .fontSize(16) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .width('90%') + .height(46) + .margin({ top: 30 }) + .onClick(() => { + if (StrUtil.isEmpty(option.content)) { + ToastUtils.show('内容不能为空') + } else { + if (option.confirm) { + option.confirm(option.content!!); + } + EditTextDialog.dismiss(); + } + }) + } + .padding({ top: 22, bottom: 22 }) + .borderRadius(20) + .backgroundColor($r('app.color.window_background')) + .width('100%') +} + +export class EditTextDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + + private static instance: EditTextDialog | null = null; + + static show(context: UIContext, option: EditTextDialogOption) { + if (EditTextDialog.instance === null) { + EditTextDialog.instance = new EditTextDialog(context, option); + } + EditTextDialog.instance?.openDialog(); + } + + static dismiss() { + if (EditTextDialog.instance !== null) { + EditTextDialog.instance.closeDialog(); + EditTextDialog.instance = null; + } + } + + constructor(context: UIContext, option: EditTextDialogOption) { + this.context = context; + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder), option); + } + + openDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + maskColor: '#CC000000', + autoCancel: false, + alignment: DialogAlignment.Bottom + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/JoinWxGroupCourseDialog.ets b/entry/src/main/ets/dialog/JoinWxGroupCourseDialog.ets new file mode 100644 index 0000000..76a7398 --- /dev/null +++ b/entry/src/main/ets/dialog/JoinWxGroupCourseDialog.ets @@ -0,0 +1,179 @@ +import { BusinessError, request } from '@kit.BasicServicesKit'; +import { AppUtil, FileUtil, PasteboardUtil } from '@pura/harmony-utils'; +import { ToastUtils } from '../utils/ToastUtils'; +import { SaveUtils } from '../utils/SaveUtils'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { Want } from '@kit.AbilityKit'; +import { WXApi } from '../utils/wechat/WXApiEventHandlerImpl'; + +@CustomDialog +export struct JoinWxGroupCourseDialog { + controller: CustomDialogController; + + swiperController: SwiperController = new SwiperController() + + isPlayback: boolean = true + + images: Array = [ + $r('app.media.ic_wx_group_tip1'), + $r("app.media.ic_wx_group_tip2"), + $r("app.media.ic_wx_group_tip3"), + $r("app.media.ic_wx_group_tip4"), + $r('app.media.ic_wx_group_tip5') + ]; + + steps: Array = ['第一步', '第二步', '第三步', '第四步', '第五步'] + + qrCodePath = 'https://cdn.batiao8.com/kct/mp/kcsp_qrcode.png' + + @State currentIndex: number = 0 + + downloadImage() { + try { + const cachePath = FileUtil.getCacheDirPath() + FileUtil.separator + 'kcsp_wx_group_qrcode.jpg'; + if (FileUtil.accessSync(cachePath)) { + FileUtil.unlink(cachePath) + } + request.downloadFile(AppUtil.getContext(), { + url: this.qrCodePath, + filePath: cachePath + }).then((downloadTask: request.DownloadTask) => { + downloadTask.on('complete', () => { + console.info('download complete'); + SaveUtils.saveImageVideoToAlbumDialog([cachePath], false) + .then((saved) => { + if (saved) { + PasteboardUtil.setDataTextSync(LoginManager.getUserInfo()!!.user_id) + ToastUtils.show('ID复制成功') + this.jumpToWxScan() + this.controller.close() + } else { + ToastUtils.show('二维码保存失败') + } + }) + .catch(() => { + ToastUtils.show('二维码保存失败') + }) + }) + }).catch((err: BusinessError) => { + ToastUtils.show('二维码下载失败') + }); + } catch (error) { + ToastUtils.show('二维码下载失败') + } + } + + async jumpToWxScan() { + let intent: Want = { + action: 'ohos.want.action.viewData', + uri: 'weixin://dl/scan' // 微信扫一扫的固定协议 + }; + try { + await AppUtil.getContext().startAbility(intent); + } catch (error) { + let err: BusinessError = error as BusinessError; + console.error(err.message) + } + } + + build() { + RelativeContainer() { + Image($r('app.media.ic_wx_group_tip_bg')).width('100%').height(320) + + Text(this.isPlayback ? '添加直播回放助手流程' : '添加视频助手流程') + .width('auto') + .fontColor(Color.White) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .margin({ top: 16 }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .id('tv_title') + + List({space: 16}) { + ForEach(this.steps, (item: string, index) => { + ListItem() { + Text(item) + .fontColor(index == this.currentIndex ? Color.White : $r('app.color.color_bebebe')) + .fontSize(index == this.currentIndex ? 16 : 14) + .fontWeight(index == this.currentIndex ? FontWeight.Medium : FontWeight.Normal) + } + .onClick(() => { + this.swiperController.changeIndex(index, true) + }) + }) + } + .width('100%') + .height(24) + .listDirection(Axis.Horizontal) + .alignListItem(ListItemAlign.Center) + .alignRules({ + top: {anchor: 'tv_title', align: VerticalAlign.Bottom} + }) + .margin({top: 20}) + .padding({left: 16, right: 16}) + .id('li_step') + + Swiper(this.swiperController) { + ForEach(this.images, (item: Resource) => { + Image(item).width('100%').aspectRatio(2.04).margin({ left: 16, right: 16 }) + .borderRadius(20) + }) + } + .indicator(false) + .loop(true) + .autoPlay(true) + .interval(2000) + .onChange((number) => { + this.currentIndex = number + }) + .alignRules({ + top: {anchor: 'li_step', align: VerticalAlign.Bottom} + }) + .margin({top: 24}) + .id('swiper') + + Row() { + Button('取消', { type: ButtonType.Capsule, stateEffect: false }) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .backgroundColor($r('app.color.color_333333')) + .width(126) + .height(46) + .onClick(() => { + this.controller.close() + }) + Blank().width(9) + Button('前往微信扫码加群', { type: ButtonType.Capsule, stateEffect: false }) + .fontColor(Color.White) + .fontSize(15) + .backgroundColor(Color.Transparent) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .layoutWeight(1) + .height(46) + .onClick(() => { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('未安装微信客户端,请先下载安装微信客户端'); + return; + } + this.downloadImage() + }) + } + .backgroundColor($r('app.color.color_222222')) + .alignRules({ + top: {anchor: 'swiper', align: VerticalAlign.Bottom} + }) + .margin({top: 28}) + .padding({left: 16, top: 9, right: 16, bottom: 30}) + } + .width('100%') + .height('auto') + .borderRadius(20) + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/LoadingDialog.ets b/entry/src/main/ets/dialog/LoadingDialog.ets new file mode 100644 index 0000000..78e57de --- /dev/null +++ b/entry/src/main/ets/dialog/LoadingDialog.ets @@ -0,0 +1,81 @@ +import { ComponentContent } from '@kit.ArkUI'; + +@Builder +function defaultBuilder() { + Column() { + LoadingProgress() + .color(Color.White) + .width(50) + .height(50) + + Text('加载中') + .fontColor(Color.White) + .fontSize(12) + .margin({ top: 5 }) + .width('auto') + .height('auto') + } + .justifyContent(FlexAlign.Center) + .borderRadius(6) + .backgroundColor('#CC000000') + .width(86) + .height(86) +} + +export class LoadingDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + + private static instance: LoadingDialog | null = null; + + static show(context: UIContext, cancelable: boolean = false) { + if (LoadingDialog.instance === null) { + LoadingDialog.instance = new LoadingDialog(context); + } + LoadingDialog.instance?.openDialog(cancelable); + } + + static dismiss() { + if (LoadingDialog.instance !== null) { + LoadingDialog.instance.closeDialog(); + LoadingDialog.instance = null; + } + } + + constructor(context: UIContext) { + this.context = context; + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder)); + } + + openDialog(cancelable: boolean) { + if (this.context !== null && this.contentNode !== null) { + if (!cancelable) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + onWillDismiss: () => { + return false + }, + autoCancel: false + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } else { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + autoCancel: false + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/LoginTipDialog.ets b/entry/src/main/ets/dialog/LoginTipDialog.ets new file mode 100644 index 0000000..df49359 --- /dev/null +++ b/entry/src/main/ets/dialog/LoginTipDialog.ets @@ -0,0 +1,80 @@ +import { Constants } from '../common/Constants'; +import { RouterUrls } from '../common/RouterUrls'; + +@CustomDialog +export struct LoginTipDialog { + controller: CustomDialogController; + cancel: () => void = () => { + } + confirm: () => void = () => { + } + + build() { + RelativeContainer() { + Image($r('app.media.ic_tip_dialog_top_bg')).width('100%').aspectRatio(2.72) + + Column() { + Text('温馨提示') + .fontColor($r('app.color.color_212226')) + .fontSize(24) + .fontFamily('ysbth') + .margin({ top: 20 }) + + Text() { + Span('登录之前需查看并同意') + Span('《用户协议》') + .fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ + url: RouterUrls.WEB_PAGE, params: { + title: '用户协议', + url: Constants.USER_AGREEMENT + } + }) + }) + Span('和') + Span('《隐私政策》') + .fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ + url: RouterUrls.WEB_PAGE, params: { + title: '隐私政策', + url: Constants.PRIVACY_POLICY + } + }) + }) + } + .fontColor($r('app.color.color_727686')) + .fontSize(14) + .textAlign(TextAlign.Center) + .margin({ top: 20, left: 20, right: 20 }) + + Button('同意', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(40) + .fontColor(Color.White) + .fontSize(16) + .backgroundColor($r("app.color.color_466afd")) + .margin({ top: 20, bottom: 20 }) + .onClick(() => { + this.controller.close(); + if (this.confirm) { + this.confirm(); + } + }) + } + + Image($r('app.media.ic_close_dialog')).width(18).height(18) + .margin({top: 10, right: 10}) + .alignRules({ + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .onClick(() => { + this.controller.close() + }) + } + .height('auto') + .borderRadius(20) + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/MaterialLoadingDialog.ets b/entry/src/main/ets/dialog/MaterialLoadingDialog.ets new file mode 100644 index 0000000..faafc9f --- /dev/null +++ b/entry/src/main/ets/dialog/MaterialLoadingDialog.ets @@ -0,0 +1,84 @@ +import { ComponentContent } from '@kit.ArkUI'; + +@Builder +function defaultBuilder(text: string) { + Column() { + LoadingProgress() + .color(Color.White) + .width(50) + .height(50) + + Text(text) + .fontColor(Color.White) + .fontSize(12) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({ left:10, top: 5, right: 10 }) + .width('auto') + .height('auto') + } + .width(192) + .height(124) + .justifyContent(FlexAlign.Center) + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .padding({left: 10, right: 10}) +} + +export class MaterialLoadingDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + + private static instance: MaterialLoadingDialog | null = null; + + static show(context: UIContext, text?: string) { + if (MaterialLoadingDialog.instance === null) { + MaterialLoadingDialog.instance = new MaterialLoadingDialog(context, text ? text : ''); + } + MaterialLoadingDialog.instance?.openDialog(); + } + + static update(text: string) { + MaterialLoadingDialog.instance?.updateDialog(text); + } + + static dismiss() { + if (MaterialLoadingDialog.instance !== null) { + MaterialLoadingDialog.instance.closeDialog(); + MaterialLoadingDialog.instance = null; + } + } + + constructor(context: UIContext, text: string) { + this.context = context; + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder), text); + } + + + openDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + onWillDismiss: () => { + return false + } + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } + + updateDialog(text: string) { + this.contentNode?.update(text); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/PrivacyPolicyDialog.ets b/entry/src/main/ets/dialog/PrivacyPolicyDialog.ets new file mode 100644 index 0000000..ebaa5bd --- /dev/null +++ b/entry/src/main/ets/dialog/PrivacyPolicyDialog.ets @@ -0,0 +1,100 @@ +import { Constants } from '../common/Constants'; +import { RouterUrls } from '../common/RouterUrls'; +import { LengthMetrics } from '@kit.ArkUI'; + +@CustomDialog +export struct PrivacyPolicyDialog { + controller: CustomDialogController; + cancel: () => void = () => { + } + confirm: () => void = () => { + } + + build() { + Stack({alignContent: Alignment.Top}) { + Image($r('app.media.ic_tip_dialog_top_bg')).width('100%').aspectRatio(2.72) + + Column() { + Text('欢迎使用') + .fontColor($r('app.color.color_212226')) + .fontSize(24) + .fontFamily('ysbth') + .margin({ top: 20 }) + + Text() { + Span('请你务必审慎阅读、充分理解') + Span('《服务协议》') + .fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ + url: RouterUrls.WEB_PAGE, params: { + title: '用户协议', + url: Constants.USER_AGREEMENT + } + }) + }) + Span('和') + Span('《隐私政策》') + .fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ + url: RouterUrls.WEB_PAGE, params: { + title: '隐私政策', + url: Constants.PRIVACY_POLICY + } + }) + }) + Span('各条款,包括但不限于:为了更好的向你提供服务,我们需要访问你的相册、位置信息等。你可阅读') + Span('《隐私政策》') + .fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ + url: RouterUrls.WEB_PAGE, params: { + title: '隐私政策', + url: Constants.PRIVACY_POLICY + } + }) + }) + Span('了解详细信息。如果你同意,请点击下面同意按钮开始接受我们的服务。') + } + .fontColor($r('app.color.color_727686')) + .fontSize(14) + .lineSpacing(LengthMetrics.px(20)) + .margin({ top: 10, left: 20, right: 20 }) + + Row(){ + Button('拒绝', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(40) + .fontColor($r('app.color.color_80859B')) + .fontSize(16) + .backgroundColor($r("app.color.color_f1f2f6")) + .margin({left: 20}) + .onClick(() => { + this.controller.close(); + if (this.cancel) { + this.cancel(); + } + }) + Blank().layoutWeight(1) + Button('同意', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(40) + .fontColor(Color.White) + .fontSize(16) + .backgroundColor($r("app.color.color_466afd")) + .margin({right: 20}) + .onClick(() => { + this.controller.close(); + if (this.confirm) { + this.confirm(); + } + }) + } + .margin({ top: 20, bottom: 20 }) + } + } + .borderRadius(20) + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/SimpleTipDialog.ets b/entry/src/main/ets/dialog/SimpleTipDialog.ets new file mode 100644 index 0000000..02f8917 --- /dev/null +++ b/entry/src/main/ets/dialog/SimpleTipDialog.ets @@ -0,0 +1,111 @@ +import { ComponentContent } from '@kit.ArkUI'; +import { StrUtil } from '@pura/harmony-utils'; +import { DialogCallback } from '../callback/DialogCallback'; + +export declare class TipDialogOption { + title?: string; + content: string; + buttonText?: string; + callback?: DialogCallback; +} + +@Builder +function defaultBuilder(option: TipDialogOption) { + RelativeContainer() { + Image($r('app.media.ic_tip_dialog_top_bg')).width('100%').aspectRatio(2.72) + + Column() { + Text(option.title) + .fontColor($r('app.color.color_212226')) + .fontSize(22) + .fontWeight(FontWeight.Medium) + .visibility(StrUtil.isEmpty(option.title) ? Visibility.Hidden : Visibility.Visible) + Text(option.content) + .textAlign(TextAlign.Center) + .fontColor(StrUtil.isNotEmpty(option.title) ? $r('app.color.color_727686') : $r('app.color.color_212226')) + .fontSize(StrUtil.isNotEmpty(option.title) ? 14 : 22) + .fontWeight(StrUtil.isNotEmpty(option.title) ? FontWeight.Normal : FontWeight.Medium) + .margin({ left: 27, top: 12, right: 27 }) + .maxLines(5) + Button(StrUtil.isNotEmpty(option.buttonText) ? option.buttonText : '确定', { type: ButtonType.Capsule, stateEffect: true }) + .width(110) + .height(40) + .fontColor(Color.White) + .fontSize(16) + .backgroundColor($r("app.color.color_466afd")) + .margin({ top: 20, bottom: 20 }) + .onClick(() => { + SimpleTipDialog.dismiss(); + if (option.callback?.confirm) { + option.callback?.confirm(); + } + }) + } + .padding({ top: 22, bottom: 22 }) + + Image($r('app.media.ic_close_dialog')).width(18).height(18) + .margin({top: 10, right: 10}) + .alignRules({ + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .onClick(() => { + SimpleTipDialog.dismiss(); + }) + } + .borderRadius(20) + .backgroundColor(Color.White) + .width('80%') +} + +export class SimpleTipDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + + private static instance: SimpleTipDialog | null = null; + + static show(context: UIContext, option: TipDialogOption, canCancel: boolean = true) { + if (SimpleTipDialog.instance === null) { + SimpleTipDialog.instance = new SimpleTipDialog(context, option); + } + SimpleTipDialog.instance?.openDialog(canCancel); + } + + static dismiss() { + if (SimpleTipDialog.instance !== null) { + SimpleTipDialog.instance.closeDialog(); + SimpleTipDialog.instance = null; + } + } + + constructor(context: UIContext, option: TipDialogOption) { + this.context = context; + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder), option); + } + + openDialog(canCancel: boolean) { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + maskColor: '#CC000000', + onWillDismiss: () => { + return canCancel + } + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } + + updateDialog(options: TipDialogOption) { + this.contentNode?.update(options) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/dialog/TipDialog.ets b/entry/src/main/ets/dialog/TipDialog.ets new file mode 100644 index 0000000..7f37990 --- /dev/null +++ b/entry/src/main/ets/dialog/TipDialog.ets @@ -0,0 +1,121 @@ +import { ComponentContent } from '@kit.ArkUI'; +import { StrUtil } from '@pura/harmony-utils'; +import { DialogCallback } from '../callback/DialogCallback'; + +export declare class TipDialogOption { + title?: string; + content: string; + leftText?: string; + rightText?: string; + callback?: DialogCallback; +} + +@Builder +function defaultBuilder(option: TipDialogOption) { + Column() { + Text(option.title) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontWeight(FontWeight.Medium) + .visibility(StrUtil.isEmpty(option.title) ? Visibility.Hidden : Visibility.Visible) + Text(option.content) + .textAlign(TextAlign.Center) + .fontColor(StrUtil.isNotEmpty(option.title) ? $r('app.color.color_80ffffff') : $r('app.color.color_90ffffff')) + .fontSize(StrUtil.isNotEmpty(option.title) ? 14 : 18) + .fontWeight(StrUtil.isNotEmpty(option.title) ? FontWeight.Normal : FontWeight.Medium) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({ left: 27, top: 12, right: 27 }) + .maxLines(5) + Row() { + Button(StrUtil.isNotEmpty(option.leftText) ? option.leftText : '取消', { type: ButtonType.Capsule, stateEffect: false }) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(14) + .backgroundColor($r('app.color.color_333333')) + .layoutWeight(1) + .height(40) + .onClick(() => { + TipDialog.dismiss(); + if (option.callback?.cancel) { + option.callback?.cancel(); + } + }) + Blank().width(12) + Button(StrUtil.isNotEmpty(option.rightText) ? option.rightText : '确定', { type: ButtonType.Capsule, stateEffect: false }) + .fontColor(Color.White) + .fontSize(14) + .backgroundColor(Color.Transparent) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .layoutWeight(1) + .height(40) + .onClick(() => { + TipDialog.dismiss(); + if (option.callback?.confirm) { + option.callback?.confirm(); + } + }) + } + .padding({ left: 14, right: 14 }) + .margin({ top: 20 }) + } + .padding({ top: 22, bottom: 22 }) + .borderRadius(20) + .backgroundColor($r('app.color.color_222222')) + .width('80%') +} + +export class TipDialog { + context: UIContext | null = null; + contentNode: ComponentContent | null = null; + + private static instance: TipDialog | null = null; + + static show(context: UIContext, option: TipDialogOption, canCancel: boolean = true) { + if (TipDialog.instance === null) { + TipDialog.instance = new TipDialog(context, option); + } + TipDialog.instance?.openDialog(canCancel); + } + + static dismiss() { + if (TipDialog.instance !== null) { + TipDialog.instance.closeDialog(); + TipDialog.instance = null; + } + } + + constructor(context: UIContext, option: TipDialogOption) { + this.context = context; + this.contentNode = new ComponentContent(context, wrapBuilder(defaultBuilder), option); + } + + openDialog(canCancel: boolean) { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().openCustomDialog(this.contentNode, { + maskColor: '#CC000000', + onWillDismiss: () => { + return canCancel; + } + }) + .then(() => { + console.info('OpenCustomDialog complete.'); + }) + } + } + + closeDialog() { + if (this.context !== null && this.contentNode !== null) { + this.context.getPromptAction().closeCustomDialog(this.contentNode) + .then(() => { + console.info('CloseCustomDialog complete.'); + }) + } + } + + updateDialog(options: TipDialogOption) { + this.contentNode?.update(options) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/AccountEntity.ets b/entry/src/main/ets/entity/AccountEntity.ets new file mode 100644 index 0000000..c42d99f --- /dev/null +++ b/entry/src/main/ets/entity/AccountEntity.ets @@ -0,0 +1,13 @@ + +export class AccountEntity { + avater: string = ''; + bind: Array = new Array(); + create_time: string = ''; + name: string = ''; + phone: string = ''; + role: number = 0; + temp: boolean = true; + user_id: string = ''; + vip_name: string = ''; + vip_type: number = 1; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/BannerEntity.ets b/entry/src/main/ets/entity/BannerEntity.ets new file mode 100644 index 0000000..6d86d51 --- /dev/null +++ b/entry/src/main/ets/entity/BannerEntity.ets @@ -0,0 +1,5 @@ +export class BannerEntity { + image: string = ""; + page: string = ""; + type: string = ""; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/ConfigEntity.ets b/entry/src/main/ets/entity/ConfigEntity.ets new file mode 100644 index 0000000..942f7fb --- /dev/null +++ b/entry/src/main/ets/entity/ConfigEntity.ets @@ -0,0 +1,59 @@ +import { Expose, Type } from 'class-transformer'; +import { BannerEntity } from './BannerEntity'; +import "reflect-metadata"; +import { WxVideoConfigEntity } from './WxVideoConfig'; + +export class ConfigEntity { + @Expose({ name: 'client.guide.pay.enable' }) + guidePayEnable: boolean = true; //引导页是否开启支付,默认可以 + + @Expose({ name: 'client.guide.enable' }) + guideEnable: boolean = true; //是否开启引导页 + + @Expose({ name: 'client.start.function.hint' }) + guideHint: string = ""; //引导页提示语 + + @Expose({ name: 'client.nologin.pay.enable' }) + noLoginPayEnable: boolean = false; //是否开启未登录支付 + + @Expose({ name: 'client.pay.agreement' }) + payAgreementEnable: boolean = true; //是否显示支付协议 + + @Expose({ name: 'client.login.type' }) + loginType: Array = new Array(); //支持的登录类型 + + @Expose({ name: 'client.banner.urls' }) + @Type(() => BannerEntity) + homeBanners: Array = new Array(); //首页轮播图 + + @Expose({ name: 'client.wechat.video.share.enable' }) + wxVideoEnable: boolean = true; //视频号开关 + + @Expose({ name: 'client.wechat.video.playback.share.enable' }) + playbackEnable: boolean = true; //直播回放开关 + + @Expose({ name: 'client.course.wechat.video' }) + wxVideoCourse: string = ""; //视频号教程 + + @Expose({ name: 'client.course.playback' }) + wxPlaybackCourse: string = ""; //直播回放教程 + + @Expose({ name: 'client.playback.join.type' }) + wxPlaybackJoinType: string = ""; //直播加群方式 + + @Type(() => WxVideoConfigEntity) + @Expose({ name: 'client.mp.share.config.kcsp' }) + wxVideoConfig: WxVideoConfigEntity = new WxVideoConfigEntity() //直播回放小程序跳转配置 + + @Expose({ name: 'client.hmos.video.service.enable' }) //视频号助手是否可用 + wxVideoServiceEnable: boolean = true + + @Expose({ name: 'client.link.collection' }) + domainMap: Record = {}; //网站主机名 + + @Expose({ name: 'client.copy.contains' }) + copyContainsList: Array = []; //链接识别配置 + + @Expose({ name: 'client.challenge.enable' }) + challengeEnable?: boolean = true; //0元挑战 +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/DiamondDetailEntity.ets b/entry/src/main/ets/entity/DiamondDetailEntity.ets new file mode 100644 index 0000000..26b3a17 --- /dev/null +++ b/entry/src/main/ets/entity/DiamondDetailEntity.ets @@ -0,0 +1,7 @@ +export class DiamondDetailEntity { + buy_total: number = 0 + buy_used: number = 0 + month_total: number = 0 + month_used: number = 0 + remain: number = 0 +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/DiamondRuleEntity.ets b/entry/src/main/ets/entity/DiamondRuleEntity.ets new file mode 100644 index 0000000..5c15197 --- /dev/null +++ b/entry/src/main/ets/entity/DiamondRuleEntity.ets @@ -0,0 +1,18 @@ +export class DiamondRuleEntity { + title: string = '' + desc: string = '' + + constructor(title: string, desc: string) { + this.title = title + this.desc = desc + } + + static getRuleList(): Array { + const list = new Array() + list.push(new DiamondRuleEntity('一、固定钻石领取', '会员用户每月最后一天,系统会固定发放500钻石到用户平台账户。')) + list.push(new DiamondRuleEntity('二、固定钻石刷新', '若会员用户在第一个月有没用完的钻石,那么会在本月最后一天重置不会留存到第二月。')) + list.push(new DiamondRuleEntity('三、兑换钻石', '会员兑换后的钻石统一叫【兑换钻石】,【兑换钻石】不同于【固定钻石】每月刷新钻石数量;用户兑换了多少就可以使用多少,用完截止,没有时间限制,也没有每月最后一天刷新。')) + list.push(new DiamondRuleEntity('四、重复兑换钻石', '兑换钻石可重复购买,用完截止,没有时间限制,也没有每月最后一天刷新。')) + return list + } +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/DownloadHistoryEntity.ets b/entry/src/main/ets/entity/DownloadHistoryEntity.ets new file mode 100644 index 0000000..e766ed2 --- /dev/null +++ b/entry/src/main/ets/entity/DownloadHistoryEntity.ets @@ -0,0 +1,102 @@ +export class DownloadHistoryEntity { + id: string = '' + title: string = '' + status: string = '' + description: string = '' + create_time: string = '' + domain: string = '' + request: string = '' + save_cost: string = '' + save_end_time: string = '' + save_size: string = '' + save_start_time: string = '' + save_status: string = '' + + getTypeBgColor(): string { + switch (this.domain) { + case 'b23.tv': + case 'm.bilibili.com': + case 'www.bilibili.com': + return '#F4306F' + case 'v.douyin.com': + case 'www.iesdouyin.com': + case 'vt.tiktok.com': + return '#80FFFFFF' + case 'm.toutiao.com': + return '#F91716' + case 'video.weibo.com': + case 'weibo.com': + case 'm.weibo.cn': + case 'shop.sc.weibo.com': + return '#DE860C' + case 'v.kuaishou.com': + return '#DE440D' + case 'wxapp.tc.qq.com': + case 'm.v.qq.com': + return '#0D95F3' + case 'twitter.com': + case 'x.com': + return '#139EEA' + case 'xhslink.com': + case 'www.xiaohongshu.com': + return '#EA3046' + case 'instagram.com': + case 'www.instagram.com': + return '#8D32F4' + case 'mr.baidu.com': + case 'm.baidu.com': + case 'mbd.baidu.com': + return '#0D95F3' + case 'youtu.be': + case 'youtube.com': + case 'm.youtube.com': + case 'www.youtube.com': + return '#F92C2C' + case 'mp.weixin.qq.com': + return '#1DDB50' + case 'e.tb.cn': + case 'm.tb.cn': + return '#F96E12' + case 'www.facebook.com': + return '#1B6EF6' + case 'v.ixigua.com': + case 'www.ixigua.com': + return '#F01566' + case 'mobile.yangkeduo.com': + return '#F40F18' + case 'm.youku.com': + return '#0CB3E2' + case '163cn.tv': + return '#F42C34' + case 'qishui.douyin.com': + return '#20C485' + case 'qr.1688.com': + case 'detail.m.1688.com': + return '#F65611' + case 'h5.pipix.com': + return '#EE3958' + case 'app.cctv.com': + return '#80FFFFFF' + case 'vk.com': + return '#1E82F3' + case 'www.finkapp.cn': + return '#F62C2C' + case 'novelquickapp.com': + return '#F18221' + case 'video.weishi.qq.com': + return '#2E5DF0' + case 'm.ctrip.com': + return '#177DF0' + } + return '#33FFFFFF' + } + + getTypeTextColor(): string { + switch (this.domain) { + case 'v.douyin.com': + case 'app.cctv.com': + return '#CC000000' + } + return '#CCFFFFFF' + } +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/HomeMenuEntity.ets b/entry/src/main/ets/entity/HomeMenuEntity.ets new file mode 100644 index 0000000..b55148b --- /dev/null +++ b/entry/src/main/ets/entity/HomeMenuEntity.ets @@ -0,0 +1,23 @@ +import { ArrayList } from "@kit.ArkTS"; + +export class HomeMenuEntity { + icon: Resource | null = null; + title: string = ""; + alias: string = ""; + + constructor(icon: Resource, title: string, alias: string) { + this.icon = icon; + this.title = title; + this.alias = alias; + } +} + +export function homeMenuList(): ArrayList { + let list = new ArrayList() + list.add(new HomeMenuEntity($r('app.media.ic_home_icon6'), "视频转音频", "videoToAudio")) + list.add(new HomeMenuEntity($r('app.media.ic_home_icon8'), "视频加水印", "addWatermark")) + list.add(new HomeMenuEntity($r('app.media.ic_home_icon5'), "视频转文字", "videoToText")) + list.add(new HomeMenuEntity($r('app.media.ic_home_icon9'), "长图拼接", "longImageMerge")) + list.add(new HomeMenuEntity($r('app.media.ic_home_icon10'), "更多功能", "moreTools")) + return list; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/LoginEntity.ets b/entry/src/main/ets/entity/LoginEntity.ets new file mode 100644 index 0000000..5dbc476 --- /dev/null +++ b/entry/src/main/ets/entity/LoginEntity.ets @@ -0,0 +1,7 @@ + +export class LoginEntity { + user_id: string = ""; + name: string = ""; + avater: string = ""; + token: string = ""; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/MaterialEntity.ets b/entry/src/main/ets/entity/MaterialEntity.ets new file mode 100644 index 0000000..2dac547 --- /dev/null +++ b/entry/src/main/ets/entity/MaterialEntity.ets @@ -0,0 +1,13 @@ +import { UploadImgEntity } from './UploadImgEntity'; + +export class MaterialEntity { + id: string = ''; + title: string = ''; + pic?: UploadImgEntity = undefined; + pic_size: string = ''; + tags: Array = []; + user_id: string = ''; + download: string = ''; + update_time: string = ''; + create_time: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/MaterialInfoEntity.ets b/entry/src/main/ets/entity/MaterialInfoEntity.ets new file mode 100644 index 0000000..de861fd --- /dev/null +++ b/entry/src/main/ets/entity/MaterialInfoEntity.ets @@ -0,0 +1,87 @@ +import { Type } from 'class-transformer'; +import "reflect-metadata"; +import systemDateTime from '@ohos.systemDateTime'; +import { RandomUtil } from '@pura/harmony-utils'; + +export class MaterialInfoEntity{ + enc_user_id: string = ''; + logid: string = ''; + @Type(() => MaterialInfoEntity) + material?: MaterialDetailEntity; + offline: number = 0; + status: number = 0; + status_name: string = ''; + timeout: number = 0; + user_id: string = ''; +} + +export class MaterialDetailEntity { + @Type(() => AudioMaterial) + audio?: Array; + desc: string = ''; + @Type(() => ImageMaterial) + image?: Array; + merge: boolean = false; + proxyUrlList?: Array; + threading: boolean = false; + title: string = ''; + @Type(() => VideoMaterial) + video?: Array; +} + +@ObservedV2 +export class MediaEntity { + name: string = "" + origin: string = "" + title: string = "" + url: string = "" + origin_url: string = "" + speed_up: number = 0 //1 加速 + isThreading: boolean = false + isMerge: boolean = false + currentLen: number = 0 + totalSize: number = 0 + continueDownload: boolean = false + cacheName: string = "" + logid: string = "" + headers?: Map + isM3u8: boolean = false + flag: number = 0 + @Trace isChecked: boolean = false + + initFileName(): string { + if (!this.name) { + if (this instanceof VideoMaterial) { + this.name = `kcsp_${systemDateTime.getTime() + RandomUtil.getRandomInt(1000, 2000)}.mp4` + } else if (this instanceof AudioMaterial) { + this.name = `kcsp_${systemDateTime.getTime() + RandomUtil.getRandomInt(1000, 2000)}.mp3` + } else if (this instanceof ImageMaterial) { + this.name = `kcsp_${systemDateTime.getTime() + RandomUtil.getRandomInt(1000, 2000)}.jpeg` + } + } + return this.name + } +} + +export class VideoMaterial extends MediaEntity { + play: boolean = false + thumb?: string = '' + audio?: AudioMaterial + decodeKey?: Int8Array + sequenceNumber: number = 0 + keyInfo?: Map = new Map() +} + +export class AudioMaterial extends MediaEntity { + +} + +export class ImageMaterial extends MediaEntity { + +} + +export class TextMaterial extends MediaEntity { + title: string = '' + desc: string = '' +} + diff --git a/entry/src/main/ets/entity/MediaRecordEntity.ets b/entry/src/main/ets/entity/MediaRecordEntity.ets new file mode 100644 index 0000000..cd7b8cb --- /dev/null +++ b/entry/src/main/ets/entity/MediaRecordEntity.ets @@ -0,0 +1,14 @@ +import image from '@ohos.multimedia.image' + +export class MediaRecordEntity { + uri?: string = '' + name?: string = '' + thumb?: image.PixelMap = undefined + duration: number = 0 + createTime: number = 0 + isChecked: boolean = false + + constructor(uri: string) { + this.uri = uri + } +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/NoticeEntity.ets b/entry/src/main/ets/entity/NoticeEntity.ets new file mode 100644 index 0000000..94fc731 --- /dev/null +++ b/entry/src/main/ets/entity/NoticeEntity.ets @@ -0,0 +1,6 @@ + +export class NoticeEntity { + loop: boolean = true; + + notice?: Array = []; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/OrderEntity.ets b/entry/src/main/ets/entity/OrderEntity.ets new file mode 100644 index 0000000..82c59fa --- /dev/null +++ b/entry/src/main/ets/entity/OrderEntity.ets @@ -0,0 +1,14 @@ +export class OrderEntity { + id: string = ''; + create_time: string = ''; + goods_name: string = ''; + invoice_major: boolean = false; + invoice_status: string = ''; + invoice_url: string = ''; + out_trade_no: string = ''; + pay_params: string = ''; + pay_time: string = ''; + pay_type: string = ''; + status: string = ''; + total_fee: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/OrderPayEntity.ets b/entry/src/main/ets/entity/OrderPayEntity.ets new file mode 100644 index 0000000..02e1543 --- /dev/null +++ b/entry/src/main/ets/entity/OrderPayEntity.ets @@ -0,0 +1,16 @@ +export class PayOrderEntity { + //支付宝 + appId: string = ''; + orderId: string = ''; + outTradeNo: string = ''; + payParam: string = ''; + payType: string = ''; + + //微信 + nonceStr: string = ''; + package: string = ''; + partnerId: string = ''; + prepayId: string = ''; + sign: string = ''; + timeStamp: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/SendCodeEntity.ets b/entry/src/main/ets/entity/SendCodeEntity.ets new file mode 100644 index 0000000..cc2e0ec --- /dev/null +++ b/entry/src/main/ets/entity/SendCodeEntity.ets @@ -0,0 +1,3 @@ +export class SendCodeEntity { + timestamp: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/UploadImgEntity.ets b/entry/src/main/ets/entity/UploadImgEntity.ets new file mode 100644 index 0000000..e0ac809 --- /dev/null +++ b/entry/src/main/ets/entity/UploadImgEntity.ets @@ -0,0 +1,4 @@ +export class UploadImgEntity { + id: string = '' + url: string = '' +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/UserConfigEntity.ets b/entry/src/main/ets/entity/UserConfigEntity.ets new file mode 100644 index 0000000..d61a9ad --- /dev/null +++ b/entry/src/main/ets/entity/UserConfigEntity.ets @@ -0,0 +1,12 @@ +import { Type } from 'class-transformer'; +import { ConfigEntity } from './ConfigEntity'; +import "reflect-metadata"; + +export class UserConfigEntity { + token: string = ""; + temp: boolean = false; + name: string = ""; + user_id: string = ""; + @Type(() => ConfigEntity) + config: ConfigEntity = new ConfigEntity(); +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/UserEntity.ets b/entry/src/main/ets/entity/UserEntity.ets new file mode 100644 index 0000000..97f56bf --- /dev/null +++ b/entry/src/main/ets/entity/UserEntity.ets @@ -0,0 +1,30 @@ +export class UserEntity { + appleid: string = ''; + avater: string = ''; + balance: string = ''; + city: string = ''; + client_cid: string = ''; + country: string = ''; + coupon_count: number = 0; + imei: string = ''; + month_download_count: string = '0'; + month_download_size: string = '0'; + name: string = ''; + oaid: string = ''; + os_version: string = ''; + phone: string = ''; + province: string = ''; + role: string = ''; + sex: number = 0; + show_contact_menu: boolean = true; + show_masonry_menu: boolean = true; + temp: boolean = true; + unionid: string = ''; + user_id: string = ''; + vip: number = 1; // 1非会员 2会员 3终生会员 + vip_expire: string = ''; + vip_expire_time: string = ''; + vip_name: string = ''; + weixinAppOpenId: string = ''; + ip_area: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/VipMealEntity.ets b/entry/src/main/ets/entity/VipMealEntity.ets new file mode 100644 index 0000000..16ea99c --- /dev/null +++ b/entry/src/main/ets/entity/VipMealEntity.ets @@ -0,0 +1,16 @@ +@ObservedV2 +export class VipMealEntity { + @Trace checked: boolean = false; + goods_id: string = ''; + goods_name: string = ''; + origin_price: string = ''; + pay_type: string = ''; + price: string = ''; + single_pay_price: string = ''; + tips: string = ''; + sign_value = ''; + value: string = ''; + image: string = ''; + description: string = ''; + weixinMpOriId: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/VipPermissionEntity.ets b/entry/src/main/ets/entity/VipPermissionEntity.ets new file mode 100644 index 0000000..a4e8cf3 --- /dev/null +++ b/entry/src/main/ets/entity/VipPermissionEntity.ets @@ -0,0 +1,13 @@ +export class VipPermissionEntity { + auth: boolean = false + auth_ad: boolean = false + scene: string = '' + user_id: number = 0 + vip: number = 0 + vip_expire: string = '' + vip_expire_time: string = '' + vip_goods_type: string = '' + vip_message: string = '' + vip_name: string = '' + type: number = 0 +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/WxServiceEntity.ets b/entry/src/main/ets/entity/WxServiceEntity.ets new file mode 100644 index 0000000..b07965d --- /dev/null +++ b/entry/src/main/ets/entity/WxServiceEntity.ets @@ -0,0 +1,8 @@ +import { Expose } from 'class-transformer'; +import "reflect-metadata"; + +export class WxServiceEntity { + corpid: string = "" + @Expose({ name: 'kf.address' }) + address: string = "" +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/WxVideoConfig.ets b/entry/src/main/ets/entity/WxVideoConfig.ets new file mode 100644 index 0000000..6e2a627 --- /dev/null +++ b/entry/src/main/ets/entity/WxVideoConfig.ets @@ -0,0 +1,8 @@ +export class WxVideoConfigEntity { + id: string = ''; + title: string = ''; + desc: string = ''; + descTitle: string = ''; + qrcode: string = ''; + tips: string = ''; +} \ No newline at end of file diff --git a/entry/src/main/ets/entity/WxVideoEntity.ets b/entry/src/main/ets/entity/WxVideoEntity.ets new file mode 100644 index 0000000..97657db --- /dev/null +++ b/entry/src/main/ets/entity/WxVideoEntity.ets @@ -0,0 +1,6 @@ +import { MaterialInfoEntity } from "./MaterialInfoEntity" + +export class WxVideoEntity { + items?: Array + playback: boolean = false +} \ No newline at end of file diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 0000000..4d4cedb --- /dev/null +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,46 @@ +import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { window } from '@kit.ArkUI'; +import { AppUtil } from '@pura/harmony-utils'; +import { WXApi, WXEventHandler } from '../utils/wechat/WXApiEventHandlerImpl'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + AppUtil.init(this.context); + this.handleWeChatCallIfNeed(want); + } + + onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.handleWeChatCallIfNeed(want); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + AppStorage.setOrCreate('windowStage', windowStage); + windowStage.loadContent('pages/splash/SplashPage', (err) => { + // this.registerFont(); + if (err.code) { + return; + } + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + } + + onDestroy(): void { + } + + onForeground(): void { + // Ability has brought to foreground + } + + onBackground(): void { + // Ability has back to background + } + + private handleWeChatCallIfNeed(want: Want) { //放在与onCreate同级 + WXApi.handleWant(want, WXEventHandler) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 0000000..8e4de99 --- /dev/null +++ b/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,16 @@ +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +const DOMAIN = 0x0000; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(DOMAIN, 'testTag', 'onBackup ok'); + await Promise.resolve(); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(DOMAIN, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + await Promise.resolve(); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/manager/AVSessionManager.ets b/entry/src/main/ets/manager/AVSessionManager.ets new file mode 100644 index 0000000..b7313eb --- /dev/null +++ b/entry/src/main/ets/manager/AVSessionManager.ets @@ -0,0 +1,61 @@ +import { audio } from "@kit.AudioKit"; +import { BusinessError } from "@kit.BasicServicesKit"; + +class AVSessionManager { + private audioManager = audio.getAudioManager(); + private audioSessionManager: audio.AudioSessionManager = this.audioManager.getSessionManager(); + + private strategy: audio.AudioSessionStrategy = { + concurrencyMode: audio.AudioConcurrencyMode.CONCURRENCY_PAUSE_OTHERS + }; + + /** + * 激活音频会话 + */ + async activate() { + if (!this.isActive()) { + await this.audioSessionManager.activateAudioSession(this.strategy).then(() => { + console.info('Succeeded in activating audio session.'); + }).catch((err: BusinessError) => { + console.error(`Failed to activate audio session. Code: ${err.code}, message: ${err.message}`); + }); + } + } + + /** + * 停用音频会话 + */ + async deactivate() { + if (this.isActive()) { + await this.audioSessionManager.deactivateAudioSession().then(() => { + console.info('Succeeded in deactivating audio session.'); + }).catch((err: BusinessError) => { + console.error(`Failed to deactivate audio session. Code: ${err.code}, message: ${err.message}`); + }); + } + } + + /** + * 会话是否激活 + * @returns + */ + isActive(): boolean { + return this.audioSessionManager.isAudioSessionActivated(); + } + + /** + * 添加会话停用监听 + */ + setDeactivatedCallback(callback: Callback) { + this.audioSessionManager.on('audioSessionDeactivated', callback); + } + + /** + * 移除会话停用监听 + */ + removeDeactivatedCallback(callback?: Callback) { + this.audioSessionManager.off('audioSessionDeactivated', callback); + } +} + +export const avSessionManager = new AVSessionManager() \ No newline at end of file diff --git a/entry/src/main/ets/manager/EventReportGlobalManager.ets b/entry/src/main/ets/manager/EventReportGlobalManager.ets new file mode 100644 index 0000000..4af6d5d --- /dev/null +++ b/entry/src/main/ets/manager/EventReportGlobalManager.ets @@ -0,0 +1,11 @@ +import { apiService } from "../net/ApiService" + +export class EventReportGlobalManager { + static async eventReport(key: string, value: string = '', extra: string = '') { + try { + apiService.eventReport(key, value, extra) + } catch (e) { + console.error(e) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/manager/LocalMediaManager.ets b/entry/src/main/ets/manager/LocalMediaManager.ets new file mode 100644 index 0000000..b25dfac --- /dev/null +++ b/entry/src/main/ets/manager/LocalMediaManager.ets @@ -0,0 +1,67 @@ +import { PrefUtils } from '../utils/PrefUtils'; +import { JSON } from '@kit.ArkTS'; + +/** + * 保存到相册的媒体列表 + */ +export class LocalMediaManager { + static add(uri: string) { + let array = PrefUtils.getStringArray('local_record') + if (!array.includes(uri)) { + array.push(uri) + } + PrefUtils.put('local_record', JSON.stringify(array)) + } + + static delete(uri: string) { + let array = PrefUtils.getStringArray('local_record') + if (array.includes(uri)) { + array.splice(array.indexOf(uri), 1) + } + PrefUtils.put('local_record', JSON.stringify(array)) + } + + static getAllVideos(): Array { + let array = PrefUtils.getStringArray('local_record') + return array.filter(item => item.endsWith('.mp4')) + } + + static deleteAllVideos() { + let imageArray = LocalMediaManager.getAllImages() + let audioArray = LocalMediaManager.getAllAudios() + let newArray = imageArray.concat(audioArray) + PrefUtils.put('local_record', JSON.stringify(newArray)) + } + + static getAllAudios(): Array { + let array = PrefUtils.getStringArray('local_record') + return array.filter(item => item.endsWith('.mp3')) + } + + static deleteAllAudios() { + let videoArray = LocalMediaManager.getAllVideos() + let audioArray = LocalMediaManager.getAllImages() + let newArray = videoArray.concat(audioArray) + PrefUtils.put('local_record', JSON.stringify(newArray)) + } + + static getAllImages(): Array { + let array = PrefUtils.getStringArray('local_record') + return array.filter(item => item.endsWith('.jpeg')) + } + + static deleteAllImages() { + let videoArray = LocalMediaManager.getAllVideos() + let audioArray = LocalMediaManager.getAllAudios() + let newArray = videoArray.concat(audioArray) + PrefUtils.put('local_record', JSON.stringify(newArray)) + } + + static getAll(): Array { + return PrefUtils.getStringArray('local_record') + } + + static deleteAll() { + PrefUtils.remove('local_record') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/manager/LoginGlobalManager.ets b/entry/src/main/ets/manager/LoginGlobalManager.ets new file mode 100644 index 0000000..de789be --- /dev/null +++ b/entry/src/main/ets/manager/LoginGlobalManager.ets @@ -0,0 +1,92 @@ +import { StrUtil } from '@pura/harmony-utils'; +import { UserEntity } from '../entity/UserEntity'; +import { PrefUtils } from '../utils/PrefUtils'; +import { ConfigManager } from './UserConfigManager'; +import { JSON } from '@kit.ArkTS'; +import { plainToInstance } from 'class-transformer'; + +class LoginGlobalManager { + + private userInfo?: UserEntity; + + /** + * 保存当前用户基本信息 + * @param userEntity + */ + setUserInfo(userEntity: UserEntity) { + this.userInfo = userEntity; + } + + /** + * 获取当前用户基本信息 + * @returns + */ + getUserInfo(): UserEntity | undefined { + return this.userInfo; + } + + /** + * 保存上一个用户基本信息 + * @param userEntity + */ + saveLastUserInfo(userEntity: UserEntity) { + PrefUtils.put('last_userinfo', JSON.stringify(userEntity)); + } + + /** + * 获取上一个用户基本信息 + * @returns + */ + getLastUserInfo(): UserEntity | null { + const str = PrefUtils.getString('last_userinfo'); + if (StrUtil.isNotEmpty(str)) { + const userEntity = plainToInstance(UserEntity, JSON.parse(str)); + return userEntity; + } + return null; + } + + /** + * 保存上次登录方式 + * @param userEntity + */ + saveLastLoginType(type: string) { + PrefUtils.put('last_login_type', type); + } + + /** + * 获取上次登录方式 + * @returns + */ + getLastLoginType(): string { + return PrefUtils.getString('last_login_type'); + } + + /** + * 用户token + * @param token + */ + saveToken(token: string) { + PrefUtils.put('x-token', token); + } + + getToken(): string { + return PrefUtils.getString('x-token'); + } + + /** + * 是否已登录 + * @returns + */ + isLogin(): boolean { + return !ConfigManager.isTemp(); + } + + logout() { + PrefUtils.remove('x-role'); + PrefUtils.remove('x-token'); + PrefUtils.remove('userConfig') + } +} + +export const LoginManager = new LoginGlobalManager(); \ No newline at end of file diff --git a/entry/src/main/ets/manager/MediaManager.ets b/entry/src/main/ets/manager/MediaManager.ets new file mode 100644 index 0000000..6718ece --- /dev/null +++ b/entry/src/main/ets/manager/MediaManager.ets @@ -0,0 +1,119 @@ +import { MediaRecordEntity } from '../entity/MediaRecordEntity'; +import { LocalMediaManager } from './LocalMediaManager'; +import { FileUtil, NumberUtil } from '@pura/harmony-utils'; +import { fileIo as fs } from '@kit.CoreFileKit'; +import { media } from '@kit.MediaKit'; + +export enum MediaAction { + ADD, DELETE, CLEAR +} + +export enum MediaType { + VIDEO, IMAGE, AUDIO +} + +export class MediaManager { + + /** + * 获取相册中保存的视频 + * @returns + */ + static async getVideoList(): Promise> { + try { + let mediaList = new Array() + + let videoUris = LocalMediaManager.getAllVideos() + for (let i = 0; i < videoUris.length; i++) { + try { + let uri = videoUris[i] + let record = new MediaRecordEntity(uri) + record.name = FileUtil.getFileName(uri) + let file = FileUtil.openSync(uri) + + let videoSize: media.PixelMapParams = {} + let avMetaDataExtractor: media.AVMetadataExtractor = await media.createAVMetadataExtractor(); + avMetaDataExtractor.fdSrc = file; + let metadata = await avMetaDataExtractor.fetchMetadata(); + videoSize.width = parseInt(metadata.videoWidth as string); + videoSize.height = parseInt(metadata.videoHeight as string); + + let avImageGenerator = await media.createAVImageGenerator(); + if (avImageGenerator) { + avImageGenerator.fdSrc = file; + record.thumb = + await avImageGenerator.fetchFrameByTime(0, media.AVImageQueryOptions.AV_IMAGE_QUERY_CLOSEST_SYNC, + videoSize); + } else { + console.error('Create AVImageGenerator failed!'); + } + mediaList.push(record) + } catch (e) { + console.error(e) + } + } + return Promise.resolve(mediaList) + } catch (err) { + console.error('video failed with err: ' + err); + return Promise.reject(err) + } + } + + /** + * 获取相册中保存的图片 + * @returns + */ + static async getImageList(): Promise> { + let mediaList = new Array() + + let imageUri = LocalMediaManager.getAllImages() + for (let i = 0; i < imageUri.length; i++) { + try { + let uri = imageUri[i] + let file = FileUtil.openSync(uri) + let record = new MediaRecordEntity(uri) + record.name = FileUtil.getFileName(uri) + mediaList.push(record) + } catch (e) { + console.error(e) + } + } + return Promise.resolve(mediaList) + } + + /** + * 获取保存的音频 + * @returns + */ + static async getAudioList(): Promise> { + try { + let mediaList = new Array() + + let audioUris = LocalMediaManager.getAllAudios() + for (let i = 0; i < audioUris.length; i++) { + let uri = audioUris[i] + let filePath = FileUtil.getFilePath(uri) + if (FileUtil.accessSync(filePath)) { + let record = new MediaRecordEntity(filePath) + record.name = FileUtil.getFileName(filePath) + let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE) + let stat = fs.statSync(file.fd) + record.createTime = stat.ctime + let avMetadataExtractor = await media.createAVMetadataExtractor() + avMetadataExtractor.fdSrc = file + // 获取元数据(promise模式) + let result = await avMetadataExtractor.fetchMetadata() + record.duration = result.duration ? NumberUtil.toNumber(result.duration) : 0 + avMetadataExtractor.release() + fs.close(file) + mediaList.push(record) + } else { + LocalMediaManager.delete(uri) + } + } + return Promise.resolve(mediaList) + } catch (err) { + console.error('audio failed with err: ' + err); + return Promise.reject(err) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/manager/ShareManager.ets b/entry/src/main/ets/manager/ShareManager.ets new file mode 100644 index 0000000..a7d3e4d --- /dev/null +++ b/entry/src/main/ets/manager/ShareManager.ets @@ -0,0 +1,40 @@ +import { systemShare } from '@kit.ShareKit'; +import { uniformTypeDescriptor as utd } from '@kit.ArkData'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { AppUtil, FileUtil } from '@pura/harmony-utils'; + +export class ShareManager { + /** + * 分享文件 + * @param path + */ + static shareFile(path: string) { + // 获取精准的utd类型 + let ext = '' + let type = '' + if (path.endsWith('.mp4')) { + ext = '.mp4' + type = utd.UniformDataType.VIDEO + } else if (path.endsWith('.mp3')) { + ext = '.mp3' + type = utd.UniformDataType.AUDIO + } else if (path.endsWith('.jpeg')) { + ext = '.jpeg' + type = utd.UniformDataType.IMAGE + } + let utdTypeId = utd.getUniformDataTypeByFilenameExtension(ext, type); + let shareData: systemShare.SharedData = new systemShare.SharedData({ + utd: utdTypeId, + uri: FileUtil.getUriFromPath(path) + }); + let controller: systemShare.ShareController = new systemShare.ShareController(shareData); + controller.show(AppUtil.getContext(), { + selectionMode: systemShare.SelectionMode.SINGLE, + previewMode: systemShare.SharePreviewMode.DETAIL, + }).then(() => { + console.info('ShareController show success.'); + }).catch((error: BusinessError) => { + console.error(`ShareController show error. code: ${error.code}, message: ${error.message}`); + }); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/manager/UserConfigManager.ets b/entry/src/main/ets/manager/UserConfigManager.ets new file mode 100644 index 0000000..959f946 --- /dev/null +++ b/entry/src/main/ets/manager/UserConfigManager.ets @@ -0,0 +1,368 @@ +import { ArrayUtil, PermissionUtil, StrUtil } from '@pura/harmony-utils'; +import { apiService } from '../net/ApiService'; +import { PrefUtils } from '../utils/PrefUtils'; +import { JSON } from '@kit.ArkTS'; +import { UserConfigEntity } from '../entity/UserConfigEntity'; +import { instanceToPlain, plainToInstance } from 'class-transformer'; +import { BannerEntity } from '../entity/BannerEntity'; +import identifier from '@ohos.identifier.oaid'; +import { LoginManager } from './LoginGlobalManager'; +import { WxVideoConfigEntity } from '../entity/WxVideoConfig'; + +class UserConfigManager { + private INVALID_OAID = "00000000-0000-0000-0000-000000000000"; + + async getOaid(): Promise { + try { + const isGranted = await PermissionUtil.checkRequestPermissions('ohos.permission.APP_TRACKING_CONSENT'); + if (isGranted) { + const oaid = await identifier.getOAID(); + if (StrUtil.isNotEmpty(oaid) && oaid !== this.INVALID_OAID) { + PrefUtils.put("oaid", oaid) + return Promise.resolve(oaid); + } + } + } catch (e) { + console.error(e); + } + return Promise.resolve(''); + } + + async getUserConfig(): Promise { + if (StrUtil.isNotEmpty(PrefUtils.getString('userConfig'))) { + const str = PrefUtils.getString('userConfig'); + const userConfig = plainToInstance(UserConfigEntity, JSON.parse(str)); + this.saveUserConfig(userConfig); + return Promise.resolve() + } else { + return this.userConfig(); + } + } + + async userConfig(): Promise { + try { + const oaid = PrefUtils.getString('oaid'); + const result = await apiService.userConfig(oaid); + if (result.isSuccess()) { + const userConfig = plainToInstance(UserConfigEntity, result.data); + PrefUtils.put("userConfig", JSON.stringify(instanceToPlain(userConfig))) + this.saveUserConfig(userConfig); + return Promise.resolve(); + } else { + return Promise.reject(result.message); + } + } catch (e) { + console.error(e); + return Promise.reject(e); + } + } + + private saveUserConfig(config: UserConfigEntity) { + LoginManager.saveToken(config.token); + this.saveIsTemp(config.temp); + if (config.config !== null) { + this.saveGuideEnable(config.config.guideEnable); + this.saveGuideHint(config.config.guideHint); + this.saveGuidePayEnable(config.config.guidePayEnable); + this.saveNoLoginPayEnable(config.config.noLoginPayEnable); + this.savePayAgreementEnable(config.config.payAgreementEnable); + this.saveWxVideoEnable(config.config.wxVideoEnable); + this.savePlaybackEnable(config.config.playbackEnable); + this.saveLoginType(config.config.loginType); + this.saveWxVideoCourse(config.config.wxVideoCourse); + this.savePlaybackCourse(config.config.wxPlaybackCourse); + this.saveWxPlaybackJoinType(config.config.wxPlaybackJoinType); + this.saveWxVideoConfig(config.config.wxVideoConfig); + this.saveWxVideoServiceEnable(config.config.wxVideoServiceEnable); + this.saveDomainMap(config.config.domainMap); + this.saveCopyContainsList(config.config.copyContainsList); + this.saveHomeBanner(config.config.homeBanners); + } + } + + /** + * 是否同意隐私政策 + * @param agree + */ + saveIsAgreePrivacy(agree: boolean) { + PrefUtils.put('agree_privacy', agree); + } + + isAgreePrivacy(): boolean { + return PrefUtils.getBoolean('agree_privacy'); + } + + /** + * 首次使用app + * @param isFirst + */ + saveFirstUse(isFirst: boolean) { + PrefUtils.put('is_first', isFirst); + } + + isFirstUse(): boolean { + return PrefUtils.getBoolean('is_first', true); + } + + /** + * 用户角色 + * @param temp true临时用户 ,false登录用户 + */ + saveIsTemp(temp: boolean) { + PrefUtils.put('x-role', temp); + } + + isTemp(): boolean { + return PrefUtils.getBoolean('x-role', true); + } + + /** + * 是否启用引导页 + * @param enable + */ + saveGuideEnable(enable: boolean) { + PrefUtils.put('guide_enable', enable); + } + + isGuideEnable(): boolean { + return PrefUtils.getBoolean('guide_enable', true); + } + + /** + * 引导页提示语 + * @param enable + */ + saveGuideHint(hint: string) { + PrefUtils.put('guide_hint', hint); + } + + getGuideHint(): string { + return PrefUtils.getString('guide_hint'); + } + + /** + * 是否启用引导页支付 + * @param enable + */ + saveGuidePayEnable(enable: boolean) { + PrefUtils.put('guide_pay_enable', enable); + } + + isGuidePayEnable(): boolean { + return PrefUtils.getBoolean('guide_pay_enable', true); + } + + /** + * 是否启用未登录支付 + * @param enable + */ + saveNoLoginPayEnable(enable: boolean) { + PrefUtils.put('nologin_pay', enable); + } + + isNoLoginPayEnable(): boolean { + return PrefUtils.getBoolean('nologin_pay', true); + } + + /** + * 是否显示支付协议 + * @param enable + */ + savePayAgreementEnable(enable: boolean) { + PrefUtils.put('pay_agreement', enable); + } + + isPayAgreementEnable(): boolean { + return PrefUtils.getBoolean('pay_agreement', true); + } + + /** + * 是否启用视频号功能 + * @param enable + */ + saveWxVideoEnable(enable: boolean) { + PrefUtils.put('wx_video_enable', enable); + } + + isWxVideoEnable(): boolean { + return PrefUtils.getBoolean('wx_video_enable', true); + } + + /** + * 是否启用直播回放功能 + * @param enable + */ + savePlaybackEnable(enable: boolean) { + PrefUtils.put('playback_enable', enable); + } + + isPlaybackEnable(): boolean { + return PrefUtils.getBoolean('playback_enable', true); + } + + /** + * 是否已绑定视频号助手 + * @param isBind + */ + saveBindWxVideoHelper(isBind: boolean) { + PrefUtils.put('bind_wx_video', isBind); + } + + isBindWxVideoHelper(): boolean { + return PrefUtils.getBoolean('bind_wx_video'); + } + + /** + * 是否已绑定直播回放助手 + * @param isBind + */ + saveBindWxPlaybackHelper(isBind: boolean) { + PrefUtils.put('bind_wx_playback', isBind); + } + + isBindWxPlaybackHelper(): boolean { + return PrefUtils.getBoolean('bind_wx_playback'); + } + + /** + * 支持的登录类型 + * @param array + */ + saveLoginType(array?: Array) { + if (ArrayUtil.isNotEmpty(array)) { + PrefUtils.put('login_type', JSON.stringify(array)); + } + } + + getLoginType(): Array { + const str = PrefUtils.getString('login_type'); + if (StrUtil.isNotEmpty(str)) { + return JSON.parse(str) as Array; + } + return new Array('phone'); + } + + /** + * 视频号教程链接 + * @param url + */ + saveWxVideoCourse(url?: string) { + if (StrUtil.isNotEmpty(url)) { + PrefUtils.put('wx_video_course', url!!); + } + } + + getWxVideoCourse(): string { + return PrefUtils.getString('wx_video_course'); + } + + /** + * 直播回放教程链接 + * @param url + */ + savePlaybackCourse(url?: string) { + if (StrUtil.isNotEmpty(url)) { + PrefUtils.put('playback_course', url!!); + } + } + + getPlaybackCourse(): string { + return PrefUtils.getString('playback_course'); + } + + /** + * 直播回放加群方式 + * @param type + */ + saveWxPlaybackJoinType(type?: string) { + if (StrUtil.isNotEmpty(type)) { + PrefUtils.put('playback_join_type', type!!); + } + } + + getPlaybackJoinType(): string { + return PrefUtils.getString('playback_join_type'); + } + + /** + * 直播回放小程序跳转配置 + * @param config + */ + saveWxVideoConfig(config: WxVideoConfigEntity) { + PrefUtils.put('wx_video_config', JSON.stringify(config)) + } + + getWxVideoConfig(): WxVideoConfigEntity | null { + const str = PrefUtils.getString('wx_video_config') + if (StrUtil.isNotEmpty(str)) { + return JSON.parse(str) as WxVideoConfigEntity + } + return null + } + + /** + * 视频号助手是否可用 + * @param enable + */ + saveWxVideoServiceEnable(enable: boolean) { + PrefUtils.put("wx_video_service_enable", enable) + } + + isWxVideoServiceEnable(): boolean { + return PrefUtils.getBoolean('wx_video_service_enable', true) + } + + /** + * 网站主机名 + * @param domains + */ + saveDomainMap(domains: object) { + if (domains) { + PrefUtils.put('domain_map', JSON.stringify(domains)); + } + } + + getDomainMap(): object { + const str = PrefUtils.getString('domain_map'); + if (StrUtil.isNotEmpty(str)) { + return JSON.parse(str)!! + } + return new Object(); + } + + /** + * 链接识别配置 + * @param array + */ + saveCopyContainsList(array: Array) { + PrefUtils.put('copy_contains_list', JSON.stringify(array)) + } + + getCopyContainsList(): Array { + let array = PrefUtils.getStringArray('copy_contains_list') + if (array.length !== 0) { + return array + } + return ['http://', 'https://'] + } + + /** + * 首页banner + * @param array + */ + saveHomeBanner(array?: Array) { + if (ArrayUtil.isNotEmpty(array)) { + PrefUtils.put('home_banner', JSON.stringify(array)); + } + } + + getHomeBanner(): Array { + const str = PrefUtils.getString('home_banner'); + if (StrUtil.isNotEmpty(str)) { + return JSON.parse(str) as Array; + } + return new Array(); + } +} + +export const ConfigManager = new UserConfigManager() \ No newline at end of file diff --git a/entry/src/main/ets/net/Api.ets b/entry/src/main/ets/net/Api.ets new file mode 100644 index 0000000..d37197d --- /dev/null +++ b/entry/src/main/ets/net/Api.ets @@ -0,0 +1,116 @@ +export class Api { + /** + * 获取用户配置信息 + */ + static readonly USER_CONFIG = '/api/user/config'; + + /** + * 用户基本信息 + */ + static readonly USERINFO = '/api/user'; + + /** + * 事件上报 + */ + static readonly EVENT_REPORT = '/api/user/event' + + /** + * 图片上传 + */ + static readonly UPLOAD_IMAGE = '/api/user/upload' + + /** + * 意见反馈 + */ + static readonly FEEDBACK = '/api/user/feedback' + + /** + * 发送验证码 + */ + static readonly SEND_CODE = '/api/user/code'; + + /** + * 用户登录 + */ + static readonly LOGIN = '/api/user/login'; + + /** + * 扫码登录 + */ + static readonly QRCODE_LOGIN = '/api/app/code'; + + /** + * 用户注销 + */ + static readonly USER_DESTROY = '/api/user/destroy'; + + /** + * 用户账号列表 + */ + static readonly ACCOUNT_LIST = '/api/user/account'; + + /** + * 套餐列表 + */ + static readonly GOODS_LIST = '/api/order/goods'; + + /** + * 创建订单 + */ + static readonly CREATE_ORDER = '/api/order'; + + /** + * 微信客服 + */ + static readonly WX_SERVICE = '/api/weixin/service' + + /** + * 钻石信息 + */ + static readonly USER_DIAMOND_INFO = '/api/diamond' + + /** + * 权限验证 + */ + static readonly USER_AUTH = '/api/user/auth'; + + /** + * 首页顶部通知 + */ + static readonly NOTICE_LIST = '/api/user/notice'; + + /** + * 链接提取 + */ + static readonly MATERIAL_INFO = '/api/material'; + + /** + * 视频号和直播回放提取 + */ + static readonly WX_VIDEO = '/api/weixin/video/log'; + + /** + * 跳转至微信发送视频号给客服 + */ + static readonly WX_VIDEO_SERVICE = '/api/weixin/video/service' + + /** + * 绑定微信用户信息 + */ + static readonly BIND_WX_USER_INFO = '/api/weixin/user/info' + + /** + * 下载记录 + */ + static readonly DOWNLOAD_HISTORY_LIST = '/api/material/log' + + /** + * 素材列表 + */ + static readonly MATERIAL_LIST = '/api/user/mat/search' + + /** + * 素材分类列表 + */ + static readonly MATERIAL_CATE_LIST = '/api/mat/cate' +} \ No newline at end of file diff --git a/entry/src/main/ets/net/ApiService.ets b/entry/src/main/ets/net/ApiService.ets new file mode 100644 index 0000000..2605da3 --- /dev/null +++ b/entry/src/main/ets/net/ApiService.ets @@ -0,0 +1,390 @@ +import { Api } from './Api'; +import { AxiosRequest } from './AxiosRequest'; +import { HttpResult } from './HttpResult'; +import { deviceInfo } from '@kit.BasicServicesKit'; +import { DeviceUtil, FileUtil } from '@pura/harmony-utils'; +import { LoginRequest } from './request/LoginRequest'; +import { FormData } from '@ohos/axios'; +import { fileIo } from '@kit.CoreFileKit'; +import { JSON } from '@kit.ArkTS'; + +class ApiService { + /** + * 用户配置 + * @param oaid + * @returns + */ + userConfig(oaid: string): Promise { + const params: Record = { + 'oaid': oaid, + 'os_version': deviceInfo.buildVersion.toString(), + 'imei': DeviceUtil.getDeviceId(), + 'cid': '' + } + return AxiosRequest.get(Api.USER_CONFIG, params) + } + + /** + * 用户信息 + * @returns + */ + userinfo(): Promise { + return AxiosRequest.get(Api.USERINFO) + } + + /** + * 更新用户信息 + * @returns + */ + updateUserinfo(params: Record): Promise { + return AxiosRequest.put(Api.USERINFO, params) + } + + /** + * 事件上报 + * @param key + * @param value + * @param extra + * @returns + */ + eventReport(key: string, value: string, extra: string): Promise { + const params: Record = { + 'source': 'android', + 'type': 'click', + 'key': key, + 'value': value, + 'extra': extra + } + return AxiosRequest.post(Api.EVENT_REPORT, params); + } + + /** + * 图片上传 + * @returns + */ + uploadImage(base64: string, scene: string): Promise { + const data: Record = { + 'file': base64 + } + const params: Record = { + 'type': 'base64', + 'scene': scene + } + return AxiosRequest.request({ + url: Api.UPLOAD_IMAGE, + method: 'post', + data: data, + params: params // query参数 + }) + } + + feedback(type: string, content: string, contact: string, images: Array): Promise { + const params: Record = { + 'type': type, + 'content': content, + 'contact': contact, + 'images': images + } + return AxiosRequest.post(Api.FEEDBACK, params) + } + + /** + * 发送验证码 + * @returns + */ + sendCode(phone: string): Promise { + const params: Record = { 'phone': phone } + return AxiosRequest.post(Api.SEND_CODE, params) + } + + /** + * 手机号登录 + * @returns + */ + loginByPhone(phone: string, code: string, timestamp: string, isBind: boolean = false): Promise { + const params: LoginRequest = { + login_type: 'phone', + phone: { + 'phone': phone, + 'code': code, + 'timestamp': timestamp + }, + bind: isBind + } + return AxiosRequest.post(Api.LOGIN, params) + } + + /** + * 微信登录 + * @returns + */ + loginByWX(code: string, isBind: boolean = false): Promise { + const params: LoginRequest = { + login_type: 'weixin', + weixin: { + 'code': code, + 'code_type': '' + }, + bind: isBind + } + return AxiosRequest.post(Api.LOGIN, params) + } + + /** + * 微信登录 + * @returns + */ + loginByCode(code: string): Promise { + const params: Record = { 'key': code } + return AxiosRequest.put(Api.QRCODE_LOGIN, params) + } + + /** + * 注销账户 + * @returns + */ + userDestroy(): Promise { + return AxiosRequest.post(Api.USER_DESTROY) + } + + /** + * 解绑账号 + * @returns + */ + unbind(loginType: string): Promise { + const params: LoginRequest = { + login_type: loginType, + unbind: true + } + return AxiosRequest.post(Api.LOGIN, params); + } + + /** + * 账号列表 + * @returns + */ + accountList(scene: string): Promise { + const params: Record = { 'scene': scene } + return AxiosRequest.get(Api.ACCOUNT_LIST, params); + } + + /** + * 切换账户 + * @param userId + * @returns + */ + changeAccount(userId: string): Promise { + const params: LoginRequest = { + login_type: 'device', + device: { + 'user_id': userId + } + } + return AxiosRequest.post(Api.LOGIN, params) + } + + /** + * 套餐列表 + * @returns + */ + goodsList(type: string): Promise { + const params: Record = { 'type': type } + return AxiosRequest.get(Api.GOODS_LIST, params) + } + + /** + * 创建订单 + * @returns + */ + createOrder(goodsId: string, payType: string, source: string, coupon: string): Promise { + const params: Record = { + 'goods_id': goodsId, + 'pay_type': payType, + 'source': source, + 'pay_source': 'app', + 'coupon': coupon + } + return AxiosRequest.post(Api.CREATE_ORDER, params) + } + + /** + * 查询订单 + * @param orderId + * @returns + */ + getOrderInfo(orderId: string): Promise { + const params: Record = { 'order_id': orderId} + return AxiosRequest.get(Api.CREATE_ORDER, params) + } + + /** + * 微信客服 + * @returns + */ + wxService(): Promise { + return AxiosRequest.get(Api.WX_SERVICE) + } + + /** + * 钻石信息 + */ + getDiamondInfo(): Promise { + return AxiosRequest.get(Api.USER_DIAMOND_INFO) + } + + /** + * 检查权限 + * @param scene wechat download + * @returns + */ + checkPermission(scene: string): Promise { + const params: Record = { 'scene': scene } + return AxiosRequest.get(Api.USER_AUTH, params) + } + + /** + * 上报权限 + * @param scene + * @param count + * @returns + */ + sendCheckPermission(scene: string, count: number): Promise { + const params: Record = { 'scene': scene, 'count': count } + return AxiosRequest.post(Api.USER_AUTH, params) + } + + /** + * 首页顶部通知 + * @returns + */ + noticeList(): Promise { + return AxiosRequest.get(Api.NOTICE_LIST) + } + + /** + * 发送链接 + * @returns + */ + getMaterialInfo(content: string): Promise { + const params: Record = { 'content': content } + return AxiosRequest.post(Api.MATERIAL_INFO, params) + } + + /** + * 获取提取状态信息 + * @returns + */ + analysisMaterial(logId: string): Promise { + const params: Record = { 'logid': logId } + return AxiosRequest.get(Api.MATERIAL_INFO, params) + } + + /** + * 获取视频号和直播回放 + * @returns + */ + wxVideoList(scene: string): Promise { + const params: Record = { 'v': 'v2', 'scene': scene } + return AxiosRequest.get(Api.WX_VIDEO, params) + } + + /** + * 删除视频号和直播回放 + * @returns + */ + deleteWxVideo(logId: string): Promise { + const params: Record = { 'logId': logId } + return AxiosRequest.delete(Api.WX_VIDEO, params) + } + + /** + * 上报下载状态 + */ + reportDownLoadStatus(logId: string, status: string, size: string, message: string): Promise { + const params: Record = { + 'logid': logId, + 'status': status, + 'size': size, + 'message': message + } + return AxiosRequest.put(Api.MATERIAL_INFO, params) + } + + /** + * 跳转至微信发送视频号给客服 + */ + wxVideoService(): Promise { + return AxiosRequest.get(Api.WX_VIDEO_SERVICE) + } + + /** + * 跳转至微信发送视频号给客服 + */ + bindWxUserInfo(code: string): Promise { + return AxiosRequest.request({ + url: Api.BIND_WX_USER_INFO, + method: 'post', + params: { code: code } // query参数 + }) + } + + /** + * 获取下载记录 + * @returns + */ + getDownloadHistoryList(page: string, startTime: string, endTime: string): Promise { + const params: Record = { + 'status': '2', + 'is_deleted': '0', + 'page': page, + 'size': '20', + 'start_time': startTime, + 'end_time': endTime + } + return AxiosRequest.get(Api.DOWNLOAD_HISTORY_LIST, params) + } + + /** + * 删除下载记录 + * @returns + */ + deleteDownloadHistory(startTime: string, endTime: string): Promise { + const params: Record = { + 'status': '2', + 'is_deleted': '0', + 'page': '1', + 'size': '9999', + 'start_time': startTime, + 'end_time': endTime + } + return AxiosRequest.delete(Api.DOWNLOAD_HISTORY_LIST, params) + } + + /** + * 获取素材列表 + * @returns + */ + getMaterialList(page: string, cateId: string = '', keywords: string = ''): Promise { + const params: Record = { + 'page': page, + 'size': '20', + 'cate_id': cateId, + 'keywords': keywords + } + return AxiosRequest.get(Api.MATERIAL_LIST, params) + } + + /** + * 获取素材分类列表 + * @returns + */ + getMaterialCateList(page: string): Promise { + const params: Record = { + 'page': page, + 'size': '50' + } + return AxiosRequest.get(Api.MATERIAL_CATE_LIST, params) + } +} + +export const apiService = new ApiService(); \ No newline at end of file diff --git a/entry/src/main/ets/net/AxiosRequest.ets b/entry/src/main/ets/net/AxiosRequest.ets new file mode 100644 index 0000000..52511e3 --- /dev/null +++ b/entry/src/main/ets/net/AxiosRequest.ets @@ -0,0 +1,168 @@ +import axios, { AxiosError, AxiosRequestConfig, AxiosResponse, + FormData, + InternalAxiosRequestConfig } from '@ohos/axios'; +import BuildProfile from 'BuildProfile'; +import { Constants } from '../common/Constants'; +import deviceInfo from '@ohos.deviceInfo'; +import { AppUtil, DeviceUtil, JSONUtil, MD5, RandomUtil, StrUtil } from '@pura/harmony-utils'; +import systemDateTime from '@ohos.systemDateTime'; +import { JSON } from '@kit.ArkTS'; +import { AESpkcs7paddingUtil } from '../utils/AESpkcs7paddingUtil'; +import { HttpResult } from './HttpResult'; +import { plainToInstance } from 'class-transformer'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { router } from '@kit.ArkUI'; +import { RouterUrls } from '../common/RouterUrls'; +import { EventConstants } from '../common/EventConstants'; + +const instance = axios.create({ + baseURL: BuildProfile.DEBUG ? Constants.TEST_URL : Constants.BASE_URL, + timeout: 20000 +}); + +// 请求头拦截器 +instance.interceptors.request.use((config: InternalAxiosRequestConfig) => { + config.headers.set('x-token', LoginManager.getToken()) + config.headers.set('x-app-id', Constants.APP_ID) + config.headers.set('x-device-id', DeviceUtil.getDeviceId()) + config.headers.set('x-version', BuildProfile.VERSION_NAME) + config.headers.set('x-mobile-brand', deviceInfo.brand) + config.headers.set('x-mobile-model', deviceInfo.productModel) + config.headers.set('x-base-version', BuildProfile.VERSION_NAME) + config.headers.set('x-package', 'com.yuan.scmf') + config.headers.set('x-platform', 'android') + config.headers.set('x-channel', 'scmf_hmos') + return config; +}, (error: AxiosError) => { + return Promise.reject(error); +}); + +// 请求内容拦截器 +instance.interceptors.request.use((config: InternalAxiosRequestConfig) => { + let url = config.url; + if (!url?.includes("user/upload")) { + let method = config.method?.toLowerCase(); + if (method === "post" || method === "put") { + config.headers.set("Content-Type", "application/json; charset=utf-8"); + } + } + return config; +}, (error: AxiosError) => { + return Promise.reject(error); +}); + +// 请求内容加密拦截器 +instance.interceptors.request.use((config: InternalAxiosRequestConfig) => { + if (config.baseURL === Constants.BASE_URL) { + config.params = config.params || {}; + config.params.nonce = RandomUtil.generateUUID36() + config.params.timestamp = Math.trunc(systemDateTime.getTime() / 1000) + let paramsMap = JSONUtil.jsonToMap(JSON.stringify(config.params)); + let arrayMap = Array.from(paramsMap); + arrayMap.sort((a, b) => { + return a[0].localeCompare(b[0]) + }) + paramsMap = new Map(arrayMap) + let sortQueryString = ""; + paramsMap.forEach((value, key) => { + sortQueryString += key + "=" + value + "&" + }) + sortQueryString = sortQueryString.substring(0, sortQueryString.length - 1) + let signature = MD5.digestSync(sortQueryString + '&' + MD5.digestSync(Constants.SIGNATURE)); + let method = config.method?.toLowerCase(); + if (method === "post" || method === "put") { + if (config.data) { + let dataStr = JSON.stringify(config.data); + if (StrUtil.isNotEmpty(dataStr)) { + signature = MD5.digestSync(sortQueryString + '&' + dataStr + "&" + MD5.digestSync(Constants.SIGNATURE)); + } + } + } + config.params.signature = signature; + } + return config; +}, (error: AxiosError) => { + return Promise.reject(error); +}); + +// 响应拦截器 +instance.interceptors.response.use((response: AxiosResponse) => { + if (response.config.baseURL === (BuildProfile.DEBUG ? Constants.TEST_URL : Constants.BASE_URL)) { + try { + let contentType = response.headers['content-type'] as string; + let dataString: string = ''; + if (StrUtil.isNotEmpty(contentType) && contentType?.includes("application/json")) { + if (response.data !== null) { + let isEncrypt = response.data['encrypt'] as boolean + dataString = response.data['data'] as string; + if (isEncrypt) { + dataString = AESpkcs7paddingUtil.decryptNormal(dataString, Constants.ENCRYPT); + let decData = JSON.parse(dataString) as Record; + let decCode = decData['code'] as number; + switch (decCode) { + case 11018: { + // 刷新首页 + AppUtil.getContext().eventHub.emit(EventConstants.HomeRefreshEvent); + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + break; + } + case 19000: { + // 跳转Vip页面 + router.push({url: RouterUrls.VIP_PAGE, params: { origin: response.config.url }}) + break; + } + case 1001003: { + } + case 1001004: { + + } + case 1001005: { + // 跳转登录 + LoginManager.logout() + router.push({url: RouterUrls.LOGIN_PAGE}) + break; + } + } + } + } + } + response.data = JSON.parse(dataString); + console.error('AxiosResponse:' + JSON.stringify(response.data)) + return plainToInstance(HttpResult, JSON.parse(dataString)); + } catch (e) { + console.log(e); + return new HttpResult(-1, e); + } + } + return response.data; +}, (error: AxiosError) => { + // 响应失败 + return Promise.reject(error); +}); + +export class AxiosRequest { + // 万能请求 + static request(config: AxiosRequestConfig): Promise { + return instance.request(config) + } + + // get请求 + static get(url: string, params?: object): Promise { + return instance.get(url, { params }); + } + + // post请求 + static post(url: string, data?: object): Promise { + return instance.post(url, data); + } + + // put请求 + static put(url: string, data?: object): Promise { + return instance.put(url, data); + } + + // delete请求 + static delete(url: string, params?: object): Promise { + return instance.delete(url, { params }); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/net/HttpResult.ets b/entry/src/main/ets/net/HttpResult.ets new file mode 100644 index 0000000..f394d6b --- /dev/null +++ b/entry/src/main/ets/net/HttpResult.ets @@ -0,0 +1,15 @@ +export class HttpResult { + code: number = 0; + message: string = "" + data?: object = undefined; + + constructor(code: number, message: string, data?: object) { + this.code = code; + this.message = message; + this.data = data; + } + + isSuccess(): boolean { + return this.code === 0; + } +} \ No newline at end of file diff --git a/entry/src/main/ets/net/MediaDownloader.ets b/entry/src/main/ets/net/MediaDownloader.ets new file mode 100644 index 0000000..f246a03 --- /dev/null +++ b/entry/src/main/ets/net/MediaDownloader.ets @@ -0,0 +1,426 @@ +import { AppUtil, FileUtil, JSONUtil, StrUtil } from '@pura/harmony-utils'; +import { MediaEntity, VideoMaterial } from '../entity/MaterialInfoEntity'; +import url from '@ohos.url'; +import { Constants } from '../common/Constants'; +import axios, { AxiosHeaders, AxiosResponse, AxiosResponseHeaders } from '@ohos/axios'; +import { BusinessError, request } from '@kit.BasicServicesKit'; +import { MP4Parser } from '@ohos/mp4parser'; +import { JSON } from '@kit.ArkTS'; + +export interface DownloadCallback { + onGetTotal?:(total: number) => void; + onProgress?:(progress: number) => void; + onPause?:() => void; + onMerge?:(step: number) => void; + onSuccess?:(filePath: string) => void; + onCancel?:() => void; + onFailed?:(err: string) => void; +} + +export class MediaDownloader { + static getInstance(): MediaDownloader { + return new MediaDownloader(); + } + + /** + * 缓存文件夹 + */ + private cacheDir = FileUtil.getCacheDirPath() + FileUtil.separator; + + /** + * 任务对象 + */ + private task?: request.agent.Task | null + + /** + * 下载回调 + */ + private mCallback?: DownloadCallback; + + /** + * 文件名 + */ + private fileName = ''; + + /** + * 代理池 + */ + private proxyList = new Array(); + + callback(callback: DownloadCallback): MediaDownloader { + this.mCallback = callback; + return this; + } + + createHeaders(map?: Map): Record { + const headers: Record = {}; + map?.forEach((value, key) => { + headers[key] = value.toString(); + }) + return headers; + } + + setProxyList(list?: Array): MediaDownloader { + if (list && list.length > 0) { + this.proxyList = list + } + return this + } + + async down(media: MediaEntity) { + this.fileName = media.name; + if (media.isM3u8) { + // this.doM3u8Down(); + this.doException('暂不支持') + } else if (media.isThreading) { + // this.doThreadingDown(); + this.doMediaDown(media, media.isMerge ? 1 : 0); + } else { + this.doMediaDown(media, media.isMerge ? 1 : 0); + } + } + + async doMediaDown(media: MediaEntity, step: number) { + if (media instanceof VideoMaterial && step === 0) { + await this.decodeWxVideo(media) + } + + let url = media.origin; + if (step === 2 && media instanceof VideoMaterial) { + url = media.speed_up === 1 || media.isThreading ? media.audio!!.url : media.audio!!.origin_url; + } else { + url = media.speed_up === 1 || media.isThreading ? media.url : media.origin_url; + } + + let headers: Record = {} + if (media.headers) { + headers = this.createHeaders(JSONUtil.jsonToMap(JSON.stringify(media.headers))); + } + headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:139.0) Gecko/20100101 Firefox/139.0' + headers['Accept'] = '*/*' + + let isCanContinue = false; + /*if (step === 0 || step === 1) { + isCanContinue = await this.isCanContinue(url, media.currentLen) + media.continueDownload = true; + } else if (step === 2 && media instanceof VideoMaterial && media.audio) { + isCanContinue = await this.isCanContinue(url, media.audio.currentLen) + media.continueDownload = true; + }*/ + + if (step === 0 && FileUtil.accessSync(this.cacheDir + this.fileName) && isCanContinue) { + headers['Range'] = `bytes=${media.currentLen}-`; + } else if (step == 1 && FileUtil.accessSync(this.cacheDir + media.cacheName) && + (isCanContinue || media.totalSize !== 0 && media.currentLen === media.totalSize)) { + if (media instanceof VideoMaterial && media.audio && media.totalSize !== 0 && media.currentLen === media.totalSize) { + this.doMerge(4) // 音频提取中 + this.doMediaDown(media, 2) + } else { + headers['Range'] = `bytes=${media.currentLen}-`; + } + } else if (step === 2 && media instanceof VideoMaterial && media.audio && FileUtil.accessSync(this.cacheDir + media.audio.cacheName) && + (isCanContinue || media.audio.totalSize !== 0 && media.audio.currentLen === media.audio.totalSize)) { + if (media.audio.totalSize !== 0 && media.audio.currentLen == media.audio.totalSize) { + this.doMerge(5) // 音视频合并中 + let videoPath = this.cacheDir + media.cacheName + let audioPath = this.cacheDir + media.audio.cacheName + if (FileUtil.accessSync(videoPath) && FileUtil.accessSync(audioPath)) { + this.mergeVideoAndAudio(videoPath, audioPath, url) + } else { + throw Error('file not exists') + } + } else { + headers['Range'] = `bytes=${media.audio.currentLen}-`; + } + } else { + if (step === 0 || step === 1) { + media.currentLen = 0 + } else if (step === 2 && media instanceof VideoMaterial && media.audio) { + media.audio.currentLen = 0 + } + } + + if (this.canceled) return + try { + let filePath = '' + if (step == 1 && media instanceof VideoMaterial) { + filePath = this.cacheDir + media.cacheName + } else if (step == 2 && media instanceof VideoMaterial) { + filePath = this.cacheDir + media.audio!!.cacheName + } else { + filePath = this.cacheDir + this.fileName + } + let config: request.agent.Config = { + action: request.agent.Action.DOWNLOAD, + url: url, + overwrite: true, + saveas: filePath, + headers: headers, + gauge: true, + priority:0 + } + let total = 0; + request.agent.create(AppUtil.getApplicationContext(), config) + .then((task: request.agent.Task) => { + this.task = task + task.start((err: BusinessError) => { + if (err) { + console.error(err.message); + this.doException(err.message); + return; + } + }); + task.on('progress', (progress) => { + if (total === 0) { + total = progress.sizes[0] as number; + if (step === 0 || step === 1) { + total += media.currentLen + media.totalSize = total + } else if (step === 2 && media instanceof VideoMaterial && media.audio) { + total += media.audio.currentLen + media.audio.totalSize = total + } + this.doGetTotal(total); + console.debug(`total: ${progress.sizes[0].toString()}`) + } + if (step === 0 || step === 1) { + media.currentLen = progress.processed + } else if (step === 2 && media instanceof VideoMaterial && media.audio) { + media.audio.currentLen = progress.processed + } + this.doProgress(progress.processed); + console.debug(`progress: ${progress.processed.toString()}`); + }) + task.on('completed', () => { + console.debug('download completed'); + if (step == 1 && media instanceof VideoMaterial && media.audio) { + this.doMerge(4) // 音频提取中 + this.doMediaDown(media, 2) + } else if (step == 2 && media instanceof VideoMaterial) { + this.doMerge(5) // 音视频合并中 + let videoPath = this.cacheDir + media.cacheName + let audioPath = this.cacheDir + media.audio!!.cacheName + if (FileUtil.accessSync(videoPath) && FileUtil.accessSync(audioPath)) { + this.mergeVideoAndAudio(videoPath, audioPath, url) + } else { + this.doException('文件不存在') + } + } else { + this.doSuccess(this.cacheDir + this.fileName); + } + request.agent.remove(task.tid); + }) + task.on('failed', (progress) => { + console.log('download failed'); + request.agent.show(task.tid).then((taskInfo: request.agent.TaskInfo) => { + request.agent.remove(task.tid); + if (this.proxyList.length > 0 && this.replaceUrlWithProxy(media)) { + this.doMediaDown(media, step) + } else { + this.doException(taskInfo.reason); + } + }).catch((err: BusinessError) => { + this.doException(err.message); + request.agent.remove(task.tid); + }); + }); + }) + .catch((err: BusinessError) => { + console.error(err.message); + this.doException(err.message); + }) + } catch (e) { + console.error(e); + this.doException(e); + } + } + + async mergeVideoAndAudio(videoPath: string, audioPath: string, url: string) { + let outputPath = this.cacheDir + this.fileName + if (FileUtil.accessSync(outputPath)) { + FileUtil.unlinkSync(outputPath) + } + let cmd = `ffmpeg -i ${videoPath} -i ${audioPath} -c copy ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.doSuccess(outputPath) + } else { + this.doException('合并失败') + } + } + }) + } + + async fixM4s(filePath: string) { + const file = FileUtil.openSync(filePath, 0o2); + const stat = FileUtil.lstatSync(filePath); + const buffer = new ArrayBuffer(stat.size); + FileUtil.readSync(file.fd, buffer); + FileUtil.fsyncSync(file.fd); + FileUtil.closeSync(file.fd); + + let bytes = new Uint8Array(buffer) + if (bytes.length > 9) { + bytes = bytes.subarray(9) + FileUtil.writeEasy(filePath, bytes.buffer, false) + } + } + + async decodeWxVideo(video: VideoMaterial) { + if (!video.url.includes("wechatDecode=batiao")) { + return + } + try { + const parseUrl = url.URL.parseURL(video.url); + const realUrl = parseUrl.params.get('url') as string; + const decodeKey = parseUrl.params.get("decodeKey"); + const keyUrl = Constants.BASE_URL + "/api/weixin/video/key?decodeKey=" + decodeKey; + const response: AxiosResponse = await axios({ + url: keyUrl, + method: 'get', + responseType: 'array_buffer', + }) + if (response.status === 200) { + video.url = realUrl; + video.origin_url = realUrl; + video.decodeKey = new Int8Array(response.data) + } + } catch (e) { + console.error(e); + } + } + + async isCanContinue(url: string, start: number): Promise { + try { + const headers = new AxiosHeaders(); + headers.set('RANGE', `bytes=${start}-`); + headers.set('Connection', 'close'); + const response: AxiosResponse = await axios({ + url: url, + method: 'get', + headers: headers, + responseType: 'array_buffer' + }) + if (response.status === 206) { //支持 + return Promise.resolve(true); + } else { + const acceptRangesHeaderValue = (response.headers as AxiosResponseHeaders).get('Accept-Ranges') as string + if ("bytes" === acceptRangesHeaderValue?.toLowerCase()) { //支持 + return Promise.resolve(true); + } else { //不支持 + return Promise.resolve(false); + } + } + } catch (e) { + console.log(e); + return Promise.resolve(false); + } + } + + replaceUrlWithProxy(media: MediaEntity): boolean { + try { + let vUrl = url.URL.parseURL(media.url) + + let domainAndPort = vUrl?.host ? vUrl?.host : '' + for (let i = 0; i < this.proxyList.length; i++) { + const proxy = this.proxyList[i]; + if (i < this.proxyList.length - 1) { + if (proxy.includes(domainAndPort)) { + domainAndPort = this.proxyList[i + 1] + break + } + } else return false + } + + // 获取原始 URL 的路径和查询参数 + media.url = domainAndPort + vUrl?.pathname + vUrl?.search + if (media instanceof VideoMaterial && media.audio) { + let aUrl = url.URL.parseURL(media.audio.url) + media.audio!!.url = domainAndPort + aUrl?.pathname + aUrl?.search + } + return true + } catch (e) { + console.error(e) + return false + } + } + + getDomainFromUrl(urlString: string): string { + try { + let parseURL = url.URL.parseURL(urlString) + return parseURL.protocol + "//" + parseURL.host + } catch (e) { + return '' + } + } + + getUrlFileExt(srcUrl: string): string { + try { + let url = srcUrl.substring(0, srcUrl.indexOf('?')) + if (url) { + return url.substring(url.lastIndexOf('.') + 1) + } + } catch (e) { + console.error(e) + } + return '' + } + + private canceled = false + async cancel() { + this.canceled = true + if (this.task) { + this.task.stop() + .then(() => { + this.task = null + this.doCancel() + }) + .catch((e: Error) => { + this.doException(e.message) + }) + } + } + + doGetTotal(total: number) { + if (this.mCallback?.onGetTotal) { + this.mCallback.onGetTotal(total); + } + } + + doProgress(progress: number) { + if (this.mCallback?.onProgress) { + this.mCallback.onProgress(progress); + } + } + + doPause() { + if (this.mCallback?.onPause) { + this.mCallback.onPause(); + } + } + + doMerge(step: number) { + if (this.mCallback?.onMerge) { + this.mCallback.onMerge(step); + } + } + + doSuccess(filePath: string) { + if (this.mCallback?.onSuccess) { + this.mCallback.onSuccess(filePath) + } + } + + doCancel() { + if (this.mCallback?.onCancel) { + this.mCallback.onCancel(); + } + } + + doException(err: string) { + if (this.mCallback?.onFailed) { + this.mCallback.onFailed(err); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/net/request/LoginRequest.ets b/entry/src/main/ets/net/request/LoginRequest.ets new file mode 100644 index 0000000..3c34cb7 --- /dev/null +++ b/entry/src/main/ets/net/request/LoginRequest.ets @@ -0,0 +1,9 @@ + +export interface LoginRequest { + login_type: string; + bind?: boolean; + unbind?: boolean; + phone?: Record; + weixin?: Record; + device?: Record; +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/audio/AudioPlayerPage.ets b/entry/src/main/ets/pages/audio/AudioPlayerPage.ets new file mode 100644 index 0000000..0f502cf --- /dev/null +++ b/entry/src/main/ets/pages/audio/AudioPlayerPage.ets @@ -0,0 +1,237 @@ +import { TipDialog } from '../../dialog/TipDialog' +import { ShareManager } from '../../manager/ShareManager' +import { TitleBar } from '../../view/TitleBar' +import { ToastUtils } from '../../utils/ToastUtils' +import { AppUtil } from '@pura/harmony-utils' +import { EventConstants } from '../../common/EventConstants' +import { MediaAction, MediaType } from '../../manager/MediaManager' +import { media } from '@kit.MediaKit' +import { fileIo } from '@kit.CoreFileKit' +import { LocalMediaManager } from '../../manager/LocalMediaManager' +import { avSessionManager } from '../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct AudioPlayerPage { + @Local title: string = '' + @Local uri: string = '' + @Local showActions: boolean = false + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + + avPlayer?: media.AVPlayer; + + aboutToAppear(): void { + this.initParams() + this.initPlayer() + } + + onPageHide(): void { + if (this.avPlayer) { + this.avPlayer.pause() + } + } + + aboutToDisappear(): void { + if (this.avPlayer) { + this.avPlayer.release() + } + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.title = params.title as string + this.uri = params.uri as string; + this.showActions = params.showActions as boolean + } + } + + async initPlayer() { + this.avPlayer = await media.createAVPlayer(); + // 创建状态机变化回调函数 + this.setAVPlayerCallback(); + // 打开相应的资源文件地址获取fd + let file = await fileIo.open(this.uri); + this.avPlayer.url = 'fd://' + file.fd; + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + // 注册avplayer回调函数 + setAVPlayerCallback() { + this.avPlayer!!.on('error', (err) => { + console.error(`播放器发生错误,错误码:${err.code}, 错误信息:${err.message}`); + // 调用reset重置资源,触发idle状态 + this.isPlaying = false + this.avPlayer!!.reset(); + avSessionManager.deactivate() + }) + // 状态机变化回调函数 + this.avPlayer!!.on('stateChange', async (state, reason) => { + switch (state) { + case 'initialized': + console.info('资源初始化完成'); + // 资源初始化完成,开始准备文件 + this.avPlayer!!.prepare(); + break; + case 'prepared': + console.info('资源准备完成'); + // 资源准备完成,开始准备文件 + this.durationTime = Math.trunc(this.avPlayer!!.duration / 1000) + this.currentTime = this.avPlayer!!.currentTime; + + await avSessionManager.activate() + this.avPlayer!!.play(); + break; + case 'completed': + console.info('播放完成'); + this.isPlaying = false + this.avPlayer!!.off('bufferingUpdate') + AppStorage.setOrCreate('currentTime', this.durationTime); + avSessionManager.deactivate() + break; + case 'playing': + console.info('播放开始'); + this.isPlaying = true + break; + case 'released': + case 'stopped': + case 'error': + case 'paused': + console.info('播放暂停'); + this.isPlaying = false + avSessionManager.deactivate() + break; + } + }) + // 时间上报监听函数 + this.avPlayer!!.on('timeUpdate', (time: number) => { + this.currentTime = Math.trunc(time / 1000); + }); + } + + build() { + Column() { + TitleBar().width('100%') + + RelativeContainer() { + Image($r('app.media.ic_audio_thumb')) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.avPlayer!!.pause() + } else { + await avSessionManager.activate() + this.avPlayer!!.play() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.avPlayer!!.seek(value * 1000, 2); // 设置视频播放的进度跳转到value处 + this.currentTime = value; + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .margin({ bottom: this.showActions ? 0 : 50}) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + }.layoutWeight(1) + + Row() { + Column() { + Image($r('app.media.ic_action_share')).width(50).height(50) + Text('转发').fontSize(12).fontColor($r('app.color.color_50ffffff')).margin({ top: 13 }) + } + .id('btn_share') + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.Center } + }) + .margin({ right: 40 }) + .onClick(() => { + ShareManager.shareFile(this.uri) + }) + + Column() { + Image($r('app.media.ic_action_delete')).width(50).height(50) + Text('删除').fontSize(12).fontColor($r('app.color.color_50ffffff')).margin({ top: 13 }) + } + .id('btn_delete') + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Center }, + }) + .margin({ left: 40 }) + .onClick(() => { + this.avPlayer!!.pause() + TipDialog.show(this.getUIContext(), { + title: '提示', content: '确定删除该音频?', callback: { + confirm: () => { + fileIo.unlink(this.uri) + .then(() => { + ToastUtils.show('删除成功') + LocalMediaManager.delete(this.title) + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.AUDIO, MediaAction.DELETE) + this.getUIContext().getRouter().back() + }) + .catch(() => { + ToastUtils.show('删除失败, 请到文件管理中手动删除') + }) + } + } + }) + }) + } + .height(200) + .margin({ top: 10 }) + .visibility(this.showActions ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/guide/GuidePage.ets b/entry/src/main/ets/pages/guide/GuidePage.ets new file mode 100644 index 0000000..f70b829 --- /dev/null +++ b/entry/src/main/ets/pages/guide/GuidePage.ets @@ -0,0 +1,90 @@ +import { RouterUrls } from '../../common/RouterUrls'; +import { ToastUtils } from '../../utils/ToastUtils'; +import systemDateTime from '@ohos.systemDateTime'; +import { router } from '@kit.ArkUI'; +import { AppUtil } from '@pura/harmony-utils'; +import { ConfigManager } from '../../manager/UserConfigManager'; +import { EventReportGlobalManager } from '../../manager/EventReportGlobalManager'; +import { EventConstants } from '../../common/EventConstants'; + +@Entry +@ComponentV2 +struct GuidePage { + child = [ + $r('app.media.ic_guide_1'), + $r('app.media.ic_guide_2'), + $r('app.media.ic_guide_3'), + $r('app.media.ic_guide_4') + ] + currentIndex: number = 0; + + clickTime: number = 0; + + @Local showHomePage: boolean = true + + aboutToAppear(): void { + EventReportGlobalManager.eventReport(EventConstants.GUIDE_LAUNCH) + } + + build() { + Stack() { + Image($r('app.media.ic_guide_bg')).width('100%').height('100%') + if (this.showHomePage) { + Column() { + Image($r('app.media.ic_guide_cover')).width('100%').aspectRatio(0.75) + Text('视频搬运工具').fontColor('#0B2449').fontSize(32).fontFamily('almmsht') + .margin({top: 27}) + Text(ConfigManager.getGuideHint()).fontColor('#1E385D').fontSize(16).margin({top: 12, left: 54, right: 54}) + Blank().layoutWeight(1) + Button('立即使用') + .width(180) + .height(40) + .fontColor(Color.White) + .fontSize(16) + .borderRadius(20) + .backgroundColor($r("app.color.color_466afd")) + .margin({bottom: 30}) + .onClick(() => { + this.showHomePage = false + }) + } + .width('100%') + .height('100%') + } else { + Swiper() { + ForEach(this.child, (item: Resource) => { + Image(item).width('100%').height('100%') + }) + } + .indicator(false) + .onChange((index: number) => { + this.currentIndex = index; + EventReportGlobalManager.eventReport(EventConstants.GUIDE_OPPORTUNITY_SCROLL, `${index + 1}`) + }) + .onGestureSwipe((index: number, extraInfo: SwiperAnimationEvent) => { + if (index === this.child.length - 1 && extraInfo.currentOffset < -60) { + // 跳转VIP充值页面 + if (ConfigManager.isGuidePayEnable()) { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.VIP_PAGE, params: { origin: 'bootpage'} }); + } else { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single); + } + } + }) + .loop(false) + .width('100%') + .height('100%') + } + } + } + + onBackPress(): boolean | void { + if (systemDateTime.getTime() - this.clickTime < 1500) { + AppUtil.getContext().terminateSelf(); + } else { + this.clickTime = systemDateTime.getTime(); + ToastUtils.show('双击退出应用'); + } + return true; + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/login/LoginPage.ets b/entry/src/main/ets/pages/login/LoginPage.ets new file mode 100644 index 0000000..55200ad --- /dev/null +++ b/entry/src/main/ets/pages/login/LoginPage.ets @@ -0,0 +1,355 @@ +import { TitleBar } from '../../view/TitleBar'; +import systemDateTime from '@ohos.systemDateTime'; +import { ToastUtils } from '../../utils/ToastUtils'; +import { common } from '@kit.AbilityKit'; +import { RouterUrls } from '../../common/RouterUrls'; +import { Constants } from '../../common/Constants'; +import LoginViewModel from '../../viewModel/LoginViewModel'; +import { AppUtil, RandomUtil, StrUtil } from '@pura/harmony-utils'; +import { SendCodeEntity } from '../../entity/SendCodeEntity'; +import { LoginEntity } from '../../entity/LoginEntity'; +import { ConfigManager } from '../../manager/UserConfigManager'; +import { LoginTipDialog } from '../../dialog/LoginTipDialog'; +import { LevelMode, router } from '@kit.ArkUI'; +import { LoginManager } from '../../manager/LoginGlobalManager'; +import { OnWXResp, WXApi, WXEventHandler } from '../../utils/wechat/WXApiEventHandlerImpl'; +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { ErrCode, SendAuthResp } from '@tencent/wechat_open_sdk'; +import BuildProfile from 'BuildProfile'; +import { LoadingDialog } from '../../dialog/LoadingDialog'; +import { EventConstants } from '../../common/EventConstants'; +import { EventReportGlobalManager } from '../../manager/EventReportGlobalManager'; + +@Entry +@ComponentV2 +struct LoginPage { + @Local from: number = 0; + @Local isAgree: boolean = false; + @Local countDownTime: number = 0; + + loginTipDialogController?: CustomDialogController | null; + + viewModel: LoginViewModel = new LoginViewModel(this.getUIContext()); + + clickTime: number = 0; + phone: string = ''; + code: string = ''; + timestamp: string = ''; + intervalId: number = -1; + //从微信返回的回调 + onWXResp: OnWXResp = (resp) => { + //微信返回的数据 + if (resp instanceof SendAuthResp && resp.state?.endsWith('phone')) { + const authResult = JSON.stringify(resp ?? {}, null , 2); + const errCode = JSON.parse(authResult).errCode as number; + if (errCode === ErrCode.ERR_OK) { + const authCode = JSON.parse(authResult).code as string; + this.viewModel.wxLogin(authCode); + } else { + ToastUtils.show(JSON.parse(authResult).errStr); + } + } + } + + @Monitor('viewModel.codeEntity') + onCodeChange(monitor: IMonitor) { + const code = monitor.value()?.now as SendCodeEntity; + ToastUtils.show('验证码已发送'); + this.timestamp = code.timestamp; + this.countDownTime = 60; + this.intervalId = setInterval(() => { + if (this.countDownTime > 0) { + this.countDownTime-- + } else { + if (this.intervalId !== 0) { + clearInterval(this.intervalId); + } + } + }, 1000) + } + + @Monitor('viewModel.phoneLoginEntity') + onPhoneLogin(monitor: IMonitor) { + const loginEntity = monitor.value()?.now as LoginEntity; + EventReportGlobalManager.eventReport(EventConstants.LOGIN, 'phone', this.phone) + LoginManager.saveToken(loginEntity.token); + LoginManager.saveLastLoginType('phone') + ConfigManager.userConfig() + .then(() => { + if (this.from === 0) { + this.toMainPage(); + } else { + this.getUIContext().getRouter().back() + } + }) + } + + @Monitor('viewModel.wxLoginEntity') + onWxLogin(monitor: IMonitor) { + const loginEntity = monitor.value()?.now as LoginEntity; + EventReportGlobalManager.eventReport(EventConstants.LOGIN, 'weixin') + LoginManager.saveToken(loginEntity.token); + LoginManager.saveLastLoginType('weixin') + ConfigManager.userConfig() + .then(() => { + if (this.from === 0) { + this.toMainPage(); + } else { + this.getUIContext().getRouter().back() + } + }) + } + + aboutToAppear() { + WXEventHandler.registerOnWXRespCallback(this.onWXResp) + this.initParams(); + } + + aboutToDisappear() { + WXEventHandler.unregisterOnWXRespCallback(this.onWXResp) + this.loginTipDialogController = null + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.from = params.from as number; + } + } + + sendCode() { + if (StrUtil.isEmpty(this.phone)) { + ToastUtils.show('请输入手机号'); + return; + } + if (this.phone.length != 11) { + ToastUtils.show('请输入正确的手机号'); + return; + } + this.viewModel.sendCode(this.phone); + EventReportGlobalManager.eventReport(EventConstants.GET_CODE, "code_login", this.phone) + } + + toMainPage() { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single); + AppUtil.getContext().eventHub.emit(EventConstants.LoginSuccessEvent); + } + + async wxAuth() { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('未安装微信客户端,请先下载安装微信客户端'); + return; + } + LoadingDialog.show(this.getUIContext()); + let req = new WxOpenSdk.SendAuthReq; + req.isOption1 = false; + req.nonAutomatic = true; + req.scope = 'snsapi_userinfo'; + req.state = BuildProfile.BUNDLE_NAME + RandomUtil.getRandomInt(0, 1000) + '_phone'; + req.transaction =''; + + await WXApi.sendReq(AppUtil.getContext(), req) + LoadingDialog.dismiss(); + } + + showLoginTipDialog(type: number) { + this.loginTipDialogController = new CustomDialogController({ + builder: LoginTipDialog({ + confirm: () => { + this.isAgree = true; + if (type === 0) { + this.viewModel.phoneLogin(this.phone, this.code, this.timestamp); + } else if (type === 1) { + this.wxAuth(); + } + } + }), + cornerRadius: 20, + maskColor: '#CC000000', + levelMode: LevelMode.EMBEDDED, + backgroundBlurStyle: BlurStyle.NONE + }) + this.loginTipDialogController.open(); + } + + onBackPress(): boolean | void { + if (this.from === 0) { + if (systemDateTime.getTime() - this.clickTime < 1500) { + (this.getUIContext().getHostContext() as common.UIAbilityContext).terminateSelf(); + } else { + EventReportGlobalManager.eventReport(EventConstants.EXIT_APP, 'login') + this.clickTime = systemDateTime.getTime(); + ToastUtils.show('双击退出应用'); + } + return true; + } + } + + build() { + Stack({alignContent: Alignment.TopStart}) { + Image($r('app.media.ic_login_top_bg')).width('100%') + + Column() { + TitleBar({ showBack: this.from !== 0 }).width('100%') + Image($r('app.media.ic_login_logo')) + .margin({ top: 10 }) + .width(80) + .height(80) + + Text($r('app.string.app_name')) + .fontColor($r('app.color.color_212226')) + .fontSize(18) + .fontFamily('almmsht') + .margin({ top: 12 }) + .width('auto') + + Row(){ + Image($r('app.media.ic_login_phone')).width(22).height(22) + TextInput({ placeholder: '请输入您的手机号' }) + .type(InputType.PhoneNumber) + .fontColor($r('app.color.color_1a1a1a')) + .fontSize(16) + .placeholderColor($r('app.color.color_bcbcbc')) + .placeholderFont({ size: 16 }) + .maxLength(11) + .backgroundColor(Color.Transparent) + .onChange((value: string) => { + this.phone = value; + }) + } + .height(50) + .margin({ top: 50, left: 38, right: 38 }) + + Divider().strokeWidth(1).color($r('app.color.color_dfdfdf')).margin({ left: 38, right: 38 }) + + RelativeContainer() { + Row() { + Image($r('app.media.ic_login_code')).width(22).height(22) + TextInput({ placeholder: '请输入验证码' }) + .type(InputType.Number) + .fontColor($r('app.color.color_1a1a1a')) + .fontSize(16) + .placeholderColor($r('app.color.color_bcbcbc')) + .placeholderFont({ size: 16 }) + .maxLength(6) + .backgroundColor(Color.Transparent) + .onChange((value: string) => { + this.code = value; + }) + } + .id('row_code') + + Text(this.countDownTime === 0 && StrUtil.isEmpty(this.timestamp) ? '获取验证码' : + this.countDownTime > 0 ? `${this.countDownTime}s` : '重新发送') + .fontColor(this.countDownTime === 0 ? $r("app.color.color_466afd") : $r('app.color.color_999999')) + .fontSize(14) + .alignRules({ + top: { anchor: 'row_code', align: VerticalAlign.Top }, + right: { anchor: 'row_code', align: HorizontalAlign.End }, + bottom: { anchor: 'row_code', align: VerticalAlign.Bottom }, + }) + .margin({ right: 16 }) + .width('auto') + .onClick(() => { + if (this.countDownTime === 0) { + this.sendCode(); + } + }) + }.margin({ top: 26, left: 38, right: 38 }).height(50) + + Divider().strokeWidth(1).color($r('app.color.color_dfdfdf')).margin({ left: 38, right: 38 }) + + Stack() { + Button('登录', { type: ButtonType.Capsule, stateEffect: true }) + .width('100%') + .height(50) + .fontColor(Color.White) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .backgroundColor($r("app.color.color_466afd")) + }.margin({ top: 40 }).padding({ left: 38, right: 38 }) + .onClick(() => { + if (StrUtil.isEmpty(this.phone)) { + ToastUtils.show('请输入手机号'); + return; + } + if (this.phone.length != 11) { + ToastUtils.show('请输入正确的手机号'); + return; + } + if (StrUtil.isEmpty(this.code)) { + ToastUtils.show('请输入验证码'); + return; + } + if (this.isAgree) { + this.viewModel.phoneLogin(this.phone, this.code, this.timestamp); + } else { + this.showLoginTipDialog(0); + } + }) + + Row() { + Image(this.isAgree ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')).width(16).height(16) + Text() { + Span('我已阅读并同意') + Span('《用户协议》').fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ url: RouterUrls.WEB_PAGE, params: { title: '用户协议', url: Constants.USER_AGREEMENT } }) + }) + Span('和') + Span('《隐私政策》').fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ url: RouterUrls.WEB_PAGE, params: { title: '隐私政策', url: Constants.PRIVACY_POLICY } }) + }) + } + .fontColor($r('app.color.color_999999')) + .fontSize(12) + .margin({ left: 4, top: 2 }) + } + .alignItems(VerticalAlign.Top) + .margin({ left: 38, top: 16, right: 38 }) + .onClick(() => { + this.isAgree = !this.isAgree; + }) + + Blank().layoutWeight(1) + + Text('其他登录方式') + .fontColor('#AAAAAA') + .fontSize(10) + .width('auto') + .visibility(ConfigManager.getLoginType().length > 1 ? Visibility.Visible : Visibility.None) + Row() { + Image($r('app.media.ic_wx_login')) + .margin({ left: 25, right: 25 }) + .width(38) + .height(38) + .id('iv_wx_login') + .onClick(() => { + if (this.isAgree) { + this.wxAuth() + } else { + this.showLoginTipDialog(1); + } + }) + .visibility(ConfigManager.getLoginType().includes('weixin') ? Visibility.Visible : Visibility.None) + + Image($r('app.media.ic_onekey_login')) + .margin({ left: 25, right: 25 }) + .width(38) + .height(38) + .id('iv_onekey_login') + .visibility(Visibility.None) + } + .margin({ top: 20, bottom: 50 }) + } + .width('100%') + .height('100%') + } + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/login/qrcode/QrcodeLoginPage.ets b/entry/src/main/ets/pages/login/qrcode/QrcodeLoginPage.ets new file mode 100644 index 0000000..ad19b0f --- /dev/null +++ b/entry/src/main/ets/pages/login/qrcode/QrcodeLoginPage.ets @@ -0,0 +1,81 @@ +import { TitleBar } from '../../../view/TitleBar' +import { QrcodeLoginViewModel } from '../../../viewModel/QrcodeLoginViewModel' + +@Entry +@ComponentV2 +struct QrcodeLoginPage { + viewModel: QrcodeLoginViewModel = new QrcodeLoginViewModel(this.getUIContext()) + + code: string = '' + + @Monitor('viewModel.loginResult') + onLogin() { + this.getUIContext().getRouter().back() + } + + aboutToAppear(): void { + this.initParams() + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.code = params.code as string + } + } + + onBackPress(): boolean | void { + return true + } + + build() { + Column() { + TitleBar({ title: '登录确认', isDark: false}) + + Column() { + Image($r('app.media.ic_qrcode_login_computer_black')) + .width(110) + .height(110) + .margin({ top: 100 }) + + Text() { + Span('登录 ') + Span($r('app.string.app_name')).fontColor($r("app.color.color_466afd")) + Span(' 网页端') + } + .fontSize(20) + .fontColor($r('app.color.color_1a1a1a')) + .fontWeight(FontWeight.Bold) + .margin({ top: 20 }) + + Button('登录') + .width(184) + .height(48) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .borderRadius(6) + .margin({ top: 90 }) + .onClick(() => { + this.viewModel.login(this.code) + }) + + Text('取消登录').fontColor('#95979E') + .fontSize(14) + .margin({ top: 20 }) + .onClick(() => { + this.getUIContext().getRouter().back() + }) + } + .width('90%') + .layoutWeight(1) + .margin(16) + .borderRadius(16) + .backgroundColor(Color.White) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.color_ededed')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/MainPage.ets b/entry/src/main/ets/pages/main/MainPage.ets new file mode 100644 index 0000000..11b71aa --- /dev/null +++ b/entry/src/main/ets/pages/main/MainPage.ets @@ -0,0 +1,177 @@ +import { router, window } from '@kit.ArkUI'; +import { HomePage } from './home/HomePage'; +import { MinePage } from './mine/MinePage'; +import { RecordPage } from './record/RecordPage'; +import systemDateTime from '@ohos.systemDateTime'; +import { ToastUtils } from '../../utils/ToastUtils'; +import { AppUtil, PasteboardUtil, StrUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../common/EventConstants'; +import { MainViewModel } from '../../viewModel/MainViewModel'; +import { UserEntity } from '../../entity/UserEntity'; +import { SimpleTipDialog } from '../../dialog/SimpleTipDialog'; +import { RouterUrls } from '../../common/RouterUrls'; +import { TipDialog } from '../../dialog/TipDialog'; +import { ConfigManager } from '../../manager/UserConfigManager'; +import { EventReportGlobalManager } from '../../manager/EventReportGlobalManager'; +import { PasteboardUtils } from '../../utils/PasteboardUtils'; + +@Entry +@ComponentV2 +struct MainPage { + windowStage: window.WindowStage = AppStorage.get("windowStage") as window.WindowStage; + + viewModel: MainViewModel = new MainViewModel(this.getUIContext()); + + tabController: TabsController = new TabsController() + + userinfo?: UserEntity; + + titles = ['首页', '素材库', '工具', '我的']; + + clickTime: number = 0; + + @Local currentIndex: number = 0; + @Provider() recordIndex: number = 0 + + @Monitor('viewModel.userEntity') + onUserinfoChange(monitor: IMonitor) { + this.userinfo = monitor.value()?.now as UserEntity; + this.showLoginTip(); + } + + aboutToAppear(): void { + this.windowStage.getMainWindowSync().setWindowSystemBarProperties({ + statusBarColor: '#00000000', + statusBarContentColor: '#000000' + }); + this.initObserver(); + ConfigManager.userConfig() + } + + aboutToDisappear(): void { + AppUtil.getContext().eventHub.off(EventConstants.LoginSuccessEvent); + AppUtil.getContext().eventHub.off(EventConstants.JumpToRecordEvent); + } + + onPageShow(): void { + this.viewModel.userinfo(); + if (this.currentIndex === 1) { + AppUtil.getContext().eventHub.emit(EventConstants.RecordRefreshEvent); + } else if (this.currentIndex === 2) { + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + } + this.checkPasteboard() + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.LoginSuccessEvent, () => { + AppUtil.getContext().eventHub.emit(EventConstants.HomeRefreshEvent); + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + }) + AppUtil.getContext().eventHub.on(EventConstants.JumpToRecordEvent, (index: number) => { + this.tabController.changeIndex(1) + this.currentIndex = 1 + }) + } + + checkPasteboard() { + PasteboardUtils.isNeedGetPermissionFromUser() + .then((isNeed) => { + if (isNeed) { + PasteboardUtil.requestPermissions() + .then((isGranted) => { + if (isGranted) { + let content = PasteboardUtil.getDataTextSync() + if (StrUtil.isNotEmpty(content) && content !== PasteboardUtils.clipText && PasteboardUtils.isValidUrl(content)) { + TipDialog.show(this.getUIContext(), {title: '您已复制链接,是否粘贴', content: content, leftText: '取消', rightText: '粘贴', callback: { + confirm: () => { + PasteboardUtils.clipText = content + this.getUIContext().getRouter().pushUrl({url: RouterUrls.TAKE_MATERIAL_PAGE, params:{url: content}}) + }, + cancel: () => { + PasteboardUtils.clipText = content + } + }}) + } + } + }) + .catch(() => {}) + } + }) + } + + build() { + Tabs({ controller: this.tabController, barPosition: BarPosition.End }) { + TabContent() { + HomePage() + } + .tabBar(this.tabBuilder(this.titles[0], 0, $r('app.media.ic_home_select'), $r('app.media.ic_home_default'))) + + TabContent() { + + } + .tabBar(this.tabBuilder(this.titles[1], 1, $r('app.media.ic_material_select'), $r('app.media.ic_material_default'))) + + TabContent() { + + } + .tabBar(this.tabBuilder(this.titles[2], 2, $r('app.media.ic_tool_select'), $r('app.media.ic_tool_default'))) + + TabContent() { + MinePage() + } + .tabBar(this.tabBuilder(this.titles[3], 3, $r('app.media.ic_mine_select'), $r('app.media.ic_mine_default'))) + } + .scrollable(false) + .onSelected((index: number) => { + this.currentIndex = index; + if (index === 3) { + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + } + this.showLoginTip(); + EventReportGlobalManager.eventReport(EventConstants.HOME_BOTTOM_TAB_CHECK, this.titles[index], '') + }) + .padding({ bottom: 20 }) + .backgroundColor(Color.White) + } + + @Builder + tabBuilder(title: string, targetIndex: number, selectedImg: Resource, normalImg: Resource) { + Column() { + Image(this.currentIndex === targetIndex ? selectedImg : normalImg) + .size({ width: 24, height: 24 }) + Text(title) + .fontColor(this.currentIndex === targetIndex ? $r("app.color.color_466afd") : '#676E87') + .fontSize(10) + } + .width('100%') + .height(50) + .justifyContent(FlexAlign.Center) + } + + showLoginTip() { + if (this.userinfo && this.userinfo.temp && (this.userinfo.vip === 2 || this.userinfo.vip == 3)) { + SimpleTipDialog.show(this.getUIContext(), { + title: '郑重提示', + content: '系统检测到您目前尚未登录,但您已成为我们尊贵的会员,为了防止您的会员账号丢失,建议您立即前往登录', + buttonText: '立即登录', + callback: { + confirm: () => { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.LOGIN_PAGE }, router.RouterMode.Single) + } + } + }, false) + } + } + + onBackPress(): boolean | void { + if (systemDateTime.getTime() - this.clickTime < 1500) { + AppUtil.getContext().terminateSelf(); + } else { + EventReportGlobalManager.eventReport(EventConstants.EXIT_APP, 'main') + this.clickTime = systemDateTime.getTime(); + ToastUtils.show('双击退出应用'); + } + return true; + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/HomePage.ets b/entry/src/main/ets/pages/main/home/HomePage.ets new file mode 100644 index 0000000..cef80f1 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/HomePage.ets @@ -0,0 +1,457 @@ +import { borderRadiuses } from '@kit.ArkUI'; +import { HomeMenuEntity, homeMenuList } from '../../../entity/HomeMenuEntity'; +import { NoticeEntity } from '../../../entity/NoticeEntity'; +import { HomeViewModel } from '../../../viewModel/HomeViewModel'; +import { AppUtil, WantUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../common/EventConstants'; +import { BannerEntity } from '../../../entity/BannerEntity'; +import { ConfigManager } from '../../../manager/UserConfigManager'; +import { LoginManager } from '../../../manager/LoginGlobalManager'; +import { RouterUrls } from '../../../common/RouterUrls'; +import { TipDialog } from '../../../dialog/TipDialog'; +import { EventReportGlobalManager } from '../../../manager/EventReportGlobalManager'; +import { Constants } from '../../../common/Constants'; +import { MaterialEntity } from '../../../entity/MaterialEntity'; +import { DownSamplingStrategy, ImageKnifeComponent, ImageKnifeOption } from '@ohos/imageknifepro'; + +@ComponentV2 +export struct HomePage { + @Local notices?: Array = []; + @Local banners: Array = []; + @Local materialList: Array = [] + @Local isRefreshing: boolean = false + @Local isLoading: boolean = false + @Local canLoadMore: boolean = false + + viewModel: HomeViewModel = new HomeViewModel(this.getUIContext()); + + noticeScroller: Scroller = new Scroller(); + + noticeTaskId: number = 0; + bannerTaskId: number = 0; + + private page: number = 1; + + @Monitor('viewModel.noticeEntity') + onNoticeChange(monitor: IMonitor) { + const noticeEntity = monitor.value()?.now as NoticeEntity; + this.notices = noticeEntity.notice; + if (this.notices && this.notices.length >= 1) { + this.startNoticeTask(); + } else { + this.stopNoticeTask(); + } + } + + @Monitor('viewModel.materialList') + onMaterialListChange(monitor: IMonitor) { + const list = monitor.value()?.now as Array + if (this.page === 1) { + this.materialList = list + this.isRefreshing = false + } else { + this.materialList.push(...list) + this.isLoading = false + } + this.canLoadMore = list.length === 20 + } + + aboutToAppear(): void { + this.initObserver(); + this.initBanner(); + this.viewModel.noticeList(); + this.viewModel.getMaterialList(this.page.toString()) + } + + aboutToDisappear(): void { + this.stopNoticeTask(); + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.HomeRefreshEvent, () => { + this.viewModel.noticeList(); + }) + } + + initBanner() { + if (this.banners.length > 0) { + this.banners.splice(0, this.banners.length) + } + const list = ConfigManager.getHomeBanner(); + for (let i = 0; i < list.length; i++) { + const item = list[i]; + if (item.page === 'check_Task') { + continue + } else if (item.page === 'recharge' && LoginManager.getUserInfo()?.vip === 3) { + continue + } + this.banners.push(item); + } + } + + startNoticeTask() { + if (this.noticeTaskId === 0 && this.notices && this.notices.length >= 1) { + this.noticeTaskId = setInterval(() => { + this.noticeScroller.scrollBy(3, 0) + if (this.noticeScroller.isAtEnd()) { + this.notices = this.notices?.concat(this.notices); + } + }, 25) + } + } + + stopNoticeTask() { + if (this.noticeTaskId !== 0) { + clearInterval(this.noticeTaskId); + this.noticeTaskId = 0; + } + } + + createImageOption(item: MaterialEntity): ImageKnifeOption { + const option:ImageKnifeOption = { + loadSrc: item.pic ? item.pic.url : '', + placeholderSrc: $r('app.media.ic_placeholder'), + thumbnailSrc: $r('app.media.ic_placeholder'), + errorSrc: $r('app.media.ic_placeholder'), + objectFit: ImageFit.Cover, + border: {radius: 6}, + downSampling: DownSamplingStrategy.FIT_CENTER_QUALITY, + onLoadListener:{ + onLoadSuccess: (imageInfo) => { + item.pic_size = `${imageInfo.imageWidth}:${imageInfo.imageHeight}` + } + } + } + return option + } + + build() { + Refresh({refreshing: this.isRefreshing}) { + Scroll() { + RelativeContainer() { + Image($r('app.media.ic_home_top_bg')).width('100%').aspectRatio(1.973) + + Swiper() { + ForEach(this.banners, (item: BannerEntity) => { + Image(item.image).width('100%').aspectRatio(2.5).margin({left: 12, right: 12}) + .onClick(() => { + switch (item.page) { + case 'vip': { + if (LoginManager.getUserInfo()?.vip !== 3) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIP_PAGE, params: {origin: 'banner'}}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, 'banner') + } + break; + } + case 'check_Task': { + + } + case 'course': { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.COURSE_PAGE}) + } + case 'web_link': { + WantUtil.toWebBrowser(Constants.WEB_URL) + } + } + }) + .borderRadius(10) + }) + } + .indicator( + Indicator.dot() + .itemWidth(4) + .itemHeight(4) + .selectedItemWidth(12) + .selectedItemHeight(4) + .color('#D6D6D6') + .selectedColor(Color.White) + ) + .loop(this.banners && this.banners.length > 1) + .autoPlay(true) + .interval(2000) + .margin({ top: 70 }) + .visibility(this.banners && this.banners.length > 0 ? Visibility.Visible : Visibility.None) + .id('swiper_banner') + + RelativeContainer() { + List({space: 100, scroller: this.noticeScroller}) { + if (this.notices && this.notices.length >= 1) { + ForEach(this.notices, (item: string) => { + ListItem() { + Text(item).height('100%').textAlign(TextAlign.Center).fontColor('#1876E2').fontSize(13) + } + }) + } + } + .listDirection(Axis.Horizontal) + .backgroundColor('#E4EDFD') + .borderRadius(borderRadiuses(6)) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + left: { anchor: '__container__', align: HorizontalAlign.Start }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .scrollBar(BarState.Off) + .enableScrollInteraction(false) + .margin({ left: 12, right: 12 }) + .padding({left: 45}) + .height(36) + .id('li_notice') + + Image($r('app.media.ic_notice')) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .margin({ left: 5, bottom: 2 }) + .width(54) + .height(54) + } + .alignRules({ + top: { anchor: 'swiper_banner', align: VerticalAlign.Bottom } + }) + .margin({top: 11}) + .width('100%') + .height(54) + .visibility(this.notices && this.notices?.length > 0 ? Visibility.Visible : Visibility.None) + .id('layout_notice') + + Row() { + Column() { + Row() { + Text('链接提取').fontColor('#15005D').fontSize(17).fontFamily('almmsht') + Image($r('app.media.ic_home_top_menu_arrow1')).width(12).height(12).margin({left: 2}) + } + Text('涵盖大多数平台').fontColor($r('app.color.color_666666')).fontSize(11).margin({top: 4}) + Blank().layoutWeight(1) + Text('1000+国内外视频平台').fontColor($r('app.color.color_999999')).fontSize(10) + Row({space: 6}){ + Image($r('app.media.ic_home_link_support_icon1')).width(30).width(30) + Image($r('app.media.ic_home_link_support_icon2')).width(30).width(30) + Image($r('app.media.ic_home_link_support_icon3')).width(30).width(30) + Text('更多').fontColor(Color.White).fontSize(10).width(30).height(30).textAlign(TextAlign.Center).backgroundColor('#825EFF').borderRadius(6) + } + .margin({top: 8}) + Row() { + Image($r('app.media.yq_0')).width(14).height(14).borderRadius(7) + Image($r('app.media.yq_1')).width(14).height(14).borderRadius(7).margin({left: -4}) + Image($r('app.media.yq_2')).width(14).height(14).borderRadius(7).margin({left: -4}) + Text('1000+用户体验中').fontColor($r('app.color.color_999999')).fontSize(10).margin({left: 6}) + } + .margin({top: 12}) + } + .width('52.7%') + .aspectRatio(1.12) + .backgroundImage($r('app.media.ic_home_top_menu_bg1')) + .backgroundImageSize({width: '100%', height: '100%'}) + .padding({left: 10, top: 25, right: 10, bottom: 8}) + .alignItems(HorizontalAlign.Start) + .id('layout_link') + .onClick(() => { + // let info = AppUtil.getSignatureInfoSync() + this.getUIContext().getRouter().pushUrl({url: RouterUrls.TAKE_MATERIAL_PAGE}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_LINK_EXTRACT) + }) + + Column() { + Column() { + Row() { + Text('视频号').fontColor('#113100').fontSize(16).fontFamily('almmsht') + Image($r('app.media.ic_home_top_menu_arrow2')).width(12).height(12).margin({left: 2}) + } + Text('支持微信视频号').fontColor($r('app.color.color_666666')).fontSize(11) + Blank().layoutWeight(1) + Row() { + Image($r('app.media.yq_3')).width(14).height(14).borderRadius(7) + Image($r('app.media.yq_4')).width(14).height(14).borderRadius(7).margin({left: -4}) + Image($r('app.media.yq_5')).width(14).height(14).borderRadius(7).margin({left: -4}) + Text('1200+用户体验中').fontColor($r('app.color.color_999999')).fontSize(10).margin({left: 6}) + } + } + .width('48.7%') + .aspectRatio(1.965) + .backgroundImage($r('app.media.ic_home_top_menu_bg2')) + .backgroundImageSize({width: '100%', height: '100%'}) + .padding({left: 10, top: 20, right: 10, bottom: 8}) + .margin({top: -5}) + .alignItems(HorizontalAlign.Start) + .id('layout_wx_video') + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.WX_VIDEO_PAGE, params: { isPlayback: false }}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_WECHAT_VIDEO) + }) + + Column() { + Row() { + Text('直播回放').fontColor('#4A0006').fontSize(16).fontFamily('almmsht') + Image($r('app.media.ic_home_top_menu_arrow3')).width(12).height(12).margin({left: 2}) + } + Text('支持微信直播回放').fontColor($r('app.color.color_666666')).fontSize(11) + Blank().layoutWeight(1) + Row() { + Image($r('app.media.yq_6')).width(14).height(14).borderRadius(7) + Image($r('app.media.yq_7')).width(14).height(14).borderRadius(7).margin({left: -4}) + Image($r('app.media.yq_8')).width(14).height(14).borderRadius(7).margin({left: -4}) + Text('2000+用户体验中').fontColor($r('app.color.color_999999')).fontSize(10).margin({left: 6}) + } + } + .width('48.7%') + .aspectRatio(2.28) + .backgroundImage($r('app.media.ic_home_top_menu_bg3')) + .backgroundImageSize({width: '100%', height: '100%'}) + .padding({left: 10, top: 9, right: 10, bottom: 8}) + .margin({top: 9}) + .alignItems(HorizontalAlign.Start) + .id('layout_wx_playback') + .onClick(() => { + TipDialog.show(this.getUIContext(), {title: '提示', content: '仅限微信直播回放视频提取,是否前往?', callback: { + confirm: () => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.WX_VIDEO_PAGE, params: { isPlayback: true }}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_WECHAT_PLAYBACK) + } + }}) + }) + } + } + .alignRules({ + top: { anchor: 'layout_notice', align: VerticalAlign.Bottom } + }) + .padding({left: 12, right: 12}) + .margin({ top: 10 }) + .height('auto') + .id('layout_top_menu') + + Grid() { + ForEach(homeMenuList().convertToArray(), (item: HomeMenuEntity) => { + GridItem() { + Column() { + Image(item.icon) + .width(44) + .height(44) + Text(item.title) + .fontColor($r('app.color.color_212226')) + .fontSize(12) + .margin({ top: 6 }) + } + .alignItems(HorizontalAlign.Center) + } + .width('20%') + .onClick(() => { + switch (item.alias) { + case 'videoToAudio': { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.TAKE_AUDIO_PAGE}) + break + } + case 'addWatermark': { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.ADD_WATER_MARKER_PAGE}) + break + } + case 'videoToText': { + break + } + case 'longImageMerge': { + break + } + case 'moreTools': { + break + } + } + }) + }) + } + .maxCount(5) + .layoutDirection(GridDirection.Row) + .alignRules({ + top: { anchor: 'layout_top_menu', align: VerticalAlign.Bottom } + }) + .margin({ + top: 20, + left: 12, + right: 12 + }) + .id('li_menu') + + Column() { + Stack() { + Image($r('app.media.ic_tab_indicator')).width(27).height(11).margin({top: 13}) + Text('高清推荐素材').fontColor($r('app.color.color_212226')).fontSize(16).fontWeight(FontWeight.Medium) + } + .alignSelf(ItemAlign.Start) + .margin({left: 12, top: 27}) + + WaterFlow({footer: this.itemFoot()}) { + ForEach(this.materialList, (item: MaterialEntity, index: number) => { + FlowItem() { + ImageKnifeComponent({ + imageKnifeOption:this.createImageOption(item) + }) + .width('100%') + .height('100%') + .borderRadius(6) + .backgroundColor($r('app.color.color_ededed')) + .onClick(() => { + if (item.pic?.url) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.MATERIAL_DETAIL_PAGE, params: {material: item}}) + } + }) + } + .width('100%') + .height(500 / (index % 2 === 0 ? 2 : 3)) + }) + } + .columnsTemplate('1fr 1fr') + .columnsGap(7) + .rowsGap(7) + .width('100%') + .height('100%') + .padding({left: 12, right: 12}) + .margin({top: 14}) + .onReachEnd(() => { + this.page++ + this.isLoading = true + this.viewModel.getMaterialList(this.page.toString()) + }) + .nestedScroll({ + scrollForward: NestedScrollMode.PARENT_FIRST, + scrollBackward: NestedScrollMode.SELF_FIRST + }) + } + .alignRules({ + top: {anchor: 'li_menu', align: VerticalAlign.Bottom} + }) + .height('100%') + } + .height('auto') + } + .scrollBar(BarState.Off) + } + .backgroundColor(Color.White) + .onRefreshing(() => { + this.page = 1 + this.isRefreshing = true + this.viewModel.getMaterialList(this.page.toString()) + }) + } + + @Builder + itemFoot() { + // 注意:不要直接用IfElse节点作为footer的根节点 + // 必须在外面使用(Column/Row/Stack等)容器包裹,确保布局正确 + Column() { + if (!this.canLoadMore) { + Text('到底啦') + .width('100%') + .height(50) + .textAlign(TextAlign.Center) + } else if (this.isLoading) { + Row() { + LoadingProgress().height(32).width(48) + Text("加载中") + }.width("100%") + .height(50) + .justifyContent(FlexAlign.Center) + } + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/course/CoursePage.ets b/entry/src/main/ets/pages/main/home/course/CoursePage.ets new file mode 100644 index 0000000..32fc070 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/course/CoursePage.ets @@ -0,0 +1,22 @@ +import { TitleBar } from '../../../../view/TitleBar' + +@Entry +@ComponentV2 +struct CoursePage { + build() { + Column() { + TitleBar({title: '指导教程'}).width('100%') + Scroll() { + Column() { + Image($r('app.media.ic_course1')) + Image($r('app.media.ic_course2')) + Image($r('app.media.ic_course3')) + } + .height('auto') + } + .layoutWeight(1) + .scrollBar(BarState.Off) + } + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/link/TakeMaterialPage.ets b/entry/src/main/ets/pages/main/home/link/TakeMaterialPage.ets new file mode 100644 index 0000000..f6b00ce --- /dev/null +++ b/entry/src/main/ets/pages/main/home/link/TakeMaterialPage.ets @@ -0,0 +1,600 @@ +import { AppUtil, FileUtil, KeyboardUtil, ObjectUtil, PasteboardUtil, StrUtil } from '@pura/harmony-utils'; +import { RouterUrls } from '../../../../common/RouterUrls'; +import { MaterialLoadingDialog } from '../../../../dialog/MaterialLoadingDialog'; +import { + AudioMaterial, + ImageMaterial, + MaterialDetailEntity, + MaterialInfoEntity, + MediaEntity, + TextMaterial, + VideoMaterial +} from '../../../../entity/MaterialInfoEntity'; +import { VipPermissionEntity } from '../../../../entity/VipPermissionEntity'; +import { LoginManager } from '../../../../manager/LoginGlobalManager'; +import { ToastUtils } from '../../../../utils/ToastUtils'; +import { LinkRecognizeViewModel } from '../../../../viewModel/LinkRecognizeViewModel'; +import { AudioMaterialPage } from './material/AudioMaterialPage'; +import { ImageMaterialPage } from './material/ImageMaterialPage'; +import { TextMaterialPage } from './material/TextMaterialPage'; +import { VideoMaterialPage } from './material/VideoMaterialPage'; +import { router } from '@kit.ArkUI'; +import { MediaDownloader } from '../../../../net/MediaDownloader'; +import { ShareManager } from '../../../../manager/ShareManager'; +import { systemDateTime } from '@kit.BasicServicesKit'; +import { SaveUtils } from '../../../../utils/SaveUtils'; +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog'; +import { EventConstants } from '../../../../common/EventConstants'; +import { SimpleTipDialog } from '../../../../dialog/SimpleTipDialog'; +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager'; +import { PasteboardUtils } from '../../../../utils/PasteboardUtils'; +import { TipDialog } from '../../../../dialog/TipDialog'; +import { PrefUtils } from '../../../../utils/PrefUtils'; + +@Entry +@ComponentV2 +struct TakeMaterialPage { + @Local inputText: string = ''; + @Local currentIndex: number = 0; + + @Local materialInfo?: MaterialInfoEntity; + + @Local videoList: Array = []; + @Local imageList: Array = []; + @Local audioList: Array = []; + @Local textList: Array = []; + + @Local videoRowCount: number = 1; + @Local imageRowCount: number = 1; + + viewModel: LinkRecognizeViewModel = new LinkRecognizeViewModel(this.getUIContext()); + + tabController: TabsController = new TabsController(); + titles: Array = ['视频', '图片', '音频', '文本']; + logId?: string; + type: number = 0 + originText: string = '' + + mediaDownloader?: MediaDownloader | null + selectedList: Array = [] + cacheFileUris: Array = [] + downloadIndex: number = 0 + totalSize = 0 + downloadStatus = DownloadStatus.DOWNLOADING + + @Monitor('viewModel.materialInfo') + onMaterialInfoChange(monitor: IMonitor) { + const info = monitor.value()?.now as MaterialInfoEntity + this.logId = info.logid; + MaterialLoadingDialog.show(this.getUIContext(), info.status_name) + this.viewModel.analysisMaterial(info.logid, info.timeout); + } + + @Monitor('viewModel.analysisInfo') + onAnalysisInfoInfoChange(monitor: IMonitor) { + const info = monitor.value()?.now as MaterialInfoEntity + if (info.material && info.material !== null) { + this.materialInfo = info; + this.originText = this.inputText + this.materialInfo.logid = this.logId!! + this.createVideoList(info.material); + this.createImageList(info.material); + this.createAudioList(info.material); + this.createTextList(info.material); + if (this.videoList.length > 0) { + this.tabController.changeIndex(0); + } else if (this.imageList.length > 0) { + this.tabController.changeIndex(1); + } + MaterialLoadingDialog.dismiss(); + } else { + if (info.status !== 1) { + ToastUtils.show(info.status_name) + MaterialLoadingDialog.dismiss() + } else { + MaterialLoadingDialog.update(info.status_name) + } + } + } + + @Monitor('viewModel.permissionInfo') + onPermissionInfoChange(monitor: IMonitor) { + const info = monitor.value()?.now as VipPermissionEntity; + if (info.auth) { + if (!LoginManager.isLogin()) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.LOGIN_PAGE, params: {from: 1}}, router.RouterMode.Single) + return; + } + this.shareOrDownload() + } else { + if (!info.auth_ad) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIP_PAGE, params: {origin: 'download_material'}}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, 'download_material') + return; + } + } + } + + @Monitor('viewModel.errorCode') + onErrorCodeChange(monitor: IMonitor) { + const errorCode = monitor.value()?.now as number; + if (errorCode === 12002 || errorCode === 12003 || errorCode === 12004) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.RECHARGE_DIAMOND_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_RECHARGE_DIAMOND, 'download_material') + ToastUtils.show('钻石已用完') + } + } + + aboutToAppear(): void { + const params = this.getUIContext().getRouter().getParams() as Record + if (params && params.url) { + this.inputText = params.url as string + this.parseUrl(this.inputText) + } + } + + aboutToDisappear(): void { + this.viewModel.cancelInterval() + } + + onPageShow(): void { + this.checkPasteboard() + } + + checkPasteboard() { + PasteboardUtils.isNeedGetPermissionFromUser() + .then((isNeed) => { + if (isNeed) { + PasteboardUtil.requestPermissions() + .then((isGranted) => { + if (isGranted) { + let content = PasteboardUtil.getDataTextSync() + if (StrUtil.isNotEmpty(content) && content !== PasteboardUtils.clipText && PasteboardUtils.isValidUrl(content)) { + TipDialog.show(this.getUIContext(), {title: '您已复制链接,是否粘贴', content: content, leftText: '取消', rightText: '粘贴', callback: { + confirm: () => { + PasteboardUtils.clipText = content + this.inputText = content + this.parseUrl(content) + }, + cancel: () => { + PasteboardUtils.clipText = content + } + }}) + } + } + }) + .catch(() => {}) + } + }) + } + + showSaveTip(isAudio: boolean = false) { + if (!isAudio) { + if (PrefUtils.getBoolean('show_save_tip', true)) { + SimpleTipDialog.show(this.getUIContext(), {title: '重要提示', content: '下载完成后需要您点击弹窗允许保存之后才能保存文件到相册', callback: { + confirm: () => { + this.viewModel.checkVip(); + PrefUtils.put('show_save_tip', false) + } + }}) + } else { + this.viewModel.checkVip(); + } + } else { + this.viewModel.checkVip(); + } + } + + shareOrDownload() { + this.cacheFileUris.length = 0 + if (this.type == 0) { + if (this.selectedList.length > 0) { + this.shareMedia(this.selectedList[0]) + } + } else { + if (this.selectedList.length > 0) { + this.downloadIndex = 0 + this.downloadMedia(this.selectedList[this.downloadIndex]) + } + } + } + + shareMedia(media: MediaEntity) { + let filePath = FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName() + if (FileUtil.accessSync(filePath) && FileUtil.isFile(filePath) && !(media.totalSize === 0 || media.currentLen !== media.totalSize)) { + this.shareFile(media) + } else { + this.showDownloadDialog(media instanceof VideoMaterial && media.isMerge ? DownloadStatus.VIDEO_DOWNLOADING : DownloadStatus.DOWNLOADING) + if (media.isMerge) { + this.beforeDoMerge(media) + } + this.download(media, true) + } + } + + async downloadMedia(media: MediaEntity) { + let filePath = FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName() + if (FileUtil.accessSync(filePath) && FileUtil.isFile(filePath) && !(media.totalSize === 0 || media.currentLen !== media.totalSize)) { + this.cacheFileUris.push(FileUtil.getUriFromPath(filePath)) + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + let saved = await this.saveFile(media) + if (saved) { + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + this.updateDownloadDialog(DownloadStatus.COMPLETED, this.totalSize, this.totalSize, media instanceof AudioMaterial) + } + } else { + ToastUtils.show('保存失败') + this.dismissDownloadDialog() + } + } + } else { + this.showDownloadDialog(media instanceof VideoMaterial && media.isMerge ? DownloadStatus.VIDEO_DOWNLOADING : DownloadStatus.DOWNLOADING) + if (media.isMerge) { + this.beforeDoMerge(media) + } + this.download(media) + } + } + + beforeDoMerge(media: MediaEntity) { + let video = media as VideoMaterial + let audio = video.audio + let name = systemDateTime.getTime() + if (StrUtil.isEmpty(video.cacheName)) video.cacheName = `merge_${name}.mp4` + if (audio && StrUtil.isEmpty(audio?.cacheName)) audio.cacheName = `merge_${name}.mp3` + } + + async download(media: MediaEntity, isShare: boolean = false) { + this.viewModel.reportStatus(this.materialInfo!!.logid, '1') + media.initFileName() + media.origin = this.originText + this.mediaDownloader = MediaDownloader.getInstance() + this.mediaDownloader.setProxyList(this.materialInfo?.material?.proxyUrlList) + .callback({ + onSuccess: async (path) => { + if (isShare) { + this.shareFile(media) + } else { + this.cacheFileUris.push(FileUtil.getUriFromPath(path)) + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + let saved = await this.saveFile(media) + if (saved) { + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + this.updateDownloadDialog(DownloadStatus.COMPLETED, this.totalSize, this.totalSize, media instanceof AudioMaterial) + } + } else { + ToastUtils.show('保存失败') + this.dismissDownloadDialog() + } + } + } + }, + onGetTotal: (total) => { + this.totalSize = total + this.updateDownloadDialog(this.downloadStatus, total) + }, + onProgress: (progress) => { + this.updateDownloadDialog(this.downloadStatus, this.totalSize, progress) + }, + onMerge: (step) => { + if (step === 4) { + this.updateDownloadDialog(DownloadStatus.AUDIO_DOWNLOADING) + } else { + this.updateDownloadDialog(DownloadStatus.PROCESSING) + } + }, + onPause:() => { + this.dismissDownloadDialog() + }, + onCancel: () => { + this.dismissDownloadDialog() + }, + onFailed: (msg) => { + ToastUtils.show('下载失败:' + msg) + this.dismissDownloadDialog() + this.viewModel.reportStatus(this.materialInfo!!.logid, '-1', `${media.totalSize}`, msg) + this.reportErrorEvent(media, msg) + } + }) + .down(media); + } + + shareFile(media: MediaEntity) { + ShareManager.shareFile(FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName()) + this.viewModel.reportStatus(this.materialInfo!!.logid, '2', `${media.totalSize}`) + this.dismissDownloadDialog() + } + + async saveFile(media: MediaEntity): Promise { + let saved = false + if (media instanceof VideoMaterial) { + saved = await SaveUtils.saveImageVideoToAlbumDialog(this.cacheFileUris) + } else if (media instanceof ImageMaterial) { + saved = await SaveUtils.saveImageVideoToAlbumDialog(this.cacheFileUris) + } else if (media instanceof AudioMaterial) { + saved = await SaveUtils.saveAudioToMusic(this.cacheFileUris) + } + if (saved) { + let totalSize = 0 + this.cacheFileUris.forEach((uri) => { + let stat = FileUtil.statSync(FileUtil.getFilePath(uri)) + totalSize += stat.size + }) + this.viewModel.reportStatus(this.materialInfo!!.logid, '2', `${totalSize}`) + } else { + this.viewModel.reportStatus(this.materialInfo!!.logid, '-1', `保存失败`) + } + return Promise.resolve(saved) + } + + showDownloadDialog(status: DownloadStatus = DownloadStatus.DOWNLOADING) { + this.downloadStatus = status + DownloadDialog.show(this.getUIContext(), { status: status, totalSize: 0, progress: 0, totalCount: this.selectedList.length, index: this.downloadIndex, callback: { + confirm: () => { + if (this.downloadStatus === DownloadStatus.COMPLETED) { + EventReportGlobalManager.eventReport(EventConstants.DIALOG_GO_TO_VIEW, this.titles[this.currentIndex]) + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, this.currentIndex) + this.getUIContext().getRouter().back() + } else { + //todo 后台下载 + } + }, + cancel: () => { + if (this.downloadStatus !== DownloadStatus.COMPLETED) { + if (this.mediaDownloader) { + this.mediaDownloader.cancel() + EventReportGlobalManager.eventReport(EventConstants.CANCEL_DOWNLOAD_VIDEO, this.selectedList[this.downloadIndex].url) + } + } else { + EventReportGlobalManager.eventReport(EventConstants.DIALOG_CONFIRM_SAVE_FILE, this.titles[this.currentIndex]) + } + } + } }) + } + + updateDownloadDialog(status: DownloadStatus = DownloadStatus.DOWNLOADING, totalSize: number = 0, progress: number = 0, isAudio: boolean = false) { + this.downloadStatus = status + DownloadDialog.update({ status: status, totalSize: totalSize, progress: progress, totalCount: this.selectedList.length, index: this.downloadIndex, isAudio: isAudio }) + } + + dismissDownloadDialog() { + this.downloadStatus = DownloadStatus.DOWNLOADING + this.totalSize = 0 + this.downloadIndex = 0 + this.mediaDownloader = null + DownloadDialog.dismiss() + } + + parseUrl(url: string) { + if (StrUtil.isNotEmpty(this.inputText)) { + this.viewModel.getMaterialInfo(url); + } + } + + createVideoList(material?: MaterialDetailEntity) { + const list = new Array(); + material?.video?.forEach((item, index) => { + item.isThreading = material?.threading!!; + if (material?.merge && material.audio && material.audio.length > index) { + item.audio = material.audio[index]; + item.isMerge = true; + } + if (material?.image && material.image.length > index) { + item.thumb = material.image[index].url; + } + list.push(item); + }) + this.videoList = list.map(item => ObjectUtil.assign(new VideoMaterial(), item) as VideoMaterial); + if (this.videoList.length > 0) { + this.videoList[0].isChecked = true + } + this.videoRowCount = this.computeRowCount(this.videoList); + } + + createImageList(material: MaterialDetailEntity) { + if (material.image) { + this.imageList = material.image.map(item => ObjectUtil.assign(new ImageMaterial(), item) as ImageMaterial); + if (this.imageList.length > 0) { + this.imageList[0].isChecked = true + } + this.imageRowCount = this.computeRowCount(this.imageList); + } + } + + createAudioList(material: MaterialDetailEntity) { + if (material.audio) { + this.audioList = material.audio.map(item => ObjectUtil.assign(new AudioMaterial(), item) as AudioMaterial); + if (this.audioList.length > 0) { + this.audioList[0].isChecked = true + } + } + } + + createTextList(material: MaterialDetailEntity) { + const list = new Array(); + if (material.desc) { + const text = new TextMaterial() + text.title = material.title; + text.desc = material.desc; + list.push(text); + } + this.textList = list; + if (this.textList.length > 0) { + this.textList[0].isChecked = true + } + } + + computeRowCount(list: Array): number { + if (list.length > 8) { + return 3; + } else if (list.length >= 3 && list.length <= 8) { + return 2; + } else { + return 1; + } + } + + reportErrorEvent(media: MediaEntity, message: string) { + if (media instanceof VideoMaterial) { + EventReportGlobalManager.eventReport(EventConstants.ERROR_CLIENT_DOWNLOAD_VIDEO, media.url, message) + } else if (media instanceof ImageMaterial) { + EventReportGlobalManager.eventReport(EventConstants.ERROR_CLIENT_DOWNLOAD_IMG, media.url, message) + } else if (media instanceof AudioMaterial) { + EventReportGlobalManager.eventReport(EventConstants.ERROR_CLIENT_DOWNLOAD_AUDIO, media.url, message) + } + } + + build() { + Column() { + Row() { + Button({ type: ButtonType.Circle, stateEffect: true }) { + Image($r('app.media.ic_back')).width(24).height(24) + } + .width(40) + .height(40) + .margin({ left: 10 }) + .onClick(() => { + this.getUIContext().getRouter().back() + }) + .backgroundColor(Color.Transparent) + + Row() { + Image($r('app.media.ic_link')).width(18).height(18) + TextInput({ placeholder: '请输入链接地址', text: this.inputText }) + .layoutWeight(1) + .fontColor('#D6D6D6') + .fontSize(14) + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 14 }) + .onChange((value: string) => { + this.inputText = value; + }) + Image($r('app.media.ic_clear_text')) + .width(18) + .height(18) + .padding(2) + .visibility(StrUtil.isNotEmpty(this.inputText) ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.inputText = ''; + }) + Divider() + .vertical(true) + .strokeWidth(1) + .height(14) + .color($r('app.color.color_10ffffff')) + .margin({ left: 12, right: 12 }) + Text('获取').fontColor($r('app.color.color_80ffffff')).fontSize(14) + .onClick(() => { + if (StrUtil.isNotEmpty(this.inputText)) { + KeyboardUtil.hide() + this.parseUrl(this.inputText) + EventReportGlobalManager.eventReport(EventConstants.GET_MATERIAL, "material-button", this.inputText) + } else { + ToastUtils.show('请输入链接地址') + } + }) + } + .layoutWeight(1) + .height(34) + .borderRadius(20) + .backgroundColor($r('app.color.color_333333')) + .margin({ left: 20, right: 16 }) + .padding({ left: 10, right: 10 }) + }.height(100).padding({ top: 50 }) + + Tabs({ barPosition: BarPosition.Start, controller: this.tabController }) { + TabContent() { + VideoMaterialPage({ + mediaList: this.videoList, rowCount: this.videoRowCount, + onShare:(video) => { + this.type = 0 + this.selectedList.length = 0 + this.selectedList.push(video) + this.viewModel.checkVip(); + }, + onSave: (list) => { + this.type = 1 + this.selectedList = list + this.showSaveTip(); + } }) + } + .tabBar(this.tabBuilder(this.titles[0], 0)) + + TabContent() { + ImageMaterialPage({ + mediaList: this.imageList, rowCount: this.imageRowCount, + onShare:(image) => { + this.type = 0 + this.selectedList.length = 0 + this.selectedList.push(image) + this.viewModel.checkVip(); + }, + onSave: (list) => { + this.type = 1 + this.selectedList = list + this.showSaveTip(); + } }) + } + .tabBar(this.tabBuilder(this.titles[1], 1)) + + TabContent() { + AudioMaterialPage({ + mediaList: this.audioList, + onShare:(audio) => { + this.type = 0 + this.selectedList.length = 0 + this.selectedList.push(audio) + this.viewModel.checkVip(); + }, + onSave: (list) => { + this.type = 1 + this.selectedList = list + this.showSaveTip(true); + } }) + } + .tabBar(this.tabBuilder(this.titles[2], 2)) + + TabContent() { + TextMaterialPage({ mediaList: this.textList }) + } + .tabBar(this.tabBuilder(this.titles[3], 3)) + } + .scrollable(false) + .onTabBarClick((index) => { + this.currentIndex = index; + }) + /*.onSelected((index: number) => { + this.currentIndex = index; + })*/ + .layoutWeight(1) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } + + @Builder + tabBuilder(title: string, targetIndex: number) { + Column() { + Text(title) + .fontColor(this.currentIndex === targetIndex ? $r("app.color.color_466afd") : $r('app.color.color_50ffffff')) + .fontSize(this.currentIndex === targetIndex ? 17 : 14) + .fontWeight(this.currentIndex === targetIndex ? FontWeight.Medium : FontWeight.Regular) + } + .width('100%') + .height(50) + .justifyContent(FlexAlign.Center) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/link/material/AudioMaterialPage.ets b/entry/src/main/ets/pages/main/home/link/material/AudioMaterialPage.ets new file mode 100644 index 0000000..51c9c17 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/link/material/AudioMaterialPage.ets @@ -0,0 +1,114 @@ +import { AudioMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { EmptyView, PageStatus } from '../../../../../view/EmptyView'; +import { AudioMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct AudioMaterialPage { + @Param mediaList: Array = []; + @Param onShare?: (audio: AudioMaterial) => void = undefined + @Param onSave?: (list: Array) => void = undefined + + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + List({ space: 10 }) { + ForEach(this.mediaList, (item: AudioMaterial, index) => { + ListItem() { + AudioMaterialItemView({ media: item }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .width('auto') + .layoutWeight(1) + .scrollBar(BarState.Off) + .margin({ left: 16, right: 16, bottom: 15 }) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Blank().layoutWeight(1) + + Button('转发', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (this.onShare) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要转发的音频'); + } else if (list.length > 1) { + ToastUtils.show('一次只能转发一个音频'); + } else { + this.onShare(list[0]); + } + } + }) + + Button('保存', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 12 }) + .onClick(() => { + if (this.onSave) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要保存的音频'); + } else { + this.onSave(list); + } + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_audio'), + noDataText: '暂无音频' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/link/material/ImageMaterialPage.ets b/entry/src/main/ets/pages/main/home/link/material/ImageMaterialPage.ets new file mode 100644 index 0000000..1d25221 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/link/material/ImageMaterialPage.ets @@ -0,0 +1,117 @@ +import { ImageMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { EmptyView, PageStatus } from '../../../../../view/EmptyView'; +import { ImageMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct ImageMaterialPage { + @Param mediaList: Array = []; + @Param rowCount: number = 1; + @Param onShare?: (image: ImageMaterial) => void = undefined + @Param onSave?: (list: Array) => void = undefined + + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: ImageMaterial, index) => { + GridItem() { + ImageMaterialItemView({ media: item, rowCount: this.rowCount }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Blank().layoutWeight(1) + + Button('转发', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (this.onShare) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要转发的图片'); + } else if (list.length > 1) { + ToastUtils.show('一次只能转发一张图片'); + } else { + this.onShare(list[0]); + } + } + }) + + Button('保存', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 12 }) + .onClick(() => { + if (this.onSave) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要保存的图片'); + } else { + this.onSave(list); + } + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_image'), + noDataText: '暂无图片' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/link/material/TextMaterialPage.ets b/entry/src/main/ets/pages/main/home/link/material/TextMaterialPage.ets new file mode 100644 index 0000000..d2090cc --- /dev/null +++ b/entry/src/main/ets/pages/main/home/link/material/TextMaterialPage.ets @@ -0,0 +1,93 @@ +import { PasteboardUtil } from '@pura/harmony-utils'; +import { TextMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { EmptyView, PageStatus } from '../../../../../view/EmptyView'; +import { TextMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct TextMaterialPage { + @Param mediaList: Array = []; + + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + List({ space: 10 }) { + ForEach(this.mediaList, (item: TextMaterial, index) => { + ListItem() { + TextMaterialItemView({ media: item }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .width('auto') + .layoutWeight(1) + .scrollBar(BarState.Off) + .margin({ left: 16, right: 16, bottom: 15 }) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Button('复制文本', { type: ButtonType.Capsule, stateEffect: true }) + .layoutWeight(1) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 27 }) + .onClick(() => { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要复制的文本'); + } else { + list.forEach((item) => { + PasteboardUtil.setDataTextSync(item.title); + }) + ToastUtils.show('已复制'); + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_text'), + noDataText: '暂无文本' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/link/material/VideoMaterialPage.ets b/entry/src/main/ets/pages/main/home/link/material/VideoMaterialPage.ets new file mode 100644 index 0000000..aef469a --- /dev/null +++ b/entry/src/main/ets/pages/main/home/link/material/VideoMaterialPage.ets @@ -0,0 +1,117 @@ +import { VideoMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { EmptyView, PageStatus } from '../../../../../view/EmptyView'; +import { VideoMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct VideoMaterialPage { + @Param mediaList: Array = []; + @Param rowCount: number = 1; + @Param onShare?: (video: VideoMaterial) => void = undefined + @Param onSave?: (list: Array) => void = undefined + + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: VideoMaterial, index) => { + GridItem() { + VideoMaterialItemView({ media: item, rowCount: this.rowCount }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Blank().layoutWeight(1) + + Button('转发', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (this.onShare) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要转发的视频'); + } else if (list.length > 1) { + ToastUtils.show('一次只能转发一个视频'); + } else { + this.onShare(list[0]); + } + } + }) + + Button('保存', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 12 }) + .onClick(() => { + if (this.onSave) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要保存的视频'); + } else { + this.onSave(list); + } + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_video'), + noDataText: '暂无视频' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/material/MaterialDetailPage.ets b/entry/src/main/ets/pages/main/home/material/MaterialDetailPage.ets new file mode 100644 index 0000000..7ede649 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/material/MaterialDetailPage.ets @@ -0,0 +1,228 @@ +import { MaterialEntity } from '../../../../entity/MaterialEntity'; +import { TitleBar } from '../../../../view/TitleBar'; +import { router, window } from '@kit.ArkUI'; +import { ImagePreview } from '@rv/image-preview'; +import { AppUtil, DisplayUtil, FileUtil, NumberUtil } from '@pura/harmony-utils'; +import { media } from '@kit.MediaKit'; +import { BusinessError, request, systemDateTime } from '@kit.BasicServicesKit'; +import { ToastUtils } from '../../../../utils/ToastUtils'; +import { SaveUtils } from '../../../../utils/SaveUtils'; +import { AuthViewModel } from '../../../../viewModel/AuthViewModel'; +import { VipPermissionEntity } from '../../../../entity/VipPermissionEntity'; +import { LoginManager } from '../../../../manager/LoginGlobalManager'; +import { RouterUrls } from '../../../../common/RouterUrls'; +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager'; +import { EventConstants } from '../../../../common/EventConstants'; +import { LoadingDialog } from '../../../../dialog/LoadingDialog'; +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog'; + +@Entry +@ComponentV2 +struct MaterialDetailPage { + windowStage: window.WindowStage = AppStorage.get("windowStage") as window.WindowStage; + + @Local material?: MaterialEntity; + @Local tagArray: Array = [] + + private viewModel: AuthViewModel = new AuthViewModel(this.getUIContext()) + private imageSize: media.PixelMapParams = {} + + @Monitor('viewModel.permissionInfo') + onPermissionInfoChange(monitor: IMonitor) { + const info = monitor.value()?.now as VipPermissionEntity; + if (info.auth) { + if (!LoginManager.isLogin()) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.LOGIN_PAGE, params: {from: 1}}, router.RouterMode.Single) + return; + } + this.download() + } else { + if (!info.auth_ad) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIP_PAGE, params: {origin: 'download_material'}}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, 'download_material') + return; + } + } + } + + @Monitor('viewModel.errorCode') + onErrorCodeChange(monitor: IMonitor) { + const errorCode = monitor.value()?.now as number; + if (errorCode === 12002 || errorCode === 12003 || errorCode === 12004) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.RECHARGE_DIAMOND_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_RECHARGE_DIAMOND, 'download_material') + ToastUtils.show('M币已用完') + } + } + + aboutToAppear(): void { + this.windowStage.getMainWindowSync().setWindowSystemBarProperties({ + statusBarColor: '#00000000', + statusBarContentColor: '#FFFFFF' + }); + this.initParams() + } + + aboutToDisappear(): void { + this.windowStage.getMainWindowSync().setWindowSystemBarProperties({ + statusBarColor: '#00000000', + statusBarContentColor: '#000000' + }); + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.material = params.material as MaterialEntity + if (this.material.pic_size) { + const size = this.material.pic_size.split(':') + if (size.length === 2) { + this.imageSize.width = NumberUtil.toNumber(size[0]) + this.imageSize.height = NumberUtil.toNumber(size[1]) + } + } + this.tagArray = this.material.tags + } + } + + download() { + LoadingDialog.show(this.getUIContext()) + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.jpeg` + let config: request.agent.Config = { + action: request.agent.Action.DOWNLOAD, + url: this.material!!.pic!!.url, + overwrite: true, + saveas: outputPath, + gauge: true, + priority:0 + } + request.agent.create(AppUtil.getApplicationContext(), config) + .then((task: request.agent.Task) => { + task.start((err: BusinessError) => { + if (err) { + console.error(`下载失败: ${err.message}`); + ToastUtils.show(err.message); + return; + } + LoadingDialog.dismiss() + }); + task.on('completed',() => { + LoadingDialog.dismiss() + if (FileUtil.accessSync(outputPath)) { + SaveUtils.saveImageVideoToAlbumDialog([outputPath]) + .then((saved) => { + if (saved) { + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch(() => { + ToastUtils.show('保存失败') + }) + } else { + ToastUtils.show('下载失败: 文件不存在'); + } + request.agent.remove(task.tid); + }) + task.on('failed', () => { + LoadingDialog.dismiss() + ToastUtils.show('下载失败,请检查网络后重试'); + request.agent.remove(task.tid); + }); + }) + .catch((err: BusinessError) => { + if (err) { + console.error(`下载失败: ${err.message}`); + ToastUtils.show(err.message); + } + LoadingDialog.dismiss() + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { + status: DownloadStatus.COMPLETED, + totalSize: 0, + progress: 0, + totalCount: 1, + index: 0, + callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } + }) + } + + build() { + Column() { + TitleBar({title: this.material?.title, isDark: true}) + + Stack() { + ImagePreview() { + RelativeContainer() { + Image(this.material?.pic?.url) + .width("100%") + .height(px2vp(Math.round(this.imageSize.height!! * DisplayUtil.getWidth() / this.imageSize.width!!))) + .sourceSize({ + width: px2vp(DisplayUtil.getWidth()), + height: px2vp(Math.round(this.imageSize.height!! * DisplayUtil.getWidth() / this.imageSize.width!!)) + }) + .alignRules({ + top: {anchor: '__container__', align: VerticalAlign.Top}, + bottom: {anchor: '__container__', align: VerticalAlign.Bottom} + }) + .draggable(false) + .id('image') + + List({space: 4}){ + ForEach(this.tagArray, (item: string) => { + ListItem() { + Text(item).fontColor(Color.White).fontSize(10) + .borderRadius(2) + .backgroundColor('#80000000') + .padding({left: 4, top: 1, right: 4, bottom: 1}) + } + }) + } + .listDirection(Axis.Horizontal) + .alignRules({ + top: {anchor: 'image', align: VerticalAlign.Top}, + right: {anchor: 'image', align: HorizontalAlign.End} + }) + .margin({top: 12, right: 12}) + } + .height('auto') + } + } + .width('100%') + .layoutWeight(1) + + Stack() { + Button({ type: ButtonType.Capsule, stateEffect: true }) { + Row() { + Image($r('app.media.ic_download1')).width(22).height(22) + Text('下载').fontColor(Color.White).fontSize(15).fontWeight(FontWeight.Medium) + } + } + .width('100%') + .height(46) + .backgroundColor($r('app.color.color_466afd')) + .onClick(() => { + if (this.material?.pic?.url) { + this.viewModel.checkVip() + } else { + ToastUtils.show('链接不存在') + } + }) + } + .backgroundColor($r('app.color.color_1b1b1b')) + .padding({left: 16, top: 9, right: 16, bottom: 30}) + } + .width('100%') + .height('100%') + .backgroundColor('#0F0E13') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/AddAudioPage.ets b/entry/src/main/ets/pages/main/home/tools/AddAudioPage.ets new file mode 100644 index 0000000..4c5eb1c --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/AddAudioPage.ets @@ -0,0 +1,329 @@ +import { PhotoHelper, PickerUtil } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo, picker } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { MP4Parser } from '@ohos/mp4parser' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct AddAudioPage { + private controller: VideoController = new VideoController() + @Local videoUri?: string + @Local audioUri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + mirrorVideo() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cacheVideoPath = FileUtil.getCacheDirPath() + FileUtil.separator + `cache_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cacheVideoPath)) { + FileUtil.unlinkSync(cacheVideoPath) + } + let videoFile = FileUtil.openSync(this.videoUri!!, fileIo.OpenMode.READ_ONLY) + // 复制视频文件到缓存目录下 + FileUtil.copyFileSync(videoFile.fd, cacheVideoPath) + + let cacheAudioPath = FileUtil.getCacheDirPath() + FileUtil.separator + `cache_${systemDateTime.getTime()}.mp3` + if (FileUtil.accessSync(cacheAudioPath)) { + FileUtil.unlinkSync(cacheAudioPath) + } + let audioFile = FileUtil.openSync(this.audioUri!!, fileIo.OpenMode.READ_ONLY) + // 复制音频文件到缓存目录下 + FileUtil.copyFileSync(audioFile.fd, cacheAudioPath) + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cacheVideoPath} -stream_loop -1 -i ${cacheAudioPath} -c:v copy -c:a aac -shortest -map 0:v -map 1:a ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.videoUri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.videoUri = uris[0] + } + }) + } + + selectAudio() { + /*PickerUtil.selectAudio({maxSelectNumber: 1}) + .then((uris) => { + if (uris.length != 0) { + this.audioUri = uris[0] + } + })*/ + PickerUtil.selectDocument({maxSelectNumber: 1, fileSuffixFilters: ['.mp3']}) + .then((uris) => { + if (uris.length != 0) { + this.audioUri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '加音乐' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.videoUri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.videoUri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .layoutWeight(1) + + Image($r('app.media.ic_add_audio')).width(50).height(50).margin({top: 20}) + .onClick(() => { + this.selectAudio() + }) + Text('音频').fontColor($r('app.color.color_90ffffff')).fontSize(14).margin({top: 10}) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')).fontSize(17).margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定').fontColor($r("app.color.color_466afd")).fontSize(17).margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.videoUri!!]) + .then((saved) => { + if (saved) { + this.videoUri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + if (this.audioUri) { + this.mirrorVideo() + } else { + ToastUtils.show('请上传音频') + } + } + }) + } + .margin({ top: 50, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.videoUri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/AddWaterMarkerPage.ets b/entry/src/main/ets/pages/main/home/tools/AddWaterMarkerPage.ets new file mode 100644 index 0000000..3210aa8 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/AddWaterMarkerPage.ets @@ -0,0 +1,425 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, DisplayUtil, FileUtil, ImageUtil, StrUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { RectPosition } from '../../../../view/RectCropView' +import { media } from '@kit.MediaKit' +import { MediaUtils } from '../../../../utils/MediaUtils' +import { MP4Parser } from '@ohos/mp4parser' +import { TipDialog } from '../../../../dialog/TipDialog' +import { WaterMarkerView } from '../../../../view/WaterMarkerView' +import { EditTextDialog } from '../../../../dialog/EditTextDialog' +import { image } from '@kit.ImageKit' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct AddWaterMarkerPage { + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + @Local playerSize: media.PixelMapParams = { width: 0, height: 0 } + + @Local showWaterMaker: boolean = false + @Local textContent: string = '' + @Local imagePath: string = '' + + private controller: VideoController = new VideoController() + private videoSize: media.PixelMapParams = { width: 0, height: 0 } + private rect: RectPosition = { x: 0, y: 0, width: 0, height: 0 } + + addWaterMarker() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cacheVideoPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cacheVideoPath)) { + FileUtil.unlinkSync(cacheVideoPath) + } + + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cacheVideoPath) + + let imageX = (vp2px(this.rect.x) * this.videoSize.width!!) / this.playerSize.width!! + let imageY = (vp2px(this.rect.y) * this.videoSize.height!!) / this.playerSize.height!! + + let imageWidth = (vp2px(this.rect.width * this.videoSize.width!!) / this.playerSize.width!!) + let imageHeight = (vp2px(this.rect.height * this.videoSize.height!!) / this.playerSize.height!!) + + this.getUIContext().getComponentSnapshot().get(StrUtil.isNotEmpty(this.textContent) ? 'textWaterMarker' : 'imageWaterMarker') + .then(async (image: image.PixelMap) => { + let imagePath = await ImageUtil.savePixelMap(image, FileUtil.getCacheDirPath(), `cache_${systemDateTime.getTime()}.png`) + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cacheVideoPath} -i ${imagePath} -filter_complex [1:v]scale=${Math.round(imageWidth)}:${Math.round(imageHeight)}[wm];[0:v][wm]overlay=${imageX}:${imageY} -c:v h264 -pix_fmt yuv420p -y ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.uri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + }) + .catch((error: BusinessError) => { + ToastUtils.show('处理失败:' + error.message) + LoadingDialog.dismiss() + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + + this.showWaterMaker = false + this.textContent = '' + this.imagePath = '' + + MediaUtils.getVideoSize(this.uri) + .then((size) => { + this.videoSize = size + if (size.width && size.height) { + const ratio = (DisplayUtil.getWidth() - 180) / size.width + this.playerSize = {width: Math.ceil(size.width * ratio), height: Math.ceil(size.height * ratio)} + } + }) + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { + status: DownloadStatus.COMPLETED, + totalSize: 0, + progress: 0, + totalCount: 1, + index: 0, + callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } + }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '加水印' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .id('video') + .width(this.playerSize ? px2vp(this.playerSize.width) : '100%') + .height(this.playerSize ? px2vp(this.playerSize.height) : '100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Cover) // 设置视频填充模式 + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + top: { anchor: 'video', align: VerticalAlign.Top }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width(this.playerSize ? px2vp(this.playerSize.width) : "100%") + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + + if (this.showWaterMaker && this.uri && !this.isSuccess) { + WaterMarkerView({ + content: this.textContent, + imagePath: this.imagePath, + onRectChange: (rect) => { + this.rect = rect + }, + onClose: () => { + this.showWaterMaker = false + this.textContent = '' + this.imagePath = '' + } + }) + .width(this.playerSize ? px2vp(this.playerSize.width) : '100%') + .height(this.playerSize ? px2vp(this.playerSize.height) : '100%') + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + top: { anchor: 'video', align: VerticalAlign.Top }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + } + } + .layoutWeight(1) + + Row() { + Column(){ + Image($r('app.media.ic_text_water_marker')).width(50).height(50) + Text('文字').fontColor($r('app.color.color_90ffffff')).fontSize(14).margin({ top: 8 }) + } + .onClick(() => { + if (!this.showWaterMaker) { + this.controller.stop() + EditTextDialog.show(this.getUIContext(), {title: '添加水印', hintText: '请输入文字', confirm: (text) => { + this.textContent = text + this.showWaterMaker = true + }}) + } + }) + Column(){ + Image($r('app.media.ic_image_water_marker')).width(50).height(50) + Text('图片').fontColor($r('app.color.color_90ffffff')).fontSize(14).margin({ top: 8 }) + } + .margin({ left: 50 }) + .onClick(() => { + if (!this.showWaterMaker) { + this.controller.stop() + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.imagePath = uris[0] + this.showWaterMaker = true + } + }) + } + }) + } + .margin({ top: 20 }) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')) + .fontSize(17) + .margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定') + .fontColor($r("app.color.color_466afd")) + .fontSize(17) + .margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + if (this.showWaterMaker) { + this.addWaterMarker() + } else { + ToastUtils.show('请添加水印') + } + } + }) + } + .margin({ top: 20, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/ClipVideoPage.ets b/entry/src/main/ets/pages/main/home/tools/ClipVideoPage.ets new file mode 100644 index 0000000..b894281 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/ClipVideoPage.ets @@ -0,0 +1,467 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, DisplayUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { RectCropView, RectPosition } from '../../../../view/RectCropView' +import { media } from '@kit.MediaKit' +import { MediaUtils } from '../../../../utils/MediaUtils' +import { MP4Parser } from '@ohos/mp4parser' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct ClipVideoPage { + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + @Local playerSize: media.PixelMapParams = { width: 0, height: 0 } + @Local currentIndex: number = 0 + + private controller: VideoController = new VideoController() + private rectArray : Array = ['自由', '1:1', '4:3', '3:4', '16:9', '9:16'] + private videoSize: media.PixelMapParams = { width: 0, height: 0 } + private rect: RectPosition = { x: 0, y: 0, width: 0, height: 0 } + + clipVideo() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cacheVideoPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cacheVideoPath)) { + FileUtil.unlinkSync(cacheVideoPath) + } + + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cacheVideoPath) + + let clipWidth: number = 0 + let clipHeight: number = 0 + if (this.currentIndex === 0) { + clipWidth = (vp2px(this.rect.width * this.videoSize.width!!) / this.playerSize.width!!) + clipHeight = (vp2px(this.rect.height * this.videoSize.height!!) / this.playerSize.height!!) + } else { + const ratio = (DisplayUtil.getWidth() - 180) / this.videoSize.width!! + let originPlayerSize: media.PixelMapParams = {width: Math.ceil(this.videoSize.width!! * ratio), height: Math.ceil(this.videoSize.height!! * ratio)} + clipWidth = (this.playerSize.width!! * this.videoSize.width!!) / originPlayerSize.width!! + clipHeight = (this.playerSize.height!! * this.videoSize.height!!) / originPlayerSize.height!! + } + + let clipX: number = 0 + let clipY: number = 0 + if (this.currentIndex === 0) { + clipX = (vp2px(this.rect.x) * this.videoSize.width!!) / this.playerSize.width!! + clipY = (vp2px(this.rect.y) * this.videoSize.width!!) / this.playerSize.height!! + } else { + const ratio = (DisplayUtil.getWidth() - 180) / this.videoSize.width!! + let originPlayerSize: media.PixelMapParams = {width: Math.ceil(this.videoSize.width!! * ratio), height: Math.ceil(this.videoSize.height!! * ratio)} + clipX = clipWidth === originPlayerSize.width ? 0 : (originPlayerSize.width!! - this.playerSize.width!!) / 2 * (this.videoSize.width!!) / originPlayerSize.width!! + clipY = clipHeight === originPlayerSize.height ? 0 : (originPlayerSize.height!! - this.playerSize.height!!) / 2 * (this.videoSize.height!!) / originPlayerSize.height!! + } + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cacheVideoPath} -vf \"crop=${Math.ceil(clipWidth)}:${Math.ceil(clipHeight)}:${Math.ceil(clipX)}:${Math.ceil(clipY)}\" -c:v h264 -pix_fmt yuv420p -y ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.uri = FileUtil.getUriFromPath(outputPath) + MediaUtils.getVideoSize(this.uri) + .then((size) => { + this.videoSize = size + if (size.width && size.height) { + const ratio = (DisplayUtil.getWidth() - 180) / size.width + this.playerSize = {width: Math.ceil(size.width * ratio), height: Math.ceil(size.height * ratio)} + } + }) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + } + + setVideoRatio() { + if (this.videoSize.width && this.videoSize.height) { + const ratio = (DisplayUtil.getWidth() - 180) / this.videoSize.width + let originPlayerSize: media.PixelMapParams = {width: Math.ceil(this.videoSize.width * ratio), height: Math.ceil(this.videoSize.height * ratio)} + + if (originPlayerSize.width && originPlayerSize.height) { + switch (this.currentIndex) { + case 0: { + this.playerSize = originPlayerSize + break + } + + case 1: { + if (originPlayerSize.width >= originPlayerSize.height) { + this.playerSize = {width: originPlayerSize.height, height: originPlayerSize.height} + } else { + this.playerSize = {width: originPlayerSize.width, height: originPlayerSize.width} + } + break + } + + case 2: { + if (originPlayerSize.width / originPlayerSize.height >= 4 / 3) { + this.playerSize = {width: Math.ceil((originPlayerSize.height!!) / 3 * 4), height: originPlayerSize.height} + } else { + this.playerSize = {width: originPlayerSize.width, height: Math.ceil((originPlayerSize.width!!) / 4 * 3)} + } + break + } + + case 3: { + if (originPlayerSize.width / originPlayerSize.height <= 3 / 4) { + this.playerSize = {width: originPlayerSize.width, height: Math.ceil((originPlayerSize.width!!) / 3 * 4)} + } else { + this.playerSize = {width: Math.ceil((originPlayerSize.height!!) / 4 * 3), height: originPlayerSize.height} + } + break + } + + case 4: { + if (originPlayerSize.width / originPlayerSize.height >= 16 / 9) { + this.playerSize = {width: Math.ceil((originPlayerSize.height!!) / 9 * 16), height: originPlayerSize.height} + } else { + this.playerSize = {width: originPlayerSize.width, height: Math.ceil((originPlayerSize.width!!) / 16 * 9)} + } + break + } + + case 5: { + if (originPlayerSize.width / originPlayerSize.height <= 9 / 16) { + this.playerSize = {width: originPlayerSize.width, height: Math.ceil((originPlayerSize.width!!) / 9 * 16)} + } else { + this.playerSize = {width: Math.ceil((originPlayerSize.height!!) / 16 * 9), height: originPlayerSize.height} + } + break + } + } + } + } + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + this.currentIndex = 0 + + MediaUtils.getVideoSize(this.uri) + .then((size) => { + this.videoSize = size + if (size.width && size.height) { + const ratio = (DisplayUtil.getWidth() - 180) / size.width + this.playerSize = {width: Math.ceil(size.width * ratio), height: Math.ceil(size.height * ratio)} + } + }) + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { + status: DownloadStatus.COMPLETED, + totalSize: 0, + progress: 0, + totalCount: 1, + index: 0, + callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } + }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '视频裁剪' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .id('video') + .width(this.playerSize ? px2vp(this.playerSize.width) : '100%') + .height(this.playerSize ? px2vp(this.playerSize.height) : '100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Cover) // 设置视频填充模式 + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + top: { anchor: 'video', align: VerticalAlign.Top }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width(this.playerSize ? px2vp(this.playerSize.width) : "100%") + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + + RectCropView({ + onRectChange: (rect) => { + this.rect = rect + } + }) + .width(this.playerSize ? px2vp(this.playerSize.width) : '100%') + .height(this.playerSize ? px2vp(this.playerSize.height) : '100%') + .alignRules({ + left: { anchor: 'video', align: HorizontalAlign.Start }, + top: { anchor: 'video', align: VerticalAlign.Top }, + right: { anchor: 'video', align: HorizontalAlign.End }, + bottom: { anchor: 'video', align: VerticalAlign.Bottom } + }) + .visibility(this.uri && this.currentIndex === 0 && !this.isSuccess ? Visibility.Visible : Visibility.None) + } + .layoutWeight(1) + + Grid() { + ForEach(this.rectArray, (item: string, index) => { + GridItem() { + Text(item).width(50).height(50) + .textAlign(TextAlign.Center) + .fontColor(Color.White) + .borderRadius(4) + .borderWidth(1.5) + .borderColor(this.currentIndex === index ? '#D33952' : Color.Transparent) + .backgroundColor('#282828') + .onClick(() => { + this.currentIndex = index + this.controller.stop() + this.setVideoRatio() + }) + } + .width('100%') + }) + } + .height(50) + .columnsTemplate('1fr 1fr 1fr 1fr 1fr 1fr') + .layoutDirection(GridDirection.Row) + .visibility(this.uri && !this.isSuccess ? Visibility.Visible : Visibility.None) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')) + .fontSize(17) + .margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定') + .fontColor($r("app.color.color_466afd")) + .fontSize(17) + .margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + this.clipVideo() + } + }) + } + .margin({ top: 20, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/MD5ResetPage.ets b/entry/src/main/ets/pages/main/home/tools/MD5ResetPage.ets new file mode 100644 index 0000000..b23c078 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/MD5ResetPage.ets @@ -0,0 +1,289 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct MD5ResetPage { + private controller: VideoController = new VideoController() + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + modifyMD5() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(outputPath)) { + FileUtil.unlinkSync(outputPath) + } + + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, outputPath) + + if (FileUtil.accessSync(outputPath)) { + this.uri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: 'MD5去重' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .layoutWeight(1) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')).fontSize(17).margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定').fontColor($r("app.color.color_466afd")).fontSize(17).margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + this.modifyMD5() + } + }) + } + .margin({ top: 140, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/RemoveAudioPage.ets b/entry/src/main/ets/pages/main/home/tools/RemoveAudioPage.ets new file mode 100644 index 0000000..74f5344 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/RemoveAudioPage.ets @@ -0,0 +1,295 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { MP4Parser } from '@ohos/mp4parser' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct RemoveAudioPage { + private controller: VideoController = new VideoController() + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + mirrorVideo() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cachePath = FileUtil.getCacheDirPath() + FileUtil.separator + `cache_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cachePath)) { + FileUtil.unlinkSync(cachePath) + } + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cachePath) + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cachePath} -an -c:v copy ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.uri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '去音乐' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .layoutWeight(1) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')).fontSize(17).margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定').fontColor($r("app.color.color_466afd")).fontSize(17).margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + this.mirrorVideo() + } + }) + } + .margin({ top: 140, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/TakeAudioPage.ets b/entry/src/main/ets/pages/main/home/tools/TakeAudioPage.ets new file mode 100644 index 0000000..a1cab76 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/TakeAudioPage.ets @@ -0,0 +1,287 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { MP4Parser } from '@ohos/mp4parser' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct TakeAudioPage { + private controller: VideoController = new VideoController() + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + takeAudio() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cachePath = FileUtil.getCacheDirPath() + FileUtil.separator + `cache_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cachePath)) { + FileUtil.unlinkSync(cachePath) + } + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cachePath) + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp3` + let cmd = `ffmpeg -i ${cachePath} -vn -c:a mp3 ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + SaveUtils.saveAudioToMusic([outputPath]) + .then(() => { + this.uri = undefined + this.isSuccess = true + this.isPlaying = false + this.showDownloadDialog() + }) + .catch((e: BusinessError) => { + ToastUtils.show('提取失败:' + e.message) + }) + } else { + ToastUtils.show('提取失败') + } + LoadingDialog.dismiss() + } + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, isAudio: true, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 2) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + build() { + Column() { + TitleBar({ title: '视频转音频' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .margin({top: 40}) + .onClick(() => { + this.selectVideo() + }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .borderRadius(12) + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 20, right: 20 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .height(350) + .margin({top: 50}) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + end: { anchor: '__container__', align: HorizontalAlign.End } + }) + .id('layout_content') + + Image($r('app.media.ic_reupload_video')).width(20).height(20) + .alignRules({ + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .margin({top: 20}) + .onClick(() => { + this.controller.stop() + this.selectVideo() + }) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + + Button('确认提取', {type: ButtonType.Capsule ,stateEffect:true}) + .width('100%') + .height(42) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(16) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .alignRules({ + top: {anchor: 'layout_content', align: VerticalAlign.Bottom} + }) + .margin({top: 40}) + .onClick(() => { + if (this.uri) { + this.takeAudio() + } else { + ToastUtils.show('请先上传视频') + } + }) + } + .height('auto') + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + .padding({left: 20, right: 20, bottom: 30}) + }.margin({ left: 16, top: 16, right: 16 }) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/VideoMirrorPage.ets b/entry/src/main/ets/pages/main/home/tools/VideoMirrorPage.ets new file mode 100644 index 0000000..f478d14 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/VideoMirrorPage.ets @@ -0,0 +1,321 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { MP4Parser } from '@ohos/mp4parser' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct VideoMirrorPage { + private controller: VideoController = new VideoController() + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + private orientation: number = 0 + + mirrorVideo() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cacheVideoPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cacheVideoPath)) { + FileUtil.unlinkSync(cacheVideoPath) + } + + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cacheVideoPath) + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cacheVideoPath} -vf ${this.orientation === 1 ? "hflip" : "vflip"} -c:v h264 -pix_fmt yuv420p -y ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.uri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '视频镜像' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .layoutWeight(1) + + Row() { + Column(){ + Image($r('app.media.ic_mirror_h')).width(50).height(50) + Text('水平').fontColor($r('app.color.color_90ffffff')).fontSize(14).margin({ top: 8 }) + } + .onClick(() => { + this.orientation = 1 + this.controller.stop() + this.mirrorVideo() + }) + Column(){ + Image($r('app.media.ic_mirror_v')).width(50).height(50) + Text('垂直').fontColor($r('app.color.color_90ffffff')).fontSize(14).margin({ top: 8 }) + } + .margin({ left: 50 }) + .onClick(() => { + this.orientation = 2 + this.controller.stop() + this.mirrorVideo() + }) + .visibility(Visibility.None) + } + .margin({ top: 20 }) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')).fontSize(17).margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text('保存').fontColor($r("app.color.color_466afd")).fontSize(17).margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.orientation !== 0) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + } else { + ToastUtils.show('请选择镜像方向') + } + }) + } + .margin({ top: 20, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/tools/VideoReversePage.ets b/entry/src/main/ets/pages/main/home/tools/VideoReversePage.ets new file mode 100644 index 0000000..e382dd7 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/tools/VideoReversePage.ets @@ -0,0 +1,296 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { TitleBar } from '../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit' +import { AppUtil, FileUtil } from '@pura/harmony-utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { fileIo } from '@kit.CoreFileKit' +import { SaveUtils } from '../../../../utils/SaveUtils' +import { LoadingDialog } from '../../../../dialog/LoadingDialog' +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog' +import { EventConstants } from '../../../../common/EventConstants' +import { MP4Parser } from '@ohos/mp4parser' +import { TipDialog } from '../../../../dialog/TipDialog' +import { avSessionManager } from '../../../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct VideoReversePage { + private controller: VideoController = new VideoController() + @Local uri?: string + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + @Local isSuccess: boolean = false + + videoReverse() { + LoadingDialog.show(this.getUIContext()) + this.isSuccess = false + let cacheVideoPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + if (FileUtil.accessSync(cacheVideoPath)) { + FileUtil.unlinkSync(cacheVideoPath) + } + + let file = FileUtil.openSync(this.uri!!, fileIo.OpenMode.READ_ONLY) + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cacheVideoPath) + + let outputPath = FileUtil.getCacheDirPath() + FileUtil.separator + `kcsp_${systemDateTime.getTime()}.mp4` + let cmd = `ffmpeg -i ${cacheVideoPath} -vf reverse -af areverse -c:v h264 -pix_fmt yuv420p -y ${outputPath}` + MP4Parser.ffmpegCmd(cmd, { + callBackResult: (code: number) => { + if (code === 0) { + this.uri = FileUtil.getUriFromPath(outputPath) + this.isSuccess = true + this.isPlaying = false + ToastUtils.show('处理成功') + } else { + ToastUtils.show('处理失败') + } + LoadingDialog.dismiss() + } + }) + } + + selectVideo() { + PhotoHelper.selectEasy({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPE, + maxSelectNumber: 1, + isPhotoTakingSupported: false, + isEditSupported: false, + isOriginalSupported: false + }) + .then((uris) => { + if (uris.length != 0) { + this.isSuccess = false + this.uri = uris[0] + } + }) + } + + showDownloadDialog() { + DownloadDialog.show(this.getUIContext(), { status: DownloadStatus.COMPLETED, totalSize: 0, progress: 0, totalCount: 1, index: 0, callback: { + confirm: () => { + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, 0) + this.getUIContext().getRouter().back() + } + } }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + onBackPress(): boolean | void { + if (this.isSuccess) { + TipDialog.show(this.getUIContext(), {title:'温馨提示', content:'视频尚未保存,是否确定退出?', callback: { + confirm: () => { + this.getUIContext().getRouter().back() + } + }}) + return true + } + return false + } + + build() { + Column() { + TitleBar({ title: '视频倒放' }) + + Column() { + Row() { + Text('上传视频').fontColor($r('app.color.color_90ffffff')).fontSize(16).fontWeight(FontWeight.Medium) + Text('(仅支持mp4格式)').fontColor($r('app.color.color_50ffffff')).fontSize(12) + }.alignSelf(ItemAlign.Start) + + RelativeContainer() { + Stack() { + Image($r('app.media.ic_add_video')).width(44).height(44) + } + .width(140) + .height(140) + .borderRadius(10) + .backgroundColor($r('app.color.color_333333')) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + end: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + this.selectVideo() + }) + } + .height(220) + .margin({ top: 12 }) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + }.margin({ left: 16, top: 16, right: 16 }) + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Column() { + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(false) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .layoutWeight(1) + + Row() { + Text(this.isSuccess ? '重新上传' : '取消').fontColor($r('app.color.color_90ffffff')).fontSize(17).margin({ left: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + this.selectVideo() + } else { + this.getUIContext().getRouter().back() + } + }) + Blank().layoutWeight(1) + Text(this.isSuccess ? '保存' : '确定').fontColor($r("app.color.color_466afd")).fontSize(17).margin({ right: 16 }) + .onClick(() => { + this.controller.stop() + if (this.isSuccess) { + SaveUtils.saveImageVideoToAlbumDialog([this.uri!!]) + .then((saved) => { + if (saved) { + this.uri = undefined + this.showDownloadDialog() + } else { + ToastUtils.show('保存失败') + } + }) + .catch((e: BusinessError) => { + ToastUtils.show('保存失败:' + e.message) + }) + + } else { + this.videoReverse() + } + }) + } + .margin({ top: 140, bottom: 30 }) + } + .layoutWeight(1) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/wx/WxVideoPage.ets b/entry/src/main/ets/pages/main/home/wx/WxVideoPage.ets new file mode 100644 index 0000000..9a3c9fe --- /dev/null +++ b/entry/src/main/ets/pages/main/home/wx/WxVideoPage.ets @@ -0,0 +1,633 @@ +import { AppUtil, FileUtil, ObjectUtil, + PasteboardUtil, + PermissionUtil, RandomUtil, StrUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../../common/EventConstants'; +import { RouterUrls } from '../../../../common/RouterUrls'; +import { DownloadDialog, DownloadStatus } from '../../../../dialog/DownloadDialog'; +import { ImageMaterial, MaterialInfoEntity, MediaEntity, VideoMaterial } from '../../../../entity/MaterialInfoEntity'; +import { VipPermissionEntity } from '../../../../entity/VipPermissionEntity'; +import { LoginManager } from '../../../../manager/LoginGlobalManager'; +import { ShareManager } from '../../../../manager/ShareManager'; +import { ConfigManager } from '../../../../manager/UserConfigManager'; +import { MediaDownloader } from '../../../../net/MediaDownloader'; +import { SaveUtils } from '../../../../utils/SaveUtils'; +import { ToastUtils } from '../../../../utils/ToastUtils'; +import { TitleBar } from '../../../../view/TitleBar'; +import { WxVideoViewModel } from '../../../../viewModel/WxVideoViewModel'; +import { WxVideoMaterialPage } from './material/WxVideoMaterialPage'; +import { LevelMode, router } from '@kit.ArkUI'; +import { WxVideoEntity } from '../../../../entity/WxVideoEntity'; +import { WxImageMaterialPage } from './material/WxImageMaterialPage'; +import { OnWXResp, WXApi, WXEventHandler } from '../../../../utils/wechat/WXApiEventHandlerImpl'; +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { ErrCode, SendAuthResp } from '@tencent/wechat_open_sdk'; +import { LoadingDialog } from '../../../../dialog/LoadingDialog'; +import BuildProfile from 'BuildProfile'; +import { WxServiceEntity } from '../../../../entity/WxServiceEntity'; +import { Constants } from '../../../../common/Constants'; +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager'; +import { TipDialog } from '../../../../dialog/TipDialog'; +import { SimpleTipDialog } from '../../../../dialog/SimpleTipDialog'; +import { JoinWxGroupCourseDialog } from '../../../../dialog/JoinWxGroupCourseDialog'; +import { PrefUtils } from '../../../../utils/PrefUtils'; + +@Entry +@ComponentV2 +struct WxVideoPage { + @Local isPlayback: boolean = false + @Local currentIndex: number = 0; + @Local isRefreshing: boolean = false; + + @Local videoList: Array = []; + @Local imageList: Array = []; + + @Local videoRowCount: number = 1; + @Local imageRowCount: number = 1; + + viewModel: WxVideoViewModel = new WxVideoViewModel(this.getUIContext()); + tabController: TabsController = new TabsController(); + titles: Array = ['视频', '图片']; + type: number = 0 + + mediaDownloader?: MediaDownloader | null + selectedList: Array = [] + cacheFileUris: Array = [] + downloadIndex: number = 0 + totalSize = 0 + downloadStatus = DownloadStatus.DOWNLOADING + + joinGroupDialogController?: CustomDialogController | null; + + //从微信返回的回调 + onWXResp: OnWXResp = (resp) => { + //微信返回的数据 + if (resp instanceof SendAuthResp && resp.state?.endsWith('video')) { + const authResult = JSON.stringify(resp ?? {}, null , 2); + const errCode = JSON.parse(authResult).errCode as number; + if (errCode === ErrCode.ERR_OK) { + const authCode = JSON.parse(authResult).code as string; + if (ConfigManager.getPlaybackJoinType() === "img") { + this.showJoinGroupCourseDialog() + } else { + this.viewModel.bindWxUserinfo(authCode) + } + } else { + ToastUtils.show(JSON.parse(authResult).errStr); + } + } + } + + @Monitor('viewModel.wxVideo') + onMaterialInfoChange(monitor: IMonitor) { + const entity = monitor.value()?.now as WxVideoEntity + this.createVideoList(entity.items); + this.createImageList(entity.items); + if (this.videoList.length > 0) { + this.tabController.changeIndex(0); + this.currentIndex = 0 + } else if (this.imageList.length > 0) { + this.tabController.changeIndex(1); + this.currentIndex = 1 + } + this.isRefreshing = false + } + + @Monitor('viewModel.permissionInfo') + onPermissionInfoChange(monitor: IMonitor) { + const info = monitor.value()?.now as VipPermissionEntity; + if (info.auth) { + if (!LoginManager.isLogin()) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.LOGIN_PAGE, params: {from: 1}}, router.RouterMode.Single) + return; + } + this.shareOrDownload() + } else { + if (!info.auth_ad) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIP_PAGE, params: {origin: 'download_wechat_video'}}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, 'download_wechat_video') + return; + } + } + } + + @Monitor('viewModel.errorCode') + onErrorCodeChange(monitor: IMonitor) { + const errorCode = monitor.value()?.now as number; + if (errorCode === 12002 || errorCode === 12003 || errorCode === 12004) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.RECHARGE_DIAMOND_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_RECHARGE_DIAMOND, 'download_wechat_video') + ToastUtils.show('钻石已用完') + } + } + + @Monitor('viewModel.deleteVideo') + onDeleteVideo(monitor: IMonitor) { + this.isRefreshing = true + ToastUtils.show('删除成功') + } + + @Monitor('viewModel.wxService') + onWxServiceChange(monitor: IMonitor) { + const info = monitor.value()?.now as WxServiceEntity; + if (StrUtil.isEmpty(info.corpid) || StrUtil.isEmpty(info.address)) { + ToastUtils.show('获取客服信息错误') + } else { + ConfigManager.saveBindWxVideoHelper(true) + this.contactWxService(info) + } + } + + @Monitor('viewModel.wxUserinfo') + onWxUserinfoChange(monitor: IMonitor) { + if (this.isPlayback) { + ConfigManager.saveBindWxPlaybackHelper(true) + } else { + ConfigManager.saveBindWxVideoHelper(true) + } + this.jumpToMiniProgram() + } + + aboutToAppear(): void { + WXEventHandler.registerOnWXRespCallback(this.onWXResp) + this.initParams() + this.checkBindStatus() + } + + aboutToDisappear() { + WXEventHandler.unregisterOnWXRespCallback(this.onWXResp) + } + + onPageShow(): void { + this.isRefreshing = true + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.isPlayback = params.isPlayback as boolean + } + } + + showSaveTip() { + if (PrefUtils.getBoolean('show_save_tip', true)) { + SimpleTipDialog.show(this.getUIContext(), {title: '重要提示', content: '下载完成后需要您点击弹窗允许保存之后才能保存文件到相册', callback: { + confirm: () => { + this.viewModel.checkVip(); + PrefUtils.put('show_save_tip', false) + } + }}) + } else { + this.viewModel.checkVip() + } + } + + shareOrDownload() { + this.cacheFileUris.length = 0 + if (this.type == 0) { + if (this.selectedList.length > 0) { + this.shareMedia(this.selectedList[0]) + } + } else { + if (this.selectedList.length > 0) { + this.downloadIndex = 0 + this.downloadMedia(this.selectedList[this.downloadIndex]) + } + } + } + + shareMedia(media: MediaEntity) { + let filePath = FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName() + if (FileUtil.accessSync(filePath) && FileUtil.isFile(filePath) && !(media.totalSize === 0 || media.currentLen !== media.totalSize)) { + this.shareFile(media) + } else { + this.showDownloadDialog(media instanceof VideoMaterial && media.isMerge ? DownloadStatus.VIDEO_DOWNLOADING : DownloadStatus.DOWNLOADING) + this.download(media, true) + } + } + + async downloadMedia(media: MediaEntity) { + let filePath = FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName() + if (FileUtil.accessSync(filePath) && FileUtil.isFile(filePath) && !(media.totalSize === 0 || media.currentLen !== media.totalSize)) { + this.cacheFileUris.push(FileUtil.getUriFromPath(filePath)) + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + let saved = await this.saveFile() + if (saved) { + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + this.updateDownloadDialog(DownloadStatus.COMPLETED, this.totalSize, this.totalSize) + } + } else { + ToastUtils.show('保存失败') + this.dismissDownloadDialog() + } + this.isRefreshing = true + } + } else { + this.showDownloadDialog(media instanceof VideoMaterial && media.isMerge ? DownloadStatus.VIDEO_DOWNLOADING : DownloadStatus.DOWNLOADING) + this.download(media) + } + } + + async download(media: MediaEntity, isShare: boolean = false) { + this.viewModel.reportStatus(media.logid, '1') + media.initFileName() + this.mediaDownloader = MediaDownloader.getInstance() + this.mediaDownloader + .callback({ + onSuccess: async (path) => { + if (isShare) { + this.shareFile(media) + } else { + this.cacheFileUris.push(FileUtil.getUriFromPath(path)) + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + let saved = await this.saveFile() + if (saved) { + if (this.downloadIndex < this.selectedList.length - 1) { + this.downloadIndex++ + this.downloadMedia(this.selectedList[this.downloadIndex]) + } else { + this.updateDownloadDialog(DownloadStatus.COMPLETED, this.totalSize, this.totalSize) + } + } else { + ToastUtils.show('保存失败') + this.dismissDownloadDialog() + } + this.isRefreshing = true + } + } + }, + onGetTotal: (total) => { + this.totalSize = total + this.updateDownloadDialog(this.downloadStatus, total) + }, + onProgress: (progress) => { + this.updateDownloadDialog(this.downloadStatus, this.totalSize, progress) + }, + onMerge: (step) => { + if (step === 4) { + this.updateDownloadDialog(DownloadStatus.AUDIO_DOWNLOADING) + } else { + this.updateDownloadDialog(DownloadStatus.PROCESSING) + } + }, + onPause:() => { + this.dismissDownloadDialog() + }, + onCancel: () => { + this.dismissDownloadDialog() + }, + onFailed: (msg) => { + ToastUtils.show('下载失败:' + msg) + this.dismissDownloadDialog() + this.viewModel.reportStatus(media.logid, '-1', `${media.totalSize}`, msg) + this.reportErrorEvent(media, msg) + } + }) + .down(media); + } + + shareFile(media: MediaEntity) { + ShareManager.shareFile(FileUtil.getCacheDirPath() + FileUtil.separator + media.initFileName()) + this.viewModel.reportStatus(media.logid, '2', `${media.totalSize}`) + this.dismissDownloadDialog() + } + + async saveFile(): Promise { + let saved = await SaveUtils.saveImageVideoToAlbumDialog(this.cacheFileUris) + if (saved) { + this.cacheFileUris.forEach((uri, index) => { + let stat = FileUtil.statSync(FileUtil.getFilePath(uri)) + this.viewModel.reportStatus(this.selectedList[index].logid, '2', `${stat.size}`) + }) + } + return Promise.resolve(saved) + } + + showDownloadDialog(status: DownloadStatus = DownloadStatus.DOWNLOADING) { + this.downloadStatus = status + DownloadDialog.show(this.getUIContext(), { status: status, totalSize: 0, progress: 0, totalCount: this.selectedList.length, index: this.downloadIndex, callback: { + confirm: () => { + if (this.downloadStatus === DownloadStatus.COMPLETED) { + EventReportGlobalManager.eventReport(EventConstants.DIALOG_GO_TO_VIEW, this.titles[this.currentIndex]) + AppUtil.getContext().eventHub.emit(EventConstants.JumpToRecordEvent, this.currentIndex) + this.getUIContext().getRouter().back() + } else { + //todo 后台下载 + } + }, + cancel: () => { + if (this.downloadStatus !== DownloadStatus.COMPLETED) { + if (this.mediaDownloader) { + this.mediaDownloader.cancel() + EventReportGlobalManager.eventReport(EventConstants.CANCEL_DOWNLOAD_VIDEO, this.selectedList[this.downloadIndex].url) + } + } else { + EventReportGlobalManager.eventReport(EventConstants.DIALOG_CONFIRM_SAVE_FILE, this.titles[this.currentIndex]) + } + } + } }) + } + + updateDownloadDialog(status: DownloadStatus = DownloadStatus.DOWNLOADING, totalSize: number = 0, progress: number = 0, isAudio: boolean = false) { + this.downloadStatus = status + DownloadDialog.update({ status: status, totalSize: totalSize, progress: progress, totalCount: this.selectedList.length, index: this.downloadIndex, isAudio: isAudio }) + } + + dismissDownloadDialog() { + this.downloadStatus = DownloadStatus.DOWNLOADING + this.totalSize = 0 + this.downloadIndex = 0 + this.mediaDownloader = null + DownloadDialog.dismiss() + } + + createVideoList(materials?: Array) { + const list = new Array(); + materials?.forEach((info) => { + info.material?.video?.forEach((video, index) => { + video.logid = info.logid + video.isThreading = info.material!!.threading + if (info.material?.image && info.material.image.length > index) { + video.thumb = info.material.image[index].url + } + video.flag = RandomUtil.getRandomNumber(0, 1000) + list.push(video) + }) + }) + this.videoList = list.map(item => ObjectUtil.assign(new VideoMaterial(), item) as VideoMaterial); + if (this.videoList.length > 0) { + this.videoList[0].isChecked = true + } + this.videoRowCount = this.computeRowCount(this.videoList); + } + + createImageList(materials?: Array) { + const list = new Array(); + materials?.forEach((info) => { + info.material?.image?.forEach((image) => { + image.logid = info.logid + image.flag = RandomUtil.getRandomNumber(0, 1000) + list.push(image) + }) + }) + this.imageList = list.map(item => ObjectUtil.assign(new ImageMaterial(), item) as ImageMaterial); + if (this.imageList.length > 0) { + this.imageList[0].isChecked = true + } + this.imageRowCount = this.computeRowCount(this.imageList); + } + + computeRowCount(list: Array): number { + if (list.length > 8) { + return 3; + } else if (list.length >= 3 && list.length <= 8) { + return 2; + } else { + return 1; + } + } + + checkBindStatus() { + if (this.isPlayback && !ConfigManager.isBindWxPlaybackHelper() || !this.isPlayback && !ConfigManager.isBindWxVideoHelper()) { + if (LoginManager.getLastUserInfo()?.user_id !== LoginManager.getUserInfo()?.user_id) { + TipDialog.show(this.getUIContext(), {title: '提示', content: '系统检测到您更换了账号,请重新添加助手', callback: { + confirm: () => { + if (this.isPlayback || !ConfigManager.isWxVideoServiceEnable()) { + if (ConfigManager.getPlaybackJoinType() === "img") { + this.showJoinGroupCourseDialog() + } else { + this.wxAuth() + } + } else { + this.getWxServiceInfo() + } + } + }}) + } + } + } + + showJoinGroupCourseDialog() { + this.joinGroupDialogController = new CustomDialogController({ + builder: JoinWxGroupCourseDialog({ isPlayback: this.isPlayback }), + width: '100%', + cornerRadius: 20, + autoCancel: true, + maskColor: '#CC000000', + levelMode: LevelMode.EMBEDDED, + backgroundBlurStyle: BlurStyle.NONE, + alignment: DialogAlignment.Bottom + }) + this.joinGroupDialogController.open(); + } + + async wxAuth() { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('未安装微信客户端,请先下载安装微信客户端'); + return; + } + LoadingDialog.show(this.getUIContext()); + let req = new WxOpenSdk.SendAuthReq; + req.isOption1 = false; + req.nonAutomatic = true; + req.scope = 'snsapi_userinfo'; + req.state = BuildProfile.BUNDLE_NAME + RandomUtil.getRandomInt(0, 1000) + '_video'; + req.transaction =''; + + await WXApi.sendReq(AppUtil.getContext(), req) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_SHARE_WX_PLAYBACK, '前往微信分享直播回放') + LoadingDialog.dismiss(); + } + + async jumpToMiniProgram() { + //保存成功跳转直播回放加群小程序 + try { + let wxVideoConfig = ConfigManager.getWxVideoConfig() + if (wxVideoConfig != null && LoginManager.getUserInfo()) { + PasteboardUtil.setDataText(LoginManager.getUserInfo()!!.user_id) + + wxVideoConfig.id = LoginManager.getUserInfo()!!.user_id + let params = encodeURI(JSON.stringify(wxVideoConfig)).replace('+', '%20') + let launchMiniProgramReq = new WxOpenSdk.LaunchMiniProgramReq() + launchMiniProgramReq.userName = Constants.MINI_PROGRAM_APP_ID //拉起的小程序的原始id + launchMiniProgramReq.path = `pages/index/index?path=share¶m=${params}` + launchMiniProgramReq.miniprogramType = 0 //拉起小程序的类型 0-正式版 1-开发版 2-体验版 + await WXApi.sendReq(AppUtil.getContext(), launchMiniProgramReq) + } else { + ToastUtils.show('获取配置失败,请联系客服') + } + } catch (e) { + ToastUtils.show('跳转失败,请联系客服') + } + } + + getWxServiceInfo() { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('未安装微信客户端,请先下载安装微信客户端'); + return; + } + this.viewModel.wxServiceInfo() + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_SHARE_WX_VIDEO, "前往微信分享视频号", '') + } + + /** + * 跳转客服 + * @param service + */ + contactWxService(service: WxServiceEntity) { + let req = new WxOpenSdk.OpenCustomerServiceChatReq() + req.corpId = service.corpid; // 企业ID + req.url = service.address; // 客服URL + WXApi.sendReq(AppUtil.getContext(), req) + } + + reportErrorEvent(media: MediaEntity, message: string) { + if (media instanceof VideoMaterial) { + EventReportGlobalManager.eventReport(EventConstants.ERROR_CLIENT_DOWNLOAD_VIDEO, media.url, message) + } else if (media instanceof ImageMaterial) { + EventReportGlobalManager.eventReport(EventConstants.ERROR_CLIENT_DOWNLOAD_IMG, media.url, message) + } + } + + build() { + RelativeContainer() { + Column() { + TitleBar({ title: this.isPlayback ? '直播回放' : '视频号' }) + + Stack({ alignContent: Alignment.TopStart }) { + Refresh({refreshing: this.isRefreshing}) { + Tabs({ barPosition: BarPosition.Start, controller: this.tabController }) { + TabContent() { + WxVideoMaterialPage({mediaList: this.videoList, rowCount: this.videoRowCount, isPlayback: this.isPlayback, + onShare:(video) => { + this.type = 0 + this.selectedList.length = 0 + this.selectedList.push(video) + this.viewModel.checkVip(); + }, + onSave: (list) => { + this.type = 1 + this.selectedList = list + this.showSaveTip(); + }, + onItemDelete: (video) => { + TipDialog.show(this.getUIContext(), {title: '提示', content: this.isPlayback ? '确定删除该直播回放?' : '确定删除该视频号?', callback: { + confirm: () => { + this.viewModel.deleteWxVideo(video.logid) + } + }}) + } + }) + } + + TabContent() { + WxImageMaterialPage({mediaList: this.imageList, rowCount: this.imageRowCount, isPlayback: this.isPlayback, + onShare:(image) => { + this.type = 0 + this.selectedList.length = 0 + this.selectedList.push(image) + this.viewModel.checkVip(); + }, + onSave: (list) => { + this.type = 1 + this.selectedList = list + this.showSaveTip(); + }, + onItemDelete: (image) => { + TipDialog.show(this.getUIContext(), {title: '提示', content: this.isPlayback ? '确定删除该直播回放?' : '确定删除该视频号?', callback: { + confirm: () => { + this.viewModel.deleteWxVideo(image.logid) + } + }}) + } + }) + } + } + .scrollable(false) + /*.onSelected((index: number) => { + this.currentIndex = index; + })*/ + } + .onRefreshing(() => { + this.isRefreshing = true + this.viewModel.videoList(this.isPlayback ? 'playback' : 'wechatvideo') + }) + .refreshOffset(50) + .pullToRefresh(true) + + Row({ space: 40 }) { + ForEach(this.titles, (title: string, index) => { + this.tab(title, index); + }) + Blank().layoutWeight(1) + Row() { + Image($r('app.media.ic_wx_video_course')).width(16).height(16) + Text('视频教程').fontColor($r('app.color.color_80ffffff')).fontSize(12).margin({ left: 4 }) + } + .onClick(() => { + if (this.isPlayback) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getPlaybackCourse(), title: '视频教程'}}) + } else { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getWxVideoCourse(), title: '视频教程'}}) + } + }) + }.padding({ left: 16, right: 16 }) + .margin({ top: 10 }) + }.layoutWeight(1) + } + + Row() { + Image(this.isPlayback ? $r('app.media.ic_playback_helper') : $r('app.media.ic_video_helper')).width(26).height(26) + Text(this.isPlayback ? '添加直播\n回放助手' : '添加助手').margin({left: 6}).fontColor(Color.White).fontSize(12) + Image($r('app.media.ic_arrow_dp16')).width(16).height(16).margin({left: 2}) + } + .padding(8) + .backgroundColor($r('app.color.color_333333')) + .borderRadius({topLeft: 10, bottomLeft: 10}) + .alignRules({ + right: {anchor:'__container__', align: HorizontalAlign.End}, + bottom: {anchor:'__container__', align: VerticalAlign.Bottom}, + }) + .margin({bottom: 100}) + .onClick(() => { + if (this.isPlayback || !ConfigManager.isWxVideoServiceEnable()) { + if (ConfigManager.getPlaybackJoinType() === "img") { + this.showJoinGroupCourseDialog() + } else { + this.wxAuth() + } + } else { + this.getWxServiceInfo() + } + }) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } + + @Builder + tab(tabName: string, tabIndex: number) { + Row() { + Text(tabName) + .fontSize(this.currentIndex === tabIndex ? 17 : 14) + .fontWeight(this.currentIndex === tabIndex ? FontWeight.Medium : FontWeight.Regular) + .lineHeight(24) + .fontColor(tabIndex === this.currentIndex ? $r("app.color.color_466afd") : $r('app.color.color_50ffffff')) + } + .width('auto') + .height('auto') + .onClick(() => { + this.tabController.changeIndex(tabIndex); + this.currentIndex = tabIndex; + }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/wx/material/WxImageMaterialPage.ets b/entry/src/main/ets/pages/main/home/wx/material/WxImageMaterialPage.ets new file mode 100644 index 0000000..ac1fad9 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/wx/material/WxImageMaterialPage.ets @@ -0,0 +1,146 @@ +import { RouterUrls } from '../../../../../common/RouterUrls'; +import { ImageMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ConfigManager } from '../../../../../manager/UserConfigManager'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { ImageMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct WxImageMaterialPage { + @Param isPlayback: boolean = false + @Param mediaList: Array = []; + @Param rowCount: number = 1; + @Param onShare?: (video: ImageMaterial) => void = undefined + @Param onSave?: (list: Array) => void = undefined + @Param onItemDelete?: (video: ImageMaterial) => void = undefined + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: ImageMaterial, index) => { + GridItem() { + ImageMaterialItemView({ media: item, rowCount: this.rowCount, isWxVideo: true, + onDelete: (image) => { + if (this.onItemDelete) { + this.onItemDelete(image) + } + } + }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : + $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Blank().layoutWeight(1) + + Button('转发', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (this.onShare) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要转发的图片'); + } else if (list.length > 1) { + ToastUtils.show('一次只能转发一张图片'); + } else { + this.onShare(list[0]); + } + } + }) + + Button('保存', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 12 }) + .onClick(() => { + if (this.onSave) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要保存的图片'); + } else { + this.onSave(list); + } + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + Column() { + Stack() { + Image($r('app.media.ic_course_thumb')).width(240).height(240) + Image($r('app.media.ic_play_video')).width(50).height(50) + }.width('100%').height(290).backgroundColor(Color.Black) + .onClick(() => { + if (this.isPlayback) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getPlaybackCourse(), title: '视频教程'}}) + } else { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getWxVideoCourse(), title: '视频教程'}}) + } + }) + + Column() { + Text('操作步骤:').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text(this.isPlayback ? $r('app.string.wx_playback_course') : $r('app.string.wx_video_course')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(12) + .lineHeight(20) + .margin({ top: 9 }) + }.alignItems(HorizontalAlign.Start).width(245).layoutWeight(1).margin({ top: 37 }) + } + .visibility(this.mediaList.length > 0 ? Visibility.None : Visibility.Visible) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/home/wx/material/WxVideoMaterialPage.ets b/entry/src/main/ets/pages/main/home/wx/material/WxVideoMaterialPage.ets new file mode 100644 index 0000000..8cf88c3 --- /dev/null +++ b/entry/src/main/ets/pages/main/home/wx/material/WxVideoMaterialPage.ets @@ -0,0 +1,145 @@ +import { RouterUrls } from '../../../../../common/RouterUrls'; +import { VideoMaterial } from '../../../../../entity/MaterialInfoEntity'; +import { ConfigManager } from '../../../../../manager/UserConfigManager'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { VideoMaterialItemView } from '../../../../../view/MaterialItemView'; + +@ComponentV2 +export struct WxVideoMaterialPage { + @Param isPlayback: boolean = false + @Param mediaList: Array = []; + @Param rowCount: number = 1; + @Param onShare?: (video: VideoMaterial) => void = undefined + @Param onSave?: (list: Array) => void = undefined + @Param onItemDelete?: (video: VideoMaterial) => void = undefined + @Local isCheckAll: boolean = false + + selectedItems(): Array { + const list = new Array(); + this.mediaList.forEach((item) => { + if (item.isChecked) { + list.push(item); + } + }) + return list; + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: VideoMaterial, index) => { + GridItem() { + VideoMaterialItemView({ media: item, rowCount: this.rowCount, isWxVideo: true, onDelete:(video) => { + if (this.onItemDelete) { + this.onItemDelete(video) + } + } + }) + } + .onClick(() => { + item.isChecked = !item.isChecked; + this.isCheckAll = this.mediaList.every(item => item.isChecked) + }) + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + + Row() { + Row() { + Image(this.mediaList.every(item => item.isChecked) ? $r('app.media.ic_check_true') : + $r('app.media.ic_check_false')).width(18).height(18) + Text('全选').fontColor($r('app.color.color_90ffffff')).fontSize(16).margin({ left: 7 }) + } + .onClick(() => { + this.isCheckAll = !this.isCheckAll; + this.mediaList.forEach((item) => { + item.isChecked = this.isCheckAll; + }) + }) + + Blank().layoutWeight(1) + + Button('转发', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .backgroundColor($r('app.color.color_333333')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .onClick(() => { + if (this.onShare) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要转发的视频'); + } else if (list.length > 1) { + ToastUtils.show('一次只能转发一个视频'); + } else { + this.onShare(list[0]); + } + } + }) + + Button('保存', { type: ButtonType.Capsule, stateEffect: true }) + .width(122) + .height(40) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .margin({ left: 12 }) + .onClick(() => { + if (this.onSave) { + const list = this.selectedItems(); + if (list.length === 0) { + ToastUtils.show('请选择要保存的视频'); + } else { + this.onSave(list); + } + } + }) + } + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 10, + right: 16, + bottom: 30 + }) + .visibility(this.mediaList.length > 0 ? Visibility.Visible : Visibility.None) + } + + Column() { + Stack() { + Image($r('app.media.ic_course_thumb')).width(240).height(240) + Image($r('app.media.ic_play_video')).width(50).height(50) + }.width('100%').height(290).backgroundColor(Color.Black) + .onClick(() => { + if (this.isPlayback) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getPlaybackCourse(), title: '视频教程'}}) + } else { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIDEO_PLAYER_PAGE, params: {uri: ConfigManager.getWxVideoCourse(), title: '视频教程'}}) + } + }) + + Column() { + Text('操作步骤:').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text(this.isPlayback ? $r('app.string.wx_playback_course') : $r('app.string.wx_video_course')) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(12) + .lineHeight(20) + .margin({ top: 9 }) + }.alignItems(HorizontalAlign.Start).width(245).layoutWeight(1).margin({ top: 37 }) + } + .visibility(this.mediaList.length > 0 ? Visibility.None : Visibility.Visible) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/MinePage.ets b/entry/src/main/ets/pages/main/mine/MinePage.ets new file mode 100644 index 0000000..b91a5f6 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/MinePage.ets @@ -0,0 +1,436 @@ +import { AppUtil, FileUtil, FormatUtil, NumberUtil, PasteboardUtil, StrUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../common/EventConstants'; +import { RouterUrls } from '../../../common/RouterUrls'; +import { UserEntity } from '../../../entity/UserEntity'; +import { LoginManager } from '../../../manager/LoginGlobalManager'; +import { ToastUtils } from '../../../utils/ToastUtils'; +import { TextItemView } from '../../../view/TextItemView'; +import MineViewModel from '../../../viewModel/MineViewModel'; +import { router } from '@kit.ArkUI'; +import { TipDialog } from '../../../dialog/TipDialog'; +import { fileIo, storageStatistics } from '@kit.CoreFileKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { LoadingDialog } from '../../../dialog/LoadingDialog'; +import { DiamondDetailEntity } from '../../../entity/DiamondDetailEntity'; +import { EventReportGlobalManager } from '../../../manager/EventReportGlobalManager'; +import { WxServiceEntity } from '../../../entity/WxServiceEntity'; +import { WXApi } from '../../../utils/wechat/WXApiEventHandlerImpl'; +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { ScanUtil } from '@pura/picker_utils'; +import { scanCore } from '@kit.ScanKit'; + +@ComponentV2 +export struct MinePage { + @Local showChallenge: boolean = false; + @Local showShare: boolean = false; + @Local isLogin: boolean = LoginManager.isLogin(); + @Local userinfo?: UserEntity; + @Local diamondInfo?: DiamondDetailEntity + @Local cacheSize: number = 0 + + scroller: Scroller = new Scroller(); + + viewModel: MineViewModel = new MineViewModel(this.getUIContext()); + + + @Monitor('viewModel.userEntity') + onUserinfoChange(monitor: IMonitor) { + this.userinfo = monitor.value()?.now as UserEntity; + } + + @Monitor('viewModel.wxService') + onWxServiceChange(monitor: IMonitor) { + const info = monitor.value()?.now as WxServiceEntity + if (StrUtil.isEmpty(info.corpid) || StrUtil.isEmpty(info.address)) { + ToastUtils.show('获取客服信息错误') + } else { + this.contactWxService(info) + } + } + + @Monitor('viewModel.diamondInfo') + onDiamondInfoChange(monitor: IMonitor) { + this.diamondInfo = monitor.value()?.now as DiamondDetailEntity; + } + + aboutToAppear(): void { + this.initObserver(); + this.getCache() + this.viewModel.userinfo(); + this.viewModel.getDiamondInfo() + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.MineRefreshEvent, () => { + this.isLogin = LoginManager.isLogin(); + this.viewModel.userinfo(); + this.getCache(); + }); + } + + getCache() { + storageStatistics.getCurrentBundleStats((error: BusinessError, bundleStats: storageStatistics.BundleStats) => { + if (error) { + console.error('getCurrentBundleStats failed with error:' + JSON.stringify(error)); + } else { + console.info('getCurrentBundleStats successfully:' + JSON.stringify(bundleStats)); + this.cacheSize = bundleStats.cacheSize + } + }); + } + + // Clear cache + clearCache() { + LoadingDialog.show(this.getUIContext()) + let cacheDir = AppUtil.getContext().cacheDir; + fileIo.listFile(cacheDir).then((filenames) => { + for (let i = 0; i < filenames.length; i++) { + let dirPath = cacheDir + '/' + filenames[i]; + let isDirectory: boolean = false; + try { + isDirectory = fileIo.statSync(dirPath).isDirectory(); + } catch (e) { + console.error(JSON.stringify(e)); + } + if (isDirectory) { + fileIo.rmdirSync(dirPath); + } else { + fileIo.unlinkSync(dirPath); + } + } + }) + setTimeout(() => { this.getCache() }, 200) + LoadingDialog.dismiss() + } + + /** + * 跳转客服 + * @param service + */ + contactWxService(service: WxServiceEntity) { + let req = new WxOpenSdk.OpenCustomerServiceChatReq() + req.corpId = service.corpid; // 企业ID + req.url = service.address; // 客服URL + WXApi.sendReq(AppUtil.getContext(), req) + } + + build() { + Scroll(this.scroller) { + Stack() { + Image($r('app.media.ic_mine_top_bg')) + .width('100%') + .aspectRatio(0.8) + .id('iv_top_bg') + + Image(this.userinfo?.vip === 3 ? $r('app.media.ic_vip_bg2') : $r('app.media.ic_vip_bg1')) + .width('100%') + .aspectRatio(1.4) + .visibility(this.userinfo?.vip !== 1 ? Visibility.Visible : Visibility.Hidden) + .id('iv_vip_bg') + + Column() { + RelativeContainer() { + Image(StrUtil.isNotEmpty(this.userinfo?.avater) ? this.userinfo?.avater : $r('app.media.ic_default_avatar')) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .margin({ top: 20 }) + .padding(1) + .borderRadius(45) + .width(90) + .height(90) + .backgroundColor(Color.White) + .id('iv_avatar') + .onClick(() => { + if (!LoginManager.isLogin()) { + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.LOGIN_PAGE, params: { from : 1 }}, router.RouterMode.Single) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_LOGIN, 'center') + } else { + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.USER_SETTINGS_PAGE }) + } + }) + + Text('Hi! 快登录') + .fontColor(Color.White) + .fontSize(12) + .textAlign(TextAlign.Center) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + left: { anchor: 'iv_avatar', align: HorizontalAlign.End } + }) + .padding({ + left: 6, + right: 6, + }) + .margin({ left: -25 }) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .borderRadius({ topLeft: 6, topRight: 6, bottomRight: 6 }) + .width('auto') + .height(24) + .visibility(this.isLogin ? Visibility.None : Visibility.Visible) + .id('tv_nologin_tip') + + Text(this.userinfo?.ip_area) + .fontColor(Color.White) + .fontSize(12) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + left: { anchor: 'iv_avatar', align: HorizontalAlign.End } + }) + .padding({ + left: 6, + right: 6, + bottom: 4 + }) + .margin({ left: -25 }) + .width('auto') + .height(21) + .backgroundImage($r('app.media.ic_area_bg')) + .backgroundImageSize({width: 'auto', height:21}) + .visibility(StrUtil.isNotEmpty(this.userinfo?.ip_area) && this.userinfo?.ip_area !== 'CN' && LoginManager.isLogin() ? Visibility.Visible : Visibility.None) + .id('tv_area') + + Text(StrUtil.isNotEmpty(this.userinfo?.name) ? this.userinfo?.name : '游客') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontWeight(FontWeight.Medium) + .margin({ top: 12 }) + .alignRules({ + top: { anchor: 'iv_avatar', align: VerticalAlign.Bottom }, + left: { anchor: 'iv_avatar', align: HorizontalAlign.Start }, + right: { anchor: 'iv_avatar', align: HorizontalAlign.End } + }) + .width('auto') + .height('auto') + .id('tv_username') + + Row() { + Text('ID:' + this.userinfo?.user_id) + .fontColor($r('app.color.color_999999')) + .fontSize(14) + .id('tv_user_id') + Image($r('app.media.ic_copy_id')) + .margin({ left: 4 }) + .width(14) + .height(14) + } + .alignRules({ + top: { anchor: 'tv_username', align: VerticalAlign.Bottom }, + left: { anchor: 'tv_username', align: HorizontalAlign.Start }, + right: { anchor: 'tv_username', align: HorizontalAlign.End } + }) + .margin({ top: 4 }) + .width('auto') + .id('layout_copy_id') + .onClick(() => { + if (StrUtil.isNotEmpty(this.userinfo?.user_id)) { + PasteboardUtil.setDataTextSync(this.userinfo?.user_id!!) + ToastUtils.show('复制成功') + } + }) + + Image($r('app.media.ic_scan')).width(24).height(24) + .alignRules({ + top: {anchor: '__container__', align: VerticalAlign.Top}, + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .margin({ right: 20 }) + .onClick(() => { + try { + ScanUtil.startScanForResult({ scanTypes: [scanCore.ScanType.QR_CODE], enableMultiMode: true, enableAlbum: true}) + .then((result) => { + const code = result.originalValue + const array = code.split('-') + if (code.length === 36 && array.length === 5) { + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.QRCODE_LOGIN_PAGE, params: { code: code }}) + } else { + ToastUtils.show('无效二维码') + } + }) + .catch(() => { + ToastUtils.show('此设备不支持二维码扫描') + }) + } catch (e) { + ToastUtils.show('此设备不支持二维码扫描') + } + }) + } + .margin({ top: 70 }) + .width('100%') + .height(180) + .id('layout_userinfo') + + Row() { + Column() { + Text(FormatUtil.getFormatFileSize(NumberUtil.toNumber(this.userinfo?.month_download_size!!))) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontFamily('ddp500m') + .id('tv_month_size') + + Text('本月流量') + .fontColor($r("app.color.color_50ffffff")) + .fontSize(12) + .margin({ top: 4 }) + } + .layoutWeight(1) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.DOWNLOAD_HISTORY_PAGE}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_DOWNLOAD_HISTORY) + }) + + Divider().vertical(true).color('#1affffff').strokeWidth(1).height(26) + + Column() { + Text(this.userinfo?.month_download_count) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontFamily('ddp500m') + .id('tv_month_count') + + Text('本月下载') + .fontColor($r("app.color.color_50ffffff")) + .fontSize(12) + .margin({ top: 4 }) + } + .layoutWeight(1) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.DOWNLOAD_HISTORY_PAGE}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_DOWNLOAD_HISTORY) + }) + + Divider().vertical(true).color('#1affffff').strokeWidth(1).height(26) + + Column() { + Text('0') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontFamily('ddp500m') + .id('tv_task_count') + + Text('下载任务') + .fontColor($r("app.color.color_50ffffff")) + .fontSize(12) + .margin({ top: 4 }) + } + .layoutWeight(1) + .visibility(Visibility.None) + } + .padding({ top: 9, bottom: 9 }) + .width('100%') + .height('auto') + .id('layout_download_info') + + RelativeContainer() { + Text(this.userinfo?.vip === 1 ? '素材魔方·会员' : this.userinfo?.vip_name) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(18) + .fontWeight(FontWeight.Bold) + .fontFamily('almmsht') + .id('tv_vip_name') + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Center } + }) + + Text(this.userinfo?.vip === 1 ? '点击成为会员解锁所有功能' : this.userinfo?.vip === 2 ? this.userinfo.vip_expire + ' 会员到期' : '享受永久会员专属权益') + .fontColor($r('app.color.color_60ffffff')) + .fontSize(14) + .margin({ top: 8 }) + .id('tv_vip_expire') + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Center } + }) + + Button(this.userinfo?.vip === 1 ? '立即开通' : this.userinfo?.vip === 2 ? '立即续费' : '永久会员' , { type: ButtonType.Capsule, stateEffect: true }) + .fontColor('#291966') + .fontSize(14) + .fontWeight(FontWeight.Medium) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .linearGradient({ + colors: [['#D4C4F9', 0.0], ['#E9E6F9', 1.0]], + direction: GradientDirection.Top + }) + .width(88) + .height(32) + .visibility(this.userinfo?.vip === 3 ? Visibility.None : Visibility.Visible) + .id('btn_to_vip') + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.VIP_PAGE, params: {origin: 'center'}}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, 'center') + }) + } + .margin({ left: 16, top: 10, right: 16 }) + .padding({ left: 16, right: 16 }) + .backgroundImage($r('app.media.ic_mine_vip_bg')) + .backgroundImageSize({ width: '100%' }) + .aspectRatio(4.28) + .id('layout_vip_info') + + Column() { + TextItemView({ image: $r("app.media.ic_mine_icon1"), leftText: '免单挑战' }) + .height(60) + .id('item_challenge') + .visibility(/*this.showChallenge ? Visibility.Visible : Visibility.None*/Visibility.None) + TextItemView({ image: $r("app.media.ic_mine_icon2"), leftText: '兑换钻石' }) + .height(60) + .id('item_diamond') + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.RECHARGE_DIAMOND_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_RECHARGE_DIAMOND, 'center') + }) + .visibility(this.diamondInfo && this.diamondInfo?.buy_total > 0 ? Visibility.Visible : Visibility.None) + TextItemView({ image: $r("app.media.ic_mine_icon3"), leftText: '优惠券' }).height(60).id('item_coupon') + .visibility(Visibility.None) + TextItemView({ image: $r("app.media.ic_mine_icon4"), leftText: '分享APP' }) + .height(60) + .id('item_share') + .visibility(/*this.showShare ? Visibility.Visible : Visibility.None*/Visibility.None) + TextItemView({ image: $r("app.media.ic_mine_icon5"), leftText: '联系客服' }).height(60).id('item_service') + .onClick(() => { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('未安装微信客户端,请先下载安装微信客户端'); + return; + } + this.viewModel.getWxService() + }) + TextItemView({ image: $r("app.media.ic_mine_icon6"), leftText: '清除缓存', rightText: FileUtil.getFormatFileSize(this.cacheSize) }).height(60).id('item_cache') + .onClick(() => { + if (this.cacheSize > 0) { + TipDialog.show(this.getUIContext(), {title: '提示', content: '确定清除缓存?', callback: { + confirm: () => { + this.clearCache() + } + }}) + } + }) + TextItemView({ image: $r("app.media.ic_mine_icon7"), leftText: '设置' }).height(60).id('item_setting') + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.SETTING_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_SYSTEM_SETTING) + }) + } + .margin({ top: 16, left: 16, right: 16 }) + .backgroundColor('#1E1D24') + .borderRadius(8) + .id('layout_menu') + + Blank().layoutWeight(1) + } + } + .alignContent(Alignment.Top) + } + .padding({ bottom: 20 }) + .scrollBar(BarState.Off) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/diamond/DiamondPage.ets b/entry/src/main/ets/pages/main/mine/diamond/DiamondPage.ets new file mode 100644 index 0000000..f0e765a --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/diamond/DiamondPage.ets @@ -0,0 +1,436 @@ +import { RouterUrls } from '../../../../common/RouterUrls'; +import { VipMealEntity } from '../../../../entity/VipMealEntity' +import { LoginManager } from '../../../../manager/LoginGlobalManager'; +import { ConfigManager } from '../../../../manager/UserConfigManager'; +import { ToastUtils } from '../../../../utils/ToastUtils'; +import { TitleBar } from '../../../../view/TitleBar' +import { LevelMode, router } from '@kit.ArkUI'; +import { OnWXResp, WXApi, WXEventHandler } from '../../../../utils/wechat/WXApiEventHandlerImpl'; +import { PayOrderEntity } from '../../../../entity/OrderPayEntity'; +import { PayUtils } from '../../../../utils/PayUtils'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { NumberUtil, ObjectUtil, StrUtil } from '@pura/harmony-utils'; +import { ErrCode, PayResp } from '@tencent/wechat_open_sdk'; +import { DiamondViewModel } from '../../../../viewModel/DiamondViewModel'; +import { LoadingDialog } from '../../../../dialog/LoadingDialog'; +import { DiamondDetailEntity } from '../../../../entity/DiamondDetailEntity'; +import { DiamondItemView } from '../../../../view/DiamondItemView'; +import { DiamondRuleDialog } from '../../../../dialog/DiamondRuleDialog'; +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager'; +import { EventConstants } from '../../../../common/EventConstants'; +import { OrderEntity } from '../../../../entity/OrderEntity'; +import { TipDialog } from '../../../../dialog/TipDialog'; + +@Entry +@ComponentV2 +struct DiamondPage { + @Local origin: string = 'center'; + @Local diamondInfo?: DiamondDetailEntity + @Local diamondList: Array = []; + @Local vipMeal?: VipMealEntity; + @Local isAgree: boolean = false; + @Local payType: number = 0; //0微信支付 1支付宝支付 + @Local totalPrice: number = 0; + + showQueryTip: boolean = false //是否显示支付状态查询提示 + + diamondRuleDialogController?: CustomDialogController | null; + + viewModel: DiamondViewModel = new DiamondViewModel(this.getUIContext()); + orderEntity?: PayOrderEntity; + + //从微信返回的回调 + onWXResp: OnWXResp = (resp) => { + //微信返回的数据 + if (resp instanceof PayResp) { + const payResult = JSON.stringify(resp ?? {}, null, 2); + const errCode = JSON.parse(payResult).errCode as number; + if (errCode === ErrCode.ERR_OK) { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } else { + ToastUtils.show(JSON.parse(payResult).errStr); + EventReportGlobalManager.eventReport( + EventConstants.PAY_CANCEL, + `weixin:${this.origin}`, `{type:\"diamond\", orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.diamondInfo)}}` + ) + } + } + LoadingDialog.dismiss(); + } + + @Monitor('viewModel.diamondInfo') + onDiamondInfoChange(monitor: IMonitor) { + this.diamondInfo = monitor.value()?.now as DiamondDetailEntity; + } + + @Monitor('viewModel.goodsList') + onGoodsListChange(monitor: IMonitor) { + const list = monitor.value()?.now as Array; + this.diamondList = list.map(item => ObjectUtil.assign(new VipMealEntity(), item) as VipMealEntity); + if (this.diamondList.length > 0) { + this.vipMeal = this.diamondList.find(item => item.checked === true); + if (!this.vipMeal) { + this.vipMeal = this.diamondList[0]; + } + if (this.vipMeal) { + this.totalPrice = NumberUtil.toNumber(this.vipMeal.price); + this.releasePayType(); + } + } + } + + @Monitor('viewModel.payOrderEntity') + onPayOrderChange(monitor: IMonitor) { + const payOrderEntity = monitor.value()?.now as PayOrderEntity; + this.orderEntity = payOrderEntity; + if (this.payType === 0) { + if (StrUtil.isNotEmpty(this.vipMeal?.weixinMpOriId)) { + PayUtils.toWXMPPay(payOrderEntity.outTradeNo, this.vipMeal!!.weixinMpOriId) + this.showQueryTip = true + } else { + PayUtils.toWXPay(payOrderEntity); + } + } else { + PayUtils.toAliPay(payOrderEntity.payParam) + .then((result) => { + this.parseAlipayResult(result); + }) + .catch((error: BusinessError) => { + console.log(error.message); + ToastUtils.show('支付失败'); + }); + } + } + + @Monitor('viewModel.orderInfoEntity') + onOrderInfoChange(monitor: IMonitor) { + const orderEntity = monitor.value()?.now as OrderEntity; + if (orderEntity.status == "2") { + ToastUtils.show('支付成功'); + EventReportGlobalManager.eventReport( + EventConstants.PAY_SUCCESS, + `alipay:${this.origin}`, `{type:\"diamond\", orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.diamondInfo)}}` + ) + this.viewModel.getDiamondInfo() + } + } + + aboutToAppear() { + WXEventHandler.registerOnWXRespCallback(this.onWXResp) + this.initParams(); + this.viewModel.getDiamondInfo() + this.viewModel.mealList(); + } + + aboutToDisappear() { + WXEventHandler.unregisterOnWXRespCallback(this.onWXResp) + this.diamondRuleDialogController = null + this.viewModel.cancelInterval() + } + + onPageShow(): void { + if (this.showQueryTip) { + TipDialog.show(this.getUIContext(), { title: '温馨提示', content: '是否已完成支付', leftText: '未支付', rightText: '已支付', callback: { + confirm: () => { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } + } }, false) + this.showQueryTip = false + } + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.origin = params.origin as string; + } + } + + createOrder() { + if (!ConfigManager.isNoLoginPayEnable() && !LoginManager.isLogin()) { + ToastUtils.show('请登录后支付'); + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.LOGIN_PAGE, params: { from: 1 } }, router.RouterMode.Single); + return; + } + if (this.payType === 0 && !WXApi.isWXAppInstalled()) { + ToastUtils.show('请先下载安装微信客户端'); + return; + } + if (this.payType === 0) { + if (StrUtil.isNotEmpty(this.vipMeal!!.weixinMpOriId)) { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'combo', this.origin, ''); + } else { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'weixin', this.origin, ''); + } + } else { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'alipay', this.origin, ''); + } + } + + parseAlipayResult(result: Map) { + const resultStatus = result.get('resultStatus'); + if (resultStatus === '9000') { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } else if (resultStatus === '6001') { + ToastUtils.show('支付取消'); + EventReportGlobalManager.eventReport( + EventConstants.PAY_CANCEL, + `alipay:${this.origin}`, `{type:\"diamond\", orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.diamondInfo)}}` + ) + } else { + ToastUtils.show('支付失败'); + EventReportGlobalManager.eventReport( + EventConstants.ERROR_CLIENT_ALIPAY_ERR, + `{orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.diamondInfo)}}`, resultStatus + ) + } + } + + releasePayType() { + if (this.vipMeal?.pay_type.startsWith('alipay')) { + this.payType = 1; + } else if (this.vipMeal?.pay_type.startsWith('weixin')) { + this.payType = 0; + } + } + + showRuleDialog() { + this.diamondRuleDialogController = new CustomDialogController({ + builder: DiamondRuleDialog(), + width: '100%', + cornerRadius: 20, + maskColor: '#CC000000', + levelMode: LevelMode.EMBEDDED, + backgroundBlurStyle: BlurStyle.NONE, + alignment: DialogAlignment.Bottom + }) + this.diamondRuleDialogController.open(); + } + + build() { + RelativeContainer() { + Image($r('app.media.ic_diamond_top_bg')).width('100%').aspectRatio(1.524) + + Column() { + Scroll() { + Column() { + RelativeContainer() { + Image(LoginManager.getUserInfo()?.avater) + .width(46) + .height(46) + .borderRadius(25) + .margin({ left: 7 }) + .id('iv_avatar') + Text(LoginManager.getUserInfo()?.vip === 1 ? '非会员' : LoginManager.getUserInfo()?.vip === 3 ? '终身会员' : LoginManager.getUserInfo()?.vip_name) + .fontColor('#4F59FF') + .fontSize(12) + .width('auto') + .height(22) + .padding({ left: 6, right: 6 }) + .borderRadius(25) + .linearGradient({ + colors: [['#EFF0FB', 0.0], ['#ABC3FF', 1.0]], + direction: GradientDirection.Right + }) + .alignRules({ + top: { anchor: 'iv_avatar', align: VerticalAlign.Bottom }, + left: { anchor: 'iv_avatar', align: HorizontalAlign.Start }, + right: { anchor: 'iv_avatar', align: HorizontalAlign.End } + }) + .margin({ top: -9 }) + Text(LoginManager.getUserInfo()?.name) + .fontColor('#FFF4D0') + .fontSize(15) + .alignRules({ + top: { anchor: 'iv_avatar', align: VerticalAlign.Top }, + bottom: { anchor: 'iv_avatar', align: VerticalAlign.Center }, + left: { anchor: 'iv_avatar', align: HorizontalAlign.End } + }) + .margin({ left: 16 }) + .id('tv_username') + Text('ID:' + LoginManager.getUserInfo()?.user_id).fontColor('#FFF4D0').fontSize(12) + .alignRules({ + left: { anchor: 'tv_username', align: HorizontalAlign.Start }, + top: { anchor: 'iv_avatar', align: VerticalAlign.Center }, + bottom: { anchor: 'iv_avatar', align: VerticalAlign.Bottom } + }) + + Text() { + Span('剩余总次数 ') + Span(`${this.diamondInfo?.remain}`).fontSize(22).fontFamily('ddp500m') + Span(' 次') + }.fontColor('#FFF4D0').fontSize(12) + .alignRules({ + top: { anchor: 'iv_avatar', align: VerticalAlign.Bottom }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + } + .aspectRatio(2.584) + .margin({ top: 120, left: 26, right: 26 }) + .padding({ top: 16, left: 12, right: 12 }) + .backgroundImage($r('app.media.ic_diamond_vip_bg1')) + .backgroundImageSize({ width: '100%' }) + + Image($r('app.media.ic_diamond_vip_bg2')).width('100%').aspectRatio(4.866) + .margin({ top: -30 }) + + Column() { + Text('钻石消耗数量').fontColor('#8F4A2A').fontSize(16).fontWeight(FontWeight.Medium).margin({ top: 4 }) + + Column() { + Row() { + Text('本月固定钻石数量').fontColor($r('app.color.color_1a1a1a')).fontSize(14) + Text('每月重置') + .textAlign(TextAlign.Center) + .fontColor('#FFA61E') + .fontSize(12) + .height(18) + .padding({ left: 4, right: 4 }) + .borderWidth(1) + .borderRadius(4) + .borderColor('#FFA61E') + .margin({left: 8}) + Blank().layoutWeight(1) + Text() { + Span(`${this.diamondInfo?.month_used}`).fontColor('#FFA61E').fontSize(20).fontFamily('ddp500m') + Span(`/${this.diamondInfo?.month_total}`).fontColor($r('app.color.color_1a1a1a')).fontSize(14) + } + } + + Progress({ value: this.diamondInfo?.month_used, total: this.diamondInfo?.month_total, type: ProgressType.Linear }) + .width('100%') + .height(10) + .style({ strokeWidth: 10, strokeRadius: 5 }) + .color('#FF9026') + .borderRadius(5) + .margin({top: 16}) + + Row() { + Text('兑换钻石数量').fontColor($r('app.color.color_1a1a1a')).fontSize(14) + Text('用完即止') + .textAlign(TextAlign.Center) + .fontColor('#FFA61E') + .fontSize(12) + .height(18) + .padding({ left: 4, right: 4 }) + .borderWidth(1) + .borderRadius(4) + .borderColor('#FFA61E') + .margin({left: 8}) + Blank().layoutWeight(1) + Text() { + Span(`${this.diamondInfo?.buy_used}`).fontColor('#FFA61E').fontSize(20).fontFamily('ddp500m') + Span(`/${this.diamondInfo?.buy_total}`).fontColor($r('app.color.color_1a1a1a')).fontSize(14) + } + }.margin({top: 24}) + + Progress({ value: this.diamondInfo?.buy_used, total: this.diamondInfo?.buy_total, type: ProgressType.Linear }) + .width('100%') + .height(10) + .style({ strokeWidth: 10, strokeRadius: 5 }) + .color('#FF9026') + .borderRadius(5) + .margin({top: 16}) + } + .backgroundColor(Color.White) + .borderRadius(8) + .margin({ top: 10 }) + .padding({ + left: 12, + top: 16, + right: 12, + bottom: 16 + }) + } + .alignItems(HorizontalAlign.Start) + .height('auto') + .padding(10) + .margin({ top: -45, left: 16, right: 16 }) + .backgroundImage($r('app.media.ic_diamond_count_bg')) + .backgroundImageSize({ width: '100%' }) + .borderRadius(10) + .clip(true) + + Text('钻石套餐').fontColor($r('app.color.color_1a1a1a')).fontSize(16).fontWeight(FontWeight.Medium).margin({left: 16, top: 26}) + .alignSelf(ItemAlign.Start) + + List({space: 12}) { + ForEach(this.diamondList, (item: VipMealEntity) => { + ListItem() { + DiamondItemView({ goodInfo: item }) + } + .onClick(() => { + let goodsInfo = this.diamondList.find(item => item.checked) as VipMealEntity + goodsInfo.checked = false + item.checked = true + this.vipMeal = item + this.releasePayType() + }) + }) + } + .width('auto') + .height('auto') + .margin({left: 16, top: 14, right: 16, bottom: 15 }) + } + } + .layoutWeight(1) + .scrollBar(BarState.Off) + + Column() { + Row() { + Row() { + Image($r('app.media.ic_wx_pay3')).width(26).height(26) + Text('微信').fontColor($r('app.color.color_1a1a1a')).fontSize(15).margin({left: 10}) + Blank().layoutWeight(1) + Image(this.payType === 0 ? $r('app.media.ic_pay_true2') : $r('app.media.ic_pay_false2')).width(18).height(18) + }.layoutWeight(1) + .visibility(this.vipMeal?.pay_type.includes('weixin') ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.payType = 0; + }) + Divider().width(1).strokeWidth(1).height(26).color('#EEEEEE').margin({left: 20, right: 20}) + Row() { + Image($r('app.media.ic_ali_pay3')).width(26).height(26) + Text('支付宝').fontColor($r('app.color.color_1a1a1a')).fontSize(15).margin({left: 10}) + Blank().layoutWeight(1) + Image(this.payType === 1 ? $r('app.media.ic_pay_true2') : $r('app.media.ic_pay_false2')).width(18).height(18) + }.layoutWeight(1) + .visibility(this.vipMeal?.pay_type.includes('alipay') ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.payType = 1; + }) + } + + Button('立即支付', {type: ButtonType.Capsule, stateEffect: true}) + .width('100%') + .height(46) + .fontColor(Color.White) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .backgroundColor('#FF8D1B') + .margin({top: 17}) + .onClick(() => { + if (this.vipMeal) { + this.createOrder() + } + }) + }.backgroundColor(Color.White) + .padding({left: 16, top: 8, right: 16, bottom: 30}) + .shadow({radius: 6, offsetY: -2, color: '#1d000000'}) + } + + TitleBar({ + title: '素材加油站', + isDark: false, + rightText: '规则说明', + rightColor: '#6F3A21', + onRightClick: () => { + this.showRuleDialog() + } + }).id('titleBar') + } + .width('100%') + .height('100%') + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/history/DownloadHistoryItemPage.ets b/entry/src/main/ets/pages/main/mine/history/DownloadHistoryItemPage.ets new file mode 100644 index 0000000..66b8acf --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/history/DownloadHistoryItemPage.ets @@ -0,0 +1,143 @@ +import { AppUtil, DateUtil } from "@pura/harmony-utils"; +import { EventConstants } from "../../../../common/EventConstants"; +import { DownloadHistoryEntity } from "../../../../entity/DownloadHistoryEntity"; +import { DownloadHistoryItemView } from "../../../../view/DownloadHistoryItemView"; +import { EmptyView, PageStatus } from "../../../../view/EmptyView"; +import { DownloadHistoryViewModel } from "../../../../viewModel/DownloadHistoryViewModel"; + +@ComponentV2 +export struct DownloadHistoryItemPage { + @Local isRefreshing: boolean = false; + @Local isLoading: boolean = false; + @Local refreshOffset: number = 0; + @Local refreshState: RefreshStatus = RefreshStatus.Inactive; + @Local historyList: Array = [] + + @Param type: number = 0 + + viewModel: DownloadHistoryViewModel = new DownloadHistoryViewModel(this.getUIContext()) + page: number = 1 + canLoadMore: boolean = false + + @Monitor('viewModel.getHistory') + onGetDownloadHistory(monitor: IMonitor) { + const list = monitor.value()?.now as Array + if (this.page === 1) { + this.historyList = list + this.isRefreshing = false + } else { + this.historyList = this.historyList.concat(list) + this.isLoading = false + } + this.canLoadMore = list.length === 20 + } + + aboutToAppear(): void { + this.isRefreshing = true + this.initObserver() + } + + aboutToDisappear(): void { + AppUtil.getContext().eventHub.off(EventConstants.DownloadHistoryRefreshEvent) + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.DownloadHistoryRefreshEvent, (type: number) => { + if (type === this.type) { + this.isRefreshing = true + } + }) + } + + getStartTime(): number { + let nowDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 1, 1) + let lastDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 2, 1) + if (this.type === 0) { + return Math.trunc(nowDate.getTime() / 1000) + } else { + return Math.trunc(lastDate.getTime() / 1000) + } + } + + getEndTime(): number { + let nowDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth(), 1) + let lastDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 1, 1) + if (this.type === 0) { + return Math.trunc(nowDate.getTime() / 1000) + } else { + return Math.trunc(lastDate.getTime() / 1000) + } + } + + build() { + Stack() { + Refresh({refreshing: this.isRefreshing, builder: this.refreshBuilder()}) { + List({space: 12}) { + ForEach(this.historyList, (item: DownloadHistoryEntity) => { + ListItem() { + DownloadHistoryItemView({ historyEntity: item }) + } + }) + ListItem() { + this.footer(); + } + } + .width('100%') + .height('100%') + .onScrollIndex((start: number, end: number) => { + // 当达到列表末尾时,触发新数据加载。 + if (this.canLoadMore && end >= this.historyList.length - 1) { + this.page++ + this.isLoading = true; + this.viewModel.getHistoryList(`${this.page}`, `${this.getStartTime()}`, `${this.getEndTime()}`) + } + }) + } + .onRefreshing(() => { + this.page = 1 + this.isRefreshing = true + this.viewModel.getHistoryList(`${this.page}`, `${this.getStartTime()}`, `${this.getEndTime()}`) + }) + .refreshOffset(50) + .pullToRefresh(true) + .visibility(this.historyList.length > 0 ? Visibility.Visible : Visibility.None) + + EmptyView({ + status: this.historyList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_data'), + noDataText: '暂无数据' + }) + } + .width('100%') + .height('100%') + } + + @Builder + refreshBuilder() { + Stack({ alignContent: Alignment.Bottom }) { + // 可以通过刷新状态控制是否存在Progress组件。 + // 当刷新状态处于下拉中或刷新中状态时Progress组件才存在。 + if (this.refreshState != RefreshStatus.Inactive && this.refreshState != RefreshStatus.Done) { + Progress({ value: this.refreshOffset, total: 50, type: ProgressType.Ring }) + .width(32).height(32) + .style({ status: this.isRefreshing ? ProgressStatus.LOADING : ProgressStatus.PROGRESSING }) + .margin(10) + } + } + .clip(true) + .height("100%") + .width("100%") + } + + @Builder + footer() { + Row() { + LoadingProgress().height(32).width(48) + Text("加载中") + }.width("100%") + .height(50) + .justifyContent(FlexAlign.Center) + // 当不处于加载中状态时隐藏组件。 + .visibility(this.isLoading ? Visibility.Visible : Visibility.Hidden) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/history/DownloadHistoryPage.ets b/entry/src/main/ets/pages/main/mine/history/DownloadHistoryPage.ets new file mode 100644 index 0000000..0bc72e3 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/history/DownloadHistoryPage.ets @@ -0,0 +1,102 @@ +import { AppUtil, DateUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../../common/EventConstants'; +import { TipDialog } from '../../../../dialog/TipDialog'; +import { TitleBar } from '../../../../view/TitleBar'; +import { DownloadHistoryViewModel } from '../../../../viewModel/DownloadHistoryViewModel'; +import { DownloadHistoryItemPage } from './DownloadHistoryItemPage'; + +@Entry +@ComponentV2 +struct DownloadHistory { + @Local currentIndex: number = 0; + tabController: TabsController = new TabsController(); + titles: Array = ['本月', '上月']; + + viewModel: DownloadHistoryViewModel = new DownloadHistoryViewModel(this.getUIContext()) + + @Monitor('viewModel.deleteHistory') + onDeleteDownloadHistory(monitor: IMonitor) { + AppUtil.getContext().eventHub.emit(EventConstants.DownloadHistoryRefreshEvent, this.currentIndex) + } + + getStartTime(): number { + let nowDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 1, 1) + let lastDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 2, 1) + if (this.currentIndex === 0) { + return Math.trunc(nowDate.getTime() / 1000) + } else { + return Math.trunc(lastDate.getTime() / 1000) + } + } + + getEndTime(): number { + let nowDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth(), 1) + let lastDate = new Date(DateUtil.getNowYear(), DateUtil.getNowMonth() - 1, 1) + if (this.currentIndex === 0) { + return Math.trunc(nowDate.getTime() / 1000) + } else { + return Math.trunc(lastDate.getTime() / 1000) + } + } + + build() { + Column() { + TitleBar({ title: '本月下载' }) + + Stack({ alignContent: Alignment.TopStart }) { + Tabs({ barPosition: BarPosition.Start, controller: this.tabController }) { + TabContent() { + DownloadHistoryItemPage({type: 0}) + } + + TabContent() { + DownloadHistoryItemPage({type: 1}) + } + } + .scrollable(false) + /*.onSelected((index: number) => { + this.currentIndex = index; + })*/ + + Row({ space: 40 }) { + ForEach(this.titles, (title: string, index) => { + this.tab(title, index); + }) + Blank().layoutWeight(1) + Row() { + Image($r('app.media.ic_clear_record')).width(16).height(16) + Text('全部清空').fontColor($r('app.color.color_80ffffff')).fontSize(12).margin({ left: 4 }) + } + .onClick(() => { + TipDialog.show(this.getUIContext(), {title: '提示', content: '确定清空记录?', callback: { + confirm: () => { + this.viewModel.deleteHistoryList(`${this.getStartTime()}`, `${this.getEndTime()}`) + } + }}) + }) + }.padding({ left: 16, right: 16 }) + .margin({ top: 10 }) + }.layoutWeight(1) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } + + @Builder + tab(tabName: string, tabIndex: number) { + Row() { + Text(tabName) + .fontSize(this.currentIndex === tabIndex ? 17 : 14) + .fontWeight(this.currentIndex === tabIndex ? FontWeight.Medium : FontWeight.Regular) + .lineHeight(24) + .fontColor(tabIndex === this.currentIndex ? $r("app.color.color_466afd") : $r('app.color.color_50ffffff')) + } + .width('auto') + .height('auto') + .onClick(() => { + this.tabController.changeIndex(tabIndex); + this.currentIndex = tabIndex; + }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/setting/SettingsPage.ets b/entry/src/main/ets/pages/main/mine/setting/SettingsPage.ets new file mode 100644 index 0000000..62bb71d --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/setting/SettingsPage.ets @@ -0,0 +1,103 @@ +import { AppUtil } from '@pura/harmony-utils' +import { EventConstants } from '../../../../common/EventConstants' +import { RouterUrls } from '../../../../common/RouterUrls' +import { TipDialog } from '../../../../dialog/TipDialog' +import { LoginManager } from '../../../../manager/LoginGlobalManager' +import { ConfigManager } from '../../../../manager/UserConfigManager' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { TextItemChildView } from '../../../../view/TextItemChildView' +import { TitleBar } from '../../../../view/TitleBar' +import { SettingsViewModel } from '../../../../viewModel/SettingsViewModel' +import { router } from '@kit.ArkUI' +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager' + +@Entry +@ComponentV2 +struct SettingsPage { + viewModel: SettingsViewModel = new SettingsViewModel(this.getUIContext()); + + @Monitor('viewModel.destroy') + onDestroy(monitor: IMonitor) { + EventReportGlobalManager.eventReport(EventConstants.CANCEL_ACCOUNT) + this.logout(); + ToastUtils.show('账户已注销'); + } + + logout() { + LoginManager.saveLastUserInfo(LoginManager.getUserInfo()!!); + ConfigManager.saveBindWxPlaybackHelper(false); + ConfigManager.saveBindWxVideoHelper(false); + LoginManager.logout(); + AppUtil.getContext().eventHub.emit(EventConstants.LogoutSuccessEvent); + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.LOGIN_PAGE }, router.RouterMode.Single); + } + + build() { + Column() { + TitleBar({ title: '设置' }).width('100%') + Scroll() { + Column() { + TextItemChildView({ text: '意见反馈' }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.FEEDBACK_PAGE}) + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_FEEDBACK, 'center') + }) + TextItemChildView({ text: '账号绑定' }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.BIND_ACCOUNT_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_ACCOUNT_BIND) + }) + TextItemChildView({ text: '账号管理' }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.MANAGE_ACCOUNT_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_ACCOUNT_MANAGE) + }) + TextItemChildView({ text: '关于我们' }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.ABOUT_PAGE}); + EventReportGlobalManager.eventReport(EventConstants.JUMP_TO_ABOUT_US) + }) + TextItemChildView({ text: '注销账号' }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + TipDialog.show(this.getUIContext(), {title: '提示', content: '为了您的账户安全,注销账户后将会永久清除与该账户相关的所有信息,服务器不再保存', callback: { + confirm: () => { + this.viewModel.userDestroy(); + } + }}) + }) + .visibility(LoginManager.isLogin() ? Visibility.Visible : Visibility.None) + } + .justifyContent(FlexAlign.Start) + .height('100%') + } + .layoutWeight(1) + + Stack() { + Button('退出登录', { type: ButtonType.Capsule, stateEffect: true }) + .fontColor(Color.White) + .fontSize(15) + .fontWeight(FontWeight.Medium) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .width('100%') + .height(46) + .onClick(() => { + TipDialog.show(this.getUIContext(), {title: '温馨提示', content: '确定退出登录?', callback: { + confirm: () => { + EventReportGlobalManager.eventReport(EventConstants.EXIT_LOGIN) + this.logout(); + } + }}) + }) + } + .padding({ left: 16, right: 16 }) + .margin({ bottom: 30 }) + .visibility(LoginManager.isLogin() ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/setting/about/AboutPage.ets b/entry/src/main/ets/pages/main/mine/setting/about/AboutPage.ets new file mode 100644 index 0000000..b746816 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/setting/about/AboutPage.ets @@ -0,0 +1,43 @@ +import { AppUtil } from '@pura/harmony-utils' +import { Constants } from '../../../../../common/Constants' +import { RouterUrls } from '../../../../../common/RouterUrls' +import { TextItemChildView } from '../../../../../view/TextItemChildView' +import { TitleBar } from '../../../../../view/TitleBar' + +@Entry +@ComponentV2 +struct AboutPage { + build() { + Column() { + TitleBar({ title: '关于' }).width('100%') + Image($r('app.media.ic_login_logo')).width(100).height(100).margin({ top: 100 }) + Text($r('app.string.app_name')) + .fontColor(Color.White) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .margin({ top: 16 }) + .width('auto') + Text('版本号:v' + AppUtil.getVersionName()) + .fontColor($r('app.color.color_999999')) + .fontSize(14) + .margin({ top: 6 }) + .width('auto') + TextItemChildView({ text: '用户协议' }).height(60).margin({ left: 16, top: 52, right: 16 }) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ url: RouterUrls.WEB_PAGE, params: { title: '用户协议', url: Constants.USER_AGREEMENT } }) + }) + TextItemChildView({ text: '隐私政策', divider: false }).height(60).margin({ left: 16, right: 16 }) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ url: RouterUrls.WEB_PAGE, params: { title: '隐私政策', url: Constants.PRIVACY_POLICY } }) + }) + } + .justifyContent(FlexAlign.Start) + .backgroundColor($r('app.color.window_background')) + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/setting/account/BindAccountPage.ets b/entry/src/main/ets/pages/main/mine/setting/account/BindAccountPage.ets new file mode 100644 index 0000000..23007a2 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/setting/account/BindAccountPage.ets @@ -0,0 +1,186 @@ +import { AppUtil, RandomUtil, StrUtil } from '@pura/harmony-utils'; +import { TipDialog } from '../../../../../dialog/TipDialog'; +import { UserEntity } from '../../../../../entity/UserEntity'; +import { ConfigManager } from '../../../../../manager/UserConfigManager'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { TitleBar } from '../../../../../view/TitleBar'; +import BindAccountViewModel from '../../../../../viewModel/BindAccountViewModel'; +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { ErrCode, SendAuthResp } from '@tencent/wechat_open_sdk'; +import { OnWXResp, WXApi, WXEventHandler } from '../../../../../utils/wechat/WXApiEventHandlerImpl'; +import BuildProfile from 'BuildProfile'; +import { BindPhoneDialog } from '../../../../../dialog/BindPhoneDialog'; +import { LevelMode } from '@kit.ArkUI'; +import { EventConstants } from '../../../../../common/EventConstants'; +import { LoadingDialog } from '../../../../../dialog/LoadingDialog'; +import { EventReportGlobalManager } from '../../../../../manager/EventReportGlobalManager'; + +@Entry +@ComponentV2 +struct BindAccountPage { + bindPhoneDialogController?: CustomDialogController | null; + + viewModel: BindAccountViewModel = new BindAccountViewModel(this.getUIContext()); + + @Local userEntity?: UserEntity; + + //从微信返回的回调 + onWXResp: OnWXResp = (resp) => { + //微信返回的数据 + if (resp instanceof SendAuthResp && resp.state?.endsWith('bind')) { + const authResult = JSON.stringify(resp ?? {}, null , 2); + const errCode = JSON.parse(authResult).errCode as number; + if (errCode === ErrCode.ERR_OK) { + const authCode = JSON.parse(authResult).code as string; + this.viewModel.bindWx(authCode); + } else { + ToastUtils.show(JSON.parse(authResult).errStr); + } + } + } + + @Monitor('viewModel.userEntity') + onUserinfoChange(monitor: IMonitor) { + this.userEntity = monitor.value()?.now as UserEntity; + } + + @Monitor('viewModel.bindInfo') + onBindInfoChange(monitor: IMonitor) { + ToastUtils.show('绑定成功'); + this.refreshData(); + EventReportGlobalManager.eventReport(EventConstants.ACCOUNT_BIND) + } + + @Monitor('viewModel.unbindInfo') + onUnbindInfoChange(monitor: IMonitor) { + ToastUtils.show('解绑成功'); + this.refreshData(); + } + + async aboutToAppear() { + WXEventHandler.registerOnWXRespCallback(this.onWXResp) + this.viewModel.userinfo(); + } + + aboutToDisappear() { + WXEventHandler.unregisterOnWXRespCallback(this.onWXResp) + this.bindPhoneDialogController = null + } + + showBindPhoneDialog() { + this.bindPhoneDialogController = new CustomDialogController({ + builder: BindPhoneDialog({ + success: () => { + this.refreshData(); + } + }), + width: '100%', + cornerRadius: 20, + autoCancel: false, + maskColor: '#CC000000', + levelMode: LevelMode.EMBEDDED, + backgroundBlurStyle: BlurStyle.NONE, + alignment: DialogAlignment.Bottom + }) + this.bindPhoneDialogController.open(); + } + + async wxAuth() { + if (!WXApi.isWXAppInstalled()) { + ToastUtils.show('请先下载安装微信客户端'); + return; + } + LoadingDialog.show(this.getUIContext()); + let req = new WxOpenSdk.SendAuthReq; + req.isOption1 = false; + req.nonAutomatic = true; + req.scope = 'snsapi_userinfo'; + req.state = BuildProfile.BUNDLE_NAME + RandomUtil.getRandomInt(0, 1000) + '_bind'; + req.transaction =''; + + await WXApi.sendReq(AppUtil.getContext(), req) + LoadingDialog.dismiss(); + } + + refreshData() { + ConfigManager.userConfig() + .then(() => { + this.viewModel.userinfo(); + AppUtil.getContext().eventHub.emit(EventConstants.HomeRefreshEvent); + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + }) + } + + build() { + Column() { + TitleBar({ title: '账号绑定' }).width('100%') + Row() { + Image($r('app.media.ic_bind_wx')).width(30).height(30) + Text('微信绑定').fontColor(Color.White).fontSize(15).layoutWeight(1).margin({left: 14}) + Text(StrUtil.isEmpty(this.userEntity?.unionid) ? '立即绑定' : '解除绑定') + .textAlign(TextAlign.Center) + .fontColor(Color.White) + .fontSize(12) + .borderColor(Color.White) + .borderWidth(1) + .borderRadius(4) + .width(64) + .height(24) + .onClick(() => { + if (StrUtil.isEmpty(this.userEntity?.unionid)) { + this.wxAuth(); + } else { + TipDialog.show(this.getUIContext(), {title: '解除微信绑定', content: '解绑后将无法使用该微信号登录此账号,请谨慎操作!', callback: { + confirm: () => { + if (StrUtil.isNotEmpty(this.userEntity?.phone)) { + this.viewModel.unbind('weixin'); + } else { + TipDialog.show(this.getUIContext(), {title: '预警提示', content: '您若继续解除绑定,您的账号将没有绑定账号,软件在使用过程中可能会造成账号丢失!是否继续解除绑定!', callback: { + confirm: () => { + this.viewModel.unbind('weixin'); + } + }}) + } + } + }}) + } + }) + }.width('100%').height(60).padding({ left: 16, right: 16 }) + Divider().color($r('app.color.color_10ffffff')).strokeWidth(1).margin({left: 16, right: 16}) + Row() { + Image($r('app.media.ic_bind_phone')).width(30).height(30) + Text('手机绑定').fontColor(Color.White).fontSize(15).layoutWeight(1).margin({left: 14}) + Text(StrUtil.isEmpty(this.userEntity?.phone) ? '立即绑定' : '解除绑定') + .textAlign(TextAlign.Center) + .fontColor(Color.White) + .fontSize(12) + .borderColor(Color.White) + .borderWidth(1) + .borderRadius(4) + .width(64) + .height(24) + .onClick(() => { + if (StrUtil.isEmpty(this.userEntity?.phone)) { + this.showBindPhoneDialog(); + } else { + TipDialog.show(this.getUIContext(), {title: '解除手机绑定', content: '解绑后将无法使用该手机号登录此账号,请谨慎操作!', callback: { + confirm: () => { + if (StrUtil.isNotEmpty(this.userEntity?.unionid)) { + this.viewModel.unbind('phone'); + } else { + TipDialog.show(this.getUIContext(), {title: '预警提示', content: '您若继续解除绑定,您的账号将没有绑定账号,软件在使用过程中可能会造成账号丢失!是否继续解除绑定!', callback: { + confirm: () => { + this.viewModel.unbind('phone'); + } + }}) + } + } + }}) + } + }) + }.width('100%').height(60).padding({ left: 16, right: 16 }) + } + .backgroundColor($r('app.color.window_background')) + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/setting/account/ManageAccountPage.ets b/entry/src/main/ets/pages/main/mine/setting/account/ManageAccountPage.ets new file mode 100644 index 0000000..7cfd1b6 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/setting/account/ManageAccountPage.ets @@ -0,0 +1,130 @@ +import { AppUtil, StrUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../../../common/EventConstants'; +import { LoadingDialog } from '../../../../../dialog/LoadingDialog'; +import { TipDialog } from '../../../../../dialog/TipDialog'; +import { AccountEntity } from '../../../../../entity/AccountEntity'; +import { LoginEntity } from '../../../../../entity/LoginEntity'; +import { EventReportGlobalManager } from '../../../../../manager/EventReportGlobalManager'; +import { LoginManager } from '../../../../../manager/LoginGlobalManager'; +import { ConfigManager } from '../../../../../manager/UserConfigManager'; +import { ToastUtils } from '../../../../../utils/ToastUtils'; +import { AccountItemView } from '../../../../../view/AccountItemView'; +import { TitleBar } from '../../../../../view/TitleBar'; +import ManageAccountViewModel from '../../../../../viewModel/ManageAccountViewModel'; + +@Entry +@ComponentV2 +struct ManageAccountPage { + viewModel: ManageAccountViewModel = new ManageAccountViewModel(this.getUIContext()); + + @Local accountList: AccountEntity[] = []; + + @Local currentAccount?: AccountEntity; + + @Monitor('viewModel.accounts') + onAccountsChange(monitor: IMonitor) { + const list = monitor.value()?.now as Array; + list.forEach((item) => { + if (item.user_id === LoginManager.getUserInfo()?.user_id) { + this.currentAccount = item; + } else { + this.accountList.push(item); + } + }) + if (this.currentAccount === null && LoginManager.getUserInfo()) { + let userinfo = LoginManager.getUserInfo()!! + let account = new AccountEntity() + let bind: string[] = [] + if (StrUtil.isNotEmpty(userinfo.unionid)) { + bind.push("weixin") + } + if (StrUtil.isNotEmpty(userinfo.phone)) { + bind.push('phone') + } + account.user_id = userinfo.user_id + account.name = userinfo.name + account.avater = userinfo.avater + account.phone = userinfo.phone + account.vip_name = userinfo.vip_name + account.vip_type = userinfo.vip + account.bind = bind + this.currentAccount = account + } + } + + @Monitor('viewModel.loginEntity') + onLoginChange(monitor: IMonitor) { + const loginEntity = monitor.value()?.now as LoginEntity; + LoginManager.saveToken(loginEntity.token); + LoginManager.saveLastUserInfo(LoginManager.getUserInfo()!!); + ConfigManager.saveBindWxPlaybackHelper(false); + ConfigManager.saveBindWxVideoHelper(false); + ConfigManager.userConfig() + .then(() => { + ToastUtils.show('切换成功'); + AppUtil.getContext().eventHub.emit(EventConstants.LoginSuccessEvent); + this.getUIContext().getRouter().back(); + }) + .finally(() => { + LoadingDialog.dismiss(); + }) + } + + aboutToAppear(): void { + this.viewModel.accountList(); + } + + build() { + Column() { + TitleBar({ title: '名下账户管理' }).width('100%') + + Scroll() { + Column() { + Text('当前登录的账户') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .fontWeight(FontWeight.Medium) + .margin({ left: 20, top: 24, right: 20 }) + .alignSelf(ItemAlign.Start) + + AccountItemView({ account: this.currentAccount }).margin({ left: 20, top: 14, right: 20 }) + + Text('你名下其他账户') + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .fontWeight(FontWeight.Medium) + .margin({ left: 20, top: 30, right: 20 }) + .alignSelf(ItemAlign.Start) + .visibility(this.accountList.length > 0 ? Visibility.Visible : Visibility.Hidden) + + List() { + ForEach(this.accountList, (item: AccountEntity) => { + ListItem() { + AccountItemView({account: item}) + } + .margin({ left: 20, top: 14, right: 20 }) + .onClick(() => { + TipDialog.show(this.getUIContext(), {content: '您确定要切换账户吗?', callback: { + confirm: () => { + LoginManager.saveToken(''); + this.viewModel.changeAccount(item.user_id); + EventReportGlobalManager.eventReport(EventConstants.SWITCH_ACCOUNT,item.user_id) + } + }}) + }) + }) + } + .width('100%') + .height('auto') + .layoutWeight(1) + .margin({ bottom: 30 }) + .visibility(this.accountList.length > 0 ? Visibility.Visible : Visibility.Hidden) + } + } + .layoutWeight(1) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/setting/feedback/FeedbackPage.ets b/entry/src/main/ets/pages/main/mine/setting/feedback/FeedbackPage.ets new file mode 100644 index 0000000..eb3748d --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/setting/feedback/FeedbackPage.ets @@ -0,0 +1,247 @@ +import { PhotoHelper } from '@pura/picker_utils' +import { UploadImgEntity } from '../../../../../entity/UploadImgEntity' +import { AddImageItemView } from '../../../../../view/AddImageItemView' +import { TitleBar } from '../../../../../view/TitleBar' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { BusinessError } from '@kit.BasicServicesKit' +import { ToastUtils } from '../../../../../utils/ToastUtils' +import { StrUtil } from '@pura/harmony-utils' +import { FeedbackViewModel } from '../../../../../viewModel/FeedbackViewModel' + +enum FeedbackType { + SUGGESTION, BUG, OTHER +} + +@Entry +@ComponentV2 +struct FeedbackPage { + @Local type: FeedbackType = FeedbackType.SUGGESTION + @Local contentText: string = '' + @Local contactText: string = '' + @Local selectedPhotos: Array = [] + + selectedUris: Array = [] + selectedImages: Array = [] + + viewModel: FeedbackViewModel = new FeedbackViewModel(this.getUIContext()) + + @Monitor('viewModel.feedback') + onFeedbackChange(monitor: IMonitor) { + ToastUtils.show('提交成功') + this.getUIContext().getRouter().back() + } + + commit() { + if (StrUtil.isEmpty(this.contentText)) { + ToastUtils.show('请输入详情内容') + return + } + const typeStr = this.type === FeedbackType.SUGGESTION ? '产品建议' : this.type === FeedbackType.BUG ? '功能异常' : '其他问题' + if (this.selectedPhotos.length > 0) { + this.viewModel.uploadImages(this.selectedPhotos) + .then((uploadImages) => { + this.viewModel.sendFeedback(typeStr, this.contentText, this.contactText, uploadImages) + }) + } else { + this.viewModel.sendFeedback(typeStr, this.contentText, this.contactText, []) + } + } + + build() { + Column() { + TitleBar({ title: '意见反馈' }) + + Scroll() { + Column() { + Row() { + Text('请选择您要反馈的问题').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text('*').fontColor('#FF3838') + } + .width('100%') + + Row() { + Button('产品建议', { type: ButtonType.Normal }) + .height(32) + .fontColor(this.type === FeedbackType.SUGGESTION ? $r('app.color.color_90ffffff') : + $r('app.color.color_50ffffff')) + .fontSize(14) + .linearGradient({ + colors: [[this.type === FeedbackType.SUGGESTION ? '#F62C6C' : Color.Transparent, 0.0], + [this.type === FeedbackType.SUGGESTION ? '#FC4F54' : Color.Transparent, 1.0]], + direction: GradientDirection.Right + }) + .backgroundColor(this.type === FeedbackType.SUGGESTION ? Color.Transparent : $r('app.color.color_222222')) + .borderRadius(4) + .padding({ left: 14, right: 14 }) + .onClick(() => { + this.type = FeedbackType.SUGGESTION + }) + + Button('功能异常', { type: ButtonType.Normal }) + .height(32) + .fontColor(this.type === FeedbackType.BUG ? $r('app.color.color_90ffffff') : + $r('app.color.color_50ffffff')) + .fontSize(14) + .linearGradient({ + colors: [[this.type === FeedbackType.BUG ? '#F62C6C' : Color.Transparent, 0.0], + [this.type === FeedbackType.BUG ? '#FC4F54' : Color.Transparent, 1.0]], + direction: GradientDirection.Right + }) + .backgroundColor(this.type === FeedbackType.BUG ? Color.Transparent : $r('app.color.color_222222')) + .borderRadius(4) + .padding({ left: 14, right: 14 }) + .margin({ left: 12 }) + .onClick(() => { + this.type = FeedbackType.BUG + }) + + Button('其他问题', { type: ButtonType.Normal }) + .height(32) + .fontColor(this.type === FeedbackType.OTHER ? $r('app.color.color_90ffffff') : + $r('app.color.color_50ffffff')) + .fontSize(14) + .linearGradient({ + colors: [[this.type === FeedbackType.OTHER ? '#F62C6C' : Color.Transparent, 0.0], + [this.type === FeedbackType.OTHER ? '#FC4F54' : Color.Transparent, 1.0]], + direction: GradientDirection.Right + }) + .backgroundColor(this.type === FeedbackType.OTHER ? Color.Transparent : $r('app.color.color_222222')) + .borderRadius(4) + .padding({ left: 14, right: 14 }) + .margin({ left: 12 }) + .onClick(() => { + this.type = FeedbackType.OTHER + }) + }.width('100%') + .margin({ top: 16 }) + + Row() { + Text('问题描述').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text('*').fontColor('#FF3838') + } + .width('100%') + .margin({ top: 20 }) + + RelativeContainer() { + TextArea({ placeholder: '请输入详情内容' }) + .height('100%') + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 14 }) + .fontSize(14) + .fontColor($r('app.color.color_80ffffff')) + .maxLength(200) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + .onChange((value: string) => { + this.contentText = value + }) + + Text(`${this.contentText.length}/200`).fontColor($r('app.color.color_999999')).fontSize(10) + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .margin({ right: 8, bottom: 8 }) + }.height(142).margin({ top: 16 }) + + Row() { + Text('上传图片').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text('(选填,最多可上传3张)').fontColor($r('app.color.color_999999')).fontSize(10) + } + .width('100%') + .margin({ top: 20 }) + + Grid() { + ForEach(this.selectedPhotos, (item: string, index) => { + GridItem() { + AddImageItemView({ uri: item, index: index, onDelete: (uri) => { + for (let i = 0; i < this.selectedPhotos.length; i++) { + const photo = this.selectedPhotos[i]; + if (photo === uri) { + this.selectedPhotos.splice(i, 1) + this.selectedUris.splice(i, 1) + break + } + } + } }) + } + }) + GridItem() { + AddImageItemView({index: this.selectedPhotos.length}) + .onClick(() => { + PhotoHelper.select({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, + maxSelectNumber: 3, + preselectedUris: this.selectedUris, + isOriginalSupported: false + }) + .then((result: photoAccessHelper.PhotoSelectResult) => { + if (result.photoUris.length > 0) { + this.selectedPhotos = result.photoUris + this.selectedUris = result.photoUris + } + }) + .catch((e: BusinessError) => { + ToastUtils.show(e.message) + }) + }) + } + .visibility(this.selectedImages.length < 3 ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height(80) + .scrollBar(BarState.Off) + .columnsTemplate('1fr 1fr 1fr') + .margin({ top: 16 }) + + Row() { + Text('联系方式').fontColor($r('app.color.color_90ffffff')).fontSize(14) + Text('(选填,可留下您的手机号、微信、邮箱)').fontColor($r('app.color.color_999999')).fontSize(10) + } + .width('100%') + .margin({ top: 20 }) + + TextInput({ placeholder: '请输入您的联系方式' }) + .height(50) + .placeholderColor($r('app.color.color_30ffffff')) + .placeholderFont({ size: 14 }) + .fontSize(14) + .fontColor($r('app.color.color_80ffffff')) + .maxLength(200) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + .margin({ top: 16 }) + .onChange((value: string) => { + this.contactText = value + }) + } + .height('100%') + .padding({ left: 16, right: 16 }) + } + .scrollBar(BarState.Off) + .layoutWeight(1) + .margin({ top: 16 }) + + Stack() { + Button('提交', { type: ButtonType.Capsule, stateEffect: true }) + .fontColor(Color.White) + .fontSize(15) + .fontWeight(FontWeight.Medium) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .width('100%') + .height(46) + .onClick(() => { + this.commit() + }) + } + .padding({ left: 16, right: 16 }) + .margin({ bottom: 30 }) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/user/UserSettingsPage.ets b/entry/src/main/ets/pages/main/mine/user/UserSettingsPage.ets new file mode 100644 index 0000000..39c75c0 --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/user/UserSettingsPage.ets @@ -0,0 +1,108 @@ +import { UserEntity } from '../../../../entity/UserEntity' +import { TitleBar } from '../../../../view/TitleBar' +import { UserSettingsViewModel } from '../../../../viewModel/UserSettingsViewModel' +import { photoAccessHelper } from '@kit.MediaLibraryKit' +import { PhotoHelper } from '@pura/picker_utils' +import { ToastUtils } from '../../../../utils/ToastUtils' +import { BusinessError } from '@kit.BasicServicesKit' +import { UploadImgEntity } from '../../../../entity/UploadImgEntity' +import { EditTextDialog } from '../../../../dialog/EditTextDialog' +import { StrUtil } from '@pura/harmony-utils' + +@Entry +@ComponentV2 +struct UserSettingsPage { + viewModel: UserSettingsViewModel = new UserSettingsViewModel(this.getUIContext()) + + @Local userinfo?: UserEntity + + @Monitor('viewModel.userEntity') + onUserinfoChange(monitor: IMonitor) { + this.userinfo = monitor.value()?.now as UserEntity; + } + + @Monitor('viewModel.imageEntity') + onImageChange(monitor: IMonitor) { + const image = monitor.value()?.now as UploadImgEntity; + const params: Record = { + 'avater': image.url + } + this.viewModel.updateUserinfo(params) + } + + @Monitor('viewModel.update') + onUpdate(monitor: IMonitor) { + this.viewModel.userinfo() + ToastUtils.show('修改成功') + } + + aboutToAppear(): void { + this.viewModel.userinfo() + } + + build() { + Column() { + TitleBar() + + Image(StrUtil.isNotEmpty(this.userinfo?.avater) ? this.userinfo?.avater : $r('app.media.ic_default_avatar')) + .width(100) + .height(100) + .borderRadius(50) + .margin({ top: 40 }) + .padding(1) + .backgroundColor(Color.White) + .onClick(() => { + PhotoHelper.select({ + MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, + maxSelectNumber: 1, + isOriginalSupported: false + }) + .then((result: photoAccessHelper.PhotoSelectResult) => { + if (result.photoUris.length > 0) { + this.viewModel.uploadImage(result.photoUris[0]) + } + }) + .catch((e: BusinessError) => { + ToastUtils.show(e.message) + }) + }) + + Text('昵称').fontSize(15).fontColor($r('app.color.color_90ffffff')).margin({ left: '6%', top: 55 }).alignSelf(ItemAlign.Start) + + Text(this.userinfo?.name) + .width('88%') + .height(48) + .fontSize(15) + .fontColor($r('app.color.color_90ffffff')) + .maxLines(1) + .padding({ left: 14, right: 14 }) + .margin({ top: 12 }) + .borderRadius(25) + .backgroundColor($r('app.color.color_222222')) + .onClick(() => { + EditTextDialog.show(this.getUIContext(), { title: '编辑昵称', content: this.userinfo?.name, confirm: (content) => { + const params: Record = { + 'name': content + } + this.viewModel.updateUserinfo(params) + }}) + }) + + Text('会员').fontSize(15).fontColor($r('app.color.color_90ffffff')).margin({ left: '6%', top: 30 }).alignSelf(ItemAlign.Start) + + Text(this.userinfo?.vip === 1 ? '未开通' : this.userinfo?.vip === 2 ? this.userinfo?.vip_expire + ' 到期' : '终身会员') + .width('88%') + .height(48) + .fontSize(15) + .fontColor($r('app.color.color_90ffffff')) + .maxLines(1) + .padding({ left: 14, right: 14 }) + .margin({ top: 12 }) + .borderRadius(25) + .backgroundColor($r('app.color.color_222222')) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/mine/vip/VipPage.ets b/entry/src/main/ets/pages/main/mine/vip/VipPage.ets new file mode 100644 index 0000000..b62ae5e --- /dev/null +++ b/entry/src/main/ets/pages/main/mine/vip/VipPage.ets @@ -0,0 +1,453 @@ +import { AppUtil, NumberUtil, StrUtil } from '@pura/harmony-utils'; +import { ErrCode, PayResp } from '@tencent/wechat_open_sdk'; +import { Constants } from '../../../../common/Constants'; +import { RouterUrls } from '../../../../common/RouterUrls'; +import { LoadingDialog } from '../../../../dialog/LoadingDialog'; +import { PayOrderEntity } from '../../../../entity/OrderPayEntity'; +import { VipMealEntity } from '../../../../entity/VipMealEntity'; +import { LoginManager } from '../../../../manager/LoginGlobalManager'; +import { ConfigManager } from '../../../../manager/UserConfigManager'; +import { PayUtils } from '../../../../utils/PayUtils'; +import { ToastUtils } from '../../../../utils/ToastUtils'; +import { OnWXResp, WXApi, WXEventHandler } from '../../../../utils/wechat/WXApiEventHandlerImpl'; +import { TitleBar } from '../../../../view/TitleBar'; +import { VipMealItemView } from '../../../../view/VipMealItemView'; +import { VipViewModel } from '../../../../viewModel/VipViewModel'; +import { BusinessError, systemDateTime } from '@kit.BasicServicesKit'; +import router from '@ohos.router'; +import { EventConstants } from '../../../../common/EventConstants'; +import { EventReportGlobalManager } from '../../../../manager/EventReportGlobalManager'; +import { SimpleTipDialog } from '../../../../dialog/SimpleTipDialog'; +import { OrderEntity } from '../../../../entity/OrderEntity'; +import { TipDialog } from '../../../../dialog/TipDialog'; + +@Entry +@ComponentV2 +struct VipPage { + @Local origin: string = 'center'; + @Local isGuide: boolean = false; + @Local vipMealList: Array = []; + @Local vipMeal?: VipMealEntity; + @Local isAgree: boolean = false; + @Local payType: number = 0; //0微信支付 1支付宝支付 + @Local totalPrice: number = 0; + + showQueryTip: boolean = false //是否显示支付状态查询提示 + + viewModel: VipViewModel = new VipViewModel(this.getUIContext()); + orderEntity?: PayOrderEntity; + pageStartTime: number = systemDateTime.getTime() + + //从微信返回的回调 + onWXResp: OnWXResp = (resp) => { + //微信返回的数据 + if (resp instanceof PayResp) { + const payResult = JSON.stringify(resp ?? {}, null, 2); + const errCode = JSON.parse(payResult).errCode as number; + if (errCode === ErrCode.ERR_OK) { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } else { + ToastUtils.show(JSON.parse(payResult).errStr); + EventReportGlobalManager.eventReport( + EventConstants.ERROR_CLIENT_WXPAY_ERR, + `{isGuide:${this.isGuide}, orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.vipMeal)}}`, + JSON.parse(payResult).errStr + ) + } + } + LoadingDialog.dismiss(); + } + + @Monitor('viewModel.goodsList') + onGoodsListChange(monitor: IMonitor) { + const list = monitor.value()?.now as Array; + this.vipMealList = list; + if (this.vipMealList.length > 0) { + this.vipMeal = this.vipMealList.find(item => item.checked === true); + if (!this.vipMeal) { + this.vipMeal = this.vipMealList[0]; + } + if (this.vipMeal) { + this.totalPrice = NumberUtil.toNumber(this.vipMeal.price); + this.releasePayType(); + } + } + } + + @Monitor('viewModel.payOrderEntity') + onPayOrderChange(monitor: IMonitor) { + const payOrderEntity = monitor.value()?.now as PayOrderEntity; + this.orderEntity = payOrderEntity; + if (this.payType === 0) { + if (StrUtil.isNotEmpty(this.vipMeal?.weixinMpOriId)) { + PayUtils.toWXMPPay(payOrderEntity.outTradeNo, this.vipMeal!!.weixinMpOriId) + this.showQueryTip = true + } else { + PayUtils.toWXPay(payOrderEntity); + } + } else { + PayUtils.toAliPay(payOrderEntity.payParam) + .then((result) => { + this.parseAlipayResult(result); + }) + .catch((error: BusinessError) => { + console.log(error.message); + ToastUtils.show('支付失败'); + }); + } + } + + @Monitor('viewModel.orderInfoEntity') + onOrderInfoChange(monitor: IMonitor) { + const orderEntity = monitor.value()?.now as OrderEntity; + if (orderEntity.status == "2") { + ToastUtils.show('支付成功'); + EventReportGlobalManager.eventReport( + EventConstants.PAY_SUCCESS, + 'alipay', `{isGuide:${this.isGuide}, orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.vipMeal)}}` + ) + this.doBack(); + } + } + + aboutToAppear() { + WXEventHandler.registerOnWXRespCallback(this.onWXResp) + this.initParams(); + this.viewModel.mealList(); + } + + aboutToDisappear() { + WXEventHandler.unregisterOnWXRespCallback(this.onWXResp) + this.viewModel.cancelInterval() + } + + onPageShow(): void { + if (this.showQueryTip) { + TipDialog.show(this.getUIContext(), { title: '温馨提示', content: '是否已完成支付', leftText: '未支付', rightText: '已支付', callback: { + confirm: () => { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } + } }, false) + this.showQueryTip = false + } + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.origin = params.origin as string; + this.isGuide = this.origin === 'bootpage'; + } + } + + createOrder() { + if (!ConfigManager.isNoLoginPayEnable() && !LoginManager.isLogin()) { + ToastUtils.show('请登录后支付'); + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.LOGIN_PAGE, params: { from: 1 } }, router.RouterMode.Single); + return; + } + if (this.payType === 0 && !WXApi.isWXAppInstalled()) { + ToastUtils.show('请先下载安装微信客户端'); + return; + } + if (this.payType === 0) { + if (StrUtil.isNotEmpty(this.vipMeal!!.weixinMpOriId)) { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'combo', this.origin, ''); + } else { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'weixin', this.origin, ''); + } + } else { + this.viewModel.createOrder(this.vipMeal?.goods_id!!, 'alipay', this.origin, ''); + } + } + + parseAlipayResult(result: Map) { + const resultStatus = result.get('resultStatus'); + if (resultStatus === '9000') { + this.viewModel.getOrderInfo(this.orderEntity!!.orderId) + } else if (resultStatus === '6001') { + ToastUtils.show('支付取消'); + EventReportGlobalManager.eventReport( + EventConstants.PAY_CANCEL, + 'alipay', `{isGuide:${this.isGuide}, orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.vipMeal)}}` + ) + } else { + ToastUtils.show('支付失败'); + EventReportGlobalManager.eventReport( + EventConstants.ERROR_CLIENT_ALIPAY_ERR, + `{orderId:${this.orderEntity?.orderId}, meal:${JSON.stringify(this.vipMeal)}}`, resultStatus + ) + } + } + + formatPricePeriod(value?: string): string { + if (value === '#') { + return '/终生'; + } else if (value?.endsWith('m')) { + const monthStr = value.replace('m', ''); + if (StrUtil.isNotEmpty(monthStr)) { + const month = NumberUtil.toInt(monthStr); + if (month >= 12) { + return `/${month / 12 > 1 ? month / 12 : ''}年` + } else if (month % 3 === 0) { + return `/${month / 3 > 1 ? month / 3 : ''}季` + } else { + return `/${month > 1 ? month : ''}月` + } + } + } + return ''; + } + + releasePayType() { + if (this.vipMeal?.pay_type.startsWith('alipay')) { + this.payType = 1; + } else if (this.vipMeal?.pay_type.startsWith('weixin')) { + this.payType = 0; + } + } + + pageDuration(): string { + let duration = systemDateTime.getTime() - this.pageStartTime + if (duration < 1000) { + return `停留时间:${duration}ms` + } else { + return `停留时间:${Math.trunc(duration / 1000)}s` + } + } + + doBack() { + if (this.isGuide) { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single); + AppUtil.getContext().eventHub.emit(EventConstants.HomeRefreshEvent); + AppUtil.getContext().eventHub.emit(EventConstants.MineRefreshEvent); + } else { + this.getUIContext().getRouter().back(); + } + } + + onBackPress(): boolean | void { + if (this.isGuide) { + EventReportGlobalManager.eventReport(EventConstants.GUIDE_SKIP, "back", this.pageDuration()) + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single) + return true; + } + } + + build() { + RelativeContainer() { + Column() { + Scroll() { + RelativeContainer() { + Image($r("app.media.ic_vip_top_bg")) + .width('100%') + .aspectRatio(1.4) + .id('iv_top_bg') + + Column() { + Image($r('app.media.ic_vip_tips')) + .width('100%') + .aspectRatio(0.997) + .margin({ left: 20, right: 20 }) + .id('iv_tips') + + List() { + ForEach(this.vipMealList, (item: VipMealEntity) => { + ListItem() { + VipMealItemView({ + entity: item, + isChecked: this.vipMeal?.goods_id === item.goods_id, + isGrid: this.vipMealList.length <= 3 + }) + } + .onClick(() => { + this.vipMealList.forEach((value) => { + value.checked = false; + }) + item.checked = true; + this.vipMeal = item; + this.totalPrice = NumberUtil.toNumber(item.price); + this.releasePayType(); + EventReportGlobalManager.eventReport(EventConstants.GOODS_SELECT, `${this.origin}:${item.goods_name}`, JSON.stringify(item)) + }) + }) + } + .width('auto') + .height('auto') + .listDirection(this.vipMealList.length > 3 ? Axis.Horizontal : Axis.Vertical) + .alignListItem(ListItemAlign.Center) + .margin({ left: 14, top: 30, right: 14 }) + .lanes(this.vipMealList.length > 3 ? 1 : 3) + .id('li_meals') + + Row() { + Image($r('app.media.ic_coupon')).width(30).height(30) + Text('优惠券').fontColor(Color.White).fontSize(15).margin({ left: 12 }) + Blank().layoutWeight(1) + Text('暂无可用的优惠券').fontColor($r('app.color.color_50ffffff')).fontSize(13) + Image($r('app.media.ic_arrow_dp16')).width(16).height(16) + } + .padding({ left: 20, right: 16 }) + .margin({ top: 22 }) + .visibility(Visibility.None) + + Text('支付方式') + .fontColor(Color.White) + .fontSize(14) + .fontWeight(FontWeight.Medium) + .margin({ left: 20, top: 22 }) + .alignSelf(ItemAlign.Start) + + Row() { + Image($r('app.media.ic_wx_pay')).width(30).height(30) + Text('微信').fontColor('#CCEEEEEE').fontSize(15).margin({ left: 12 }) + Blank().layoutWeight(1) + Image(this.payType === 0 ? $r('app.media.ic_pay_true') : $r('app.media.ic_pay_false')) + .width(18) + .height(18) + } + .margin({ left: 20, top: 4, right: 20 }) + .padding({ top: 16, bottom: 16 }) + .visibility(this.vipMeal?.pay_type.includes('weixin') ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.payType = 0; + EventReportGlobalManager.eventReport(EventConstants.PAY_SELECT, 'weixin', this.origin) + }) + + Divider().color($r('app.color.color_10ffffff')).strokeWidth(1) + + Row() { + Image($r('app.media.ic_ali_pay')).width(30).height(30) + Text('支付宝').fontColor('#CCEEEEEE').fontSize(15).margin({ left: 12 }) + Blank().layoutWeight(1) + Image(this.payType === 1 ? $r('app.media.ic_pay_true') : $r('app.media.ic_pay_false')) + .width(18) + .height(18) + } + .margin({ left: 20, right: 20 }) + .padding({ top: 16, bottom: 16 }) + .visibility(this.vipMeal?.pay_type.includes('alipay') ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.payType = 1; + EventReportGlobalManager.eventReport(EventConstants.PAY_SELECT, "alipay", this.origin) + }) + + Divider().color($r('app.color.color_10ffffff')).strokeWidth(1) + + Row() { + Image(this.isAgree ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')) + .width(16) + .height(16) + Text() { + Span('我已阅读并同意') + Span('《会员服务协议规则》').fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ + url: RouterUrls.WEB_PAGE, + params: { title: '会员服务协议规则', url: Constants.USER_AGREEMENT } + }) + }) + if (StrUtil.isNotEmpty(this.vipMeal?.sign_value) && this.payType === 1) { + Span('和') + Span('《自动续费服务规则》').fontColor($r("app.color.color_466afd")) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ + url: RouterUrls.WEB_PAGE, + params: { title: '自动续费服务规则', url: Constants.RENEW_AGREEMENT } + }) + }) + } + } + .fontColor($r('app.color.color_90ffffff')) + .fontSize(12) + .margin({ left: 4, top: 1 }) + .layoutWeight(1) + } + .alignItems(VerticalAlign.Top) + .margin(20) + .visibility(ConfigManager.isPayAgreementEnable() ? Visibility.Visible : Visibility.None) + .onClick(() => { + this.isAgree = !this.isAgree; + }) + } + .alignRules({ + top: { anchor: 'iv_top_bg', align: VerticalAlign.Bottom } + }) + .margin({ top: -32 }) + } + .height('auto') + } + .layoutWeight(1) + .scrollBar(BarState.Off) + + Row() { + Text() { + Span('¥').fontSize(13) + Span(`${this.totalPrice}`).fontSize(24) + Span(this.formatPricePeriod(this.vipMeal?.value)).fontSize(13) + Span(' ') + Span('¥' + this.vipMeal?.origin_price) + .fontColor($r('app.color.color_30ffffff')) + .fontSize(12) + .decoration({ type: TextDecorationType.LineThrough, color: $r('app.color.color_30ffffff') }) + } + .fontColor('#94F2FE') + + Blank().layoutWeight(1) + + Text('立即开通') + .width(170) + .height(45) + .textAlign(TextAlign.Center) + .fontColor('#201847') + .fontSize(16) + .fontWeight(FontWeight.Medium) + .backgroundImage($r('app.media.ic_vip_pay_btn')) + .backgroundImageSize({ width: 170, height: 46 }) + .onClick(() => { + if (this.vipMeal) { + if (ConfigManager.isPayAgreementEnable() && !this.isAgree) { + SimpleTipDialog.show(this.getUIContext(), { title: '提示', content: StrUtil.isNotEmpty(this.vipMeal?.sign_value) && this.payType === 1 ? '请阅读并同意《会员服务协议规则》和《自动续费服务规则》' : '请阅读并同意《会员服务协议规则》', callback: { + confirm: () => { + this.isAgree = true + this.createOrder(); + EventReportGlobalManager.eventReport(EventConstants.PAY_PAY, this.payType === 0 ? 'weixin' : 'alipay', JSON.stringify(this.vipMeal)) + } + }}) + } else { + this.createOrder(); + EventReportGlobalManager.eventReport(EventConstants.PAY_PAY, this.payType === 0 ? 'weixin' : 'alipay', JSON.stringify(this.vipMeal)) + } + } + }) + } + .backgroundColor('#29253D') + .borderRadius({ topLeft: 20, topRight: 20 }) + .padding({ + top: 9, + left: 20, + right: 20, + bottom: 30 + }) + } + .width('100%') + .height('100%') + + TitleBar({ + onBackClick: () => { + if (this.isGuide) { + EventReportGlobalManager.eventReport(EventConstants.GUIDE_SKIP, "icon", this.pageDuration()) + } + this.doBack(); + } + }).width('100%') + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/record/AudioRecordPage.ets b/entry/src/main/ets/pages/main/record/AudioRecordPage.ets new file mode 100644 index 0000000..76d3760 --- /dev/null +++ b/entry/src/main/ets/pages/main/record/AudioRecordPage.ets @@ -0,0 +1,86 @@ +import { EmptyView, PageStatus } from '../../../view/EmptyView'; +import { AudioRecordItemView, VideoRecordItemView } from '../../../view/RecordItemView'; +import { AppUtil, PermissionUtil } from '@pura/harmony-utils'; +import { ToastUtils } from '../../../utils/ToastUtils'; +import { MediaRecordEntity } from '../../../entity/MediaRecordEntity'; +import { EventConstants } from '../../../common/EventConstants'; +import { MediaAction, MediaManager, MediaType } from '../../../manager/MediaManager'; +import { TipDialog } from '../../../dialog/TipDialog'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { LocalMediaManager } from '../../../manager/LocalMediaManager'; +import { fileIo } from '@kit.CoreFileKit'; + +@ComponentV2 +export struct AudioRecordPage { + @Local mediaList: Array = []; + @Local rowCount: number = 1; + @Local isCheckAll: boolean = false + + aboutToAppear(): void { + this.refresh() + this.initObserver() + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.MediaActionEvent, (type: MediaType, action: MediaAction) => { + if (type === MediaType.AUDIO) { + if (action === MediaAction.CLEAR && this.mediaList.length > 0) { + this.deleteAll() + } else { + this.refresh() + } + } + }) + + AppUtil.getContext().eventHub.on(EventConstants.RecordRefreshEvent, () => { + this.refresh() + }) + } + + async refresh() { + this.mediaList = await MediaManager.getAudioList() + } + + deleteAll() { + TipDialog.show(this.getUIContext(), { + title: '提示', content: '确定清空音频?', callback: { + confirm: () => { + try { + this.mediaList.forEach((item) => { + fileIo.unlinkSync(item.uri) + }) + LocalMediaManager.deleteAllAudios() + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.AUDIO, MediaAction.DELETE) + ToastUtils.show('删除成功') + } catch (e) { + ToastUtils.show('删除失败, 请到文件管理中手动删除') + } + } + } + }) + } + + build() { + Stack() { + Column() { + List() { + ForEach(this.mediaList, (item: MediaRecordEntity, index) => { + ListItem() { + AudioRecordItemView({ media: item }) + } + }) + } + .width('auto') + .layoutWeight(1) + .scrollBar(BarState.Off) + .margin({ left: 16, right: 16, bottom: 15 }) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_audio'), + noDataText: '暂无音频' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/record/ImageRecordPage.ets b/entry/src/main/ets/pages/main/record/ImageRecordPage.ets new file mode 100644 index 0000000..3ce8b2f --- /dev/null +++ b/entry/src/main/ets/pages/main/record/ImageRecordPage.ets @@ -0,0 +1,101 @@ +import { EmptyView, PageStatus } from '../../../view/EmptyView'; +import { ImageRecordItemView } from '../../../view/RecordItemView'; +import { AppUtil, PermissionUtil } from '@pura/harmony-utils'; +import { ToastUtils } from '../../../utils/ToastUtils'; +import { MediaRecordEntity } from '../../../entity/MediaRecordEntity'; +import { EventConstants } from '../../../common/EventConstants'; +import { MediaAction, MediaManager, MediaType } from '../../../manager/MediaManager'; +import { TipDialog } from '../../../dialog/TipDialog'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { LocalMediaManager } from '../../../manager/LocalMediaManager'; + +@ComponentV2 +export struct ImageRecordPage { + @Local mediaList: Array = []; + @Local rowCount: number = 1; + @Local isCheckAll: boolean = false + + aboutToAppear(): void { + this.refresh() + this.initObserver() + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.MediaActionEvent, (type: MediaType, action: MediaAction) => { + if (type === MediaType.IMAGE) { + if (action === MediaAction.CLEAR && this.mediaList.length > 0) { + this.deleteAll() + } else { + this.refresh() + } + } + }) + + AppUtil.getContext().eventHub.on(EventConstants.RecordRefreshEvent, () => { + this.refresh() + }) + } + + async refresh() { + this.mediaList = await MediaManager.getImageList() + this.rowCount = this.computeRowCount(this.mediaList) + } + + deleteAll() { + TipDialog.show(this.getUIContext(), { + title: '提示', content: '确定清空图片?', callback: { + confirm: () => { + let uriArray = new Array() + this.mediaList.forEach((item) => { + uriArray.push(item.uri!!) + }) + photoAccessHelper.MediaAssetChangeRequest.deleteAssets(AppUtil.getContext(), uriArray) + .then(() => { + LocalMediaManager.deleteAllImages() + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.IMAGE, MediaAction.DELETE) + ToastUtils.show('删除成功') + }) + .catch(() => { + ToastUtils.show('删除失败, 请到相册中手动删除') + }) + } + } + }) + } + + computeRowCount(list: Array): number { + if (list.length > 8) { + return 3; + } else if (list.length >= 3 && list.length <= 8) { + return 2; + } else { + return 1; + } + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: MediaRecordEntity, index) => { + GridItem() { + ImageRecordItemView({ media: item, rowCount: this.rowCount }) + } + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_image'), + noDataText: '暂无图片' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/record/RecordPage.ets b/entry/src/main/ets/pages/main/record/RecordPage.ets new file mode 100644 index 0000000..8ab72d4 --- /dev/null +++ b/entry/src/main/ets/pages/main/record/RecordPage.ets @@ -0,0 +1,137 @@ +import { TitleBar } from '../../../view/TitleBar'; +import { ImageRecordPage } from './ImageRecordPage'; +import { VideoRecordPage } from './VideoRecordPage'; +import { AppUtil } from '@pura/harmony-utils'; +import { EventConstants } from '../../../common/EventConstants'; +import { MediaAction, MediaType } from '../../../manager/MediaManager'; +import { AudioRecordPage } from './AudioRecordPage'; +import { CommonModifier } from '@kit.ArkUI'; + +@ComponentV2 +export struct RecordPage { + @Consumer() recordIndex: number = 0; + @Local tabBarModifier: CommonModifier = new CommonModifier() + @Local currentIndex: number = 0; + @Local indicatorLeftMargin: number = 0; + @Local indicatorWidth: number = 0; + @Local tabsWidth: number = 0; + + tabController: TabsController = new TabsController(); + titles: Array = ['视频', '图片', '音频']; + + aboutToAppear(): void { + this.initObserver() + this.tabBarModifier.align(Alignment.Start) + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.MediaActionEvent, (type: MediaType, action: MediaAction) => { + if (action === MediaAction.ADD) { + switch (type) { + case MediaType.VIDEO: { + if (this.currentIndex !== 0) { + this.tabController.changeIndex(0) + this.currentIndex = 0 + } + break + } + case MediaType.IMAGE: { + if (this.currentIndex !== 1) { + this.tabController.changeIndex(1) + this.currentIndex = 1 + } + break + } + case MediaType.AUDIO: { + if (this.currentIndex !== 2) { + this.tabController.changeIndex(2) + this.currentIndex = 2 + } + break + } + } + } + }) + } + + @Builder + tabBuilder(title: string, tabIndex: number) { + Text(title) + .width('auto') + .height(50) + .fontColor(this.currentIndex === tabIndex ? $r("app.color.color_466afd") : $r('app.color.color_50ffffff')) + .fontSize(this.currentIndex === tabIndex ? 17 : 14) + .fontWeight(this.currentIndex === tabIndex ? FontWeight.Medium : FontWeight.Regular) + .margin({ left: tabIndex === 0 ? 16 : 40 }) + } + + build() { + Column() { + TitleBar({title: '我的记录', showBack: false}) + Stack({alignContent: Alignment.TopEnd}) { + Tabs({ barPosition: BarPosition.Start, controller: this.tabController, barModifier: this.tabBarModifier }) { + TabContent() { + VideoRecordPage() + } + .tabBar(this.tabBuilder(this.titles[0], 0)) + + TabContent() { + ImageRecordPage() + } + .tabBar(this.tabBuilder(this.titles[1], 1)) + + TabContent() { + AudioRecordPage() + } + .tabBar(this.tabBuilder(this.titles[2], 2)) + } + .scrollable(false) + .barMode(BarMode.Scrollable) + .onTabBarClick((index) => { + this.currentIndex = index; + }) + + Row() { + Image($r('app.media.ic_clear_record')).width(16).height(16) + Text('全部清空').fontColor($r('app.color.color_80ffffff')).fontSize(12).margin({left: 4}) + } + .height(50) + .margin({ top: 3, right: 16 }) + .onClick(() => { + switch (this.currentIndex) { + case 0: { + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.VIDEO, MediaAction.CLEAR) + } + case 1: { + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.IMAGE, MediaAction.CLEAR) + } + case 2: { + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.AUDIO, MediaAction.CLEAR) + } + } + }) + .visibility(this.currentIndex === 2 ? Visibility.Visible : Visibility.None) + }.layoutWeight(1) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } + + @Builder + tab(tabName: string, tabIndex: number) { + Row() { + Text(tabName) + .fontSize(this.currentIndex === tabIndex ? 17 : 14) + .fontWeight(this.currentIndex === tabIndex ? FontWeight.Medium : FontWeight.Regular) + .lineHeight(24) + .fontColor(tabIndex === this.currentIndex ? $r("app.color.color_466afd") : $r('app.color.color_50ffffff')) + } + .width('auto') + .height('auto') + .onClick(() => { + this.tabController.changeIndex(tabIndex); + this.currentIndex = tabIndex; + }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/main/record/VideoRecordPage.ets b/entry/src/main/ets/pages/main/record/VideoRecordPage.ets new file mode 100644 index 0000000..6dff1d2 --- /dev/null +++ b/entry/src/main/ets/pages/main/record/VideoRecordPage.ets @@ -0,0 +1,101 @@ +import { EmptyView, PageStatus } from '../../../view/EmptyView'; +import { VideoRecordItemView } from '../../../view/RecordItemView'; +import { AppUtil, PermissionUtil } from '@pura/harmony-utils'; +import { ToastUtils } from '../../../utils/ToastUtils'; +import { MediaRecordEntity } from '../../../entity/MediaRecordEntity'; +import { EventConstants } from '../../../common/EventConstants'; +import { MediaAction, MediaManager, MediaType } from '../../../manager/MediaManager'; +import { TipDialog } from '../../../dialog/TipDialog'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { LocalMediaManager } from '../../../manager/LocalMediaManager'; + +@ComponentV2 +export struct VideoRecordPage { + @Local mediaList: Array = []; + @Local rowCount: number = 1; + @Local isCheckAll: boolean = false + + aboutToAppear(): void { + this.refresh() + this.initObserver() + } + + initObserver() { + AppUtil.getContext().eventHub.on(EventConstants.MediaActionEvent, (type: MediaType, action: MediaAction) => { + if (type === MediaType.VIDEO) { + if (action === MediaAction.CLEAR && this.mediaList.length > 0) { + this.deleteAll() + } else { + this.refresh() + } + } + }) + + AppUtil.getContext().eventHub.on(EventConstants.RecordRefreshEvent, () => { + this.refresh() + }) + } + + async refresh() { + this.mediaList = await MediaManager.getVideoList() + this.rowCount = this.computeRowCount(this.mediaList) + } + + deleteAll() { + TipDialog.show(this.getUIContext(), { + title: '提示', content: '确定清空视频?', callback: { + confirm: () => { + let uriArray = new Array() + this.mediaList.forEach((item) => { + uriArray.push(item.uri!!) + }) + photoAccessHelper.MediaAssetChangeRequest.deleteAssets(AppUtil.getContext(), uriArray) + .then(() => { + LocalMediaManager.deleteAllVideos() + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.VIDEO, MediaAction.DELETE) + ToastUtils.show('删除成功') + }) + .catch(() => { + ToastUtils.show('删除失败, 请到相册中手动删除') + }) + } + } + }) + } + + computeRowCount(list: Array): number { + if (list.length > 8) { + return 3; + } else if (list.length >= 3 && list.length <= 8) { + return 2; + } else { + return 1; + } + } + + build() { + Stack() { + Column() { + Grid() { + ForEach(this.mediaList, (item: MediaRecordEntity, index) => { + GridItem() { + VideoRecordItemView({ media: item, rowCount: this.rowCount }) + } + }) + } + .scrollBar(BarState.Off) + .columnsTemplate(this.rowCount === 1 ? '1fr' : this.rowCount === 2 ? '1fr 1fr' : '1fr 1fr 1fr') + .rowsGap(10) + .columnsGap(10) + .margin({ left: 16, right: 16, bottom: 15 }) + .layoutWeight(1) + } + + EmptyView({ + status: this.mediaList.length > 0 ? PageStatus.GONE : PageStatus.NO_DATA, + noDataImage: $r('app.media.ic_empty_video'), + noDataText: '暂无视频' + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/photo/PhotoViewPage.ets b/entry/src/main/ets/pages/photo/PhotoViewPage.ets new file mode 100644 index 0000000..745e572 --- /dev/null +++ b/entry/src/main/ets/pages/photo/PhotoViewPage.ets @@ -0,0 +1,32 @@ +import { TitleBar } from '../../view/TitleBar' + +@Entry +@ComponentV2 +struct PhotoViewPage { + @Local title: string = '' + @Local uri?: string = '' + + aboutToAppear(): void { + this.initParams() + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.title = params.title as string + this.uri = params.uri as string; + } + } + + build() { + Column() { + TitleBar({title: this.title}).width('100%') + Image(this.uri).width('100%').layoutWeight(1) + .margin({bottom: 50}) + .objectFit(ImageFit.Contain) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/splash/SplashPage.ets b/entry/src/main/ets/pages/splash/SplashPage.ets new file mode 100644 index 0000000..8363d50 --- /dev/null +++ b/entry/src/main/ets/pages/splash/SplashPage.ets @@ -0,0 +1,149 @@ +import { ConfigManager } from '../../manager/UserConfigManager'; +import { RouterUrls } from '../../common/RouterUrls'; +import { PrivacyPolicyDialog } from '../../dialog/PrivacyPolicyDialog'; +import { common } from '@kit.AbilityKit'; +import { LevelMode, router } from '@kit.ArkUI'; +import { LoginManager } from '../../manager/LoginGlobalManager'; +import { LoadingDialog } from '../../dialog/LoadingDialog'; +import { AppUtil, StrUtil } from '@pura/harmony-utils'; +import { EventReportGlobalManager } from '../../manager/EventReportGlobalManager'; +import { EventConstants } from '../../common/EventConstants'; +import { GyConfig, GyManager } from '@getui/gysdk'; +import { hilog } from '@kit.PerformanceAnalysisKit'; + +@Entry +@ComponentV2 +struct SplashPage { + privacyDialogController?: CustomDialogController | null; + + UIContext = this.getUIContext(); + uiAbilityContext = this.UIContext.getHostContext() as common.UIAbilityContext; + private windowClass = this.uiAbilityContext.windowStage.getMainWindowSync(); + + aboutToAppear(): void { + this.registerFont() + this.windowClass.setWindowLayoutFullScreen(true) + if (ConfigManager.isAgreePrivacy()) { + LoadingDialog.show(this.getUIContext()); + ConfigManager.getOaid() + .then(() => { + ConfigManager.getUserConfig() + .then(() => { + LoadingDialog.dismiss(); + // this.initGY(); + this.toNextPage(); + }); + }) + .catch((error: Error) => { + LoadingDialog.dismiss(); + console.error(error.message) + }) + } else { + this.showPrivacyDialog(); + } + } + + aboutToDisappear() { + this.privacyDialogController = null; + } + + showPrivacyDialog() { + this.privacyDialogController = new CustomDialogController({ + builder: PrivacyPolicyDialog({ + confirm: () => { + EventReportGlobalManager.eventReport(EventConstants.APP_LAUNCH, '', '') + LoadingDialog.show(this.getUIContext()); + ConfigManager.saveIsAgreePrivacy(true); + ConfigManager.getOaid() + .then(() => { + ConfigManager.getUserConfig() + .then(() => { + LoadingDialog.dismiss(); + // this.initGY(); + this.toNextPage(); + }); + }) + .catch((error: Error) => { + LoadingDialog.dismiss(); + console.error(error.message) + }) + }, + cancel: () => { + (this.getUIContext().getHostContext() as common.UIAbilityContext)?.terminateSelf() + } + }), + onWillDismiss: () => { + return false + }, + width: '80%', + cornerRadius: 20, + maskColor: '#CC000000', + levelMode: LevelMode.EMBEDDED, + backgroundBlurStyle: BlurStyle.NONE + }) + this.privacyDialogController.open(); + } + + async initGY() { + const response = await GyManager.getInstance().init(new GyConfig(AppUtil.getContext()) + .setDebug(false) + .setPreLoginUseCache(true) + .setChannel("scmf_hmos")) + if (response.isSuccess()) { + hilog.debug(0x0000, "GY", `init success ==>${response}`) + } else { + hilog.debug(0x0000, "GY", `init failed==>${response}`) + } + } + + toNextPage() { + if (LoginManager.isLogin()) { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single) + } else { + if (ConfigManager.isFirstUse()) { + ConfigManager.saveFirstUse(false); + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.GUIDE_PAGE }, router.RouterMode.Single) + } else { + if (StrUtil.isNotEmpty(LoginManager.getLastLoginType())) { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.LOGIN_PAGE }, router.RouterMode.Single) + } else { + this.getUIContext().getRouter().replaceUrl({ url: RouterUrls.MAIN_PAGE }, router.RouterMode.Single) + } + } + } + } + + registerFont() { + this.getUIContext().getFont().registerFont({ + familyName: "almmsht", + familySrc: $rawfile('font/almmShuHeiTi.ttf') + }) + this.getUIContext().getFont().registerFont({ + familyName: "ddp500m", + familySrc: $rawfile('font/ddp500m.otf') + }) + this.getUIContext().getFont().registerFont({ + familyName: "ysbth", + familySrc: $rawfile('font/youSheBiaoTiHei.ttf') + }) + } + + build() { + Stack({alignContent: Alignment.Top}) { + Image($r('app.media.ic_splash_bg')) + .width('100%') + .height('100%') + + Image($r('app.media.ic_splash_logo')) + .width(288) + .height(288) + .margin({top: 50}) + } + .width('100%') + .height('100%') + } + + onBackPress(): boolean | void { + return true; + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/video/VideoPlayerPage.ets b/entry/src/main/ets/pages/video/VideoPlayerPage.ets new file mode 100644 index 0000000..b7195c9 --- /dev/null +++ b/entry/src/main/ets/pages/video/VideoPlayerPage.ets @@ -0,0 +1,209 @@ +import { TitleBar } from '../../view/TitleBar' +import { ShareManager } from '../../manager/ShareManager' +import { PrefUtils } from '../../utils/PrefUtils' +import { SimpleTipDialog } from '../../dialog/SimpleTipDialog' +import { WantUtils } from '../../utils/WantUtils' +import { avSessionManager } from '../../manager/AVSessionManager' + +@Entry +@ComponentV2 +struct VideoPlayerPage { + private controller: VideoController = new VideoController() + @Local title: string = '' + @Local uri: string = '' + @Local showActions: boolean = false + @Local currentTime: number = 0 + @Local durationTime: number = 0 + @Local isPlaying: boolean = false + + aboutToAppear(): void { + this.initParams() + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.title = params.title as string + this.uri = params.uri as string; + this.showActions = params.showActions as boolean + } + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } + + build() { + Column() { + TitleBar().width('100%') + + RelativeContainer() { + Video({ + src: this.uri, // 设置视频源 + controller: this.controller, //设置视频控制器,可以控制视频的播放状态 + posterOptions: { showFirstFrame: true } + }) + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + .controls(false) // 设置是否显示默认控制条 + .autoPlay(true) // 设置是否自动播放 + .loop(false) // 设置是否循环播放 + .objectFit(ImageFit.Contain) // 设置视频填充模式 + .onPrepared((event) => { + if (event) { + this.durationTime = event.duration + } + }) + .onUpdate((event) => { + if (event) { + this.currentTime = event.time + } + }) + .onStart(() => { + this.isPlaying = true + }) + .onPause(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onStop(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onFinish(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onError(() => { + this.isPlaying = false + avSessionManager.deactivate() + }) + .onDisAppear(() => { + avSessionManager.deactivate() + }) + + Image($r('app.media.ic_play_video')) + .width(50) + .height(50) + .visibility(this.isPlaying ? Visibility.None : Visibility.Visible) + .onClick(async () => { + await avSessionManager.activate() + this.controller.start() + }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + + Row() { + Image(this.isPlaying ? $r('app.media.ic_player_controls_pause') : $r('app.media.ic_player_controls_play')) + .width(20) + .height(20) + .margin({ right: 20 }) + .onClick(async () => { + if (this.isPlaying) { + this.controller.pause() + } else { + await avSessionManager.activate() + this.controller.start() + } + }) + Text(this.formatTime(this.currentTime)).width(35).fontColor(Color.White).fontSize(12) + Slider({ + value: this.currentTime, + min: 0, + max: this.durationTime + }) + .blockColor(Color.White) + .trackColor($r('app.color.color_60ffffff')) + .onChange((value: number, mode: SliderChangeMode) => { + this.controller.setCurrentTime(value); // 设置视频播放的进度跳转到value处 + }) + .layoutWeight(1) + Text(this.formatTime(this.durationTime)).width(35).fontColor(Color.White).fontSize(12) + } + .opacity(0.8) + .width("100%") + .padding({ left: 30, right: 30 }) + .margin({ bottom: 50 }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + }.layoutWeight(1) + + Row() { + Column() { + Image($r('app.media.ic_action_share')).width(50).height(50) + Text('转发').fontSize(12).fontColor($r('app.color.color_50ffffff')).margin({ top: 13 }) + } + .id('btn_share') + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.Center } + }) + .margin({ right: 40 }) + .onClick(() => { + ShareManager.shareFile(this.uri) + }) + + Column() { + Image($r('app.media.ic_action_delete')).width(50).height(50) + Text('删除').fontSize(12).fontColor($r('app.color.color_50ffffff')).margin({ top: 13 }) + } + .id('btn_delete') + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Center }, + }) + .margin({ left: 40 }) + .onClick(() => { + this.controller.pause() + if (PrefUtils.getBoolean('show_record_delete_tip', true)) { + SimpleTipDialog.show(this.getUIContext(), { + title: '提示', content: '因系统限制,请到相册中手动删除', buttonText: '知道了', callback: { + confirm: () => { + WantUtils.toPhotoGallery() + PrefUtils.put('show_record_delete_tip', false) + } + } + }) + } else { + WantUtils.toPhotoGallery() + } + }) + } + .height(200) + .margin({ top: 10 }) + .visibility(this.showActions ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .backgroundColor($r('app.color.window_background')) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/web/WebPage.ets b/entry/src/main/ets/pages/web/WebPage.ets new file mode 100644 index 0000000..8e8e71b --- /dev/null +++ b/entry/src/main/ets/pages/web/WebPage.ets @@ -0,0 +1,46 @@ +import { webview } from '@kit.ArkWeb'; +import { TitleBar } from '../../view/TitleBar'; +import { window } from '@kit.ArkUI'; + +@Entry +@ComponentV2 +struct WebPage { + windowStage: window.WindowStage = AppStorage.get("windowStage") as window.WindowStage; + + controller: webview.WebviewController = new webview.WebviewController(); + + @Local title: string = ''; + @Local url: string = ''; + + aboutToAppear(): void { + this.windowStage.getMainWindowSync().setWindowSystemBarProperties({ + statusBarColor: '#00000000', + statusBarContentColor: '#000000' + }); + this.initParams(); + } + + aboutToDisappear(): void { + this.windowStage.getMainWindowSync().setWindowSystemBarProperties({ + statusBarColor: '#00000000', + statusBarContentColor: '#ffffff' + }); + } + + initParams() { + const params = this.getUIContext().getRouter().getParams() as Record; + if (params) { + this.title = params.title as string; + this.url = params.url as string; + } + } + + build() { + Column() { + TitleBar({ title: this.title, isDark: false }).width('100%') + Web({ src: this.url, controller: this.controller }).width('100%').layoutWeight(1) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/AESpkcs7paddingUtil.ets b/entry/src/main/ets/utils/AESpkcs7paddingUtil.ets new file mode 100644 index 0000000..c111960 --- /dev/null +++ b/entry/src/main/ets/utils/AESpkcs7paddingUtil.ets @@ -0,0 +1,11 @@ +import { AES, CryptoHelper, CryptoUtil, StrUtil } from '@pura/harmony-utils'; + +export class AESpkcs7paddingUtil { + static decryptNormal(encryptStr: string, key: string): string { + let dataBlob = CryptoHelper.strToDataBlob(encryptStr, 'base64'); + let keyBytes = CryptoUtil.getConvertSymKeySync('AES256', key, 'utf-8') + let ivParams= CryptoUtil.getIvParamsSpec(key.substring(0, 16), 'utf-8') + let plain = AES.decryptCBCSync(dataBlob, keyBytes, ivParams); + return StrUtil.unit8ArrayToStr(plain.data); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/MediaUtils.ets b/entry/src/main/ets/utils/MediaUtils.ets new file mode 100644 index 0000000..b11ae96 --- /dev/null +++ b/entry/src/main/ets/utils/MediaUtils.ets @@ -0,0 +1,38 @@ +import { media } from "@kit.MediaKit"; +import { FileUtil } from "@pura/harmony-utils"; +import { fileIo } from "@kit.CoreFileKit"; + +export class MediaUtils { + + static async getVideoSize(uri: string): Promise { + let videoSize: media.PixelMapParams = {}; + let avMetaDataExtractor: media.AVMetadataExtractor = await media.createAVMetadataExtractor(); + try { + let file = FileUtil.openSync(uri); + avMetaDataExtractor.fdSrc = file; + let metadata = await avMetaDataExtractor.fetchMetadata() + videoSize.width = parseInt(metadata.videoWidth as string); + videoSize.height = parseInt(metadata.videoHeight as string); + return Promise.resolve(videoSize) + } catch (e) { + let cacheFilePath = FileUtil.getCacheDirPath() + '/' + FileUtil.getFileName(uri) + try { + let file = FileUtil.openSync(uri, fileIo.OpenMode.READ_ONLY); + // 复制文件到缓存目录下 + FileUtil.copyFileSync(file.fd, cacheFilePath) + + avMetaDataExtractor.fdSrc = FileUtil.openSync(cacheFilePath); + let metadata = await avMetaDataExtractor.fetchMetadata() + videoSize.width = parseInt(metadata.videoWidth as string); + videoSize.height = parseInt(metadata.videoHeight as string); + return Promise.resolve(videoSize) + } catch (e) { + return Promise.reject(e) + } finally { + if (FileUtil.accessSync(cacheFilePath)) { + FileUtil.unlink(cacheFilePath) + } + } + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/PasteboardUtils.ets b/entry/src/main/ets/utils/PasteboardUtils.ets new file mode 100644 index 0000000..238975b --- /dev/null +++ b/entry/src/main/ets/utils/PasteboardUtils.ets @@ -0,0 +1,63 @@ +import { ConfigManager } from '../manager/UserConfigManager'; +import { pasteboard } from '@kit.BasicServicesKit'; +import { preferences } from '@kit.ArkData'; + +export class PasteboardUtils { + private static systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); + private static patterns: pasteboard.Pattern[] = [pasteboard.Pattern.URL, pasteboard.Pattern.EMAIL_ADDRESS]; + private static dataPreferences: preferences.Preferences | null = null; + + static clipText?: string + + static async isNeedGetPermissionFromUser(): Promise { + try { + let hasData: boolean = await PasteboardUtils.systemPasteboard.hasData() + if (!hasData) { + // 剪贴板不存在数据,无需申请权限 + return false + } + // 获取剪贴板的内容变化次数 + let result: number = PasteboardUtils.systemPasteboard.getChangeCount() + // 从 Preferences 中读取上次保存的 changeCount + let storedChangeCount: number = PasteboardUtils.dataPreferences ? Number(PasteboardUtils.dataPreferences.getSync('pasteboardChangeCount', 0)) : 0 + if (result === storedChangeCount) { + // 剪贴板无数据变化,无需申请权限 + return false + } + } catch (err) { + return false + } + + // 查询剪贴板是否存在应用所需数据类型 + try { + // (可选)判断是否有应用需要的数据类型 + let result: boolean = PasteboardUtils.systemPasteboard.hasDataType(pasteboard.MIMETYPE_TEXT_PLAIN) + if (!result) { + // 剪贴板不存在应用所需数据类型,无需申请权限 + return false + } + // (可选)涉及口令等应用自身特殊复制内容的,使用detectPatterns过滤口令格式 + let data: pasteboard.Pattern[] = await PasteboardUtils.systemPasteboard.detectPatterns(PasteboardUtils.patterns) + if (PasteboardUtils.patterns.sort().join('') != data.sort().join('')) { + return false + } + } catch (err) { + return false + } + return true + } + + /** + * 是否是有效链接 + */ + static isValidUrl(text: string): boolean { + let isValid = false + for (let i = 0;i < ConfigManager.getCopyContainsList().length;i++) { + if (text.includes(ConfigManager.getCopyContainsList()[i])) { + isValid = true + break + } + } + return isValid + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/PayUtils.ets b/entry/src/main/ets/utils/PayUtils.ets new file mode 100644 index 0000000..df126ba --- /dev/null +++ b/entry/src/main/ets/utils/PayUtils.ets @@ -0,0 +1,50 @@ +import { Constants } from '../common/Constants'; +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { WXApi } from './wechat/WXApiEventHandlerImpl'; +import { AppUtil } from '@pura/harmony-utils'; +import { PayOrderEntity } from '../entity/OrderPayEntity'; +import { Pay } from '@cashier_alipay/cashiersdk/src/main/ets/api/Pay'; +import { ToastUtils } from './ToastUtils'; + +export class PayUtils { + + /** + * 微信支付 + * @param orderEntity + */ + static async toWXPay(orderEntity: PayOrderEntity) { + let req = new WxOpenSdk.PayReq + req.partnerId = orderEntity.partnerId + req.appId = Constants.WX_APP_ID + req.packageValue = 'Sign=WXPay' + req.prepayId = orderEntity.prepayId + req.nonceStr = orderEntity.nonceStr + req.timeStamp = orderEntity.timeStamp + req.sign = orderEntity.sign + WXApi.sendReq(AppUtil.getContext(), req) + } + + /** + * 微信小程序支付 + */ + static async toWXMPPay(outTradeNo: string, mpAppId: string) { + try { + let launchMiniProgramReq = new WxOpenSdk.LaunchMiniProgramReq() + launchMiniProgramReq.userName = mpAppId //拉起的小程序的原始id + launchMiniProgramReq.path = `pages/index/index?outTradeNo=${outTradeNo}` + launchMiniProgramReq.miniprogramType = 0 //拉起小程序的类型 0-正式版 1-开发版 2-体验版 + await WXApi.sendReq(AppUtil.getContext(), launchMiniProgramReq) + } catch (e) { + ToastUtils.show('跳转失败,请联系客服') + } + } + + /** + * 支付宝支付 + * @param orderInfo + * @returns + */ + static async toAliPay(orderInfo: string): Promise> { + return new Pay().pay(orderInfo, true); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/PrefUtils.ets b/entry/src/main/ets/utils/PrefUtils.ets new file mode 100644 index 0000000..6204198 --- /dev/null +++ b/entry/src/main/ets/utils/PrefUtils.ets @@ -0,0 +1,68 @@ +import { preferences } from '@kit.ArkData'; +import { Context } from '@kit.AbilityKit'; +import { StrUtil } from '@pura/harmony-utils'; +import { JSON } from '@kit.ArkTS'; + + +export class PrefUtils { + private static dataPreferences?: preferences.Preferences; + private static readonly PREF_NAME = 'share_data' + + private constructor() { + } + + /** + * 初始化preferences,必须最先调用 + * @param context + */ + static init(context: Context) { + if (PrefUtils.dataPreferences == null) { + try { + let isGskvSupported = preferences.isStorageTypeSupported(preferences.StorageType.GSKV); + if (isGskvSupported) { + let options: preferences.Options = { name: PrefUtils.PREF_NAME, storageType: preferences.StorageType.GSKV }; + PrefUtils.dataPreferences = preferences.getPreferencesSync(context, options); + } else { + let options: preferences.Options = { name: PrefUtils.PREF_NAME, storageType: preferences.StorageType.XML }; + PrefUtils.dataPreferences = preferences.getPreferencesSync(context, options); + } + } catch (e) { + let options: preferences.Options = { name: PrefUtils.PREF_NAME }; + PrefUtils.dataPreferences = preferences.getPreferencesSync(context, options); + } + } + } + + static put(name: string, value: preferences.ValueType) { + if (value !== undefined) { + PrefUtils.dataPreferences?.putSync(name, value) + PrefUtils.dataPreferences?.flushSync() + } + } + + static getString(name: string): string { + return PrefUtils.dataPreferences?.getSync(name, "") as string; + } + + static getBoolean(name: string, defaultValue: boolean = false): boolean { + return PrefUtils.dataPreferences?.getSync(name, defaultValue) as boolean; + } + + static getNumber(name: string): number { + return PrefUtils.dataPreferences?.getSync(name, 0) as number; + } + + static getStringArray(name: string): Array { + let str = PrefUtils.dataPreferences?.getSync(name, '') as string + if (StrUtil.isNotEmpty(str)) { + return JSON.parse(str) as Array + } + return new Array() + } + + static remove(name: string) { + PrefUtils.dataPreferences?.deleteSync(name); + PrefUtils.dataPreferences?.flushSync() + } +} + diff --git a/entry/src/main/ets/utils/SaveUtils.ets b/entry/src/main/ets/utils/SaveUtils.ets new file mode 100644 index 0000000..7b5910a --- /dev/null +++ b/entry/src/main/ets/utils/SaveUtils.ets @@ -0,0 +1,118 @@ +import { PhotoHelper } from '@pura/picker_utils'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { AppUtil, FileUtil, RandomUtil } from '@pura/harmony-utils'; +import { fileIo, fileUri, picker } from '@kit.CoreFileKit'; +import { EventConstants } from '../common/EventConstants'; +import { MediaAction, MediaType } from '../manager/MediaManager'; +import { LocalMediaManager } from '../manager/LocalMediaManager'; +import { systemDateTime } from '@kit.BasicServicesKit'; + +export class SaveUtils { + + /** + * 保存视频和图片到相册, 弹窗授权 + * @param path + * @param name + * @returns + */ + static async saveImageVideoToAlbumDialog(srcFileUris: Array, record: boolean = true): Promise { + try { + // 基于弹窗授权的方式获取媒体库的目标uri + let desFileUris: Array = await PhotoHelper.showAssetsCreationDialog(srcFileUris); + // 将来源于应用沙箱的照片内容写入媒体库的目标uri + for (let i = 0; i < srcFileUris.length; i++) { + let desFile: fileIo.File = await fileIo.open(desFileUris[i], fileIo.OpenMode.WRITE_ONLY); + let srcFile: fileIo.File = await fileIo.open(srcFileUris[i], fileIo.OpenMode.READ_ONLY); + await fileIo.copyFile(srcFile.fd, desFile.fd); + fileIo.closeSync(srcFile); + fileIo.closeSync(desFile); + + if (record) { + LocalMediaManager.add(desFileUris[i]) + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, srcFileUris[i].endsWith('mp4') ? MediaType.VIDEO : MediaType.IMAGE, MediaAction.ADD) + console.debug('保存成功') + } + } + return Promise.resolve(true) + } catch (e) { + console.error(e) + return Promise.resolve(false) + } + } + + /** + * 保存音频到本地, 无需ACL权限 + * @param path + * @param name + * @returns + */ + static async saveAudioToMusic(srcFileUris: Array): Promise { + try { + const documentViewPicker = new picker.DocumentViewPicker(AppUtil.getContext()) + const documentSaveOptions = new picker.DocumentSaveOptions() + documentSaveOptions.pickerMode = picker.DocumentPickerMode.DOWNLOAD + const uriArray = await documentViewPicker.save(documentSaveOptions) + let dirUri = uriArray[0] + srcFileUris.forEach(async (srcUri) => { + const srcPath = FileUtil.getFilePath(srcUri) + const desUri = new fileUri.FileUri(dirUri + FileUtil.separator + FileUtil.getFileName(srcPath)).path + const desFile = FileUtil.openSync(desUri, fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE) + await FileUtil.copyFile(srcPath, desFile.fd) + LocalMediaManager.add(desUri) + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.AUDIO, MediaAction.ADD) + FileUtil.closeSync(desFile.fd) + console.debug('保存成功') + }) + return Promise.resolve(true) + } catch (e) { + console.error(e) + return Promise.resolve(false) + } + } + + /** + * 保存视频到相册, 需要ACL权限 + * @param path + * @param name + * @returns + */ + static async saveVideoToAlbum(path: string, name: string): Promise { + try { + let name = `kcsp_${systemDateTime.getTime() + RandomUtil.getRandomInt(1000, 2000)}.mp4` + const uri = await PhotoHelper.save(photoAccessHelper.PhotoType.VIDEO, 'mp4', { title: name.replace('.mp4', '') }); + let file = FileUtil.openSync(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + await FileUtil.copyFile(path, file.fd) + LocalMediaManager.add(name) + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.VIDEO, MediaAction.ADD) + FileUtil.close(file) + console.debug('保存成功') + return Promise.resolve(true) + } catch (e) { + console.error(e) + return Promise.resolve(false) + } + } + + /** + * 保存图片到相册, 需要ACL权限 + * @param path + * @param name + * @returns + */ + static async saveImageToAlbum(path: string, name: string): Promise { + try { + if (FileUtil.accessSync(path)) name = `kcsp_${systemDateTime.getTime() + RandomUtil.getRandomInt(1000, 2000)}.jpeg` + const uri = await PhotoHelper.save(photoAccessHelper.PhotoType.IMAGE, 'jpeg', { title: name.replace('.jpeg', '') }); + let file = FileUtil.openSync(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + await FileUtil.copyFile(path, file.fd) + LocalMediaManager.add(name) + AppUtil.getContext().eventHub.emit(EventConstants.MediaActionEvent, MediaType.IMAGE, MediaAction.ADD) + FileUtil.close(file) + console.debug('保存成功') + return Promise.resolve(true) + } catch (e) { + console.error(e) + return Promise.resolve(false) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/ToastUtils.ets b/entry/src/main/ets/utils/ToastUtils.ets new file mode 100644 index 0000000..a7aaf54 --- /dev/null +++ b/entry/src/main/ets/utils/ToastUtils.ets @@ -0,0 +1,20 @@ +import { StrUtil } from '@pura/harmony-utils' +import { promptAction } from '@kit.ArkUI' + +export class ToastUtils { + + static show(msg: string, isResponse: boolean = false) { + if (StrUtil.isEmpty(msg)) return + let message = msg + if (isResponse) { + let messageArray = message.split(',') + if (messageArray.length > 0) { + message = messageArray[0] + } + } + promptAction.showToast({ + message: message, + duration: 1000 + }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/WantUtils.ets b/entry/src/main/ets/utils/WantUtils.ets new file mode 100644 index 0000000..e248026 --- /dev/null +++ b/entry/src/main/ets/utils/WantUtils.ets @@ -0,0 +1,16 @@ +import { Want } from '@kit.AbilityKit' +import { AppUtil } from '@pura/harmony-utils' + +export class WantUtils { + + /** + * 跳转到相册 + */ + static toPhotoGallery() { + let want: Want = { + bundleName: 'com.huawei.hmos.photos', + abilityName: 'com.huawei.hmos.photos.MainAbility' + } + AppUtil.getContext().startAbility(want) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets b/entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets new file mode 100644 index 0000000..41a89ae --- /dev/null +++ b/entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets @@ -0,0 +1,45 @@ +import * as WxOpenSdk from '@tencent/wechat_open_sdk'; +import { Constants } from '../../common/Constants'; + +export const WXApi = WxOpenSdk.WXAPIFactory.createWXAPI(Constants.WX_APP_ID) + +export type OnWXReq = (req: WxOpenSdk.BaseReq) => void +export type OnWXResp = (resp: WxOpenSdk.BaseResp) => void + +// WXApiEventHandler为微信数据的回调 +class WXApiEventHandlerImpl implements WxOpenSdk.WXApiEventHandler { + private TAG = 'WXApiEventHandlerImpl'; + + private onReqCallbacks: Map = new Map + private onRespCallbacks: Map = new Map + + registerOnWXReqCallback(on: OnWXReq) { + this.onReqCallbacks.set(on, on) + } + unregisterOnWXReqCallback(on: OnWXReq) { + this.onReqCallbacks.delete(on) + } + + registerOnWXRespCallback(on: OnWXResp) { + this.onRespCallbacks.set(on, on) + } + unregisterOnWXRespCallback(on: OnWXResp) { + this.onRespCallbacks.delete(on) + } + + onReq(req: WxOpenSdk.BaseReq): void { + console.log(this.TAG, "onReq:%s", JSON.stringify(req)) + this.onReqCallbacks.forEach((on) => { + on(req) + }) + } + + onResp(resp: WxOpenSdk.BaseResp): void { + console.log(this.TAG, "onResp:%s", JSON.stringify(resp)) + this.onRespCallbacks.forEach((on) => { + on(resp) + }) + } +} + +export const WXEventHandler = new WXApiEventHandlerImpl \ No newline at end of file diff --git a/entry/src/main/ets/view/AccountItemView.ets b/entry/src/main/ets/view/AccountItemView.ets new file mode 100644 index 0000000..802f615 --- /dev/null +++ b/entry/src/main/ets/view/AccountItemView.ets @@ -0,0 +1,108 @@ +import { StrUtil } from "@pura/harmony-utils"; +import { AccountEntity } from "../entity/AccountEntity" + +@ComponentV2 +export struct AccountItemView { + @Param account?: AccountEntity = new AccountEntity(); + + build() { + RelativeContainer() { + Image(this.account?.avater).width(44).height(44).id('iv_avatar').borderRadius(25) + + Text(this.account?.name) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(16) + .fontWeight(FontWeight.Medium) + .alignRules({ + left: { anchor: 'iv_avatar', align: HorizontalAlign.End }, + top: { anchor: 'iv_avatar', align: VerticalAlign.Top } + }) + .margin({ left: 12 }) + .id('tv_username') + + Text(this.account?.vip_type === 3 ? '终身会员' : this.account?.vip_name) + .height(16) + .textAlign(TextAlign.Center) + .fontColor(Color.White) + .fontSize(10) + .linearGradient({ + colors: [['#F62C6C', 0.0], ['#FC4F54', 1.0]], + direction: GradientDirection.Right + }) + .borderRadius(3) + .padding({ + left: 3, + right: 3 + }) + .margin({ left: 6 }) + .alignRules({ + left: { anchor: 'tv_username', align: HorizontalAlign.End }, + top: { anchor: 'tv_username', align: VerticalAlign.Top }, + bottom: { anchor: 'tv_username', align: VerticalAlign.Bottom } + }) + .visibility(this.account?.vip_type !== 1 ? Visibility.Visible : Visibility.None) + + Text('ID:' + this.account?.user_id).fontColor($r('app.color.color_999999')).fontSize(12) + .alignRules({ + left: { anchor: 'tv_username', align: HorizontalAlign.Start }, + bottom: { anchor: 'iv_avatar', align: VerticalAlign.Bottom } + }) + + Text(this.account?.create_time + ' 注册').fontColor($r('app.color.color_999999')).fontSize(12) + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: 'iv_avatar', align: VerticalAlign.Bottom } + }) + .visibility(StrUtil.isNotEmpty(this.account?.create_time) ? Visibility.Visible : Visibility.None) + + Divider() + .color($r('app.color.color_10ffffff')) + .strokeWidth(1) + .alignRules({ + top: { anchor: 'iv_avatar', align: VerticalAlign.Bottom } + }) + .margin({ top: 18 }) + .id('divider') + + Row() { + Text('账户绑定') + .fontColor($r('app.color.color_50ffffff')) + .fontSize(14) + + Image($r('app.media.ic_bind_phone')).width(20).height(20).margin({ left: 10 }) + .visibility(this.account?.bind.includes('phone') ? Visibility.Visible : Visibility.None) + + Image($r('app.media.ic_bind_wx')).width(20).height(20).margin({ left: 10 }) + .visibility(this.account?.bind.includes('weixin') ? Visibility.Visible : Visibility.None) + + Text(this.getPrivacyPhone(this.account?.phone)) + .layoutWeight(1) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(15) + .textAlign(TextAlign.End) + } + .alignRules({ + top: { anchor: 'divider', align: VerticalAlign.Bottom } + }) + .margin({ top: 14 }) + } + .height('auto') + .borderRadius(10) + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 16, + top: 18, + right: 16, + bottom: 14 + }) + } + + getPrivacyPhone(phone?: string): string { + if (StrUtil.isNotEmpty(phone)) { + const start = phone?.substring(0, 3); + const end = phone?.substring(7); + return start + '****' + end; + } + return ''; + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/AddImageItemView.ets b/entry/src/main/ets/view/AddImageItemView.ets new file mode 100644 index 0000000..db4602d --- /dev/null +++ b/entry/src/main/ets/view/AddImageItemView.ets @@ -0,0 +1,50 @@ +import { UploadImgEntity } from "../entity/UploadImgEntity" + +@ComponentV2 +export struct AddImageItemView { + @Param uri?: string = undefined + @Param index: number = 0 + @Param onDelete?: (uri: string) => void = undefined + + build() { + Stack() { + RelativeContainer() { + Text('+') + .fontColor($r('app.color.color_30ffffff')) + .fontSize(40) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .width('auto') + .visibility(this.uri ? Visibility.None : Visibility.Visible) + + Image(this.uri).width('100%').height('100%') + .visibility(this.uri ? Visibility.Visible : Visibility.None) + + Image($r('app.media.ic_delete_img')) + .width(18) + .height(18) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .onClick(() => { + if (this.onDelete) { + this.onDelete(this.uri!!) + } + }) + .visibility(this.uri ? Visibility.Visible : Visibility.None) + } + .width(80) + .height(80) + .borderRadius(8) + .backgroundColor($r('app.color.color_222222')) + .clip(true) + } + .width('100%') + .alignContent(this.index % 3 === 0 ? Alignment.Start : this.index % 3 === 1 ? Alignment.Center : Alignment.End) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/DiamondItemView.ets b/entry/src/main/ets/view/DiamondItemView.ets new file mode 100644 index 0000000..0051f9a --- /dev/null +++ b/entry/src/main/ets/view/DiamondItemView.ets @@ -0,0 +1,69 @@ +import { NumberUtil, StrUtil } from "@pura/harmony-utils" +import { VipMealEntity } from "../entity/VipMealEntity" + +@ComponentV2 +export struct DiamondItemView { + @Param goodInfo?: VipMealEntity = undefined + + build() { + RelativeContainer() { + Image(this.goodInfo?.image).width(24).height(24).id('iv_icon') + .margin({left: 16, top: 17}) + Text() { + Span('兑换钻石 ').fontSize(15).fontWeight(FontWeight.Medium) + Span(this.goodInfo?.value).fontSize(24).fontFamily('ddp500m') + Span('个').fontSize(12) + } + .fontColor($r('app.color.color_1a1a1a')) + .alignRules({ + left: {anchor: 'iv_icon', align: HorizontalAlign.End}, + }) + .margin({left: 12, top: 13}) + .id('tv_count') + + Text(NumberUtil.toNumber(this.goodInfo?.price) / NumberUtil.toNumber(this.goodInfo?.value) + '元一个钻石巨优惠') + .fontColor($r('app.color.color_666666')) + .fontSize(12) + .alignRules({ + left: {anchor: 'tv_count', align: HorizontalAlign.Start}, + top: {anchor: 'tv_count', align: VerticalAlign.Bottom} + }) + .margin({top: 10}) + .id('tv_desc') + + Text() { + Span('¥').fontSize(13).fontWeight(FontWeight.Medium) + Span(this.goodInfo?.price).fontSize(24).fontFamily('ddp500m') + } + .fontColor('#FF4529') + .alignRules({ + top: {anchor: 'tv_desc', align: VerticalAlign.Top}, + right: {anchor: '__container__', align: HorizontalAlign.End}, + bottom: {anchor: 'tv_desc', align: VerticalAlign.Bottom} + }) + .margin({right: 16}) + + if (StrUtil.isNotEmpty(this.goodInfo?.tips)) { + Text(this.goodInfo?.tips).fontColor('#9E5C0B').fontSize(13) + .height(22) + .textAlign(TextAlign.Center) + .padding({left: 8, right: 8}) + .linearGradient({ + colors:[['#FFEACA', 0.0], ['#FFD7A6', 1.0]], + direction: GradientDirection.Right + }) + .alignRules({ + top: {anchor: '__container__', align: VerticalAlign.Top}, + right: {anchor: '__container__', align: HorizontalAlign.End} + }) + .borderRadius({bottomLeft: 10 , topRight: 10}) + } + } + .width('100%') + .height(86) + .borderRadius(10) + .borderWidth(1) + .borderColor(this.goodInfo?.checked ? '#FF8C1B' : '#DDDDDD') + .backgroundColor(this.goodInfo?.checked ? '#FFFAEF' : Color.White) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/DiamondRuleItemView.ets b/entry/src/main/ets/view/DiamondRuleItemView.ets new file mode 100644 index 0000000..7fa3050 --- /dev/null +++ b/entry/src/main/ets/view/DiamondRuleItemView.ets @@ -0,0 +1,15 @@ +import { DiamondRuleEntity } from "../entity/DiamondRuleEntity" + +@ComponentV2 +export struct DiamondRuleItemView { + @Param entity?: DiamondRuleEntity = undefined + + build() { + Column() { + Text(this.entity?.title).fontColor($r('app.color.color_666666')).fontSize(15) + Text(this.entity?.desc).fontColor($r('app.color.color_666666')).fontSize(14).margin({top: 10}) + } + .width('100%') + .alignItems(HorizontalAlign.Start) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/DownloadHistoryItemView.ets b/entry/src/main/ets/view/DownloadHistoryItemView.ets new file mode 100644 index 0000000..1ca7e59 --- /dev/null +++ b/entry/src/main/ets/view/DownloadHistoryItemView.ets @@ -0,0 +1,68 @@ +import { RouterUrls } from "../common/RouterUrls" +import { DownloadHistoryEntity } from "../entity/DownloadHistoryEntity" +import { ConfigManager } from "../manager/UserConfigManager" + +@ComponentV2 +export struct DownloadHistoryItemView { + @Param historyEntity?: DownloadHistoryEntity = undefined + + build() { + Stack() { + Row() { + Column() { + Row() { + Text(ConfigManager.getDomainMap()[this.historyEntity?.domain!!] ? ConfigManager.getDomainMap()[this.historyEntity?.domain!!] : '其他') + .height(16) + .textAlign(TextAlign.Center) + .fontColor(this.historyEntity?.getTypeTextColor()) + .fontSize(10) + .borderRadius(2) + .backgroundColor(this.historyEntity?.getTypeBgColor()) + .padding({left: 4, right: 4}) + Text(this.historyEntity?.title) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({left: 8}) + .layoutWeight(1) + } + Text(this.historyEntity?.description ? this.historyEntity?.description : this.historyEntity?.title) + .fontColor($r('app.color.color_60ffffff')) + .fontSize(12) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({top: 5}) + + Row() { + Text(this.historyEntity?.save_size).fontColor($r('app.color.color_50ffffff')).fontSize(12) + Text(this.historyEntity?.create_time).fontColor($r('app.color.color_999999')).fontSize(10).margin({left: 10}) + }.margin({top: 8}) + } + .padding({left: 16, right: 16}) + .alignItems(HorizontalAlign.Start) + .layoutWeight(1) + + Divider().width(1).height(60).strokeWidth(1).backgroundColor($r('app.color.color_10ffffff')) + + Stack(){ + Image(this.historyEntity?.request ? $r('app.media.ic_download_enable') : $r('app.media.ic_download_disable')).width(26).height(26) + } + .padding({left: 16, right: 16}) + .onClick(() => { + if (this.historyEntity?.request) { + this.getUIContext().getRouter().pushUrl({url: RouterUrls.TAKE_MATERIAL_PAGE, params: {url: this.historyEntity?.request}}) + } + }) + } + .width('100%') + .padding({ top: 16, bottom: 16 }) + .backgroundColor($r('app.color.color_222222')) + .borderRadius(6) + } + .width('100%') + .padding({ left: 16, right: 16 }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/EmptyView.ets b/entry/src/main/ets/view/EmptyView.ets new file mode 100644 index 0000000..0e88861 --- /dev/null +++ b/entry/src/main/ets/view/EmptyView.ets @@ -0,0 +1,54 @@ +import { StrUtil } from "@pura/harmony-utils"; + +export enum PageStatus { + LOADING, + NO_DATA, + GONE, + ERROR +} + +@ComponentV2 +export struct EmptyView { + @Param status: PageStatus = PageStatus.LOADING; + @Param noDataImage: Resource = $r('app.media.ic_empty_data'); + @Param noDataText: string = '暂无数据'; + @Param noDataBtnText: string = '' + + @Param onBtnClick?: () => void = undefined; + + build() { + Stack() { + Column() { + Image(this.noDataImage).width(162).height(162).margin({ top: -50 }) + Text(this.noDataText).fontColor($r('app.color.color_999999')).fontSize(12).margin({ top: 10 }) + Button(this.noDataBtnText) + .height(30) + .fontColor($r("app.color.color_466afd")) + .fontSize(14) + .borderRadius(20) + .borderWidth(1) + .borderColor($r("app.color.color_466afd")) + .backgroundColor(Color.Transparent) + .padding({ + left: 10, + right: 10 + }) + .margin({ top: 24 }) + .visibility(StrUtil.isNotEmpty(this.noDataBtnText) ? Visibility.Visible : Visibility.Hidden) + .onClick(() => { + if (this.onBtnClick) { + this.onBtnClick(); + } + }) + }.visibility(this.status === PageStatus.NO_DATA ? Visibility.Visible : Visibility.None) + + Column() { + LoadingProgress().width(60).height(60).color($r('app.color.color_999999')).margin({ top: -50 }) + Text('正在加载...').fontColor($r('app.color.color_999999')).fontSize(12).margin({ top: 10 }) + }.visibility(this.status === PageStatus.LOADING ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + .visibility(this.status !== PageStatus.GONE ? Visibility.Visible : Visibility.None) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/MaterialItemView.ets b/entry/src/main/ets/view/MaterialItemView.ets new file mode 100644 index 0000000..dbb9b94 --- /dev/null +++ b/entry/src/main/ets/view/MaterialItemView.ets @@ -0,0 +1,170 @@ +import { AudioMaterial, ImageMaterial, TextMaterial, VideoMaterial } from '../entity/MaterialInfoEntity'; + +@ComponentV2 +export struct VideoMaterialItemView { + @Param media?: VideoMaterial = undefined; + @Param rowCount: number = 1; + @Param isWxVideo: boolean = false; + @Param onDelete?: (media: VideoMaterial) => void = undefined + + build() { + Column() { + RelativeContainer() { + Image(this.media?.thumb) + .width('100%') + .height('100%') + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .id('iv_thumb') + + Image($r('app.media.ic_play_video')).width(50).height(50) + .alignRules({ + left: { anchor: 'iv_thumb', align: HorizontalAlign.Start }, + top: { anchor: 'iv_thumb', align: VerticalAlign.Top }, + right: { anchor: 'iv_thumb', align: HorizontalAlign.End }, + bottom: { anchor: 'iv_thumb', align: VerticalAlign.Bottom }, + }) + .onClick(() => { + if (this.media?.play) { + + } + }) + + Image(this.media?.isChecked ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')) + .width(18) + .height(18) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .margin({ top: 6, right: 6 }) + + Stack() { + Image($r('app.media.ic_delete_material')).height(18).width(18) + } + .width('100%') + .height(34) + .alignRules({ + bottom: {anchor: '__container__', align: VerticalAlign.Bottom} + }) + .borderRadius({ bottomLeft: 6, bottomRight: 6 }) + .backdropBlur(20) + .visibility(this.isWxVideo ? Visibility.Visible : Visibility.None) + .onClick(() => { + if (this.onDelete) { + this.onDelete(this.media!!) + } + }) + }.width('100%').aspectRatio(this.rowCount === 1 ? 1.715 : this.rowCount === 2 ? 0.677 : 1) + + Text(this.media?.title) + .textAlign(TextAlign.Center) + .fontColor($r('app.color.color_50ffffff')) + .fontSize(12) + .maxLines(2) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({ top: 10 }) + .visibility(this.isWxVideo ? Visibility.None : Visibility.Visible) + } + } +} + +@ComponentV2 +export struct ImageMaterialItemView { + @Param media?: ImageMaterial = undefined; + @Param rowCount: number = 1; + @Param isWxVideo: boolean = false; + @Param onDelete?: (media: ImageMaterial) => void = undefined + + build() { + Column() { + RelativeContainer() { + Image(this.media?.url) + .width('100%') + .height('100%') + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .id('iv_thumb') + + Image(this.media?.isChecked ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')) + .width(18) + .height(18) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .margin({ top: 6, right: 6 }) + + Stack() { + Image($r('app.media.ic_delete_material')).height(18).width(18) + } + .width('100%') + .height(34) + .alignRules({ + bottom: {anchor: '__container__', align: VerticalAlign.Bottom} + }) + .borderRadius({ bottomLeft: 6, bottomRight: 6 }) + .backdropBlur(20) + .visibility(this.isWxVideo ? Visibility.Visible : Visibility.None) + .onClick(() => { + if (this.onDelete) { + this.onDelete(this.media!!) + } + }) + }.width('100%').aspectRatio(this.rowCount === 1 ? 1.715 : this.rowCount === 2 ? 0.677 : 1) + } + } +} + +@ComponentV2 +export struct AudioMaterialItemView { + @Param media?: AudioMaterial = undefined; + + build() { + Row() { + Text(this.media?.title) + .layoutWeight(1) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .maxLines(2) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + + Image(this.media?.isChecked ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')) + .width(18).height(18).margin({ left: 10 }) + } + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 12, + top: 16, + right: 12, + bottom: 16 + }) + } +} + +@ComponentV2 +export struct TextMaterialItemView { + @Param media?: TextMaterial = undefined; + + build() { + Row() { + Text(this.media?.desc) + .layoutWeight(1) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(14) + + Image(this.media?.isChecked ? $r('app.media.ic_check_true') : $r('app.media.ic_check_false')) + .width(18).height(18).margin({ left: 10 }) + } + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .padding({ + left: 12, + top: 16, + right: 12, + bottom: 16 + }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/RecordItemView.ets b/entry/src/main/ets/view/RecordItemView.ets new file mode 100644 index 0000000..f063a5f --- /dev/null +++ b/entry/src/main/ets/view/RecordItemView.ets @@ -0,0 +1,224 @@ +import { RouterUrls } from '../common/RouterUrls'; +import { MediaRecordEntity } from '../entity/MediaRecordEntity'; +import { router } from '@kit.ArkUI'; +import { AppUtil, DateUtil, StrUtil } from '@pura/harmony-utils'; +import { ShareManager } from '../manager/ShareManager'; +import { Want } from '@kit.AbilityKit'; +import { SimpleTipDialog } from '../dialog/SimpleTipDialog'; +import { PrefUtils } from '../utils/PrefUtils'; +import { WantUtils } from '../utils/WantUtils'; + +@ComponentV2 +export struct VideoRecordItemView { + @Param onShare?: (entity: MediaRecordEntity) => void = undefined + @Param onDelete?: (entity: MediaRecordEntity) => void = undefined + @Param media?: MediaRecordEntity = undefined; + @Param rowCount: number = 1; + + build() { + RelativeContainer() { + Image(this.media?.thumb) + .width('100%') + .height('100%') + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .id('iv_thumb') + + Image($r('app.media.ic_play_video')).width(50).height(50) + .alignRules({ + left: { anchor: 'iv_thumb', align: HorizontalAlign.Start }, + top: { anchor: 'iv_thumb', align: VerticalAlign.Top }, + right: { anchor: 'iv_thumb', align: HorizontalAlign.End }, + bottom: { anchor: 'iv_thumb', align: VerticalAlign.Bottom }, + }) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ + url: RouterUrls.VIDEO_PLAYER_PAGE, + params: { title: '', uri: this.media?.uri, showActions: true } + }, router.RouterMode.Single) + }) + + Row() { + Stack() { + Image($r('app.media.ic_share_material')).height(18).width(18) + }.layoutWeight(1).height(34) + .onClick(() => { + if (StrUtil.isNotEmpty(this.media?.uri)) { + ShareManager.shareFile(this.media?.uri!!) + } + }) + + Stack() { + Image($r('app.media.ic_delete_material')).height(18).width(18) + }.layoutWeight(1).height(34) + .onClick(() => { + if (PrefUtils.getBoolean('show_record_delete_tip', true)) { + SimpleTipDialog.show(this.getUIContext(), { + title: '提示', content: '因系统限制,请到相册中手动删除', buttonText: '知道了', callback: { + confirm: () => { + WantUtils.toPhotoGallery() + PrefUtils.put('show_record_delete_tip', false) + } + } + }) + } else { + WantUtils.toPhotoGallery() + } + }) + } + .borderRadius({ bottomLeft: 6, bottomRight: 6 }) + .backdropBlur(20) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + .visibility(Visibility.Visible) + }.width('100%').aspectRatio(this.rowCount === 1 ? 1.715 : this.rowCount === 2 ? 0.677 : 1) + } +} + +@ComponentV2 +export struct ImageRecordItemView { + @Param onShare?: (entity: MediaRecordEntity) => void = undefined + @Param onDelete?: (entity: MediaRecordEntity) => void = undefined + @Param media?: MediaRecordEntity = undefined; + @Param rowCount: number = 1; + + build() { + RelativeContainer() { + Image(this.media?.uri) + .width('100%') + .height('100%') + .borderRadius(6) + .backgroundColor($r('app.color.color_222222')) + .onClick(() => { + this.getUIContext().getRouter().pushUrl({ url: RouterUrls.PHOTO_VIEW_PAGE, params: { uri : this.media?.uri } }) + }) + + Row() { + Stack() { + Image($r('app.media.ic_share_material')).height(18).width(18) + }.layoutWeight(1).height(34) + .onClick(() => { + if (StrUtil.isNotEmpty(this.media?.uri)) { + ShareManager.shareFile(this.media?.uri!!) + } + }) + + Stack() { + Image($r('app.media.ic_delete_material')).height(18).width(18) + }.layoutWeight(1).height(34) + .onClick(() => { + if (PrefUtils.getBoolean('show_record_delete_tip', true)) { + SimpleTipDialog.show(this.getUIContext(), { + title: '提示', content: '因系统限制,请到相册中手动删除', buttonText: '知道了', callback: { + confirm: () => { + WantUtils.toPhotoGallery() + PrefUtils.put('show_record_delete_tip', false) + } + } + }) + } else { + WantUtils.toPhotoGallery() + } + }) + } + .borderRadius({ bottomLeft: 6, bottomRight: 6 }) + .backdropBlur(20) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + }) + .visibility(Visibility.Visible) + }.width('100%').aspectRatio(this.rowCount === 1 ? 1.715 : this.rowCount === 2 ? 0.677 : 1) + } +} + +@ComponentV2 +export struct AudioRecordItemView { + @Param media?: MediaRecordEntity = undefined; + + build() { + RelativeContainer() { + Text(this.media?.name) + .layoutWeight(1) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(15) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Center } + }) + .margin({ bottom: 2 }) + + Text(this.formatTime(Math.trunc(this.media!!.duration / 1000))) + .fontColor($r('app.color.color_60ffffff')) + .fontSize(14) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Center } + }) + .margin({ top: 2 }) + .id('tv_duration') + + Text(DateUtil.getFormatDateStr(this.media!!.createTime, 'yyyy年MM月dd日 HH:mm:ss')) + .fontColor($r('app.color.color_30ffffff')) + .fontSize(12) + .alignRules({ + left: { anchor: 'tv_duration', align: HorizontalAlign.End }, + top: { anchor: 'tv_duration', align: VerticalAlign.Top }, + bottom: { anchor: 'tv_duration', align: VerticalAlign.Bottom } + }) + .margin({ left: 12 }) + + Image($r('app.media.ic_arrow_dp22')).width(24).height(24) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + + Divider().color($r('app.color.color_10ffffff')).width('100%').strokeWidth(1) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .height(74) + .onClick(() => { + this.getUIContext() + .getRouter() + .pushUrl({ + url: RouterUrls.AUDIO_PLAYER_PAGE, + params: { title: this.media?.name, uri: this.media?.uri, showActions: true } + }, router.RouterMode.Single) + }) + } + + formatTime(time: number): string { + let minute: number = 0 + let second: number = 0 + if (time > 60) { + minute = Math.trunc(time / 60) + second = time % 60 + if (minute < 10) { + if (second < 10) { + return `0${minute}:0${second}` + } else { + return `0${minute}:${second}` + } + } else { + if (second < 10) { + return `${minute}:0${second}` + } else { + return `${minute}:${second}` + } + } + } else { + second = time + if (second < 10) { + return `00:0${second}` + } else { + return `00:${second}` + } + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/RectCropView.ets b/entry/src/main/ets/view/RectCropView.ets new file mode 100644 index 0000000..6b50bc6 --- /dev/null +++ b/entry/src/main/ets/view/RectCropView.ets @@ -0,0 +1,218 @@ + +export interface RectPosition { + x: number; + y: number; + height: number; + width: number; +} + +export enum ActionType { + topLeft, + topRight, + bottomLeft, + bottomRight, + move +} + +export interface Position { + x: number; + y: number; +} + +@ComponentV2 +export struct RectCropView { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private canvasContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + private actionType: ActionType = ActionType.move; + private touchPosition: Position = { x: 0, y: 0 }; + private sw: number = 0; //图片展示框固定宽度 + private sh: number = 0; //图片展示框固定高度 + + @Param onRectChange?: (rect: RectPosition) => void = undefined + + @Local clipRect: RectPosition = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + + @Local initPosition: Position = { + x: 0, + y: 0 + } + + build() { + Stack({ alignContent: Alignment.TopStart }) { + // 裁剪框 + Canvas(this.canvasContext) + .position({ + x: this.clipRect.x, + y: this.clipRect.y + }) + .width(this.clipRect.width) + .height(this.clipRect.height) + .onReady(() => { + this.drawClipImage() + }) + .onTouch(event => { + if (event.type === TouchType.Down) { + this.isMove(event.target.area, event.touches[0]); + this.touchPosition = { + x: event.touches[0].screenX, + y: event.touches[0].screenY + } + } else if (event.type === TouchType.Move) { + let moveX = event.changedTouches[0].screenX - this.touchPosition.x; + let moveY = event.changedTouches[0].screenY - this.touchPosition.y; + this.touchPosition = { + x: event.changedTouches[0].screenX, + y: event.changedTouches[0].screenY + } + this.moveClipCanvas(moveX, moveY); + } + }) + } + .width('100%') + .height('100%') + .onAreaChange((_oldArea, newArea) => { + this.sw = newArea.width as number + this.sh = newArea.height as number + this.clipRect.width = newArea.width as number + this.clipRect.height = newArea.height as number + this.moveClipCanvas(0, 0) + }) + } + + // 绘制裁剪框 + drawClipImage() { + this.canvasContext.clearRect(0, 0, this.clipRect.width, this.clipRect.height); + this.canvasContext.lineWidth = 6 + this.canvasContext.strokeStyle = Color.White + this.canvasContext.beginPath() + + this.canvasContext.moveTo(0, 20) + this.canvasContext.lineTo(0, 0); + this.canvasContext.lineTo(20, 0); + + this.canvasContext.moveTo(this.clipRect.width - 20, 0); + this.canvasContext.lineTo(this.clipRect.width, 0); + this.canvasContext.lineTo(this.clipRect.width, 20); + + this.canvasContext.moveTo(0, this.clipRect.height - 20); + this.canvasContext.lineTo(0, this.clipRect.height); + this.canvasContext.lineTo(20, this.clipRect.height); + + this.canvasContext.moveTo(this.clipRect.width - 20, this.clipRect.height); + this.canvasContext.lineTo(this.clipRect.width, this.clipRect.height); + this.canvasContext.lineTo(this.clipRect.width, this.clipRect.height - 20); + this.canvasContext.stroke() + + this.canvasContext.beginPath(); + this.canvasContext.lineWidth = 0.5; + let height = Math.round(this.clipRect.height / 3); + for (let index = 0; index <= 3; index++) { + let y = index === 3 ? this.clipRect.height : height * index; + this.canvasContext.moveTo(0, y); + this.canvasContext.lineTo(this.clipRect.width, y); + } + let width = Math.round(this.clipRect.width / 3); + for (let index = 0; index <= 3; index++) { + let x = index === 3 ? this.clipRect.width : width * index; + this.canvasContext.moveTo(x, 0); + this.canvasContext.lineTo(x, this.clipRect.height); + } + this.canvasContext.stroke(); + } + + // 裁剪框位置和大小变化 初始位置为图片的初始坐标 移动的坐标 + moveClipCanvas(moveX: number, moveY: number) { + let clipRect: RectPosition = { + x: this.clipRect.x, + y: this.clipRect.y, + width: this.clipRect.width, + height: this.clipRect.height + } + switch (this.actionType) { + case ActionType.move: + clipRect.x += moveX; + clipRect.y += moveY; + break; + case ActionType.topLeft: + clipRect.x += moveX; + clipRect.y += moveY; + clipRect.width += -moveX; + clipRect.height += -moveY; + break; + case ActionType.topRight: + clipRect.y += moveY; + clipRect.width += moveX; + clipRect.height += -moveY; + break; + case ActionType.bottomLeft: + clipRect.x += moveX; + clipRect.width += -moveX; + clipRect.height += moveY; + break; + case ActionType.bottomRight: + clipRect.width += moveX; + clipRect.height += moveY; + break; + default: + break; + } + + // 偏移坐标小于初始位置 + if (clipRect.x < this.initPosition.x) { + clipRect.x = this.initPosition.x; + } + + if (clipRect.y < this.initPosition.y) { + clipRect.y = this.initPosition.y; + } + + // 横坐标限制位置 + if (clipRect.width + clipRect.x > this.sw + this.initPosition.x) { + if (this.actionType === ActionType.move) { + clipRect.x = this.sw + this.initPosition.x - clipRect.width; + } else { + clipRect.width = this.sw + this.initPosition.x - clipRect.x; + } + } + + // 纵坐标限制 + if (clipRect.height + clipRect.y > this.sh + this.initPosition.y) { + if (this.actionType === ActionType.move) { + clipRect.y = this.sh + this.initPosition.y - clipRect.height; + } else { + clipRect.height = this.sh + this.initPosition.y - clipRect.y; + } + } + + //裁剪框位置大小 + this.clipRect = { + x: Math.round(clipRect.x), + y: Math.round(clipRect.y), + width: Math.max(Math.round(clipRect.width), 100), + height: Math.max(Math.round(clipRect.height), 50) + }; + if (this.onRectChange) { + this.onRectChange(this.clipRect) + } + } + + // 判断操作类型 + isMove(area: Area, touch: TouchObject) { + if (touch.x < 30 && touch.y < 30) { // 左上角 + this.actionType = ActionType.topLeft + } else if (touch.x < 30 && touch.y > (Number(area.height) - 30)) { // 左下 + this.actionType = ActionType.bottomLeft + } else if (touch.x > Number(area.width) - 30 && touch.y < 30) { // 右上 + this.actionType = ActionType.topRight + } else if (touch.x > Number(area.width) - 30 && touch.y > (Number(area.height) - 30)) { // 右下 + this.actionType = ActionType.bottomRight + } else { + this.actionType = ActionType.move + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/TextItemChildView.ets b/entry/src/main/ets/view/TextItemChildView.ets new file mode 100644 index 0000000..e964aa5 --- /dev/null +++ b/entry/src/main/ets/view/TextItemChildView.ets @@ -0,0 +1,28 @@ +@ComponentV2 +export struct TextItemChildView { + @Param text: string = ''; + @Param divider: boolean = true; + + build() { + Column() { + Row() { + Text(this.text) + .fontColor($r('app.color.color_90ffffff')) + .fontSize(14) + .layoutWeight(1) + + Image($r('app.media.ic_arrow_dp16')) + .width(16) + .height(16) + } + .layoutWeight(1) + + Divider() + .color($r('app.color.color_10ffffff')) + .strokeWidth(1) + .visibility(this.divider ? Visibility.Visible : Visibility.None) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/TextItemView.ets b/entry/src/main/ets/view/TextItemView.ets new file mode 100644 index 0000000..352dd08 --- /dev/null +++ b/entry/src/main/ets/view/TextItemView.ets @@ -0,0 +1,35 @@ + +@ComponentV2 +export struct TextItemView { + @Param image?: Resource = undefined; + @Param leftText: string = ''; + @Param rightText: string = ''; + + build() { + Row() { + Image(this.image) + .width(20) + .height(20) + .margin({ left: 14 }) + .visibility(this.image ? Visibility.Visible : Visibility.None) + + Text(this.leftText) + .fontColor($r('app.color.color_80ffffff')) + .fontSize(15) + .layoutWeight(1) + .margin({ left: 10 }) + + Text(this.rightText) + .fontColor(Color.White) + .fontSize(15) + .margin({ right: 1 }) + + Image($r('app.media.ic_arrow_dp22')) + .margin({ right: 8 }) + .width(22) + .height(22) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/TitleBar.ets b/entry/src/main/ets/view/TitleBar.ets new file mode 100644 index 0000000..31e9d27 --- /dev/null +++ b/entry/src/main/ets/view/TitleBar.ets @@ -0,0 +1,77 @@ + +@ComponentV2 +export struct TitleBar { + @Param title: string = ''; + @Param isDark: boolean = false; + @Param showBack: boolean = true; + @Param rightText: string = '' + @Param rightColor: ResourceColor = Color.White + @Param rightIcon?: Resource = undefined + @Param onRightClick?: () => void = undefined + + @Param onBackClick?: () => void = undefined; + + build() { + RelativeContainer() { + Button({ type: ButtonType.Circle, stateEffect: true }) { + Image(this.isDark ? $r('app.media.ic_back') : $r('app.media.ic_black_back')).width(24).height(24) + } + .width(40) + .height(40) + .margin({ left: 10 }) + .alignRules({ + left: { anchor: '__container__', align: HorizontalAlign.Start }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + if (this.onBackClick) { + this.onBackClick(); + } else { + this.getUIContext().getRouter().back() + } + }) + .backgroundColor(Color.Transparent) + .visibility(this.showBack ? Visibility.Visible : Visibility.Hidden) + .id('btn_back') + + Text(this.title) + .fontColor(this.isDark ? $r('app.color.color_90ffffff') : Color.Black) + .fontSize(18) + .fontWeight(FontWeight.Medium) + .textAlign(TextAlign.Center) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .ellipsisMode(EllipsisMode.END) + .margin({right: 50}) + .alignRules({ + left: { anchor: 'btn_back', align: HorizontalAlign.End }, + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .width('auto') + + Row() { + if (this.rightIcon) { + Image(this.rightIcon).width(18).height(18) + } + Text(this.rightText).width('auto').fontSize(14).fontColor(this.rightColor) + } + .margin({right: 16}) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + right: { anchor: '__container__', align: HorizontalAlign.End }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + .onClick(() => { + if (this.onRightClick) { + this.onRightClick() + } + }) + } + .padding({top: 50}) + .width('100%') + .height(100) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/VipMealItemView.ets b/entry/src/main/ets/view/VipMealItemView.ets new file mode 100644 index 0000000..72800c4 --- /dev/null +++ b/entry/src/main/ets/view/VipMealItemView.ets @@ -0,0 +1,84 @@ +import { NumberUtil, StrUtil } from "@pura/harmony-utils"; +import { VipMealEntity } from "../entity/VipMealEntity"; + +@ComponentV2 +export struct VipMealItemView { + @Param entity: VipMealEntity = new VipMealEntity(); + @Param isChecked: boolean = false; + @Param isGrid: boolean = true; + + build() { + RelativeContainer() { + Column() { + Text(this.entity.goods_name) + .fontColor(this.isChecked ? Color.White : '#ABABAB') + .fontSize(this.isChecked ? 15 : 12) + .fontWeight(this.isChecked ? FontWeight.Medium : FontWeight.Regular) + .margin({ top: this.isChecked ? 18 : 12 }) + Text() { + Span('¥').fontSize(this.isChecked ? 12 : 10) + Span(this.entity.price).fontSize(this.isChecked ? 28: 22) + } + .fontColor(this.isChecked ? '#94F2FE' : '#EAEAEA') + .fontWeight(FontWeight.Medium) + .margin({ top: this.isChecked ? 10 : 4 }) + + Text() { + Span('¥' + this.entity.origin_price).fontColor(this.isChecked ? $r('app.color.color_30ffffff') : '#6B6B6B').fontSize(this.isChecked ? 13 : 10) + .decoration({ type: TextDecorationType.LineThrough, color: this.isChecked ? $r('app.color.color_30ffffff') : '#6B6B6B' }) + } + .margin({ top:this.isChecked ? 5 : 2 }) + + Text('立省¥' + + (NumberUtil.toNumber(this.entity.origin_price) - NumberUtil.toNumber(this.entity.price))) + .width('100%') + .height(this.isChecked ? 28 : 22) + .textAlign(TextAlign.Center) + .fontColor(this.isChecked ? $r('app.color.color_90ffffff') : $r('app.color.color_80ffffff')) + .fontSize(this.isChecked ? 12 : 10) + .backgroundColor(this.isChecked ? '#181331' : '#4B4B53') + .borderRadius({bottomLeft: this.isChecked ? 10 : 8, bottomRight: this.isChecked ? 10 : 8}) + .margin({ top: 10 }) + } + .height('auto') + .linearGradient({ + colors: [[this.isChecked ? '#3F2D67' : Color.Transparent, 0.0], [this.isChecked ? '#202443' : Color.Transparent, 1.0]], + direction: GradientDirection.Right + }) + .backgroundColor(this.isChecked ? Color.Transparent : '#2B2B38') + .borderRadius(this.isChecked ? 10 : 8) + .borderWidth(1) + .borderColor(this.isChecked ? '#94F2FE' : Color.Transparent) + .margin({top: this.isChecked ? 11 : 9}) + .alignRules({ + top: {anchor: '__container__', align: VerticalAlign.Top}, + bottom: {anchor: '__container__', align: VerticalAlign.Bottom}, + }) + .id('layout_content') + + Row() { + Image($r('app.media.ic_vip_fire_tag')).width(this.isChecked ? 14 : 12).height(this.isChecked ? 14 : 12) + Text(this.entity.tips).fontColor(Color.White).fontSize(this.isChecked ? 12 : 10).margin({ left: 2 }) + } + .width('auto') + .height(this.isChecked ? 22 : 18) + .padding({left: this.isChecked ? 4 : 2, right: this.isChecked ? 6 : 4}) + .margin({top: this.isChecked ? -11 : -9}) + .borderRadius({ + topLeft: 9, + topRight: 2, + bottomLeft: 2, + bottomRight: 9 + }) + .alignRules({ + top: {anchor: 'layout_content', align: VerticalAlign.Top} + }) + .backgroundColor('#F94747') + .visibility(StrUtil.isNotEmpty(this.entity.tips) ? Visibility.Visible : Visibility.None) + } + .width(this.isGrid ? 'auto' : this.isChecked ? 125 : 110) + .height(148) + .padding({left: this.isChecked ? 0 : 5, right: this.isChecked ? 0 : 5}) + .margin({ left: 6, right: 6 }) + } +} \ No newline at end of file diff --git a/entry/src/main/ets/view/WaterMarkerView.ets b/entry/src/main/ets/view/WaterMarkerView.ets new file mode 100644 index 0000000..7d915f0 --- /dev/null +++ b/entry/src/main/ets/view/WaterMarkerView.ets @@ -0,0 +1,239 @@ +import { StrUtil } from '@pura/harmony-utils'; +import { ActionType, Position, RectPosition } from './RectCropView'; + +@ComponentV2 +export struct WaterMarkerView { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private canvasContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + private actionType: ActionType = ActionType.move; + private touchPosition: Position = { x: 0, y: 0 }; + private sw: number = 0; //图片展示框固定宽度 + private sh: number = 0; //图片展示框固定高度 + + @Param onRectChange?: (rect: RectPosition) => void = undefined + @Param onClose?: () => void = undefined + + @Param content: string = '' + @Param imagePath: string = '' + + @Local clipRect: RectPosition = { + x: 0, + y: 0, + width: 80, + height: 40 + }; + @Local initPosition: Position = { + x: 0, + y: 0 + } + @Local fontSize: number = 15 + + build() { + Stack() { + if (StrUtil.isNotEmpty(this.content)) { + Text(this.content) + .position({ + x: this.clipRect.x, + y: this.clipRect.y + }) + .width(this.clipRect.width) + .height(this.clipRect.height) + .fontColor(Color.White) + .fontSize(this.fontSize) + .textAlign(TextAlign.Center) + .onSizeChange(() => { + this.caleTextSize() + }) + .id("textWaterMarker") + } else if (StrUtil.isNotEmpty(this.imagePath)) { + Image(this.imagePath) + .position({ + x: this.clipRect.x, + y: this.clipRect.y + }) + .width(this.clipRect.width) + .height(this.clipRect.height) + .id("imageWaterMarker") + } + + Image($r('app.media.ic_right_bottom_rect')) + .position({ + x: this.clipRect.x + this.clipRect.width - 9, + y: this.clipRect.y + this.clipRect.height - 9 + }) + .width(15) + .height(15) + + // 裁剪框 + Canvas(this.canvasContext) + .position({ + x: this.clipRect.x, + y: this.clipRect.y + }) + .width(this.clipRect.width) + .height(this.clipRect.height) + .onReady(() => { + this.drawClipImage() + }) + .onTouch(event => { + if (event.type === TouchType.Down) { + this.isMove(event.target.area, event.touches[0]); + this.touchPosition = { + x: event.touches[0].screenX, + y: event.touches[0].screenY + } + } else if (event.type === TouchType.Move) { + let moveX = event.changedTouches[0].screenX - this.touchPosition.x; + let moveY = event.changedTouches[0].screenY - this.touchPosition.y; + this.touchPosition = { + x: event.changedTouches[0].screenX, + y: event.changedTouches[0].screenY + } + this.moveClipCanvas(moveX, moveY); + } + }) + + Image($r('app.media.ic_left_top_rect')) + .position({ + x: this.clipRect.x - 7, + y: this.clipRect.y - 7 + }) + .width(16) + .height(16) + .onClick(() => { + if (this.onClose) { + this.onClose() + } + }) + } + .width('100%') + .height('100%') + .onAreaChange((_oldArea, newArea) => { + this.sw = newArea.width as number + this.sh = newArea.height as number + if (StrUtil.isNotEmpty(this.imagePath)) { + this.clipRect.width = 80 + this.clipRect.height = 80 + this.moveClipCanvas(0, 0) + } + }) + } + + // 绘制裁剪框 + drawClipImage() { + this.canvasContext.clearRect(0, 0, this.clipRect.width, this.clipRect.height); + this.canvasContext.lineWidth = 2 + this.canvasContext.strokeStyle = Color.White + this.canvasContext.beginPath() + this.canvasContext.rect(0, 0, this.clipRect.width, this.clipRect.height) + this.canvasContext.stroke() + } + + // 裁剪框位置和大小变化 初始位置为图片的初始坐标 移动的坐标 + moveClipCanvas(moveX: number, moveY: number) { + let clipRect: RectPosition = { + x: this.clipRect.x, + y: this.clipRect.y, + width: this.clipRect.width, + height: this.clipRect.height + } + switch (this.actionType) { + case ActionType.move: + clipRect.x += moveX; + clipRect.y += moveY; + break; + case ActionType.topLeft: + clipRect.x += moveX; + clipRect.y += moveY; + clipRect.width += -moveX; + clipRect.height += -moveY; + break; + case ActionType.topRight: + clipRect.y += moveY; + clipRect.width += moveX; + clipRect.height += -moveY; + break; + case ActionType.bottomLeft: + clipRect.x += moveX; + clipRect.width += -moveX; + clipRect.height += moveY; + break; + case ActionType.bottomRight: + clipRect.width += moveX; + clipRect.height += moveY; + break; + default: + break; + } + + // 偏移坐标小于初始位置 + if (clipRect.x < this.initPosition.x) { + clipRect.x = this.initPosition.x; + } + + if (clipRect.y < this.initPosition.y) { + clipRect.y = this.initPosition.y; + } + + // 横坐标限制位置 + if (clipRect.width + clipRect.x > this.sw + this.initPosition.x) { + if (this.actionType === ActionType.move) { + clipRect.x = this.sw + this.initPosition.x - clipRect.width; + } else { + clipRect.width = this.sw + this.initPosition.x - clipRect.x; + } + } + + // 纵坐标限制 + if (clipRect.height + clipRect.y > this.sh + this.initPosition.y) { + if (this.actionType === ActionType.move) { + clipRect.y = this.sh + this.initPosition.y - clipRect.height; + } else { + clipRect.height = this.sh + this.initPosition.y - clipRect.y; + } + } + + //裁剪框位置大小 + this.clipRect = { + x: Math.round(clipRect.x), + y: Math.round(clipRect.y), + width: Math.max(Math.round(clipRect.width), StrUtil.isNotEmpty(this.content) ? 80 : 40), + height: Math.max(Math.round(clipRect.height), 40) + }; + + if (this.onRectChange) { + this.onRectChange(this.clipRect) + } + } + + // 判断操作类型 + isMove(area: Area, touch: TouchObject) { + if (touch.x < 30 && touch.y < 30) { // 左上角 + this.actionType = ActionType.topLeft + } else if (touch.x < 30 && touch.y > (Number(area.height) - 30)) { // 左下 + this.actionType = ActionType.bottomLeft + } else if (touch.x > Number(area.width) - 30 && touch.y < 30) { // 右上 + this.actionType = ActionType.topRight + } else if (touch.x > Number(area.width) - 30 && touch.y > (Number(area.height) - 30)) { // 右下 + this.actionType = ActionType.bottomRight + } else { + this.actionType = ActionType.move + } + } + + // 缩放文字大小 + caleTextSize() { + let textSize = this.getUIContext().getMeasureUtils().measureTextSize({ + textContent: this.content, + fontSize: this.fontSize + }) + let textWidth = textSize.width + let textHeight = textSize.height + let ratioW = vp2px(this.clipRect.width - 10) / (textWidth as number) + let ratioH = vp2px(this.clipRect.height - 10) / (textHeight as number) + let fontSize = Math.floor(this.fontSize * Math.min(ratioW, ratioH)) + if (fontSize > 8) { + this.fontSize = fontSize + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/AuthViewModel.ets b/entry/src/main/ets/viewModel/AuthViewModel.ets new file mode 100644 index 0000000..696ec41 --- /dev/null +++ b/entry/src/main/ets/viewModel/AuthViewModel.ets @@ -0,0 +1,29 @@ +import { plainToInstance } from "class-transformer"; +import { VipPermissionEntity } from "../entity/VipPermissionEntity"; +import { apiService } from "../net/ApiService"; +import { ToastUtils } from "../utils/ToastUtils"; +import { BaseViewModel } from "./BaseViewModel"; + +@ObservedV2 +export class AuthViewModel extends BaseViewModel { + @Trace permissionInfo?: VipPermissionEntity + @Trace errorCode: number = 0; + + async checkVip() { + this.showLoading(); + try { + const result = await apiService.checkPermission('download'); + if (result.isSuccess()) { + this.permissionInfo = plainToInstance(VipPermissionEntity, result.data); + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true); + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/BaseViewModel.ets b/entry/src/main/ets/viewModel/BaseViewModel.ets new file mode 100644 index 0000000..6580dde --- /dev/null +++ b/entry/src/main/ets/viewModel/BaseViewModel.ets @@ -0,0 +1,17 @@ +import { LoadingDialog } from "../dialog/LoadingDialog"; + +export class BaseViewModel { + ctx: UIContext; + + constructor(context: UIContext) { + this.ctx = context; + } + + showLoading(cancelable: boolean = false) { + LoadingDialog.show(this.ctx, cancelable); + } + + dismissLoading() { + LoadingDialog.dismiss(); + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/BindAccountViewModel.ets b/entry/src/main/ets/viewModel/BindAccountViewModel.ets new file mode 100644 index 0000000..9e25a46 --- /dev/null +++ b/entry/src/main/ets/viewModel/BindAccountViewModel.ets @@ -0,0 +1,65 @@ +import { plainToInstance } from 'class-transformer'; +import { UserEntity } from '../entity/UserEntity'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export default class BindAccountViewModel extends BaseViewModel { + @Trace userEntity?: UserEntity; + @Trace bindInfo?: object; + @Trace unbindInfo?: string; + + async userinfo() { + this.showLoading(); + try { + const result = await apiService.userinfo(); + if (result.isSuccess()) { + this.userEntity = plainToInstance(UserEntity, result.data); + LoginManager.setUserInfo(this.userEntity); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async bindWx(code: string) { + this.showLoading(); + try { + const result = await apiService.loginByWX(code, true); + if (result.isSuccess()) { + this.bindInfo = new Object(); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async unbind(loginType: string) { + this.showLoading(); + try { + const result = await apiService.unbind(loginType); + if (result.isSuccess()) { + this.unbindInfo = loginType; + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/DiamondViewModel.ets b/entry/src/main/ets/viewModel/DiamondViewModel.ets new file mode 100644 index 0000000..e32a83b --- /dev/null +++ b/entry/src/main/ets/viewModel/DiamondViewModel.ets @@ -0,0 +1,107 @@ +import { plainToInstance } from "class-transformer"; +import { DiamondDetailEntity } from "../entity/DiamondDetailEntity"; +import { OrderEntity } from "../entity/OrderEntity"; +import { PayOrderEntity } from "../entity/OrderPayEntity"; +import { VipMealEntity } from "../entity/VipMealEntity"; +import { apiService } from "../net/ApiService"; +import { ToastUtils } from "../utils/ToastUtils"; +import { BaseViewModel } from "./BaseViewModel"; + +@ObservedV2 +export class DiamondViewModel extends BaseViewModel { + @Trace diamondInfo?: DiamondDetailEntity + @Trace goodsList?: Array; + @Trace payOrderEntity?: PayOrderEntity; + @Trace orderInfoEntity?: OrderEntity; + + private intervalId = 0 + + async getDiamondInfo() { + this.showLoading(); + try { + const result = await apiService.getDiamondInfo(); + if (result.isSuccess()) { + this.diamondInfo = plainToInstance(DiamondDetailEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async mealList() { + this.showLoading(); + try { + const result = await apiService.goodsList('recharge'); + if (result.isSuccess()) { + this.goodsList = plainToInstance(VipMealEntity, result.data as Array); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async createOrder(goodsId: string, payType: string, source: string, coupon: string){ + this.showLoading(); + try { + const result = await apiService.createOrder(goodsId, payType, source, coupon); + if(result.isSuccess()) { + this.payOrderEntity = plainToInstance(PayOrderEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async getOrderInfo(orderId: string) { + this.showLoading(true) + this.cancelInterval() + try { + let count = 10; + this.intervalId = setInterval(async () => { + if (count > 0) { + count--; + const result = await apiService.getOrderInfo(orderId); + if (result.isSuccess()) { + this.orderInfoEntity = plainToInstance(OrderEntity, result.data); + if (this.orderInfoEntity.status == '2') { + this.dismissLoading() + this.cancelInterval() + } + } else { + ToastUtils.show(result.message, true); + this.dismissLoading() + this.cancelInterval() + } + } else { + this.dismissLoading() + this.cancelInterval() + } + }, 2000) + } catch (e) { + console.log(e); + this.dismissLoading() + this.cancelInterval() + } + } + + cancelInterval() { + if (this.intervalId !== 0) { + clearInterval(this.intervalId) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/DownloadHistoryViewModel.ets b/entry/src/main/ets/viewModel/DownloadHistoryViewModel.ets new file mode 100644 index 0000000..d8d2469 --- /dev/null +++ b/entry/src/main/ets/viewModel/DownloadHistoryViewModel.ets @@ -0,0 +1,45 @@ +import { plainToInstance } from 'class-transformer'; +import { DownloadHistoryEntity } from '../entity/DownloadHistoryEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class DownloadHistoryViewModel extends BaseViewModel { + @Trace getHistory?: Array; + @Trace deleteHistory?: object; + + async getHistoryList(page: string = '1', startTime: string, endTime: string) { + this.showLoading(); + try { + const result = await apiService.getDownloadHistoryList(page, startTime, endTime); + if (result.isSuccess()) { + this.getHistory = plainToInstance(DownloadHistoryEntity, result.data!!['items'] as Array); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async deleteHistoryList(startTime: string, endTime: string) { + this.showLoading(); + try { + const result = await apiService.deleteDownloadHistory(startTime, endTime); + if (result.isSuccess()) { + this.deleteHistory = new Object(); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/FeedbackViewModel.ets b/entry/src/main/ets/viewModel/FeedbackViewModel.ets new file mode 100644 index 0000000..ef4bc32 --- /dev/null +++ b/entry/src/main/ets/viewModel/FeedbackViewModel.ets @@ -0,0 +1,78 @@ +import { Base64Util, FileUtil } from '@pura/harmony-utils'; +import { plainToInstance } from 'class-transformer'; +import { UploadImgEntity } from '../entity/UploadImgEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; +import { fileIo } from '@kit.CoreFileKit'; + +@ObservedV2 +export class FeedbackViewModel extends BaseViewModel { + @Trace feedback?: object + + async sendFeedback(type: string, content: string, contact: string, images: Array) { + this.showLoading(); + try { + const result = await apiService.feedback(type, content, contact, images) + if (result.isSuccess()) { + this.feedback = new Object() + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async uploadImages(photos: Array): Promise> { + this.showLoading(); + let uploadList = new Array() + for (let i = 0;i < photos.length;i++) { + let imageEntity = await this.uploadImage(photos[i]) + if (imageEntity) { + uploadList.push(imageEntity.url) + } else { + break + } + } + this.dismissLoading(); + if (uploadList.length === photos.length) { + return Promise.resolve(uploadList) + } else { + ToastUtils.show('图片上传失败') + return Promise.reject() + } + } + + async uploadImage(uri: string): Promise { + try { + let file = FileUtil.openSync(uri, fileIo.OpenMode.READ_ONLY); + // 复制文件到缓存目录下 + let cacheFilePath = FileUtil.getCacheDirPath() + '/' + FileUtil.getFileName(uri) + FileUtil.copyFileSync(file.fd, cacheFilePath) + // 读取文件为ArrayBuffer + const file2 = FileUtil.openSync(cacheFilePath, 0o2); + const stat = FileUtil.lstatSync(cacheFilePath); + const buffer = new ArrayBuffer(stat.size); + FileUtil.readSync(file2.fd, buffer); + FileUtil.fsyncSync(file2.fd); + FileUtil.closeSync(file2.fd); + + const base64Str = Base64Util.encodeToStrSync(new Uint8Array(buffer)) + + const result = await apiService.uploadImage(base64Str, 'feedback'); + if (result.isSuccess()) { + const imageEntity = plainToInstance(UploadImgEntity, result.data); + return Promise.resolve(imageEntity) + } else { + return Promise.resolve(null) + } + } catch (e) { + console.log(e); + return Promise.resolve(null) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/HomeViewModel.ets b/entry/src/main/ets/viewModel/HomeViewModel.ets new file mode 100644 index 0000000..7722481 --- /dev/null +++ b/entry/src/main/ets/viewModel/HomeViewModel.ets @@ -0,0 +1,40 @@ +import { plainToInstance } from 'class-transformer'; +import { MaterialEntity } from '../entity/MaterialEntity'; +import { NoticeEntity } from '../entity/NoticeEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class HomeViewModel extends BaseViewModel { + @Trace noticeEntity?: NoticeEntity; + @Trace materialList?: Array; + + async noticeList() { + try { + const result = await apiService.noticeList(); + if (result.isSuccess()) { + this.noticeEntity = plainToInstance(NoticeEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + } catch (e) { + console.log(e); + ToastUtils.show(e); + } + } + + async getMaterialList(page: string) { + try { + const result = await apiService.getMaterialList(page); + if (result.isSuccess()) { + this.materialList = plainToInstance(MaterialEntity, result.data!!['items'] as Array); + } else { + ToastUtils.show(result.message, true); + } + } catch (e) { + console.log(e); + ToastUtils.show(e); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/LinkRecognizeViewModel.ets b/entry/src/main/ets/viewModel/LinkRecognizeViewModel.ets new file mode 100644 index 0000000..84bdb79 --- /dev/null +++ b/entry/src/main/ets/viewModel/LinkRecognizeViewModel.ets @@ -0,0 +1,95 @@ +import { plainToInstance } from 'class-transformer'; +import { MaterialInfoEntity } from '../entity/MaterialInfoEntity'; +import { VipPermissionEntity } from '../entity/VipPermissionEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class LinkRecognizeViewModel extends BaseViewModel { + @Trace materialInfo?: MaterialInfoEntity; + @Trace analysisInfo?: MaterialInfoEntity; + @Trace permissionInfo?: VipPermissionEntity; + @Trace errorCode: number = 0; + + private intervalId = 0 + + async getMaterialInfo(content: string) { + this.showLoading(); + try { + const result = await apiService.getMaterialInfo(content); + if (result.isSuccess()) { + this.materialInfo = plainToInstance(MaterialInfoEntity, result.data); + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async analysisMaterial(logId: string, timeout: number) { + this.cancelInterval() + try { + let count = timeout; + this.intervalId = setInterval(async () => { + if (count > 0) { + count--; + const result = await apiService.analysisMaterial(logId); + if (result.isSuccess()) { + this.analysisInfo = plainToInstance(MaterialInfoEntity, result.data); + if (this.analysisInfo.material !== null || this.analysisInfo.status === -2) { + this.cancelInterval() + } + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true); + this.cancelInterval() + } + } else { + this.cancelInterval() + } + }, 1000) + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.cancelInterval() + } + } + + async reportStatus(logId: string, status: string, size: string = '', message: string = '') { + try { + apiService.reportDownLoadStatus(logId, status, size, message) + } catch (e) { + console.log(e); + } + } + + async checkVip() { + this.showLoading(); + try { + const result = await apiService.checkPermission('download'); + if (result.isSuccess()) { + this.permissionInfo = plainToInstance(VipPermissionEntity, result.data); + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true); + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + cancelInterval() { + if (this.intervalId !== 0) { + clearInterval(this.intervalId) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/LoginViewModel.ets b/entry/src/main/ets/viewModel/LoginViewModel.ets new file mode 100644 index 0000000..82e5639 --- /dev/null +++ b/entry/src/main/ets/viewModel/LoginViewModel.ets @@ -0,0 +1,64 @@ +import { plainToInstance } from 'class-transformer'; +import { LoginEntity } from '../entity/LoginEntity'; +import { SendCodeEntity } from '../entity/SendCodeEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export default class LoginViewModel extends BaseViewModel { + @Trace codeEntity?: SendCodeEntity; + @Trace phoneLoginEntity?: LoginEntity; + @Trace wxLoginEntity?: LoginEntity; + + async sendCode(phone: string) { + this.showLoading(); + try { + const result = await apiService.sendCode(phone); + if (result.isSuccess()) { + this.codeEntity = plainToInstance(SendCodeEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async phoneLogin(phone: string, code: string, timestamp: string) { + this.showLoading(); + try { + const result = await apiService.loginByPhone(phone, code, timestamp); + if (result.isSuccess()) { + this.phoneLoginEntity = plainToInstance(LoginEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async wxLogin(code: string) { + this.showLoading(); + try { + const result = await apiService.loginByWX(code); + if (result.isSuccess()) { + this.wxLoginEntity = plainToInstance(LoginEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/MainViewModel.ets b/entry/src/main/ets/viewModel/MainViewModel.ets new file mode 100644 index 0000000..1608411 --- /dev/null +++ b/entry/src/main/ets/viewModel/MainViewModel.ets @@ -0,0 +1,26 @@ +import { plainToInstance } from 'class-transformer'; +import { UserEntity } from '../entity/UserEntity'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class MainViewModel extends BaseViewModel { + @Trace userEntity?: UserEntity; + + async userinfo() { + try { + const result = await apiService.userinfo(); + if (result.isSuccess()) { + this.userEntity = plainToInstance(UserEntity, result.data); + LoginManager.setUserInfo(this.userEntity); + } else { + ToastUtils.show(result.message, true); + } + } catch (e) { + console.log(e); + ToastUtils.show(e); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/ManageAccountViewModel.ets b/entry/src/main/ets/viewModel/ManageAccountViewModel.ets new file mode 100644 index 0000000..90e827d --- /dev/null +++ b/entry/src/main/ets/viewModel/ManageAccountViewModel.ets @@ -0,0 +1,46 @@ +import { plainToInstance } from 'class-transformer'; +import { AccountEntity } from '../entity/AccountEntity'; +import { LoginEntity } from '../entity/LoginEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export default class ManageAccountViewModel extends BaseViewModel { + @Trace accounts?: Array; + @Trace loginEntity?: LoginEntity; + + async accountList() { + this.showLoading(); + try { + const result = await apiService.accountList('account'); + if (result.isSuccess()) { + this.accounts = plainToInstance(AccountEntity, result.data as Array); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async changeAccount(userId: string) { + this.showLoading(); + try { + const result = await apiService.changeAccount(userId) + if (result.isSuccess()) { + this.loginEntity = plainToInstance(LoginEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/MineViewModel.ets b/entry/src/main/ets/viewModel/MineViewModel.ets new file mode 100644 index 0000000..2f2a1a8 --- /dev/null +++ b/entry/src/main/ets/viewModel/MineViewModel.ets @@ -0,0 +1,64 @@ +import { plainToInstance } from 'class-transformer'; +import { DiamondDetailEntity } from '../entity/DiamondDetailEntity'; +import { UserEntity } from '../entity/UserEntity'; +import { WxServiceEntity } from '../entity/WxServiceEntity'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export default class MineViewModel extends BaseViewModel { + @Trace userEntity?: UserEntity + @Trace wxService?: WxServiceEntity + @Trace diamondInfo?: DiamondDetailEntity + + async userinfo() { + try { + const result = await apiService.userinfo(); + if (result.isSuccess()) { + this.userEntity = plainToInstance(UserEntity, result.data); + LoginManager.setUserInfo(this.userEntity); + } else { + ToastUtils.show(result.message, true); + } + } catch (e) { + console.log(e); + ToastUtils.show(e); + } + } + + async getWxService() { + this.showLoading() + try { + const result = await apiService.wxService() + if (result.isSuccess()) { + this.wxService = plainToInstance(WxServiceEntity, result.data) + } else { + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + console.log(e) + ToastUtils.show(e) + this.dismissLoading() + } + } + + async getDiamondInfo() { + this.showLoading(); + try { + const result = await apiService.getDiamondInfo(); + if (result.isSuccess()) { + this.diamondInfo = plainToInstance(DiamondDetailEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/QrcodeLoginViewModel.ets b/entry/src/main/ets/viewModel/QrcodeLoginViewModel.ets new file mode 100644 index 0000000..459e310 --- /dev/null +++ b/entry/src/main/ets/viewModel/QrcodeLoginViewModel.ets @@ -0,0 +1,25 @@ +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class QrcodeLoginViewModel extends BaseViewModel { + @Trace loginResult?: object + + async login(code: string) { + this.showLoading() + try { + const result = await apiService.loginByCode(code); + if (result.isSuccess()) { + this.loginResult = new Object() + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + this.dismissLoading() + console.debug(e) + ToastUtils.show(e) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/SettingsViewModel.ets b/entry/src/main/ets/viewModel/SettingsViewModel.ets new file mode 100644 index 0000000..38e2c0c --- /dev/null +++ b/entry/src/main/ets/viewModel/SettingsViewModel.ets @@ -0,0 +1,25 @@ +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class SettingsViewModel extends BaseViewModel { + @Trace destroy?: object; + + async userDestroy() { + this.showLoading(); + try { + const result = await apiService.userDestroy(); + if (result.isSuccess()) { + this.destroy = new Object(); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/UserSettingsViewModel.ets b/entry/src/main/ets/viewModel/UserSettingsViewModel.ets new file mode 100644 index 0000000..bfa9427 --- /dev/null +++ b/entry/src/main/ets/viewModel/UserSettingsViewModel.ets @@ -0,0 +1,82 @@ +import { Base64Util, FileUtil } from '@pura/harmony-utils'; +import { plainToInstance } from 'class-transformer'; +import { UploadImgEntity } from '../entity/UploadImgEntity'; +import { UserEntity } from '../entity/UserEntity'; +import { LoginManager } from '../manager/LoginGlobalManager'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; +import { fileIo } from '@kit.CoreFileKit'; + +@ObservedV2 +export class UserSettingsViewModel extends BaseViewModel { + @Trace userEntity?: UserEntity + @Trace imageEntity?: UploadImgEntity + @Trace update?: object + + async userinfo() { + this.showLoading() + try { + const result = await apiService.userinfo(); + if (result.isSuccess()) { + this.userEntity = plainToInstance(UserEntity, result.data); + LoginManager.setUserInfo(this.userEntity); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading() + } catch (e) { + this.dismissLoading() + console.log(e); + ToastUtils.show(e); + } + } + + async updateUserinfo(params: Record) { + this.showLoading() + try { + const result = await apiService.updateUserinfo(params); + if (result.isSuccess()) { + this.update = new Object() + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading() + } catch (e) { + this.dismissLoading() + console.log(e); + ToastUtils.show(e); + } + } + + async uploadImage(uri: string) { + this.showLoading() + try { + let file = FileUtil.openSync(uri, fileIo.OpenMode.READ_ONLY); + // 复制文件到缓存目录下 + let cacheFilePath = FileUtil.getCacheDirPath() + '/' + FileUtil.getFileName(uri) + FileUtil.copyFileSync(file.fd, cacheFilePath) + // 读取文件为ArrayBuffer + const file2 = FileUtil.openSync(cacheFilePath, 0o2); + const stat = FileUtil.lstatSync(cacheFilePath); + const buffer = new ArrayBuffer(stat.size); + FileUtil.readSync(file2.fd, buffer); + FileUtil.fsyncSync(file2.fd); + FileUtil.closeSync(file2.fd); + + const base64Str = Base64Util.encodeToStrSync(new Uint8Array(buffer)) + + const result = await apiService.uploadImage(base64Str, 'feedback'); + if (result.isSuccess()) { + this.imageEntity = plainToInstance(UploadImgEntity, result.data); + } else { + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + this.dismissLoading() + console.log(e); + ToastUtils.show(e); + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/VipViewModel.ets b/entry/src/main/ets/viewModel/VipViewModel.ets new file mode 100644 index 0000000..5dde1e6 --- /dev/null +++ b/entry/src/main/ets/viewModel/VipViewModel.ets @@ -0,0 +1,88 @@ +import { plainToInstance } from "class-transformer"; +import { OrderEntity } from "../entity/OrderEntity"; +import { PayOrderEntity as PayOrderEntity } from "../entity/OrderPayEntity"; +import { VipMealEntity } from "../entity/VipMealEntity"; +import { apiService } from "../net/ApiService"; +import { ToastUtils } from "../utils/ToastUtils"; +import { BaseViewModel } from "./BaseViewModel"; + +@ObservedV2 +export class VipViewModel extends BaseViewModel { + @Trace goodsList?: Array; + @Trace payOrderEntity?: PayOrderEntity; + @Trace orderInfoEntity?: OrderEntity; + + private intervalId = 0 + + async mealList() { + this.showLoading(); + try { + const result = await apiService.goodsList('member'); + if (result.isSuccess()) { + this.goodsList = plainToInstance(VipMealEntity, result.data as Array); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async createOrder(goodsId: string, payType: string, source: string, coupon: string){ + this.showLoading(); + try { + const result = await apiService.createOrder(goodsId, payType, source, coupon); + if(result.isSuccess()) { + this.payOrderEntity = plainToInstance(PayOrderEntity, result.data); + } else { + ToastUtils.show(result.message, true); + } + this.dismissLoading(); + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async getOrderInfo(orderId: string) { + this.showLoading(true) + this.cancelInterval() + try { + let count = 10; + this.intervalId = setInterval(async () => { + if (count > 0) { + count--; + const result = await apiService.getOrderInfo(orderId); + if (result.isSuccess()) { + this.orderInfoEntity = plainToInstance(OrderEntity, result.data); + if (this.orderInfoEntity.status == '2') { + this.dismissLoading() + this.cancelInterval() + } + } else { + ToastUtils.show(result.message, true); + this.dismissLoading() + this.cancelInterval() + } + } else { + this.dismissLoading() + this.cancelInterval() + } + }, 2000) + } catch (e) { + console.log(e); + this.dismissLoading() + this.cancelInterval() + } + } + + cancelInterval() { + if (this.intervalId !== 0) { + clearInterval(this.intervalId) + } + } +} \ No newline at end of file diff --git a/entry/src/main/ets/viewModel/WxVideoViewModel.ets b/entry/src/main/ets/viewModel/WxVideoViewModel.ets new file mode 100644 index 0000000..d3e47df --- /dev/null +++ b/entry/src/main/ets/viewModel/WxVideoViewModel.ets @@ -0,0 +1,112 @@ +import { plainToInstance } from 'class-transformer'; +import { VipPermissionEntity } from '../entity/VipPermissionEntity'; +import { WxServiceEntity } from '../entity/WxServiceEntity'; +import { WxVideoEntity } from '../entity/WxVideoEntity'; +import { apiService } from '../net/ApiService'; +import { ToastUtils } from '../utils/ToastUtils'; +import { BaseViewModel } from './BaseViewModel'; + +@ObservedV2 +export class WxVideoViewModel extends BaseViewModel { + @Trace wxVideo?: WxVideoEntity; + @Trace deleteVideo?: object; + @Trace permissionInfo?: VipPermissionEntity; + @Trace errorCode: number = 0; + @Trace wxService?: WxServiceEntity + @Trace wxUserinfo?: object + + async videoList(scene: string) { + this.showLoading() + try { + const result = await apiService.wxVideoList(scene) + if (result.isSuccess()) { + this.wxVideo = plainToInstance(WxVideoEntity, result.data); + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading() + } + } + + async deleteWxVideo(logId: string) { + this.showLoading() + try { + const result = await apiService.deleteWxVideo(logId) + if (result.isSuccess()) { + this.deleteVideo = new Object() + } else { + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading() + } + } + + async reportStatus(logId: string, status: string, size: string = '', message: string = '') { + try { + apiService.reportDownLoadStatus(logId, status, size, message) + } catch (e) { + console.log(e); + } + } + + async checkVip() { + this.showLoading(); + try { + const result = await apiService.checkPermission('download'); + if (result.isSuccess()) { + this.permissionInfo = plainToInstance(VipPermissionEntity, result.data); + } else { + this.errorCode = result.code + ToastUtils.show(result.message, true); + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async wxServiceInfo() { + this.showLoading() + try { + const result = await apiService.wxVideoService() + if (result.isSuccess()) { + this.wxService = plainToInstance(WxServiceEntity, result.data) + } else { + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } + + async bindWxUserinfo(code: string) { + this.showLoading() + try { + const result = await apiService.bindWxUserInfo(code) + if (result.isSuccess()) { + this.wxUserinfo = new Object() + } else { + ToastUtils.show(result.message, true) + } + this.dismissLoading() + } catch (e) { + console.log(e); + ToastUtils.show(e); + this.dismissLoading(); + } + } +} \ No newline at end of file diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 new file mode 100644 index 0000000..5715cc2 --- /dev/null +++ b/entry/src/main/module.json5 @@ -0,0 +1,107 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "phone", + "tablet" + ], + "querySchemes": [ + "https", + "alipays", + "weixin", + "wxopensdk" + ], + "metadata": [ + { + "name": "GETUI_APPID", + "value": "HE9nqTugoL8t42IrENGKf6" + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.INTERNET" + }, + { + "name": "ohos.permission.GET_NETWORK_INFO" + }, + { + "name": "ohos.permission.GET_WIFI_INFO" + }, + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" + }, + { + "name": "ohos.permission.RUNNING_LOCK" + }, + { + "name": "ohos.permission.STORE_PERSISTENT_DATA" + }, + { + "name": "ohos.permission.APP_TRACKING_CONSENT", + "reason": "$string:oaid_reason", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.READ_PASTEBOARD", + "reason": "$string:read_pasteboard_reason", + "usedScene": { + "abilities": [ + "EntryAbility" + ], + "when": "always" + } + } + ], + "srcEntry": "./ets/MyAbilityStage.ets", + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "label": "$string:EntryAbility_label", + "icon": "$media:layer_logo", + "startWindowIcon": "$media:ic_splash_logo", + "startWindowBackground": "$color:window_background", + "exported": true, + "orientation": "portrait", + "launchType": "singleton", + "removeMissionAfterTerminate": true, + "skills": [ + { + "entities": ["entity.system.home"], + "actions": ["action.system.home"] + }, + { + "entities": ["entity.system.default"], + "actions": ["action.system.view"] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/color.json b/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..fb2cdde --- /dev/null +++ b/entry/src/main/resources/base/element/color.json @@ -0,0 +1,106 @@ +{ + "color": [ + { + "name": "window_background", + "value": "#F3F5F9" + }, + { + "name": "color_466afd", + "value": "#466AFD" + }, + { + "name": "color_212226", + "value": "#212226" + }, + { + "name": "color_727686", + "value": "#727686" + }, + { + "name": "color_80859B", + "value": "#80859B" + }, + { + "name": "color_f1f2f6", + "value": "#F1F2F6" + }, + { + "name": "color_1a1a1a", + "value": "#1A1A1A" + }, + { + "name": "color_bcbcbc", + "value": "#BCBCBC" + }, + { + "name": "color_dfdfdf", + "value": "#DFDFDF" + }, + { + "name": "color_1b1b1b", + "value": "#1B1B1B" + }, + + + { + "name": "color_222222", + "value": "#222222" + }, + { + "name": "color_333333", + "value": "#333333" + }, + { + "name": "color_90ffffff", + "value": "#E5FFFFFF" + }, + { + "name": "color_80ffffff", + "value": "#CCFFFFFF" + }, + { + "name": "color_60ffffff", + "value": "#99FFFFFF" + }, + { + "name": "color_50ffffff", + "value": "#80FFFFFF" + }, + { + "name": "color_30ffffff", + "value": "#4DFFFFFF" + }, + { + "name": "color_10ffffff", + "value": "#1AFFFFFF" + }, + { + "name": "color_9c9c9c", + "value": "#9C9C9C" + }, + { + "name": "color_f0365e", + "value": "#F0365E" + }, + { + "name": "color_757575", + "value": "#757575" + }, + { + "name": "color_999999", + "value": "#999999" + }, + { + "name": "color_666666", + "value": "#666666" + }, + { + "name": "color_bebebe", + "value": "#BEBEBE" + }, + { + "name": "color_ededed", + "value": "#EDEDED" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/float.json b/entry/src/main/resources/base/element/float.json new file mode 100644 index 0000000..33ea223 --- /dev/null +++ b/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..30341a9 --- /dev/null +++ b/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "$string:app_name" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/media/ic_action_delete.webp b/entry/src/main/resources/base/media/ic_action_delete.webp new file mode 100644 index 0000000000000000000000000000000000000000..e26e00e382bfb99973964b01083e214f6577f82f GIT binary patch literal 1984 zcmV;x2S4~yNk&Gv2LJ$9MM6+kP&il$0000G0001$005N$06|PpNV)_700E%9{{Ndu z`^HA}DG`M&A}HkG$yIHeAtI&=l}7u0Uq3XCkBvjU|GwR*6w+cu@Bx$EaYJ(IfCBR1~cN}ci2PmpS_4~WeVUe_dn zZo#rPTM`E@XIeQ(Ek1GWJ8|&$YYCo4d{!Np#L?zJ&GOU{Te?XcZ|W_PD(+ZypHOnY z8go-4Bx@@|&6OsH=-|5Wd`_r3e}2K`JTAO5CDff>4Ra3j$%WI9WlEjt;9hBeK+xe9VVcB*)Q<==kLm&2_|*kr=tA||gjeQ-sdI(5M{zCzekw6m){XI=QQ$u9G8*fQ6SK^SiA zxU9M`B}|`QuqgDLF#dVS61O~O-CTBC5z`3swU`yv75i3I3&eebz%u(m@2jnS?9|{0K5+BL`K@S@} zSbGZ_x7MW&aB+}Ycjh%NUY}X#tt~OJta;agG{eM9f)fP|6Pj=mlrd3;4TInD@IAN* zTr;s?UW1Jj11t;@oAIiN15@QUgRG7NJqxGgTR3R(rvY&v1N$PJzPe)HstOjyH1=sR zE8Oy&b#vKm1%#fn?s*8Ty)b3l^a5Dy+A&yW?6|Cg@MDu*=HoC}&gI7J8s|9cz*AyZ z$phQunoBk1Gb|;LJ>CNwZ}q0}kb)O`0{MoKpa}(%7VvIWBSFWKZs~K_laF&I8Wo!dIvCneK!+ zaJ=in^EqAS&o8)uiXmBB(PO2_A)uu@R^6w?el_L>nu;ymbe^fVM4&C7RR^ZC%z>Ka zfx>*^+IJ^?zn0*E*1@tiTRLGm)5<}hx**kFAK2~Sbxjh0`rb3CTRl7VZl%t6ft5+6 zJDM%FwU~{%N)j0Bj!Uw7|FdpbW9XmntFjb#1CxD1L`)YdjrRM#erOyY8;5%TeY;U9 zq{WEf14jc^P&gpi0ssI|833IDDwY7206vjKoJl35BOxq!ILNRP328)m32+;XzFYq1 zY0gj_D9g2h`dFFYc(D(UmtXl`j-~gJ&7h=eRq~D3ye@nQzsj1XBnl?@v~+zLIY&m< zPq+i1wt0Ld6nscX50*s_2Upafo#gvh5eILgf-47S05w6_nD@*R9s=QEC;9`QIzluL z{rk+%khM#BN8(+IfCu=zX?t~ltqSCA={IQpcyU8+P&a7 zGQvnSxRo4NO^y`6w&jKdpHr#R;FD@xWJM99Ig$HKTHDZkhq1WXr5dFwdQvQft7e?M z6&(cI(;e6RW2Gd3yWGo092<6NJ$^$qqtc$EQo-lyng@?}=`S zJAQ9ouxerIeL`iibuRNkQUQy>a4~7eWE2V$(c`wiW@%>9yRe-JiMlag=eJAv3(s;B zE@W#TIg)-uFAIhE>M=?&u#kE>WYLAh<&yurr6~7gG1jcUF$4hSTQ5s}jWF$ryKcB>1TbaZKV=NZ z41YDS_%)%s=-@x{<5z&aisUecT?|afE)WWTbPgy=pe!wbNSwl?r>jxN{_($Q{Y6Mw zdBXG?zh`Z`RL=Q0zdzkm)I2fLDC5wSTlE2c@kBj)45msjEG|#~>^+)TDF1hM^`yWL S2{ag#8pPWHDnFor0001lA;TH~ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_action_share.webp b/entry/src/main/resources/base/media/ic_action_share.webp new file mode 100644 index 0000000000000000000000000000000000000000..db2f83ecd061adf6aa0ab1b0ca2ee7543ecd0b70 GIT binary patch literal 2076 zcmV+%2;=usNk&E#2mkIHeAtI&=l}7u0Uq3XCkBvjU|GwR*6w+cu@Bx$EaYJ(IfCBR1~cN}ci2PmpS_4~WeVUe_dn zZo#rPTM`E@XIeQ(Ek1GWJ8|&$YYCo4d{!Np#L?zJ&GOU{Te?XcZ|W_PD(+ZypHOnY z8go-4Bx@@|&6OsH=-|5Wd`_r3e}2K`JTAO5CDff>4Ra3j$%WI9WlEjt;9hBeK+xe9VVcB*)Q<==kLm&2_|*kr=tA||gjeQ-sdI(5M{zCzekw6m){XI=QQ$u9G8*fQ6SK^SiA zxU9M`B}|`QuqgDLF#dVS61O~O-CTBC5z`3swU`yv75i3I3&eebz%u(m@2jnS?9|{0K5+BL`K@S@} zSbGZ_x7MW&aB+}Ycjh%NUY}X#tt~OJta;agG{eM9f)fP|6Pj=mlrd3;4TInD@IAN* zTr;s?UW1Jj11t;@oAIiN15@QUgRG7NJqxGgTR3R(rvY&v1N$PJzPe)HstOjyH1=sR zE8Oy&b#vKm1%#fn?s*8Ty)b3l^a5Dy+A&yW?6|Cg@MDu*=HoC}&gI7J8s|9cz*AyZ z$phQunoBk1Gb|;LJ>CNwZ}q0}kb)O`0{MoKpa}(%7VvIWBSFWKZs~K_laF&I8Wo!dIvCneK!+ zaJ=in^EqAS&o8)uiXmBB(PO2_A)uu@R^6w?el_L>nu;ymbe^fVM4&C7RR^ZC%z>Ka zfx>*^+IJ^?zn0*E*1@tiTRLGm)5<}hx**kFAK2~Sbxjh0`rb3CTRl7VZl%t6ft5+6 zJDM%FwU~{%N)j0Bj!Uw7|FdpbW9XmntFjb#1CxD1L`)YdjrRM#erOyY8;5%TeY;U9 zq{WEf14jc^P&gno0{{SU7XY0BDwY7206vjKol2#nqamYFt6;Da326<#n2A8KZ}MfF zF^!shvow*jR`Bv@Mqnhm6Top7(I0AIZI*~VO#o)I!lIX<91`j2;;sq3fF2TGKIZl8 zD^El~XMnE3u}3Cv9o^^nueC&B0jOJjgJoeC5Bs4FGHwRl^Si8+0vs!=?8L#`o~F^b z`L5LHDwxbbUPJJ2syl^9$4=_NmM3)p2+nr$-mUkeU-ZS_m#^J9lSc{Ug0eBuihIN$ zbb){X{>cf=yte=n!u_2~x6xF%4?t&dv9on|$7ZJHatuiY!oIoHzqh^U!9j_wL7SIP z20?UdxiOoEg>evMJc~q<&J+Vy*Dg(tYHYRyxdo)cAc7S$?{+c}!Hw(@o?v4XhARE| zH6IjzO>Te<=8D_{sh@}b`SSbLghR;)*DtVUZV>l(9J%kG|JLUyP<9D@Pdis09q(wQ ztOOl5jl~$Gi3i>{9_Ko#1Pm=z+9s135B#q4?)) zpGDAvC|5B$tmav{0^yA&T0FK`b2S*^hEuXHWP`dMG~?^3e$bm3ibLk<9UE7gR2erd z6g}cQD4(@9P7-qp6ruVcOmxQN$k- z8#XIqqC-UVhZ+?xBptc6?W8GRekn2UboK9ZhvN5>ylrvMo9wEp6V}%Y0`IS7lWv-z zSU?OV$j&%_bhE)r_nHNklc6z+TA24~FXx=+>|8bd0NQuEvNBl{iBowI&HHRugLNJ~ zavh>+pCg(P@7O#dnx&wQ!Yl7=b%-@Gz>>fJw&Vr0tH?()Z%qNWd9TWHjC<5am+%Iz G0002AgZYR6 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_add_audio.png b/entry/src/main/resources/base/media/ic_add_audio.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8323287462151c665f0be2246c8458ebb0b282 GIT binary patch literal 7139 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 Lg6|z$0P-&Y89ZqF literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_add_video.png b/entry/src/main/resources/base/media/ic_add_video.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ed37988e9930d502528d6ec694918d54f0a36d GIT binary patch literal 1153 zcmeAS@N?(olHy`uVBq!ia0vp^%^=Ld1|-+bU6IDXz+&d<;uuoF_-2l6-xUXeR@;=8 z*+NPO6&vO#3moLMV3L$!ESlh9!E~gc)Axjjxr#}uftyoNb^5N|yXy8$^_KJ9zB_L3 z_qSfNf1EqQ&$ot;;cynq_Dm)=jT6PV9y016QdF{pC{KwS7^9cWvc_ObK?(*OEWap)W6Vz{gR%dPdY|H)I#Y5uIva6K_ z2`_RsEPvd1FgR-NRwn24W?NZ)o_UvEtr3;5l792DBH_c7u=KSDF5FD;Kfe0VgOf9Q zq8b&GUs)S7AMP`h+|Sn5v-15J9vl8i)=S>H^A2T_hoSTw;V1mwvOFIq(6sg~oGEm{(W1?p;<&NhzHl8@9@C%$gTx!*s zj689Zf(Wv=da_o@NielWT5}m(v66UEnZO~E_EzIS!0Uts&l?p3W^7%|;JmiEab7;# z;Xlts_pE>N?_iN<+54q(-c#4PZ_23ZyZZR(`?U3Dd2G!y%EMo+yuvMP>Z>aI-8K1T z)V2Ai+b&6pT@%|ce&03g?^U6;D$_XzR~Qo{vi7fib|68!e_>Wb;)=i9W-&LfwP{<$ z*tYQ7?W}u3ZS#$8rLXMgd$l`5C-(HNcFTPy1iIfBt=>QDV1d=#ye0QKmVEku|LOn# zTj%{%v+};aY2DJNkL(_O&t5tElEU*frp*uYg9Xi_*M&acbFbU{bg|B@u1ES2Iedp% zr7DheFds-z;ovrEIOxRXX2Q@sQ9t_?>wvh&g>jtA3K+iXWgS$ z+F}yFe!YHGl29NT9>4Lxh3oO*%bA;3@A%cl+P3fCE-P7ySw}=43nX+*OrEUSu&}e& zkdLuV!qRLelflvyoxytmURBA2uQH_rg4@p!9)1##{~xp-UQB)JupG- z)nmuThc_0RST`v8UOC>(*Yq$#!upFW16%F+vt>T)hkyM$lI{5gTe~DWM4f6L$nJ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_ali_pay.webp b/entry/src/main/resources/base/media/ic_ali_pay.webp new file mode 100644 index 0000000000000000000000000000000000000000..76da22e1c5ebebf384b5071d75de6d3ff77d15ef GIT binary patch literal 2008 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_area_bg.webp b/entry/src/main/resources/base/media/ic_area_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2cc2e53c057096c423c971a2c1fabcd0f0aed47 GIT binary patch literal 1110 zcmV-c1gZN{Nk&Fa1ONb6MM6+kP&il$0000G0000}002G!06|PpNFM?K01c3H+qSVi z`#yeNe>S_=sho69T6L*x{Q}!nx=&S%&bDnkuiuCF2A{t(Qb)uDpl374s-`HiuB)Na z%HqOUy7{b&p2-*shYCW0a4auinqgDdL%PAa01z76bhLXhNh>HXFNu{FSA{G)YuQ%T z6XC;vmId!!AL9|h=z)cfEfxHx*5

ujPXsaFiDA4mz0IeODdwCm9y-u<#K_ZS~6SiH@&vBqA=of&{;oXFlA&cAn1oL6O>Fu34*5(B$5$=(ymI7{k51NSURJ}`&I;clj$I%hi8Hy zI2$0y5?rR|t8WMBfzMTnav^d=iu)=(KW!&W4-;G_hjHIA$w68Oi5|*qQK3U8K{ zw?o|B0UG142e#whW{HTz!{Ksk_NjHCk{`5+1{4Fx?7s>+AMbMJ3ar%q6Hn+u zhz~gN&8y8S0I-=ba{KRTy^pL&jFxd(w7XuHQw8k(G=qh(e$8+I{Uk(R8hn5kd7kti zWo6pE^xypB$OxZ@w`A|Kt{Lp$n*Fd_fK4)7>)v)#m{Lc#x1zdWpWwf#H<}03XaZhj z3!#1ct(O)l>#PlsQARpR@GjM2Bvb z?nj+_QDtbpkHF*a0A9uDAG5kK0r>xiEF`WRAY18=4|@1o{t2Px<5t<@70~oYO^5)c z&vz{);z8kSWTs&zo5Xej$8v9&vwDX;be^^2o0jZl%X-Ui44PHI2mN&jRn66SIs>ug zV!r;9wd1p~q^UzhO^4g0ABZD3tCb6uw~+A3D?iib+)~FtwT{oU)Z^nP%G}{IIs7HL zWQu|r(aBBChIJoizX>67bUPXuh5POgd5%JjEy9zMESUnmqMJ2_6oXlebEvNG+(%5c z&$;6c-|^q9@qN{we%t;i<(L*C`EoJsJzVT%M9;4|qeklg|MObuw45WdqfMRwh=TYx cRWnnA3zaNvoAng-D|Y;V{myxQE*y)109K?Ip8x;= literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_arrow_dp16.png b/entry/src/main/resources/base/media/ic_arrow_dp16.png new file mode 100644 index 0000000000000000000000000000000000000000..c592d54af29cb835230f68ab796c0fe512ab95f7 GIT binary patch literal 454 zcmV;%0XhDOP)Px$fJsC_RA@u(nafHAF$_RY)NgR5qKG2u|9^xF5yXx74I*B_ySkA;2L>5*9!+9p zx}Kpq&1q>;q46P&$Il9ooxw#JP}KuqCnCEnkXZn#x({3dhrlQBBqEy(h`9i#z%{T} zg5Cmmz(zzg5@a%fs@gxc`sd#Q{Qw?;*GP!T02Z{Wo&Yz1snj0^aW5k8QCXM^VCvig zM?H4V(Qhm?LP8# wr$DpMtYgc_i0@pk(-DDpbF2W7t35Q=7t}8XKyG1)ivR!s07*qoM6N<$f{=>6!~g&Q literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_arrow_dp22.png b/entry/src/main/resources/base/media/ic_arrow_dp22.png new file mode 100644 index 0000000000000000000000000000000000000000..63db46e65cd59314fef463f53fd05c46d6756ebd GIT binary patch literal 549 zcmV+=0^0qFP)Px$-$_J4RCr$PnmtMcK@dh?DTt_u;0XlLNCXiB1rbEW$jIAy4lyti6-153b*hL#wt#bBzH#Z!f!NNS z>T;`XzY&pMi8Q1$T_r+Qclr~o(^e9y402q6P}Na7RGV3N0WnI4YEvw85SBVL>x~%* z4?1`OVXlKY2roLAf$*k-B?wnKn1Jx8Lsbx-b*K%(tq#>dc-NsOh)v+4^J@WlzK~#? z0V|zd6ln}v(&|uJ3+V3ZP^m%6w9hqbx~6@R|DG2hGQj{5AO>ZML_{JY5kp@vp+=|? nYJ?i&zCNQyM2(0VG1QQ67`gI8TXaKm00000NkvXXu0mjfr^w<| literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_audio_thumb.webp b/entry/src/main/resources/base/media/ic_audio_thumb.webp new file mode 100644 index 0000000000000000000000000000000000000000..d31ce818bf70e2a4602ac79c598a2398bb24f7de GIT binary patch literal 51568 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 \ No newline at end of file diff --git a/entry/src/main/resources/base/media/ic_bind_phone.webp b/entry/src/main/resources/base/media/ic_bind_phone.webp new file mode 100644 index 0000000000000000000000000000000000000000..cb57812639b82d6065cc3401a98dcfb7dd498fc3 GIT binary patch literal 1632 zcmV-m2A}y-Nk&Fk1^@t8MM6+kP&il$0000G00014003D406|PpNPz+X00EFA|DT&y zf3XFlO6ny-?H5$NtX8TC6(?Z005vTKVCbCg!1e9%FKxB`V%va#JK$TVb-QF{3R&Z5#Fgm4Ur+ zi^}arPQaS0;!@qjWwVP*H^3zr<1(J$GU2#zWRORY7eU?-@-GzmUj_M}5c%I5IpQEk zN#w|moQ(iyP}o@?+rwm^VQ1H*_Ymppz*P)#<%L`=0#~@mRXK1c0l52t+_6FKG68qS zfV+9X9Z2M^DQ>6t|LaZ@^Aztd^ccnPPoQvPJorQLbUMm*y689*6U}O>qG@RqTdf=_ zSc->bjbzB&mh^wzY0G6KN6jorjuS^EQzLoWjSFcpd3n*WNv??>bxE1TsQx2C(oLo- z{n(EX?^V)CQlswgAKyeyzE?NLd%jKzW!Yk_J%~`~+z#5cVwRC=nPG3_s+-+lJmGvY z4!WDw+=gvPm_h(nP&gp40{{RJ7XY0BDp~+q06v8{l1HT@p`kYxDrle(iE04GwVQtJ z(@Cy-cjN~}#`Z|D@VtfRyZblkpSZs;U(-I4eqcXrePaC%`T&1D|AE#)=u739`)lxj z`-SO+nz8-l!B6BM-#k>9xaZ6>p!ZV7nl6nLFeFsN&m&-jtnt!qGnEk0A*|FkGiF48 z3;EoVu#fSu?A?30hINNUf*D1o?K^p|W*g>B+m!!%l7)Et7@5fJl4;r823UpAJIx;C z7hA-@0RG#qFUjYCrmzMedCw>bV`(_TmwE0|Va%O~76PzZaRi%PN+7tfH#<)ZZ*HoW z&RxG0vh6&(B+(gz7jUzcN~yb_8BYs+w|ZXvfh5;B1gQW3|39mPim+Y2)#p(e|NR|PDK(VsFZW-vdBHpEWVd=jj+kSs#m;f!5A9Gju zu%4oTdiXyRe2*W&%7>%a&y)%ylHEPeh=|@c3|F&2eA%&Hh@k z9>zOIoB%`el7_yc`TREdQi4Ld_9UB z6x>ZOJX2Dz?eYdjPU$D#E%xPRVdYtvB+I+RO5+;H++9usTd#*&?iQrvc8EZorP=T) zW@AFtaX=)9sSS>)vl?Y4e0!?^hP{M?ae5SAruuIe&ABC}E>94qMGRvxFU9P}!=XAO zUPG*KtChuX=|WVjbYv(FG6PBiA|(f@lwmqc^My~W2C@Ib=#-x7Auju5el%iU*C9*+ z5fRY;&-@Irj4At4Ba9P-KPw@pas4@-Ti#?`wbk?QR?vfB*oPlNyfz literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_bind_wx.webp b/entry/src/main/resources/base/media/ic_bind_wx.webp new file mode 100644 index 0000000000000000000000000000000000000000..df05b6af1d95531e186dc68c1aae542233bdbfff GIT binary patch literal 1772 zcmVg!1e9%FKxB`V%va#JK$TVb-QF{3R&Z5#Fgm4Ur+ zi^}arPQaS0;!@qjWwVP*H^3zr<1(J$GU2#zWRORY7eU?-@-GzmUj_M}5c%I5IpQEk zN#w|moQ(iyP}o@?+rwm^VQ1H*_Ymppz*P)#<%L`=0#~@mRXK1c0l52t+_6FKG68qS zfV+9X9Z2M^DQ>6t|LaZ@^Aztd^ccnPPoQvPJorQLbUMm*y689*6U}O>qG@RqTdf=_ zSc->bjbzB&mh^wzY0G6KN6jorjuS^EQzLoWjSFcpd3n*WNv??>bxE1TsQx2C(oLo- z{n(EX?^V)CQlswgAKyeyzE?NLd%jKzW!Yk_J%~`~+z#5cVwRC=nPG3_s+-+lJmGvY z4!WDw+=gvPm_h(nP&gnw1ONaq7yz9CDp~+q06v8{lSic^p`kTatN@@8iEM2-RzGb2 zcIyP@{sWm)r6ex+{%-OC>Nmu{r3aV~+0Wa5dk;#!fFIAl-gT1t0C{Tu<9r)_1_zv5#H%|>AJL^tIH)m_S)xsrO;Q>$F^#u-J5N9H&$%#{!Z%>atWr^`x$NecoqIC?@KdLovh`p`QffxugN{<14d=3KOTVS=lgw1C5jUqbGQvc*MGQgBf z>U_A&9ftA1Sdsz=XtCK}U_g=N?;qkIQ=RD`{13#f`Z$);fV=Bdn28wX>*hQO!vfhj zl2Ngfb%N)Srt5X{WZyJ33cR#PE?J;^YCO7-->|9%{Z?;N%>@a)(F4CFa117>WnYsG zjr~=-SIS*|X-c%9=na%Jv$&OpE9YDa`~p4F?a?U!vG|x5tMU)RQa`T7HhBiYwfj$! z7sZMl!nJ^{{kTvdzBaZfE?(QnOPzjM zjSlr-L2v(7lze`Cjmic^q#>D2OR_KGop=|TD$$!w(zJxH7uJyHug&s71Z#B6m8@e4 zG^YDlhCj3GrPklGgKl;yFeuG!H3){|p)TI3i|_W4&aG3MI*zPgrombUJewN0{E?JZ z`d$YLNZk7Nm`Z4bv?XYnLR6t>_xdI1NaZ{ATzLZIkuyM+S$CyTUQFN3q9&UqG_PFf zTkg_|9anOwX=0mYdvuL&qv8y%#Tm}Q#UG^=To+N>6p$Rd76Oygj##%>i%TTOCpjfBvf|I^>k z*SfJGt5tC>sVdimykvH>|L2MS{*PkaIi%sPrR8y+2|1>MvbpBUd=MHxj$aPx3U}qz zQhyxM7ZHm$>pKs4X&Tc9b`Y}y(|n;(A=+q>ewSW@-Ii?6ixJK}8mWW#|ARgZM3Rj} zq0Pf>JBg(tJkcC_<;nfU?d)&=J+ O6(^#9-X*pG0000Vd1f>K literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_black_back.svg b/entry/src/main/resources/base/media/ic_black_back.svg new file mode 100644 index 0000000..c8965ac --- /dev/null +++ b/entry/src/main/resources/base/media/ic_black_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/entry/src/main/resources/base/media/ic_check_false.webp b/entry/src/main/resources/base/media/ic_check_false.webp new file mode 100644 index 0000000000000000000000000000000000000000..fa69c459b466919af0d0677054ca5ab225758d56 GIT binary patch literal 712 zcmV;(0yq6qNk&G%0ssJ4MM6+kP&il$0000G0000l001ul06|PpNRa^m00DqoYulpe zn}6L0DS$I6P6d_`Qvo@LXd+@FYM=<+4K<35!?)L27aqef^-MSG|63O|JIXHo@Cj+xIAAwZ=$U>mjQ9l(DEonXgcsri<8fjfA zJ>BR{kKX`1m`N=Rl^qLs8MO)v;^RW0HF^Q8ok|Fr7arXGa`1CivGTqP@1hyRa{CG1 zMQ2Syxz@Sx@YG)Rr+ouww#F$hlUm&%{T;}d=|CJ1)M`&BB>ubxTt8q zN$z;wt|1XMc0F$=`5V*1MNNx}R=a>@{{EUC;C6&y$HhZRMCSXz{u+a|eV{)tQaZv* zStyoYa8wdyS{TJR#73}86&v8Kr8ub88wN4s1jhv-SvbatQ3s|AEEc9fy$ke&W)J9Y z0}UPxV0#9nd8C2aJ)rZ@fqMr~JQU#Y;Sczm@DIfQPWay;|2yaZNBsYko&)@xq30Mq zC;2(d&v|woq1P#X9c0&8dL8HY3FJQHfBPJIA0+@*P&gn60RR9{2LPP`Dlh;r06uXn zk4L1Up&>kAkPZoHXuYT&bld;{@dj9K0Za$8mq^P%BOZ{2b!W9yu(9a)U}8GmE8GZa z2mk>7_XuB`hCUfcB~BieAh;=J-NxwuPSB>5 zK0*hF&f|VTGi3wL_|7sq*XZJ`@zuxsm3`JXG|k$5|Nc14L?UysN?TJJ-z^5W40x{A zU&xRlw8u{zqeFctkYo2e!b`1-O}v~M?osxzPz`uHgUB@N(7QI6FYw*{nv4)v?mhkT u3;!MGTZM#*qB`(9kAMHOLqLi48xg5=t?}lT16+8B-ck{)0+fh40000hFGAM< literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_check_true.webp b/entry/src/main/resources/base/media/ic_check_true.webp new file mode 100644 index 0000000000000000000000000000000000000000..219fd235b4fe7ddea3022de3ed006aecfcfa3f1f GIT binary patch literal 810 zcmV+_1J(ReNk&E@0{{S5MM6+kP&il$0000G0000l001ul06|PpNDBb~00DrLZQIl8 zOHW2NW{`jb1mFSzsSa>~i&QJj>8GVl)Gxg}$3R3daN9^xa?CI@yKj(JmJQ1bX3;Lo zcF`>GETb$RS$F!wg+6sL>^t=ju)}$*FOBD+{U#-Iu+ul)4b0LzxYI=6HkrDwsrlPn zKQQ0=wHLJ7C;iY^+Rm81Zy2qU64EfZ&XOJjlGPsYX zonr265vhj?8rDUeImz6Saz7@C`(ry|&gT)Ir+6LU>kMAU@H)xYVZP4O?Fipa;q4&a&eH8T-%o)1A^+RY!TV7H z09H^qAn*YI0B{TdodGH^05AYPg*KQ+r6VGtG1hJPpb&{{0H;SZM=!DbpmjfbglbL$ z!~@I&)CZUi&<>CfKo8IlO&?)T+wav6W@d;hL6!!RHc#F3Sd0Rkc8i|tZ)HD~r7*)7 zlVvA@N=ANE5Ht~10091-RCBXxUAOnlYF@VS9+s(T%`lG z$Nf_TBLsJ*Tp9ZW$;Lu|bji%7^N((R)XkY(mAKfEf`gBl>hXVZg>Qh^@Q(SU4TgCR zwP)meVh7L#^=9B-jh;DTQjXkFm^atOhP`@Aa?dre3nb!f^RY|mid zwZNojK5pW($+I2y7cGozhcUu!$WTn1J*q2#S$II@rG1FEL{8hY0DbtElJ$iupqe?w z@h>a^l#mR)ZyXV0D zJ)EReSPY>^8bw9!f5!!J?_CXC)DsMeieRP`6|@ZC!xWsWQy;qGMEHYWc#y8%*X5xV oW!zW{YN+pcY=Z{5Cc&d*BoKI8cq5fdQ)roGnh+O=!fl9-=nbVUb1>%;J$ zBp{7W7yTqX%4vD=;6XlI{Ym;%Qr0^pf@$m ziK!*v8I`EI_j7n0YUUE?CCW=1pd``Ec7AkPj2Y*%S_4mqVguZZtY*ZSs!_3Pt=jwW z#vHN)hlrfrvi8ciD{F`A~0lnt8pB;+A& zE6n)c)ZwwiS`QOtC=e{e!3dEnaLxY`o*gDEOPisxtMmmuL^eR7$R@}Tdm3!C9fsp} z-@=|l?nse+kS3PLa9gZT;fQoE#~39Wbgl>bmRL^57OMnj!EuQygpHC^0#jse6V=I* z+QNen-{K2sTV;_6ZkQ7=sSeM?fF;eidxf5X_X$C}JGc|%Tkt*jwq@-D10G%Zq+>j| zlI}sfbE^u9uivhvV~5Q*%d!^GI}Fs9bQ6=ox0^it!1m%HVme^nj$J=+O|twu0#;Bs zAVvTH0FVO!odGH^05AYPfijdwr6VFCHAn!U5D94j0D2%5%n%nFlYjvJ{h7S~^+%iN a^pE`^U;p0!fBWP2|M$R-dcXOTfB*n}07Xdv literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_clear_text.webp b/entry/src/main/resources/base/media/ic_clear_text.webp new file mode 100644 index 0000000000000000000000000000000000000000..0d8c6be49d4b12a90ad63147a5ea68de10afe4e3 GIT binary patch literal 504 zcmV&3W@ffSrdW~LMR=)(fru2DVrt+8`v1N6zg<8?FmT&QQF08+^adzw zIJ!$JzrU5_?x+FocAdWx>+5-!6S;)~DJ(4Hv;;dTDNT0*75ynWnD#3eBS*(XHp$sd zff4fH2umw@v6UetPlk4^6<<^WlO6Krj@g=0f26sL1>*R+d6plS z_9HTt@;*p3XqAb?(H$}JxsM{NL`3cqk{t)*ILRaxQaETcsA{{vq%ksyNW-sxR5wGg z98%pR3MRlfq50%aW}XjdUJ=ld$f_BR9n7lSP8uY(&HQsQZA&!ZRcPmY?&me_{1rH7 zshN3~%B03}4s@|RiaFoTcx364#sPwlaR3W^!r~eU)?#6t@js6J%{Ym`+bIp~Da{xC z@}%Z-YTG3GcN5zPBwO7lHQBJ@LM8ORPVl}Cad99P#{JKD0PePP>!^0f0#;BsASwU= u05AgpodGH^05AYPkw~9RC8Q#vBZvU75(#Ml02_h5J`Ml?{`Cj|0000;iPiZ4 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_close.webp b/entry/src/main/resources/base/media/ic_close.webp new file mode 100644 index 0000000000000000000000000000000000000000..8b9bd705f3e34e9f9d01e8a36e48ed4533af2e33 GIT binary patch literal 478 zcmV<40U`cUNk&H20RRA3MM6+kP&il$0000G0000x0027x06|PpNY4NO00C!Urfu6~ zle;RIky}JW#A9ze;I!7ZH%VI|o~{{zgCaN-9>)M|fJF8pku1;#NSliC78e=Oe@1TG zIP#oki_-Impn0B{X-G7iL|CnLinY29uolG}2avxrtZlW4i5vGG(ztwQEQER)f%p5G z1=zaPm*iigM?L*b4)H|rkVL_wV;SI?p%6w9AcP`72t|QFiUffa34$mZ1W-f>poowU z#g%=rKXE~J72FEC)wesx?mD+)?QVA`#ho&HLe1&6H-ouV+>PXJv&MM>09H^qAm9K1 z08j}4odGI506YLbkw~3NrKF;vq!&A0QO=ms?@u9{>fS@CZjm zv)TZ|$Ke@SmnK*~e4L_v0YSwrk>2tQg9*)6$$UfSE!#T{X)ZW+?My@r_{J9$)R3|zSv;-IjHJV+t^j$fH-i^i)fBw@C U|Fg;e{?JaW_PSWro74aR06*W;lmGw# literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_close2.webp b/entry/src/main/resources/base/media/ic_close2.webp new file mode 100644 index 0000000000000000000000000000000000000000..6166bdcacc8a56c6b8782318b74c6d935969fc08 GIT binary patch literal 1844 zcmV-42g~?UNk&F22LJ$9MM6+kP&il$0000G0000-002h-06|PpNcRK)00E$d?VlmX zN_RF|bFjAKNseZ1+qP}nd+RG3mu9eztqCW2&PHpD`u{xLRsX84!^??~UgJ?-j~V$$ql{!eXf&yONg$8vJG2j~rkOT$$nm z;^K@7){A$q46>^qqel90{a|CFsoF`k%DV8GRZRBt(WJV(&gx8jK%S?f$u;z}XO$D) zzO6RsC@RUg{ySl=Y_g7KFQV;9>8>9y6_Kf!ZV2uJ_wWaB8T25-w??At+9lw zYbF6fk&L$qi_cAbWq;VEsSiwIGGct7iH<$KJp54#Dk-EYpc$4108q?xjBgb2MZJZk zU+(oC0FUFiqv1k)fztbfaEs_90d1MfY;i01P*2H>T@J;38B%!0DH06`Z zmzfey-RqzdRR?p@U`PCgu8gF}-Os(-+5q!WkEqYfb#S_t0f1`+>STulJTEOczrRz! zu?aOY)(rr~U2v8tD#<=5@c`h-?2Zv()4aXFON;m|7vSgkspe!U-lGddb~7z9rT%UM z&D%NL+iK0*V^lDIRw)l;oZ*)W04Dw(r)al#fjHgD0pOznV+g238*pSx7LX#Qg6$8P z@xer924Wlr0OcfeuI`?tP$I3`BA9dh8I8l3a!19nfju5tUXfy?l~m){DV8@oRj$i4 zwch~1m+4w|`NX^eL}gxPe^p7SO=HSa`7lb$3a5yuY({@j$!$W@ra+~V_?oxO(SXnNxQ9;oEL0-3*_0Pz1oHddPf<<@zdmYz&oBcE!EU}T(Yd>Dd`S6@`#cgN}ej>+K9`y{-EVvgILRFe8-PSg#Ty zyQx;a^v(1TJCa^HIym)DqJ!Vo>D!NN{Xv+knC-1+e>9b7g7d+Ydb~84@rc?V&Gyl` zj7}$~+fOlLe0lJl@ai);<7D>o*1dm>q4$r8tGgKj(EXz!a9xU<+CRpI3MfhQ0Xsd# zl|MhVVRm0jV4$VntPN+PD$xC`p#60Ww!e0MEiWr6DXaMER1h=KRzFdp^_i9MRmXlm zZkCV8F|FC0>vn|)rS#_PrjqdgLl!;z$l}wJ#og*jf6f0hgO1!t%(bbP+=Ls4hv*Hw z?hMy%(oDTHsV#f`&%1a509H^qAPxcm0I&}LodGIH07w8nfi#jwr6VDsIhtqypb!aZ z4ZYx*M*ge#flHv^BY|9T5zl}($@SlA0sKd(2cQCfe*uFVz6zJG1!Q4Zu@8gj5W^6ZMl^_i3eEksD7BtCfqs>lIVXY3r1Zj z-ok(Y{tMV$+yaWZ^tmfrohHuP5~}6lakMi1FgDNLmDD)muu!X7$ZCr*3oOljh!d}s z`+de3p&#uG1_f(?lO1(05@qAVfzPV{Gf+9%kA27>x#8oU*t~&=ET$Kal;) zT{j@CbZ%PJ|>BVgYC|3e>gSZOT$cl5jRS96iFs0IZ))=TUpNa_?`n!gbl6XyBu&?N_; zTf|C)b2YH+%gIZm@GjAbM75sag;Ti5tL;wP9a8u)v6hirBEy?uKN8if;Q_EL?1jaN z8(|-pF^dGRkUC*eT4XH>YdT!Nr452UzA-n#$-pMA42nKE&DOx!4@m;llnEof#dA@k}r7zLgVsUYNpBqZx zN+@Wvqn8`dbD(x0D3hV!q#y^LeaPI;lNNINN9cZ zuSn~6BvpZwYLHMB4poLD)!{&e_^v`!>gcBeig=!%D_PmByzNpb}I48*P&gn+0RR9n3ILq}DmDN%06vX2mq(={q9HC8-x#0~iDv-NOgdcv z(t?;22%AKEzn}-`0Wu&KsB5*KKgY+qD}GR|;ddcQZc-i3^af|plPG|BpoC>DU8!0Xt2aM|qkRNLj)q8yaPeJa@rE<>&2ANdLq`S6;JlD;Z& zcaA^bym0uMY^kN|Nx5SucqbRJhJ)85@xM%b^`bK?kr*|aE0002(s0=Cq literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_completed.png b/entry/src/main/resources/base/media/ic_completed.png new file mode 100644 index 0000000000000000000000000000000000000000..335d8515da81a5fe8fce35f24443b67fe5be63b6 GIT binary patch literal 14571 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 YtP9Q@5R}gQI=u*xd#@~AE@>3_KjhA=0{{R3 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_copy_id.webp b/entry/src/main/resources/base/media/ic_copy_id.webp new file mode 100644 index 0000000000000000000000000000000000000000..9fc7d7bc879b5340d5acea46558b127d1d474d34 GIT binary patch literal 530 zcmV+t0`2`$Nk&Er0ssJ4MM6+kP&il$0000G0000f001cf06|PpNJ{|#00EE#*|uq0 z``NZ_+qP{RIlldWWZR0Z%(iV?*O<|-wd*R5hzVdC-N~J3!ppMs=pT?@FACDGtYv?OpDLSY4UTW z=8SJ(el4-cTc2rg09H^qAeaCE0I&rBodGH;04e}JeK3+ozoQ|cINi7d@DGV;0~iDJ z00CrT`1yeg%0`1`Q_<-*qRfkE`6X}w{^=~R0C_g?dsV02t+7w U#plTmncv2(W=bF91W*6~0I~e}P5=M^ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_coupon.webp b/entry/src/main/resources/base/media/ic_coupon.webp new file mode 100644 index 0000000000000000000000000000000000000000..2d5922b88da0c5e19b87c8f02218f31eeb785dd1 GIT binary patch literal 1766 zcmVg!1e9%FKxB`V%va#JK$TVb-QF{3R&Z5#Fgm4Ur+ zi^}arPQaS0;!@qjWwVP*H^3zr<1(J$GU2#zWRORY7eU?-@-GzmUj_M}5c%I5IpQEk zN#w|moQ(iyP}o@?+rwm^VQ1H*_Ymppz*P)#<%L`=0#~@mRXK1c0l52t+_6FKG68qS zfV+9X9Z2M^DQ>6t|LaZ@^Aztd^ccnPPoQvPJorQLbUMm*y689*6U}O>qG@RqTdf=_ zSc->bjbzB&mh^wzY0G6KN6jorjuS^EQzLoWjSFcpd3n*WNv??>bxE1TsQx2C(oLo- z{n(EX?^V)CQlswgAKyeyzE?NLd%jKzW!Yk_J%~`~+z#5cVwRC=nPG3_s+-+lJmGvY z4!WDw+=gvPm_h(nP&gnq1ONcA8UUREDp~+q06v8{lt-l|A|W<4E1!eTe&p;or|FvH7-{rke|CaRt{Ra67`d*<8~ChBPZOSCXLX9#BsiM(W$ij z-#Vj&Y4~+!0U2l5BfYZM>czzmbT}Oxxu$#TK1@RP?|WN$xa-*9m-10k%&JLOzsLyp z5t%f@W(eqe7Znt`wwi^p!JLPKc+7-nP;VSNmiCq|B6d(ocwxLsDj~@k8id3J_aGr^ zo++J$pAyI2;JV8oguMemgNgU%TB%6}6JXX7}4_I5$eeJsuS~i!m>Wx`pfj z79n@KS~4B35>v}6eMzMhow_&qSDSufwu{o!@UnL6JiwZuogQ04p@Yuo-4EOw#?1k_1A-cT>}7F=<`_b@clWG3 zilDG;yv%Cd&V;b1aW^Fu)F+%ucTUZpv-9~#3VwNM`kaHcX=4F2@~J-IzuLd!jI)4U z<%ljm{JKxjM%8-)MV?}~`WtqC=28(@sS79}?|DJ)q|zaDL{ z@mtK-*9qMutMBRl3=dQ&F=Ih-7Q&D1>x>Yi@g(8*%7S48#1`8eJdo^yR-Ac1dpo9U zAw6&YQI%L@M6>h6ihK&kl(r)lahV*kem@|Z-8@@m7pnd{|NNj`%Cn^@>RCYiOV2+%vH^B`xEKFD IFUN0y0Gjw<0ssI2 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_course1.webp b/entry/src/main/resources/base/media/ic_course1.webp new file mode 100644 index 0000000000000000000000000000000000000000..2ddc5bf05b83e2b4e730af373b72b017460999cf GIT binary patch literal 183682 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

$V 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

    &+u6~b+MymElVjed2$Qbu^(w!ZuY;&+nA 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Π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%0A?v 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 d000000000000000000000000000000005$`zsdjr literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_course2.webp b/entry/src/main/resources/base/media/ic_course2.webp new file mode 100644 index 0000000000000000000000000000000000000000..a724304938b311a8dace97d3d7d74ad07a293fd2 GIT binary patch literal 102252 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

    kcfo2DHO{YfYyr{VHz5 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_course_thumb.webp b/entry/src/main/resources/base/media/ic_course_thumb.webp new file mode 100644 index 0000000000000000000000000000000000000000..a58ca9c479856968d3b67a825f2520648639d150 GIT binary patch literal 24472 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 CXoA!L literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_default_avatar.webp b/entry/src/main/resources/base/media/ic_default_avatar.webp new file mode 100644 index 0000000000000000000000000000000000000000..dfc1101b17327bcd01422752c6e7d96f0f762568 GIT binary patch literal 2732 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_delete_img.webp b/entry/src/main/resources/base/media/ic_delete_img.webp new file mode 100644 index 0000000000000000000000000000000000000000..f15b4eab79f4b2a661f2f255ebe593c986792c7b GIT binary patch literal 668 zcmV;N0%QGBNk&GL0ssJ4MM6+kP&il$0000G0000r001=r06|PpNMQj000Dqv+t$ zo@+G?MFmUlUv|zP4t<02mEE%RL^-9|E&D=lf+pi|Zr7Cf z8mHGAdEj#k0Bhek`%lCLnN#{!(z`+N05D6cC4~UEWqwN=0$`UpE$g-fz%M^q-lGG6 zUw*Xg@XPm>AAb4PiuqSRq-Kd^R)mer-G!mdos3ZCsevc+gu*S*0!2z|UZ5>hHUnL6 zIf~Igu=9B1)MX8LEGj(F!9GhO-dxN_#6qbyhMeovnWF zxE{o6h#dx!Ty|F$wM zfetdANoO9Xu;e5HNmCD!FSk+BApBsZm*Y35db7*uIaNYyG^LOP$K~-qqW0!xZN7q> zakY?{*=dKt^zuw40#tF+r?vUC$FdWz2kZuIOUv-iQTNC^(tSprEtbLezwX9p_cHE# zufNHy*^+gSo0Z*0QYnSRQiW`Uz~3K_P%j%U zK|wAyyh7bo;5V{276`y4du=Vt1whdF?tq`X{14P+0SH*NSeE?(3a%y`Qa z|AQ$dm2w&73Rx;5*+j#rn>e>o15L>yB43fONB@BR@>32h($ M<}eZe(#!w=00`>PWB>pF literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_diamond.webp b/entry/src/main/resources/base/media/ic_diamond.webp new file mode 100644 index 0000000000000000000000000000000000000000..4064470b90afc610be897f44d5b8f0137026405c GIT binary patch literal 1642 zcmV-w29^0zNk&Fu1^@t8MM6+kP&il$0000G0000-002h-06|PpNE8A900EFhTbm(C ze`0Lgwr$(?%*wWH+qP}nwr#T<5rag;|M#j_5itP}zBy)rxgUK0`+a`D?|<))-=3de ze|vr%t)ECo6Svm#mrO|K-w(A-rJ*ot?ElP!QvT~=`{>HFc-0R01wwYUc@kZP7O%yw z?*ggkMAtN$yu9ar3dG*Kb!BPk?h52zOB-@B9uny9me6IyT^Yc~j;53lWq3dkWENUMDRy!Cqe%LDWIcn##TWMt<(|T4>vjVf$Q%bKIm|$_@d5i(SX?Tak0Jo6``6>7YMFICQX8Z7YCPf38$(M$(1?MFMxp6iy zT%iTAKz4#HK}^AoaY25DgNXR{44^XIRXqEXg4%4C7!GzU4Jg)2UBhv{psosx{Eso* z$)y9rQct)lelI_uG#kB9^{lpu10uHht>#;G6VSH%tm0i`Kpdt24|yNkM#2O!CU9B) zE|CGZIo&7cTW>%gcb-qik3muKL84U>_~;lwG1kU_8_(28Kr`j$pflghctBK3f702C zgg`gtWoGAJ9UUm=ImN8}%M$}>z0e&Cz9X4N3!va5E=2H90-#_17H9j@Ll|gOy?-vZ z78Zn?1y)cvASeU?0B{rlodGIH07w8nkvx}2rK6%DE*QK3uo4Mu0Lm-U@m=hwx4eX9 zIbc0#?ppJ7>Mq_%@{G&??6bYUD1eSP(|wm#mWGAiIEA0UgQiI@lS6=hSUw;PYYnf> z8VTA=y$DDJ-He8MG@|yc^;Y-fkTrGbIJ;)Xe#+r1e`Xi4d!k1RVFi zJ-qp?qQ8LTW4HVo13rdpkkX(F{$$IL!RO9k0092;FxC35bN~+t=Ku@X+}TUr4`$7Mdev8IbpyhOMwhcayj8^Fuo=At;ItkWHVviQ2is!ei09>b4nN8l26mHQ z|IhG;ziB^Y+Z8*HQuETEwJY9~b%8@O2{Y0LGAf|+qmAv#pDJL9D61YU+-%^cW+lJT zHcBw6%DN{L9H&LN6~0s~@U{;r#$1G-lYDt>@z6lnL(7+fMG7DKmHyb0OZU+`Kd+J- zNst{(T*_bk@?fGKFK+yZht>K2@fkZZhQ+T#mU}kBR!y)reCk}FQfDfUO38DY^x<&x z0Tdm7HE7tqLqVzyTdYo)Gz{U`Xv}rx6q%!GdS*cL&Ji-$@AiGV6^Y7du@$gQrhgd> z!{yb^yxvw^NjtD|_T?r3feop81c|J*4mF%AfFXmS#0v*jzk4L+l?03A2)fI;5hdZz zL|)NWLG))kpNJigsx-9OsV{uvHq5l@jLAv2t~M9xaXdY$jYyuUR|GL6G3JHV+URkem)*juHme=PHc(y_=rvQ0uZ{%>es;M1n!V)E>6_aQztU) z?M$XO)`kx-;RLvQ2n%Ela6hHb7m>?SeZPkWUc))B;1a#+TRekwbPNgcIeh$U#4fctj2GcJ*wZ{j-9js0000009TzcF#rGn literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_diamond_count_bg.webp b/entry/src/main/resources/base/media/ic_diamond_count_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..81483d4e86ad7778883cee46ad6f125da0d90fd1 GIT binary patch literal 4662 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 Rk~mo1eGp8l|MbuV_&+709$Wwb literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_diamond_meal_checked.webp b/entry/src/main/resources/base/media/ic_diamond_meal_checked.webp new file mode 100644 index 0000000000000000000000000000000000000000..1c831d8cd2a105955f8036556dc0e06ef4bc0aca GIT binary patch literal 680 zcmV;Z0$2S~Nk&GX0ssJ4MM6+kP&il$0000G0000x0027x06|PpNY(%V00DqpYul6P z^I-hf6aXvAP} zwzdL^X_3Ut&LDBxXHdqOfkaGm1rk%8gCy(LcN`I`+)qvzk%AwNQjAE}_JU{-FaHKs zP&go@0RRBd3jmz~Dm(x@06vjEn@OdkBB3r6nBcGy31$Gr3~kEi!+n5$fORnB2Z#qs z4G<6Ny+9s-9#@{lpSK=_1kB4WYmV}qcz*rijBr(x8BF4Cs8NJUuuE5Ux7Q%EFLJiQ z&9Efbl%N3kFOFaJpy1oz|9b`UciSiMl#sF$wH;h!Kl1*!9RvNYrPAtikD&obU-Q$| zNFuOSh4pXP0s$2?QvNz~>FdocO~Q{dUp6PFJ5D$?G#lp zv`nyJtW5LV#)oDP@j{dYzO>gR$eiaCyB19??=5;AopRikw**O9Q{w~yQ0hc*`F_fd z?XYB*)uM%kgJrz7Pdf_Vhi}(i4SIix?Exe+&+uJ;fI}94t34hzXJvbi!lN`9eYkKf zbPsySt*6Og0c}HNWU1uIxx?yhM=VVVX7{a%7fmN(1CkVqc|^c?JKe6!jrAWii`iB| zk07w98m6wJHOk;HlFnUNdvlj3iK}qbgnxWZd<;xTCS}bwp4gQpzh4bs)lK2qwpcr4 O$k2Bj zV35C!n1BhObZy%qNxGjmzDShWJ+^oD{Qrfvw#%+m#QQATir7ZP1VHd#R3HN~5W|=Q zSYUw#7W3qOHVGD3N`VDdyTGHuT`TCOu@o|H5Shxb49MB=5SIWMWQRcpxvJrEihPR< z*fy=O(5QOyX>)M9=Kna2Ry&npzqZS2xzhx2D6l)G0S=Gi$XtrRz7;7{5Ml zCSOfP%f_3vzy5P&N%T)we});CcyZN# z{7r8)f6HY@KyTVC_C%kx{y@f$*pnHbL<+r}jRzy+LTKL+fX3mUNjbu(C}2(z06O1` zKoA!@#_;fA08*zdf(XHhyC>rSa{GK?1?Nse5tj-{^8bnJLBuY-GeEl-TgdSD-&sD{xty3j zDshhs{Hf=9^icJ|%ml22k7G1V@(u0BT>r zsuz3G03?rAt4S@5T^dI?2nhhP6K1s-k?YeJfaU;JP&gpU0ssK;5dfV5Dgps806vj8 znMft0BB3ZeO{lOE31SVlEXAM=S;B4q=ZD=tC^%Ql@2!{lpI{%Ff7tJ~{sHI%^n3O5 z-@niYomWr?pa+$Q?U%t%?oaLqwD14&Zavj#LEOf2sWH;9dfcyT*81`q%_;T_s8+dE z_v9o?ne137zO_k2baYo}jlH_`X8FX$q65_iOqnud$%6m@{`_3m5C0^$1Ln8p>E06+ zy3>FEtRiKeMNNOgWA8V-^)+#Te3YMqhJWJ!#86*$nfW-7Rwz$`vcjhcM3;4u=Q)Ab z!xxPpu(W^w;rsvcpFjVGBa|;DH7Mox;zD|7y`zcu?F3;Jd0~M~Y>r)g&>9oeXo^H7 zpF!)#Xe5_>6<(v)CVEqTv;Cx8!5EyxQ5qk9QVT65>jZSWWo3P{sfiibez z5<1-epxqz@&DCA)r)d-b(3sQ;-{~k*`g_lCggd|jeW*^``fxea;MJReL@*p<`_tC_ z@$Qsi%J62+U|v@t?@1rjS8l79Q_H@83HKiOoa|OB0AA7IRZ*z5;}6uIE#OD zg!1U({xo05r~LTl#232O*Mxe7SrWiJT4HeJ#=uL`<(CGJy3(H##-hQahiEpVrH^5IC3H7K@xU4;r`dse02) ze*@ce1^6#?^R}g=(k7Z#T8e{{FZ-CDMTpMbj57(mKk*G;F(TasgIRBJG0Bhd^>JS+ z+Dr*}QmH}vPf{)zEC!4}-IS2*xA?lqNoTgxU1GThxxfFG@M_tzXG-IKuc6@)7pS^2 zg3Oq-o;VRZf!J9LhAPiZt?DJ$@(AiG5ZwW-63EKY(D7t>eb}!>`59Rit!lsRa7}4d c$+XgD)e*S$6%#GGXQAku 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�yC+qtqz-jG$wPLc^s<0gnT&MpI@ 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_diamond_used_count_bg.webp b/entry/src/main/resources/base/media/ic_diamond_used_count_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..81483d4e86ad7778883cee46ad6f125da0d90fd1 GIT binary patch literal 4662 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 Rk~mo1eGp8l|MbuV_&+709$Wwb literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_diamond_vip_bg1.webp b/entry/src/main/resources/base/media/ic_diamond_vip_bg1.webp new file mode 100644 index 0000000000000000000000000000000000000000..d3cfd619bfb6c6007a5c092bc9ad72d7048759ac GIT binary patch literal 5752 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 J{85NM@gGB3ReS&d literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_download1.webp b/entry/src/main/resources/base/media/ic_download1.webp new file mode 100644 index 0000000000000000000000000000000000000000..3d48ebcd0a00c12f137e7ba11599cf56d56869a5 GIT binary patch literal 562 zcmV-20?qwWNk&F00ssJ4MM6+kP&il$0000G0000%002P%06|PpNT>k-00EE#*|uq0 zYwuGJ-?nYrwrxkYky??>%(iXYwsC!DaInr>=ldrSF#+@sZhV#Djgxz9*f)gd#Ct0B zH2_abdMf7w0IzHQPmnr$YF4uB>9weu+iz{Jubh=wbMtUlEhz0d01q1}CnYXMfqTUT z6@Ll}zI7q7pZw0PsEl zAn+dMSItPau6@(w_*It}VWdkuVfdQGko*!iqfTBmBQNUOHyym{65|QdC7#&$n#GVn zl`?0Lk&4`^ScY!pDm2UN?*VB`;bnTk}UUi9KB_93s>y})s-XXwOo<+LE zvB;f)_+DZ#h)oua6xy&rp=Nka{Rx~bIBw>p;nEMd`0%Hvp zrCw_id^kI~nBlmn`+3OKOj~_o0*CXE%jx?c{3gPGW^8tHU8S!$eDQ{aUN)|3CWHQm z1XfTuAY1?d05ApsodGIB073vhg*22$r6VFCG-v>z5Q%937TUz$sr$a^-g+uuvLa2r z$}m&u8D&wHX`pVE-rS%7{`t}M|MI9hfBq9FtN;Jz+9UmMN&o+wVW;$~000000C)NQ A`2YX_ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_download_disable.webp b/entry/src/main/resources/base/media/ic_download_disable.webp new file mode 100644 index 0000000000000000000000000000000000000000..c8424533869a9676f3cc045fc9fe7483654988f8 GIT binary patch literal 1220 zcmV;#1UvguNk&Gz1ONb6MM6+kP&il$0000G0000@002z@06|PpNNNKB00E!`$+l_R znj7!}PM))gG_+{ID<5M8=oF{EydXeoF-1 z*O32C5&$0X5e51m7I6B7KvwzRX25^-6H(XAiUDtx7OKowLcu#3aP@${oZhRX#Czo# zH5{XWsde5-f~zrQ{Y7?@RRWT~<}<4NqlabFGT>@VRq}nk*&YKXSGS0W%8$!HRF?4ESl!kpB8t3s7HW1) zDzQ~Q$_U=V9*iRQ9UW7XN^tH=DF(H@KcjHZid3Rw&!1+%-r+9!zU8g=^$KJ`1&^E- zu=PA!SM0p|uc@S^^X|0TeUY67g|9g&;OKR(p3r9}RbqM-4bBVzm{K|$Ds|%#0Vi$@ zYw3FkK=LLHc^lZqs##I+@_hmh-V@ew;VA%k*44GOT6W|P+9}}7%TaAFmhurfBen@h zKA&d-at5ptaQ4m8CLpWTQUU3oDwu$%&2q(%`KEFf7oTP?Xo#<82Wsh}W|K1v>0j%g z+s!HVn4O(Hmw5xVQH|d{25(-Ia|yi(0LdFk+$*?XeGcDmC z96K*Syg`KYmwsfge{k~799F!+I*;%24Ng81DK;VscDU-{$BOy2eTpIRaNGyJ9Jo?3 zBww#!1gG030m+Z^OhD9fwa1{oENz*9noso@@Jj>B1XkVoQf6Wm6A+c2mSVtDW}wPn zB!#7hu*!cfj57pLoy*b_y25CN1Utg^Lx$Z-8HR~wx$9{>RU`#>MP7wH6u1W<7U$oVljhQrkQ zDyjCV`!K5r1h&WjNS8ylvOhhe4qX#XYl*WsPtz^MSP{x1XP@=B>)` zfl=B&^#|kdy64yL`>t;3$HhOvaHF5S%tS?=2%;~WwIi8gD!q+&eC}s?-vI&aVU1q| zKXONL&jYhJa$*d66?2!wMilxO?k=pXUz3x8Px*55a1(qH8=L-GEx{IQ$sQ|@tB=7v ii3XN%@1EL8hyVb2G)iUw literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_download_enable.webp b/entry/src/main/resources/base/media/ic_download_enable.webp new file mode 100644 index 0000000000000000000000000000000000000000..7b0112ad9c342f98f99af8bb07eea8ae8757cfff GIT binary patch literal 620 zcmV-y0+anxNk&Fw0ssJ4MM6+kP&il$0000G0000@002z@06|PpNYMcR00EFJ$+l@* z>)N($`?l=cvTd8swr$(CZQI=QLpIKtd#(Na8WF+BZ5v1Qc3)=uAILwM=xZy9=J16x zr5cK%JqrNdl_+L%zsrMF#!3*!L?&dgr<7BITK3_nee{>@U~1x9rKxA z01lb6un72kXfsgFZ0={^)6c?H0laO~QN?WSHxO)PVW|jwDA$oPpDUg@CX2uelBq3P z%v0O~x7~)x&pZABh|A^A1m_NXlgv(pO`;zFCfpG>!Yc6>F!OfF%&1f~t81B+*p^|5 zYnhgqmT}3b4Q=a9&_R~6TEl|A8V8iPN8h+dMH}3BP&goL0001x z1^}G_Doy}S06ujrkVmAVp`kj+0FVxeX#f`2xBv;7VJk94X9ye^<9rfSa^0;mk0Sch zk)$0=-!;l80RH~}IwVg2`~Vvwf7J~D G00015$s~jT literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_downloading.png b/entry/src/main/resources/base/media/ic_downloading.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d627e1760fd29bde9ad9a694ee1f953da49ae9 GIT binary patch literal 13528 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 AaR2}S literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_empty_coupon.webp b/entry/src/main/resources/base/media/ic_empty_coupon.webp new file mode 100644 index 0000000000000000000000000000000000000000..f56729ff0da4cf6a7eb3510cad1f9023e8ed0354 GIT binary patch literal 10574 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_empty_data.webp b/entry/src/main/resources/base/media/ic_empty_data.webp new file mode 100644 index 0000000000000000000000000000000000000000..1604f152c3484d50ec718eee90e1811e418fd148 GIT binary patch literal 10570 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 U_)4jbsJ%p9+q(Q;u=!v6Khxqv-T(jq literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_empty_image.webp b/entry/src/main/resources/base/media/ic_empty_image.webp new file mode 100644 index 0000000000000000000000000000000000000000..74a6d194cd0abb4240806c0f8de6a45e9bac57a2 GIT binary patch literal 10098 zcmYj$18^N&u<(tO8{4+6Hn_3XB#o^mY1CNFjc?4xwr#UPW7~Eb`|mez-u&;(!OZT= z?jG!(#TPkgX&ZU~Kubzo^{c9YHV^;+VEh~VQ2%u?MO9f{A^-sDs@pC-*?jebl$#pX0Q+c121ps zD27&R+awqwP=fU|_M1XnlCRAXBChBh$}2wI8_1e)6Hff3Wze>w2T6aLtSqcf%jJmt z)FkxVw*l#?f(>8L$W;H{fV%C3P(AVj#rh2CcLq6T*sui{DbQI$h42rL<8rJeJEXrD z)pOVr61JRBS;&-fQB11wxl2x9r zC`$X28X2ek6!t7c7NZDUpJo}bn0Vzs4DCiA9txult>}7SQ^eiG+;bs)9Ri1BS(v|YJX2d`V$#z6@O z(nPTA{F>{f9hC@Z{4SB`O-s7&f@tJ z=!7%`OQKr|K2VxkUW19B9tBW`6wop8jdrg+gzor$#_)HGh(26iu4*01gnCPvy@X59 zg>4qeBV0ftj7gm%fYm^2I@B0^3~n_Sg}iLfCb%IcOCfE-c5EQ z>uqcyIci|Rvo=NWIbS|Cn5&%w283JBg+<*Rh-jgaj^8a_-Vb(qVv7Y-0;m;Ip8DJu zHs4E}8y##yx=T$|Wfg6(MaB2xMC}Ocrs%U^MOoBp_&2Q~!>>AiMxPNIKcSdav9k*1 z@F)xz0rR$uJ9qiKGJS`pi09EGCq>dUfZt%{VntQerhwdlxVPI$d7^%@8(7Gxj0Et< zL_EbQkQ*Tt49R_{t7Zn8;XIuT18%cud#~aV1Kup8UxmAWD4~jZGq~x}V}a*Yf__Ti zG;qN>@d`9H_B&A^YPk~joY9DPvxP_3!*bqUkaQZ~s(H*6V1btpj|qA!&i*piin zVZxvO>iZ;brEs}$%*cCe?>ff%_tO-DQ2ow?V7Gt!NAlN^ zrmT|TrGiFTtwkI*AmNIf3{)tSk80p3!$#^k`*&8t>a-Zk>S4eoac{`TBECl48VBob zx+HW>XqfhpqNO)sNXxVOn#d`k6x&I-d5pS5Hx-Qbrd;e@Jnuqk$k^v~z8_t90oh4J zaR^yNUR5ZnhBRVlpOGT1#=JxvN4_po|S6-K^s zD^QIw5TOlM6X(N}0c%bRi^6dB7D#TYk=Xsq?N5&e?Tjf`O;a4vc?s6e15(_iQm#V@ z)>JeKL8G;daw8?801GYA~J~WDo>`#zSqeURPi3v7N+h1xJ_(K}fzd0HL zf;904+-in8g*|uXJzE(Crf73OE!UBI%e*$p(wvJw;0mc(hH+fvS_^p#mlT2zz+4)S zFJWwB6pp=GYko8>b|Ss_LUYc_o+8j(SY6w?(r{QhL~+l97Tmow3O5C`0G%xbRA4ea zHLzgzEK^|;x8-czeoBNMa;54!*)5YEFFO3 z-sY~qOagR#+(|QxZ}5QszzZ6DIQ_9dNS3gBc|1Ema(oWSeSVRl@k=G8Q_9L9-)HAQ z5JY+NdWSX}xWRwEdxe{@LhF|k^b_+;?RT_iAZOH0vcO8s>6$PRsGG0yxaJ{=844WY z)}m@bbSAh=2U@vzBJzj+vC<;TpS;1Z%c>)^VvZz#cY@HU>g;h0Fy~no{)B{CX@$@@ zX8j2;qjl~U1V(OrmmBsb>-SXamEUAoD#vEbAv)kBNguW7%5}U9mscY=;5x(ADE~8P zGRJKJ*30^{M5F}zg?@^375<%A0_o4EO{T;t*kb^}QMLqJx7l;={nPvQY2#?8M^TmxLTkfw(aG?*Q zPRSO&P&rDsA&3IyVShtx$(pLAw>q3U124m2m5pw$V5FdrI4c9IC4Y^f&3-B`WAa~~ z`ScoHf(2rp6L_>J$F_qb3Z2IdAZb`hwxB}$COpG0pbG!RS4{GjoW%*?YP4yrhI>Es z%0AHCi6iS=>d+Q$-0@>=EL6$~G@8|5n`$y5nYxC;0G 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 DNt-2h literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_empty_text.webp b/entry/src/main/resources/base/media/ic_empty_text.webp new file mode 100644 index 0000000000000000000000000000000000000000..be715ef076e3cbfe6cff0cae79257791b43907fa GIT binary patch literal 10402 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 Mix>a^000000Jjve)Bpeg literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_empty_video.webp b/entry/src/main/resources/base/media/ic_empty_video.webp new file mode 100644 index 0000000000000000000000000000000000000000..063aa195baa293843effed6f879f1c351d5fec08 GIT binary patch literal 10612 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®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�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 TWI9=`{LlaZwg3PC00000A(u8! literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_guide_2.webp b/entry/src/main/resources/base/media/ic_guide_2.webp new file mode 100644 index 0000000000000000000000000000000000000000..24c706a02cd3669a53669fe93c8f2184795b8ce1 GIT binary patch literal 68424 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�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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_guide_4.webp b/entry/src/main/resources/base/media/ic_guide_4.webp new file mode 100644 index 0000000000000000000000000000000000000000..3bbaabb0652e152efca21cf1bf8bdc9660a0b734 GIT binary patch literal 60052 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%0AVc&Pyhe` literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon1.webp b/entry/src/main/resources/base/media/ic_home_icon1.webp new file mode 100644 index 0000000000000000000000000000000000000000..7299054a13cdc2fb83146f72fb99c25fd0cf0bba GIT binary patch literal 1588 zcmV-42Fv+UNk&F21^@t8MM6+kP&il$0000G0001k004sk06|PpNSXow00EHWZ2!|p zzrTc#Kmut35}HJXsHrEgmcawuVYf{Gre1i##EnBWET>S0-2Cq%} zQSL^>1VF|_RCUV>pIh-@#Bx6x#I5JhvvgG?P+)o8twn9h3QpTm&0Uv^vgAkckd@>x zj{K$k5y?F5vy$zfni9#CVAngWggbRx$dPf^8?#a#_wJ0mCTUemx<&D$md7ff7gmArxe7eDsz58Q0`Z^<3`SL8#QyvL-!Dg1 zU^J)#gSZOBtt!xZt^&_t6$rg5;8_$uYUyqK+PWIy7pY4Q(d=N>F(*m&F<#@kG>ONIyWY5*#=ScO@+;W&P8oITwg7o1l6l%MoBpXO5y<_LAH~D67{-ym1O=7X z-CES9MWgMg=B~?7U?Qrz<%Q3!creP}Xb`uaL(kGxkwC^)P&goL0{{T<7XY0BDue)p z06vjKok}I7KcT1bs(bJf2~FG>01TFcT;_ZR5%c}zBi1L0hfVJ={&${?H-~)yI$)8& zYYkeJK$lfNX5iVTP0}agDw}N!ABV%W}l=M-s2?a zR@0(+wx4uS)<3Kf4p59-E?VBVn9hhJf^g+Q22FhX-P}TS3?{gCee7XZzdKBchK7Xp z$^d8Nbffz02HZqNun#e2FjEjmrs0WIfeQp|0J)K z0smsVE#g$eon@5pn-`ETqENSvhpwmB!%6&813-G7C+G$bsR>PMzEyLW|BN#D~jDGqOZ~CO8Wa0_v*FgFUqJ z`@vZkb$yXU?09R1l^w`5!I^!eBMMi!VOChcSeh8TnHTjt-AV((>@&oR3sX_!<9^yQ zw@pbnma3;L-u4YItJ)`Xbw*7Dgfu;e)b}{F8zdi3(L1wmGP`^J=vD z5w33#vS6E#U$1Kds-vNJPRRN<<=u7Et$F{7B6z&7eT%4@%#11P2D2N5P5VNYhqVK-m8{XpzO}6`2+zpnjiWGk8PX+dJ`h-m_WR5#V z=5Pn=fOApFr0#Gp#RM|@0A_?%-@W&j{}O*u44^bNV_qt?v%mhp2ChhO04hKIJ^{@o mrmFl-cppYwIm82sVK+NO6Lg@Z1&AZ2?h3`7>lq*L0001_h!VU2 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon10.webp b/entry/src/main/resources/base/media/ic_home_icon10.webp new file mode 100644 index 0000000000000000000000000000000000000000..ebbbde6a34fd8e0be527cc2978e18886c8248a96 GIT binary patch literal 1256 zcmVgmcawuVYf{Gre1i##EnBWET>S0-2Cq%} zQSL^>1VF|_RCUV>pIh-@#Bx6x#I5JhvvgG?P+)o8twn9h3QpTm&0Uv^vgAkckd@>x zj{K$k5y?F5vy$zfni9#CVAngWggbRx$dPf^8?#a#_wJ0mCTUemx<&D$md7ff7gmArxe7eDsz58Q0`Z^<3`SL8#QyvL-!Dg1 zU^J)#gSZOBtt!xZt^&_t6$rg5;8_$uYUyqK+PWIy7pY4Q(d=N>F(*m&F<#@kG>ONIyWY5*#=ScO@+;W&P8oITwg7o1l6l%MoBpXO5y<_LAH~D67{-ym1O=7X z-CES9MWgMg=B~?7U?Qrz<%Q3!creP}Xb`uaL(kGxkwC^)P&gnU0ssJT5&)e6Due)p z06vjIpGu{pqammG$cV5K31x2JzyM{H#{H8BDrtFu{dUPE-e>ZF%{=)lf&;Jtbbu_6 zSY#5dfMgfTJV@I-HbRaW212z5tZU^Dr^o*SG6;uvVm~UX^BB~_GJgO7{+p6K`}?Ba zoyBK-21oTE$GX4mwrQ%`w_2F2UQo?#8wH@S@)#Y{+FQOinz7v|V?4++W8_CM3zW@&>(1bL5QjG!`%4v_jfuy>jbiToXiu(x z3*zPpu}F7?h8WwUcX&BL&n+F_{Qh)T4hVYWz3P*e=7A54(63=KA9js-Q&EapOS$`hoeNJ*31RXC4l%z$2Fe^>5ij zBmVr{c8|D`35~-Y+q|=Z+2`gfo}7+&%h0TeWc&4p&@=?N_gqwck8Q8FBVK$|bpQYX zDG&;(US41@D_}wTEoFEN2VaKkb7H#W_-!bVM@9iV-1oK2-OJFJBQY)_qu S^RKmCa$}GEcMS`(3xEK%uVYpK literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon2.webp b/entry/src/main/resources/base/media/ic_home_icon2.webp new file mode 100644 index 0000000000000000000000000000000000000000..c854aac79f8e351e5051f8bd242e0258f6140466 GIT binary patch literal 1530 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon5.webp b/entry/src/main/resources/base/media/ic_home_icon5.webp new file mode 100644 index 0000000000000000000000000000000000000000..aa8bd2c243d78a8acd37ed1abf5b59da91fe668d GIT binary patch literal 1602 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon7.webp b/entry/src/main/resources/base/media/ic_home_icon7.webp new file mode 100644 index 0000000000000000000000000000000000000000..990a85c1da99a0c9d6002e58661da392e56f448f GIT binary patch literal 1636 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_icon9.webp b/entry/src/main/resources/base/media/ic_home_icon9.webp new file mode 100644 index 0000000000000000000000000000000000000000..df875d5e72709bc005b96bd32660527702df5959 GIT binary patch literal 1614 zcmV-U2C?~4Nk&FS1^@t8MM6+kP&il$0000G0001k004sk06|PpNSXow00EHWZ2!|p zzrTc#Kmut35}HJXsHrEgmcawuVYf{Gre1i##EnBWET>S0-2Cq%} zQSL^>1VF|_RCUV>pIh-@#Bx6x#I5JhvvgG?P+)o8twn9h3QpTm&0Uv^vgAkckd@>x zj{K$k5y?F5vy$zfni9#CVAngWggbRx$dPf^8?#a#_wJ0mCTUemx<&D$md7ff7gmArxe7eDsz58Q0`Z^<3`SL8#QyvL-!Dg1 zU^J)#gSZOBtt!xZt^&_t6$rg5;8_$uYUyqK+PWIy7pY4Q(d=N>F(*m&F<#@kG>ONIyWY5*#=ScO@+;W&P8oITwg7o1l6l%MoBpXO5y<_LAH~D67{-ym1O=7X z-CES9MWgMg=B~?7U?Qrz<%Q3!creP}Xb`uaL(kGxkwC^)P&gol0{{T97yz9CDue)p z06vjIol2#nqM@fT%80NM2|_3YC;s9ms>1+MZ^r}xhM=;tHV|` zZjHjqf6K$$i3!%E1T^gc@-2%vh97I~M-~1WTG>PPG^IG3v1tcpTM;|sZufytbue!@oBGN+(y$;Pl2^EXe{D><6+z5}^)SkC1R{nm z4-;#?#Fk(8bos?Yj616a1$bAH>Lf6;%FeCo|22?!+pacEH|+imRp@SdQRjFA!3*vJ z@p=G;=q_1XTh$F@5lyAHQKjS2p(8o$HX7_dvwTLuFQ%hMyD=j!v`i=wKuyq*?IxnC z{LT$)-OQJ)-kK1+@5B9k32Cl}#yfr(6_rk!wCq(ztRVgh;TVzOFz1`tX(D*w3)#?p zM{cEeNRIaYUaWM5HZob0(MyT)9kn$X1l!84nN05oyZ}akxSwlIr5Ec30YCjQhbwMH zNnmTfG~(|lS8qY4;S}a!&qsDP3-4ihHS(i#P{3{f{x$Q+N@Jd3$pP&Yz+}+LK_F$ M`|t|Y(dhsH0Kx+kZU6uP literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_link_start.webp b/entry/src/main/resources/base/media/ic_home_link_start.webp new file mode 100644 index 0000000000000000000000000000000000000000..44e42978d0fc46d737791b5385f81b940d95b4b4 GIT binary patch literal 440 zcmV;p0Z0B)Nk&Gn0RRA3MM6+kP&il$0000G0000f001cf06|PpNS*)y00Dqo+t#uO zceh9@fC4OcA}D|c-08sGav~xspa6;>cDM027TwV>A{4o8+c2l@-A6F~u^}%EEKCe$ z;(=BX9TS0DqxYBu1u!rBksji6tinndx{Y0Y6rxpE1w%9o$YAI?w87Bxyr@JWdYL*! zC`8AW8HOISEF@q8SOwP+?!7X{iU4U;A{^Vf*e*iE59*6~8 zh?n>WG@mE6Ihn(GXU;S=q*g!*hfo0iYi@Mn1Gz>ex%0N<`@xModmAc0{*%6V(zO4# zM9he#ZVrD_c79lU;p6EZfT!7&wXc!dU5N$v^6w)Dckp|FMGih#JP4`#nMbkT<`3@n zc5&F0b_Jq21~Bh>TCsa(56Zp1Y($**=(xf&Joe^4=^7s2&x>lb*)rP)$M6XJUHne| itz#!<8jR3`?wEG0APA%LI4LUMOxD|T=I#!F0002`bHb4T literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_link_support_icon1.webp b/entry/src/main/resources/base/media/ic_home_link_support_icon1.webp new file mode 100644 index 0000000000000000000000000000000000000000..9756f0bba433edff2245be642eab7ed7484f6a1f GIT binary patch literal 1344 zcmV-G1;6@INk&FE1pok7MM6+kP&il$0000G00014003D406|PpNQeOd00EFI+qP;& z`?RuzT-0&voS;5feZmn$ye2E*zdS z9_8%x;l@B&vYsLs*R}rG#bcG(j@D|d;nEEp*cgv#`S*iLML3kXJ0b^ovYMd?$vX0y zaftG6t0n})tewOBCTN2)PDmW6OV9*iT|DDZZNusS%25Xg`=vqQukbyGdoRV0{vyL8 zEh&5ikpp%W5mE9J4*8m%6uk~i-zvzw$uLRds_fSs^xe2t5!J7p6^>f&z6*;_y})%v z!gZVDeh6&$zyG59p@{4D3tU(3;+kH8C3m-osD9;SzeaU8&b-MmN#iO-uLIM!3ZmpE zn6BxGNDvXZiin8x7a1ODN#R2U@A2GACBMp12bwPp3V&o>Ji}reQBz>UgoMN;Xee02 ztR2TUK}*3~M_w@u@@}h!LRIGOhzL$rGZYj?-N1p3#g_d0L8XGi9M`q}$Q3ipcC=Pw zr3jkS%f~Jpp0j9UCl59T%98aIB34j1Ac_M30I(DQodGIZ09pV(kv^MAC8HvtEOy#3 zuo4Mo0Mrs7z|KhiJ&4O`<6{Q2bM|-UlGu<{SCw4PUpH+|4#hm9!bb(j;MW4N`)BQ*t`11a{u>$Jgum zQD)@d{hFkhjxtIKP$WA|$P*<1TBwsf87+ygv}jE@8{;fYV=>;+hSS4-imbO=IQCRzW=tbb=jS-v^Ri4O=I`{?n{SW{FYuh=agD@9=(rta;n;iKQK{aJr~_7$K3hXP}tPa`Fm zjH2Nt41CwWiP9FIsP=G_+JP8xJy-pZdAD5e77ci5d3^j9(~@4Nj7)y=BT+Hv9fZef zss)Vht2wkeAg>bi^BE6PZ~szA1Cw<8kAvY`tERp)J~*-%o{mH65dQ_N`0Z;qqR>hI zpeOE+c<;^Wz`r;DGnL_L{dx1+(3nx)w^*_k|Ka!zaMRc$5@d%Pb;wC!_xPLGC>^1( zw?M94m!U-D*6E6{#Rm;T(iHP;jJofu{s>#nK{zTf;F6DU-JC8yq|!I2 zoM>%|ShetLut>h?mgb=Hm0Itp6!?$UHpvF5)Ha9~b3LJ81P6PEfTURnNj`u80001K C@tOAk literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_link_support_icon2.webp b/entry/src/main/resources/base/media/ic_home_link_support_icon2.webp new file mode 100644 index 0000000000000000000000000000000000000000..ccaee752d69e9b028666b4faef8244e8a8ac79d3 GIT binary patch literal 1406 zcmV-^1%difNk&F?1pok7MM6+kP&il$0000G00014003D406|PpNK^p;00DsGYTK0R z`;(szDyW?Z6(z0)c4FMd1S@g2nso`<%}QxVkmURC==dhLyb&=0bh~D`er>e5uzGR6 zY(_QTwKRIT^s3#M)!TC1t$Ok?!VWj7dh>J>+TsCvux162*MWYIaKc1^OhQN8mLFyc zW;V>0C^e0MDNP zOZo?;-z{aBqgo8l%_bY$0(K~j{0>mTpU!dza)il>o}izrQ?is07>ykLWrglEE_xh&P(gm1}Tm9_MpL) z7B+UDu&8Z9=~y4>(F$Xy0Zpk#!jd1BuEF!iiI$;Zb~#PI;)Zm| zw|dYc#6GzOtAyh#hEQwNw7I*btCww96q>=iQm&6ds>em4r7-}!VX_-?DFt#>+}M<4 zg(>BSKy+AZ*-ABjFX5Y;5p&qG#08u7jo`FR18RVb<04Ex@CjbBd literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_link_support_icon3.webp b/entry/src/main/resources/base/media/ic_home_link_support_icon3.webp new file mode 100644 index 0000000000000000000000000000000000000000..23184735856083ecc61c155d2695776856780415 GIT binary patch literal 1202 zcmV;j1Wo%=Nk&Gh1ONb6MM6+kP&il$0000G00014003D406|PpNJ{|#00Dq2Yug&- z!@^`H+oJ2cCDKy=cYvqDt)wJe0i(GG+#xlU^_vcNmx^REWbH@RX7XYc5itRjvEXLP z>VcW$4t%}b9H|ex@+ik58;w}p$+64nw({KgrXJ(m=}ALxDauZ2z2g{P=X?cOl&A)W zsW%B3xip*OOg{8vQlfFJiGkuYl4^tD&+SF2WRt@^sY>C$2)15qp5d z&uU2+jbpNh3fwvey;Z_2R4;W3hdsE8YvB;ro`K6q;7am;|Nl)Ua3u{~<{_@bRa|Qd zE`?dBEauix>26^(jwwDW5PQV*$cV&gOj9Be`R@?j`RKE3;xT1PDXBIZTa{8#iH1fi zq4X}zMq+C&%Ctl^ahPfeWiH8gDDGs5vi40q#+?^`obpjFMK&6-oMlBunMgSn+)PvH09H^qAUFd601y=bodGIZ09pV(kwTtHC8R&0Db?CL@Dd4T0L=;1 zexIsa(tm({xc(&d3~eWNvY`3koX?mC>Bs6{Snn_&uphHN@xO>3>i_0?fPZBF8P);l z0p+dim;0&d6_|4T2WTmpt24bMO*UT(ReUiaXY!~n88>E>xjewWBN}cJ8763x;QM62;ts>Yx<~GxD0ELxGWp`|+B(ZP+1F{&TMg zgss-OOFt74W={|vvFTSjw|;mmoviuRl^JZy-bo0oq1h^t;!G-b0J~j#1D@`U3`ep< zan?p+zUkYc85ceX+JjQ*dfGNswzHg&=c>_^bR=N`yWskZ3Q#R!^he}U#cK|@1TGyw zAmR5#bEz@TCs#HAK5#hau@LkZ!4HJdT6VsYB>u-WY*7#xPS$RGZI>_l*CflVoz%AG zv~>_C0AiZJjcVPVH=IGqg)ltA6LmP}8L{ZU646|)+etq;UkRWVIMWQrj&IA0B2mn= z+S?`{p5dX0&VJmP(s4}Wi6~gg;W!xuMrNCpd>_dYp5f?(#6@ba7KR)zXyq=LrH#ouM}}!inHan7s2br#4P$eTrZq9*~Y+|`2<{PddvII zHqQ!p#UaOH6T(lc^2n+C3aMAFgf=IyT^jYz==}&5>InL%$NyY73>a=Q)A1z}lxWBY z&K+*%YQGZs+msZ_)oSx1~U=c$EhIf(L_9;+$ER*HBhVv-+@D?1GXd zW*kYR52dbQ@=x8VnkkYFlDFjFfy4Ee#f&E+L-HWSZGZqa=&#CN_tSG6n7@YPKAQH9 Q$4WUq8dX((!gFYV0Kk(=7XSbN literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_select.webp b/entry/src/main/resources/base/media/ic_home_select.webp new file mode 100644 index 0000000000000000000000000000000000000000..2632450c3f4a016775fd965656369065339216c8 GIT binary patch literal 906 zcmV;519kjTNk&G30{{S5MM6+kP&il$0000G0000-002h-06|PpNU;F`00EFhTidZM z&u4$%Z`-z=Yi7HqwryJ@+qP}nw(UE<&-2`Ou0cdh0Q>W7boKIfv#6+P;v0`&xpVKD ziEXlUr0nCbzJjm5y*V#{j=tP^P<*G3nTVtNP2hYqDu6`zn%BVnZcnBPowo282)$a- zjLfawT@d_ySRg9Td9OhD+s%=9^ciPC>b>%2B(_#JLGqLS?kHRrJ_qTqwui~n<{bl+ zx611!nVVk#q_=y!N%5Zd9MHbm6eCWZy!``UK3PI9$kgaEAiv+yS%{{|BS8P6w^2ml zeIWRzwu;Z=2#~xT&({}-F4FM$ou_g$i>J~fDzBTVl&QMBrvl@Q%8cWH>|$qSmWg!M zyMHe>{<>#THv84XV1tEpmQ)1IQ!Gr_8Z=)y(WZlGJ5Vi2K=nE>eCT|aqD;E5}5 z`8IIqNAlsF=TOF4yrJ@8h>oM|Ju1%|F;2$;Dig701G4^3l+UK1?Q@~0qbzotl@$%=-!R=*#hU+l- z5NhO)I?K=i{`{>U|KY^`en0(oPyg6^YyP*DaESrdf`^aCjDDlBL|-@fr!{}7F%1XK zH}uQ%u2qCt{&B59>&1lNx;vo;a6mDrCSUmFE7WoijW<6`d`ZiZKo5V;SclzK{B>M| z1ny!_D1)sVvtQEhay}bqPJzTnji0QG)oiAvx}FV`Sy>=gT!_+%PxxuGV0w1!a-Zp( z?BD~$U2Kc+bWTR+`9vTY0gI^*^@iT{(@%r>krA-D>wLKZ zc**936&eNo0-&cQw!LTaS$W8&|B1LCt~bLv$$6g$3?imBp}G=2X*V}+6Y_@T;#-w{ ze>b(mzWP+=Fl%knX{WpR|If}k|NJA!!cKqd=>N5MQt!E)C5jV`ZXau3?!szMl%o>_ gd-&(z?2?y{y^1hza-9dHo99kRrDNs?I>lzS#tJW$03qZ z1Q+Yf+!s=fQl)4rY}>YJ{y(}SvYHbjCV-LKwvjT|jY{Vgz9mVrBuTO@llcE{4gqi> zCK2<r4;korKNs=W=l5Lsz|9`VHfC&++ zdQ?@fwf26A2v3k?%a$Zbk{EzAd}$RGB)<256;)HWjN0x?Ut8Ih(r+Sy_if8kK9na6 zD+4s@prIr*ODf3H_^9)tl3IvrrYZ#>95N0q?@UF9_9AY%ZKonK;)0{F-iCCNEuh^9 zpo<>!K^}Y?qDSV`BGuiHXL#W9*wQ;#DrBuFI1PEY8I>H;!I`%rAmG-eIYDc0@k2Na z>CnURidL%nNy?fldT+*%eNifQN6&D8B^68#EgPd?s(`F)O>LlkoAg?mb@n~(hm0f+ zxfFM%%6`^`91q!B*pRI4X2>23WgB)n0_f9vNQh(sgYAZnCo8(_Vg?C;m&Tc9q+*~M z>IXsQk-Q(@4YVz`Sq{-Xvv@>7v9OpNxt264QC1wN0HUdyk+@L^z~wY3d`4+dFIjSC zhWqm3Yyu(Dl+3R1NMO&&YNmTU_wVM9bY34O~+0@N_mjlW&iNeCcZu5X)tyIvvgt*7X05ZIY;NnFu%^ z;FQp|3LZ_lEsaJ+fAJ4L-80Ea?Q+*G`8S5T4T_`WL+aWCWtd8Vt^Tbib z$HPdnwXwC)#E8|n;uOL-Vh(lpH?9PbX{DAJ;RU%PhdvN*iNhEYO} zLMCC;WgrxZ-dfmWl>#`$bG#hkk(2|sYdKnv2;<_3j6k_XU~K#?!e_)Wuttoar8}wX z*D?$6HY+X}5-=(4R~{N2jYKIDfw;j83vqJ7C}j50yjm6>nul}}Ne(f6|Lc)Pd8-I+ zHv_>(^>P8QB8E&&X{BI>MdPy3^V#bTpK*sPFjnG{1GgA*sq2tBrAmSvpdql`@U7)f zb}wQ#w3w|EQ$naQDa#P5`JONLFN>HJo`)0;UoMO<0v4Z^It@u)c?}vVCd3Hmmf*(~ zo-z(+nh>9^5Kk2B>fh-NsojLR1M;7{;f; z`%?tBV}xjq#5qmE%)9h=MI58W!pX<|7N#C7pboZ{xh!5?hksUrCXCcgRun0ee(eCJ z*)HxwaC>4@5c*e2$XhX;dkz4fU;#FK;R=053JamA>myYdRo2L%a1u#$A5YKSq^Lpm z=_O?;n5>>{7i-!?QJvdYOwhnSnfhYo@H35!=`1Qt?LF#Qt*@N8>y{0}u z)C4EHQkN0zYRC#1@fA^o5vam3+me8|Z6loMaY*xk22SF2l?TIUsN*sc^}B;MC_a^n zBW5c$*5C1;Nt~1C$*N1RnP$BQ@Y5wXj019i{M?Lpl~$7f{GVUmkQbDFx4$b`p9;R2 z?oUXy+=Kn8XuUl#WTM7q4`Itj}dfXced?F8zIDR?hj4-~$yamr?!IMvB zJik37euItPT)IEx&3&5k;;D6OJEt!^F3Bg1r>7-qDbgoA%M&BTB>p_xWbvx&eTJnB zZ5bZ{@H51hn1gr5fPh%i0!Ohlc&~EIF==tu09O7L27`)qRb&QpuT9h(xG>vyJ>+(D zyB)-nl#a<^uMYD%B!y~GXJi?sAQ)XsSiqFeOKW;_GYI_P@YWbmGCdF+UQ)vea?mpp z^kuk!hi)r2>pGDD2$UQ%NW>g=oFYVVI1Ppx>U~HQ5WOx)5KY8L^*91fqD{Ra@gh@z z!yL7YWkzQXBW_;^v+o_|w(#w+W84g$LPRA)!f+sjr&rtU4cGVc)%4n5on^u%%SkIWR`5X@q@`#$s%Q0gzE%CZ-M?Q2;s7OGEH# zF$r{eOoUCuDgHrDbP_-rrLhQv#D)N?=6oOm$pC^FT#jM@nL>G&GN5R}ol=@2qXiI) zP2B0Fp#T`M?P`>iZ7b!ANKhO&cMxGX6qu}pJlF{dm^tO0hNma)nU(`e49%Jlq_Ex$ zO4uqvT6GGPq(gwfS*CQ;=&CPZ(?H!S-1OowPi;Ypj{@*s@F3X<; z7URq!T>%M|d`~k-Xs}3h1U_;;Y>BY`2+Ex7GTwqor5NP>>*Av$36L3q5~h-qQ@@}Q zXkJ1P@kk#FbM0uFMyG^#3bZkB_!=}Q8LKA%fat#&ar%|bGrLv;;`jwZz=8R&IwX4V zI1~)}fow4>wwEE1QVcY)X#(Ap!-&X|#7rGaf&v9(aF+MensX(8n@w!QcNqiJ_4-|o zLhI=afch-_L(m=Fwt?y967-VsNE-Sg=eWnKh6P+1a*`Z?h~PiOg@av4RV1P9Ay9=}aM>hNnbLtaq%7d}g?XE9 zNtY41%9Xpp;O=tt9RAe=tl*hrTJ-YbN4gtZaqhBGHirf>LT^&xBt)+WoMq}Zb6A>p zm6X8boE}TyF;v!YoXaq}JO>SdMof#rm;0Fl!V)cmvmQ0C5 z_APIS>OaA<7y1AMsbAdmyD$We12{D&_gG0aCOU8w=W8?tfZ>yrelC=TgC7VV+w z5+8{%k%>5OICb@uOESQ=G_hw2W#8j;(vREr+4q#B5~AQK&xoSTzR##=&rpRaG6*bV z;j*_mBfKfP{p>uDWla_Sh?}gE+Jmh{bDI)lDdlnT`_|hKBzCl?piGv|u%LTU*o!pX67;wh$uogy*rXz3 z&o-!g5KP8JbP8}NuA(H8YI;OQ2Q$%R5F@Wh4p(TFqq`hP-1quae{i#U(qx4zfoi>E zz=;4Bmywcqi7C%zvnCi7@86y}RvYpU{;^osCt)nUz$UnL7`v4(0jnXH6WGCEre&8YB#2`(BJ~BuIzMb$G7HU_prHO0Q*`_u8eK>{Tv

    0+s z{N6va{YZsiLmA%lN)uhiADJoGy{GjPPZX`&Vds2JhR3BMy0q z38f<7Ih=+i@#XrpOBP7Nq!Ayq1Z}!L5p>%6o&x4M40$*j_E<(W3&bP7# z2$=Q+VglWXhisS$^F%d0sN$1(Lag3jk>bpO;~wu zD~ai@$h!pr#Jw!gP~S1DMn%}PG)Jf|qetaMDv-_9m7d~*nQZ@hD$_<2DR9_0M75+7 z(b*wsOEK=nE({7gBa;>ixcD=1dkkarRzU$LF>MZD3K_s_4A`;OcziP{KMmQS&igZG zg?C_B6iigmcexoIF!qu;QD70bFh^FA7dy|Cy+Zk44GCgWUY?>Khr5Of#zrUtq+Nyq zf>=1vQX3Mc2q2PJXi9se+3Ac0;HQG!B1|wl=Fw%I&sGVFjwF>J@_WkW^N#0;s*O* zliQs@Qok8&QMJ4!9X1qw=NjBz^iP1Aa1{^-0B(RWD*7HFWb!g(_;KU_6==V9Ga{A9 zjkq1r&Ubpx=`CgxNt!Smw$wku@w_n8y4ig^yM!+l6cAkl+Dw$NO+T(6wo#9(l103eiT23FH ztMnGbYnpXwRG{)4mmp+0r10eFCsMdHh4A6Wkrg^T9}N7pZ3T)pm?DTeL`RdzKctAp zTcON`ChA$?WRSEb;(5x*zTJ!x42(zX@?8SqqJK6+y%>kr+L^rcax-3&l>_z!MQHP! zXyjWAkZY1LYbZxqd>+VZ?m}2(GBSa&rk-Ajc!tO)NGX2;GEu<{v3{Jm%^XJSXGoZW z5L!C}r$h{v+nPG%vB;u)GH~KK665DZFTY%!(R&p21uRIfh`>DOhM;H4njv*q@Z#ZX`G-L&MbIs( z0gE@bumY@N(u~rcS3~N@?E_fOm#%t*6bse-xlf{%lz+tSpJ%+=O zS(=iAkVWP>-3$Zv(f&9Z=P+b0JdC7_4+0HRmN6xgBLU43Av5V#ry(UVC$Pt4&wvsS zDmB1yo?+?=*CB%l;o+4h&uvjPVA(1xl838Ejw~Yqb9nh$>-+Kdea}1G4aT<&=9TTb zRYv8ZXWp#f^M;@I(putZ24nQ`0fMznkkTnG@+oMtL-y0^+92@(zVJcwiqT4j-+|DEibkT>LHMw{!IgmW&jW3LB_tDD z5BY7$hlGe&Xg_7k@LA{0O~+<%do`(*{Q{VlSFzkMMpqqod|rdZKmL8Y35jr)j7AK_ z)W9cF4rGGt5M7Wystl<^ac?GZWsnRLkP6lHW|(DrroNozJgG6uFi$GjpJk>fs@Nth zx%%_JfK}oek#_@-$sha?KgCPs&xE^HCE;2MA*EeNutOXRLZ)2XxDJ_JVvj?Xy1Gja zmR9giM=Cd&)n@w;RA!NYF*ApYAzfYZmN3sFbj3_yh37L2@UJRsY4azYbH zoH69chQ+I4&m1iaf?U$zJFVW>t-MP8BxON*u-=0SV~0dDf*q1lHVM2@Oij4A2`7{h zl~Mt7rO3=l_*UZMI+SJ#N)_2h6NOAUG*+;A>l+KwMn(u6fxm$^#vdq#(C)CW61cN#A$tv7MLBq9ir{+~G$V!%+SYhi}DY@$6 zUJs1hkQjv64JjfhhX84o21YYK__)B^kXhJBF7VM-hNLdwFc8wGLhgEG5)rC_gQ8IA z5|>DGR?I?78pQqtJ~B^3a;*5CfO`O@8eDRG8Z#JjVw-uagRbr6F7$a}q#a+u)1|5! zRM32E_Jw1|MF)=veJV8-kZ38K05rWp{9`RL=djYTuI2{CFy{#-$TH+w2Wfq&YRWX5 z4BdW!5QnGC-r~j+hY?M@jn-QFgu3WA)OAQ7BAzUc=8_*E45Jc!76QK>r~Fe)MK|h+ zqzthsP6=~h%xTEzmo{^BF>(;qn)E1Fmmh{42|4}lzppE0GfK|wb~EJTmc5a;{eI?l zGx!+0E#`?ZrEZULK0Z(rTr3G2gTg=gK(bt^9(1IMJ)UmGc?Ev?IVsKLzh@My!~;PTP)<7#a^kRB8LERe%XuW#Ot2 z;bt&(Z5|Se$_V_jO*LIY^FF+W@Bj};fKF@cOXYMky84|)Hv_;jEJR=gCUR6AO|ycD zqr{(Q8S!y>9w}c2I^B%Y+RL7KYXpCACFS-5NK!IP(KzkO64@xQNej!Cz+ItLALM1C zB;^Cl-iq>ilUEhh)(x`GNjYjx5WcSH85BUk@lqiosn-GoChX^_OfF_fq4M%tf%3(z zY{kckb?KGr+kfqGm@*aO2RHTgL+tiw>uyaVx~qD83o6} z$U%~mfQ=0)cMEqwkxh~PqI!z#&~uNNEw6xAqFgvI34IQj{c!}%#hKD6nSs_JR{bKv z$^j6jDP@}#+Toz9d}BujB$8o1%$SXn8Sk&e`bwH#KnPuK%jKdHy`frY{mcg_1*{3g zLlD44S;r4Rl9nm!iQ#feup5O$iY;qg@4EDyhvZv}GyqYWIxz)+6l;#JCQwi|Lr!$a zVI?Dj4>u#3E|EDJ*L(|%9-yIC^9oitgHTin95168uyNP6=Nc$IsTgn#NmPO%^ZjYr z{Sj4Ay}TJ3W7HBBT10ca8Bch!A*`tiO@h^psxm+5rpWw+u~O<5Sd`}r7LJ@|qJ&Rh zT5C@D%q`&BcZ$UFTqj@#k5D0xt$Tk)vB))5!MdWW8;W0tcR)QFQl;QeM;NxGKuF3r%H zw(}UBCn!-JDcPuf$gQ;VjCeb(jjx$%g|1VE2Han6M!y|_C1D{62{KByn;~^sMH^`! zz5VEca5+Mh?AItVk&=^5rig^@(=K202-zq|$U>$l!bDLSuvlU!ONsvlvad<4tdMI( zM5!&p0pm1Ia%=GMm@t&j$>!^#$_!c^!68?_RT9HUni0EA)ZI24((dzsbt0Zsi!QMkP6n3c6F?#m!VUC@-9Z= z^ReJMxMsvSK|w@58D4`n@ap9p9xy3WrNIws*7niy`$ba|uksrsw{u z7tUeGl2P(z%5MCb5<#LNiB6pxPEf$6%?>uGydb(v3g{VF44)=3a_m#@Lgk&8^DdOyo51wCJAlhngT# zr1Ovi?>?HFA)%H~XbET?qnw^{Hp!OQDv9S{^Ldu@`d9!ZX!7ZT<~+r-PNb?@GFY)- zpRuanJrG>QApmu90)v8w12I0{uL2-fEj~Ab^j&4jG#UfdZ-ZxYKQQWyB#L^Ko8$L) zL(=9xF97W(PRr>n0P8U1$AV`!4G1XXAOZZ9^|LgTB6AKmyYJoG?A^ok$DRRmlQ}zff*WmZGJc5VX`r~5K>ABp}s)zv%jF-bd`Tn!BPlm}c zyW&C0w0-n>$`WaGhnxz5XqYEYW;s9!4Czfj?Ks6PfU;;mh~^4d7O+9mjmMR%n3~b+ z>bT7|#e59DAF_bwRLr{4#Ejxg!eZ*Mz~VnSPD9RaVc^A8AOE->1|sfGei?G0)pU{y zog4=%U)63#4!mE?lA-01uLY7ihdr>-^tzU}%xb)ZqI)P7Ds37|Y{+Wsh zJaQ7UP>9wn!zX{ClzB+BQ-}x>H>-j@QaqsuK^*YxB)~B|`+7lvXmGqgaCKJ8Wn2Bo9%f_Z;%Xb6_{gezn!g*z640ExsKa#)LK$zT5=ihiAQl7!g~ zv7F!Yu{4NebQJA8?NBv!sy(RI_rfaeX}45#84DS&k{r@nvqS7G@*&4k&T;i+$Q`0t zqC$@VeoPUJW;JQZYCiG$^L-fNC=NM&$k2Uwp^KYw7!pJ4+?0&DfNp~ir^|2_SB7^x z4#@<9b8$0<6J6bm=P+bO2ILep8HbyuYb65|lap>K zZZ+X}mrgaz+-xODI5O5)?iT~B*Bmopm}gpGOYn1>1lj;N@UC{Gu;Ega$vzBO%|p)b zX`D6<5r>7PqekU)Z$*(+B;TKB8d!)|nCr(om%f6%%&7Sp6iyqLro5l1D%f+xbf14xqd_a9>H zkV7X^hlL78Nox_{6(a=+yOUeKVEr3Z&#@S2X$@)6za;4Aa4|+3*QY9Amz(jvcgf~1 zp5%ZtO!PXY7g1qIH1Jd&%sCFJiX$VJ{G3lNK!%LeA4)@9t*te36{YB{C4X>C5VW~g zw8!1-sn2S#c!^{*PJubxDj>_s2Akk7iPa^jX2XiqU!rdYCib47XwHfMZVa7DWIT%Wc6TpE6RB$;pmacrgbE61@_q zB!@CZ?DeBe%an?2nE%L-5Nhd+!eHhMJ3>Va&jzs|#{oeV3EE8Jk!tM@_HN9Z8pdK) ztT4q3*xLdCXVi>&QbMUhhrC=_WVqUN#*H;AszG;K(nB@SkD~Wbds%Anirsvwoh1-(hpyN4$s>MaCo19&!!o|xNLYn zqQHTpA$%1R07S9w+@M@DM%g7?CPWY_7WOu+a0U@f;am9wNDq?Aa?%!=62MRct zZpAddDk8>%p`xYg$BjZdyMsB#48;4FfjW9rGh%jK1BNoxtQJ4heqNhnc)p@=$AStN z01ss&@n}eDp3{&F31yeiK3qK>nxZ<0VA5FmFq=rP(wb^5TY(oUfF7`&iJS$$a~y}H zu4@q5(u|LCwZ~ep<@VqpN8(w4eca3*TY|lVkC*82DOTWzKyY+00YcQa!NhXz63hi} zmK57b-TX8=Gsi=NEsFS_f)usa|0K#o?s4ojz`^0;5D_M2YPh`U+CQ$N35t4d;mJ!X zP`T_O+^qWXXT5E%5oCba@M$LcKRDTH2n{NeVg-dFqJ!Y|&6v&|hg+?g*vlr_AEq=Xi7dHfo3?Uah-&UT*VaC9mwISkpN zN_iV{8i80;M+09;I1C~5iv?uH|GCc7z(JbG^W9_?HP!8XQX zxe@s?espE*ptn$DxzebmnDrW=aFC;Y1)z_w+ zDXwvTC1=yJvZv(fnMokk-RBfEab0Pq!5 z`0-|_dsaKv!YbZNmp_504-@!WhFm8aE1CwDpBG9bZ9NnAOq9i|4ycFR?n%!RhTcA; zF2TY81s$EZlHf2&@GQpQ)6LMYRq<9)6SD;Av&eR2(&B<0kfJAa*=^?WOBl~F}QjOEWz=qs2w8=s`bZ>G{fYpsUGkg#GiC_V5zWJ)HYMBjxE zL!MrX+INq6I2-ibZ}6juw9Di$Q-GAdsbly z7vRlU=ad2uL>U%aiza7X3UJkBjk-_T7oa=u$~Gk9eMmvfl0&$W*{Q)GJq|3n zxzX}Qac~^h6*yif(BUag+`!urH>m|e7}~FiO}FYgWaB86SN+N*2xJzGDh5C9r<(zy zR56+^D(sa$mPX`Ip^BoeL(iS=8l)`AK1VQo(hh16vCXWxtg@XYOI zuZ!)aVD@bWAr%5D;^SiAX%Y2Ojtrxfx^So~ijkVr6vUwq5*Nat6D>)ou%R^Cwo@;( z0YgO}0aw|TmPGX;l_7x;xJ0Znl$CF=bO+LgoInF&?;a{^w+z}GFswPoVCGvf6(AuJ z+b1g>lLaOb9&%IG*OO_pVW-BULVKZrsfr4Tk!!$l$dn<)nwp2@0UEM%OBrtDq*i8N zk-?b-O|S?yrY4en-Ql#0fIVzL+pM8QJwUpI{&ENlA%9n6=Lojq50LJT_mjuB0*03L zzY22v1;{~x?Xmd7qzvo6-0dOJpO;rM7@d!5PRIy+rz6~bQaPT7D2RsOY!-~@ETNw^ znNm1r-rWpcAp7~!;xVPL-U5``?G}G-hMtl{Q%vE#583G zRKAwdjN{>uuQyPtH0(`rw;cTyfa3;1_BJq)mKkbi4)^*#&|$m9RACBA@j-q%H>xwflf*^#t0uwh<3i(e+mT9Dbbz`9M&xGc zvIT4^rCW}sn6~{38i8hJEpS@f3|3 zN-Myqq>Z)cHc%oBSurFwRoyC#%1@MZv5dvggv>bt7{pTIZ|f=f)4whTDc|tR|p_bNj?EOOC@iDrL8K;#lYo3+9}LF z0tXihw?gHk7KIi#$dDyU!g8?Kaox3pPye(%%NBbXc$aD!b%Nu7RD&| z-r@t%i+_cUn6_R+Zo$j-1e24OjTy%ZNhF3%%lgO|4z41x$CI}Z`D@bKe>j?>OSd-N$n`CvonBQeRZ*Td0K~@4XgH#CZpQr&EM@Wn zV-w{jPDLxDQMb0O1#4(J6%JUp5tJdNU2`T{y3s`4TywVwB%r+Y4fQ!Mr08N}oxo>F& z#xZq8Eq0`e2~SQ#h9*lKq6Wyz5G^ZiJS;U7xeQ`FI>mT68=mGPv2tpQZY~Q5NnwU_ zAFSR~HcMQ<$e03Qg=SpaRhKnmqZlV31lRI(SvhJynbeARG3LMTXGQQ9G`Xmd6xsav zpk$B&5)h)UT&oBS<<+mK3=U;s+I+wc#NfhG*dm6T#L@?i!_w${rcV+ z1v3-Sl%oeG>+93BqS4PJ^71YwVyn0qwB+T^o_w*5&o(yigt|38CyGZMyWUzH%2>f8 z<>9#zJ_1OGlr_lVGd!&5S%?J^c5rA|s?@~T>bmWi2rUeG;)W7E7Y2;L=phFmxA~=9 z-3;3~n?R26AqTZfb#{Y8+HC3>-IZ1@SI9F8taX#I*@2zsKKtVeQjT$ZfSnCK z{3Nw7Dh3UWjAF(xNV#fF=v#4YHvm4N4rYRh2#g%35BYXT+pN*&WoE#lcwSa%n7ZQX z#@<3RKeX6P{G>L20C{ADFrpHxjEb1Gm6zcEh6B2I-nLfk1i1D z9X=6<0|tCg2#)V_j>oSB$k_!L#35l5g@(s2+9dH1xEOe3l=84%$ywfbf^rJ6L1vRZ z@OgUjh;CYzx2DVwAU1;`Mg@HaXh~*miy)+4tm94J;HR*cdAcJ*Qsf=6B`Z8)#VY4L z%~G)-zbB7a8rfpJxH#w6mzHJz;1;cG0WOjjs-i)b{)oCX*ZYf~2?e>S1m)zp|FTyLaX}YUXJgJFFAaH4dD{~cAjT+M5Tf0QBm7kmm&8NuM6qC>AdRCsvCPW z3};5!?#{KurxN0TRWF0ZG(5%bThN5d|Zb5Q#_H6BUDlre8_ewR~^k zU)Vqmx!RP z1r))dLde=P{uT4vOsT6;9H6 znmA6*SKvTEgbdCf0MrUVU_~@Hzg*4orZ?}dc~dWUxm=PGRjFhk%HIkyCSI6vdrcsVL4-IB+)*3|ZHGk$(6JvB9A>CVUn;uYju93Q zBo1BMJT-fR!=pRgrTtt|6nm70wmvu-<94^hf#};x_O6TNa1L?)JfNm2=XwsPjfRVOE8+@To6tQK6k zgwi!ax9-?Hr<)?zEwXwGu@Mi;tcM{hDSByfsY!B(^r3A&ThdYQPo|(fnfM%4}YgaliG>XXex6TKMJrs1ot(s|u z_IcCCH1YBULIGA(AK$`X03>zDaL7earCW3odJqU_G?1b;Xj+UXz>x0}{jDoSsq2t6 z)+1Zv4DLmg+iwP!X>^V@1rfkQXC-by2#6T0kee~epmpVNQ2P@Eo*-zWRCIbs9;wqv z&Vr|T*uaz*~eZxQ`|qKj>*FoHrZ{k-KzmO|VNu}oXs47{IH%j^jaB^_yFOHNN+ zEVcE=o9;o%fU&cG9vAVUfw5@OqMwOd&>(LKA0-8?)1U&~0Mux+G@FY<=F|=9GD$lE`zc zaIJX-1Du_VW(5`Ceq8x^70GjJVMEb>G}7Dp5w!nWa`ZAf_E&r_KEvCTOvWQI(`SqVu>XNguqJB+@WOEQdU zUe*{Bs+uSpvLD^Dzz@Gh2y+^~Z%?-05#H=2`ccU{jKS55==Nw?W)ChJmrK$Sd=JSn zY7W)XlE{!}b)*9?QB@I_%-{TreTXx6lN{`2n)6RvEU{MdYkACjWv6PFr+_5CNuM6x z2>0jx!;rTQeW=byobvib3F2wL)i^v$bCoRYeqPiyYW)3f?8h&L6vJrk*x788A$5fm zb>aPDDj^RhZhFe)IOW0S@T=wYkAUnd`Vu}R1sv94}jENb!Av$aM16dAO* z)Y6oU89e#WN@00&uBZO)oSGg`tTm@N1_Rh~hw+$5{IDRe2Jc^Txfxr^++$-7;X_V?o@<3oSgtN71&DBVnmJfu~iISac1f~q%aN}PEK?iSVL2X z1YrQ!qhZ-&SKagY<90gU1v!(EX$Zc!7*c}>%Cw5r3@k*CE1kx)scFA{)1OCe#)Bj*b(N8=%EQHX!xtnXYvG z)EomqvlAQ-LIIz>QG5=mvhv%(*3pz`I#ev>=jqK@KrjT!EnQd@~BBh(_xHH2th+rW7)I<+7*D^Hg1roK{;7ak<@U2;{?{i`SQ1Mhdc5 zWzBH(KoQD5YNC5A8-Dr%uhoe)qg!OXT$e~hO+@kirDF|%r1v?4A$7wJJIt%!Dan|K zBOvVs1I{WBa~L!&5wwsjWT=A~dax)6fnL4J27tC;%c$_aeWk4u5*IM>W7pWxhn#kX zr8t;!eR^~^Bt0*LAsVJZ>AAk?P|{u6h0Q+AvL#*nkfjdJ)VZ43L#ySDNO1X#_8wb+lbOJM-A}>EQ?4aSNQ?~HN{_2#YIH6gNm@V-X9mzs7fhlIWYTp z7cXf!u{{Z$2G24$*ec?q+7uX@ZNa_JS_hcgBC&Z#HX=7ksVgt>054Q*+9NzLY?i#G zJ`m}fmloXYmAer`uj=?x$#RHC-Eoh~*HIhFTy%KI;-+!l63!5XdEQexlCT)5tC}g* zP78W`N)QRqDpbUZ+|CO+L!ob3b;u1otWs~r%3vmh7vo|`%mgTqw7-PuL2{p-7*x{L zc652l)cv4(`mr6{^fq>2woN=+@CfmU*j`Q;Df)@sc4SJR7120>o5Fny;!U2~1#}hS4 zYXDnqqKXLrm+OYGrFJ@m z_Cgu(Q&(er3Y)VH{(x{j9CRnua)bk_%j*m{rxd7}*4U8x3nFFJ=RJP87#~DP){h=V z6);G}N+H1m{FOR*C|Sy^N`XNSXdg`c9KMx0aNZd z47r{CfXBM9({9zWGQNb!wQjQ zlQFd)8a;z7EZaCxKtdQRpO$&J8L?2T)3RO5=QUfx7%fzz0s77sLJA6*VDQXs6wd$tDPGj50?XOu6c1 ztgE^AQ`v3OoUJ~R>dJ}MISLGs*76h?U4i1^hG5S)0#;qO8?|7N_U5AHFr48%5cSh4 zDjK5^#uK#;Ala{4cRty^im__Cy%{YsU0SP;X?Y2dQ+iY(oCZFnK~QvuiHqn| z`P2c=oZpA6(!-9WuQ;a7A(wd>vghd-N2giVI@}C(nC7-vWW5@)R(2ommLKIDuKEi3 zTgT%bOF6pdX)24Hlya+W;pg2RvvqTQGwy~g7CHWKh``jTUtlmv>0HT6F_WlS;j1ZI z^nI1#J*CYLq7W~j+4t)ytGo`T5t6VJxam z8rq9w3epBPXQotaW9vstnFwbM7#0_+COyTm>R^lktI$U^b_#wp882rT43Q-f4NqRl zfzFc3J{)cdxmjw5BnN>+F0e$Ai7`vQ)FT5CQtmw|i^QJ32pF8rA}DE8=fJ`O#O;ZP zrHK&2M{l_fP>>ACYtCMniL(tjuJQR4Zm^O|;Q_)w2ks z74)uIShyvCH(fP9hgZBE5q#M4eJ{0WffJHB@=MeJF&D@n{ZJelr9UJr(Dbz0T-TCcm|Y*ocNTl`D~S;NXJ$ zX3Vm1ugs*2hMSu~PgPF2>Vr7jc<(@})uI}(#+O+x9456Q7w@_(z&sSi78|FY?(Dkg zBPg(?9sCBErHYPJ2yQukq2bYNUfEg(twv*0bPlcc`+iYVFC-!VV`JD&OU~1${s?6f@X3=Zl^gK5|Ax)F+40< z_QuSHp#gz#Y-d?)JESgSy&NK=Q$9}tQp?I}Quxc4hm3|8uo|^N%uMTj@QhIp3d+ht zy6oA6ZGr)_kQE18j0P@+dd@ElT^etCRT1pBlg%!c319aTH7{D4KZM`Zz4`52PS)H@O011-Y zMo3A~rm{S!%5ZmtD4TDPsws*wFGZLD=Sh}>&m#iDc7iE4dQ}CRI!T=4NnxXEmni~{ z_v6hNXvituZj~A!3;T*LZAj78UoQrI>%O=cQzl`)MiC3x^u_v+7R7FOk&l}pJ0>py z$PEBAMNi8Nf+=Ypcc6)kGqbj(s&a_2K_J2a4}7}~tp;UGcSMJyiEuAd{RkW|i7P|S zdPo9x(Sz8-4O-0fIa0d8l(eKz7GhpJ?P-fz7AGORQanYG*&yBmT@3WGi@x%CFlALx z_^l=rYHOO1MR=4=x%s`%6Si>=Fl_;i(QM2jB_4?ytvU|{*^HD1;a`-7XXCKIIx-y~ z`D-j1jAWn*hdTt=lDDVc#K(JJtwFumn4mUj&p?huR4k>G>EfXCBk&b89gMq1cwx7;OnUZHPKw$4D@MIi&(X}ctpp5 z)Xa>24J>FiL#>#h%S(pny{jM`yT$UL>Vr8*lbERAE7LtXklsOhT_HV zphhSMu~2L~6Ll16q|kA~$$T+LkS3#^hCNS~6_`Y{Hy*=`kTOvDh^Y~W?xE1D;_@*7 z_melXn0u(UIsCYi+inK#!IY;SObDL6HZTkkJTdY&K}BO;91CHpopq67PDGd{diz1H z>f)R-B-AAYggT^HLlucru9iqd6#z?MiXCIo034>U6y|({;pyNoVE`zwLpm|CSTHTe zv`QnA)x!!QQ&(9SDI_J0C`S&g(HAgASCagpXRz()0v5DBuVAL=MVopt$UxLgS=M9a zz}p!;o|v-R$lU9TZyM0(vcO!4NE%)+_?CGplIa)&k%ty8AOwZM%SQl@E24&h@>GC# z%fQ(Bh&ZmR8J2q7BeH52ItH9S`M+OyoToIwj{w_LVpWw4S`F_`Ar6cfP(3H02ae-` z0h+})q-N%#<+w6n7&U-TxeE6O;J(5KI@I>gu(BwoTXwd>--kqg0>sw>zYdvs7_ws` zJ-5Ka7LU|rXj5Au7fx z^U{+bYWO+_$-^NDT){xJ0`4yg8bEo+5V()VkTvL6h#pLqhf*I+@|8P~lUv;Bqw+G) z?IFcm$wNd58hM)%$$`gW@^U#RusRv~OXxE6I|b+$%OqCm3kbr5qK%7#4zTwsunI#i zW0nyVJp*lgA`D>`B;%}Cq(kzMm|kRH$RObTGUVWkb66kHO(k2HlUaU(Wx2={*mSdf zsyY`!Bcb>K!ds75Lu>&K;Q=79h_B@rEomEa-!l$j2jIpGAlj$8AzTxgzq}SLRz(A5 zG@`!z9TLug^LYJZ2Koq4W3aWy=~|JHZ2~+*bDDCQQ)2=AfDQ+ynNlo8-QfkB(E&*X zn2pazugAZiW|VR(f>X>i6(aWILEZwg+bpr}U)VJ&IN{69%qn&`a7)S-v+oNOy@l;u z{K*m$4ttg_k_>;!n?3^|vcb)6kBEFT#?U!TRF_nTOHf-;rbmkVU zSIT~}UD0(aoQ{^IR-a>M*3)$AJrxXb^_)suRQr(YC9)4!EDp#b5S=P;xrEl8W|yhuAE%FWB`UH@=M*-Or*ZD`LaL#7(% z#qE%Xi-)c$iHF&t+Nd@p!y7Y2S;d*({>AOQKcYU{*buV{IOCaSS@Jj}2Ek=n9x@g~ z*J4Uc42dB`P|J`hSQYnZJSzrTY|X(sxAcNNa_9>H?i^~Pi8v|+He4Ji$D@U1Ler(0jy zErz)n%a9V2fItwoL@eV(4}a}P5SeGzIyiAe$lh|DMEN|_mXZVvwD+@& zF#iEs#c!a{ss(EYW{T@oCwnzD*FiZhLAZHm(X3cEm2eiD`%W8zU4D40>q*=9SbqDmg>@*QCY>-;@g~# zWd~fg5E)%N_KJtsveiy^U)=Qdp07UB&#y%d^ULeEP;dsD;4_5fXiuA(6)7!jb0PIa zAde6&mQx542}-;e-w`%No@LGsQaGk+uy|tHvJ9@(g*flo_Z^M$Mg=l9WU=d?`m!}3 z2S1Y*Xc;+Opz4u(&i{{Wr~NJ8IDFGV+$gFWjFSt{JMr<^7OG11G%PPtM;wOaRRc8V zA%`Uh!wKR@!gZEkn9IqFO0j#1wMViNWrvIFkQeRxaZ1&3luj9h$&MwGN3tH2oj-j= zr40#Z;6s&F8cSNII;To$QUXvS1x zM>T4eNLT8R7sq{bl*PtW;PnL#T-32yfpLAw`R2hxvV;oFFOvnGrW%ikXOV3nPPm$f z2WQt|WecoL9hD6(wo=F7h?z252QMkDWGpkhu%8iNHggJzu1NI$I4H=+t|?b{cKz13 z&enIj83jVL8)@Z>@p3|>wS^u8mhIm;#Xk_`7vki z<$suY9rX5zqWQ~=el&kG;~$*PjpUF0_vdA4eIa9w>B5P2cNzc4rS_PG@HbnqNp7shIE#QtGgg%2S z3f2YLV!CG^@+DN_Q8N&fUx(bV5?P_LIp_Ulnn9FGTA;4|u)1m*(*@J2N^}6ILmc7* z(e&CHvp^cHaw}4}Ip6D%TqgfIs@g(c{)tRvi9MDDw_(+*3k*fx0Hv>XE|$S%lz~(z zE06)G!^I%dJaWMaXmWA4^ictcY7!1Aq>Z}fz-iQmz=U{lFR4_Qp=N!>R0>Sk5;bao zslw7RwYA(K8pZ|M;SiR;crEI6@dI!UG_Ym$XgvPuo3ikEYzKZU;qj+gCGztO$KEg9 z;-uHonY9xhRO*a&d8!-2RkQFsPkOt!?*J>-Kq2V>VzB}w4qZ>r5zq;kR~g!|B#tzy zZm58$I9isU-KcnG`UQ*xljhCTMSL^5P8TvPVJ<5i<|z9jceqX}uJEshj5aU8q-9R| zgZGa2fe=>+;Ewb5D5x%@RCe>@1UQdg4E+I2iglm_Afn>HTONEX^c?$RT`ksQriz>p zg|4Qqw^MkE^98mE6cF3D=yasIkkA!D84db6KIwtKYA$a^Kdq2jaW7;X7jxtDWS8J= zlgsGbBEBa@poPm;0!|SP-0NQ(k9WhxyKFHOBVjP#ha+H>ik*Y1pfgYaVA9Q?!x5O# zY7FF)bT6XEN7amMr6o0iD1?7=pn(U%__tB2xMKYl$&ASnhyJjForDr-HQ|i z7HL>xzx`+|BbfbFpq| zt5v2e(eCS)y^9&vdcWp3&q8NToMRnCI(=wZY|AV9-8PzLbf?kp_jgqT^TtxV}E ziL=zae%hpWm}MJy^t2hJw*s0kuT(8ttcK~F*RwMKUw)NG0(d2jr2{s&-e9=`%5lI5 zuOSbTDY$27b{RHiStyX+%AuP~2|eV~`qJt<|Lx6a%#n6f^CH@18_iTtunh@!$tui! zzXUGPR}u?c3@P#PX81lVn<3`)F914tH7g*mViKKq-kFiceW>>3LB4&_}hf(@@z&-_(m&YQUR~c0XOBpyl4Uo)j z!Anrnvm^vw{7lqi$S2Ijp#3aHo|eZL84h>N28i~N#;PsceuYdKljv!Eb+Ms59AQX~@;a#m{3JTpNK`N+)xMP^BZwmiiX z!AahA&O_?f7_Ody7$HcR0wrP?Hd?QB&GBX!K-vpdl#^OcnD1Yw51io-!tFd6zo_C7 z-{SO3g&NGu{^N`2V#YZfEht*&-a{l;Xn1&{!4>Ke#QOuY^bcoR7rn1t(V;6@WgLc_ zavMiKZ-6%Z>Ao-L6jSlEWf8VwV$SMD34-ebDrt;`1BBTaC;{gp(AA?qFH;5t-dd`drDuyD9=x=?F6x14#eX1Xg7sKh$gVU<4$ZQ z@u|a*qNzBhUigKis5}1;CXf5h{MxNkVgGw$Y?AjwqUm9 zQqlT7bqOdis@TlSdOlzZ2n}M3Tj&|Mg#zUJOPMBH!v=E`5WJQB*I)X>GifrdUs@Lj zPI>gyeHzGh$1Ym-JuYZXg9PZ$Ds(fUYrj{6d6X=goudb^&0p*1(Ira^hD`r+?v1Kh zOIVR#Ph?Cvz@~X=i>JbHLEG~}!Xa&7J)HaV2RDNpS>ke~jFmG%&tRWi3pu_%rots3 zV+kr4%h3&#ti==n@-j0#^}zysA9AMd@V*zg-VA=ny8(2Rgbu9|T_k4OFeu8KfsSpg zkrR>_e*=q)czR+UPK~waAvZrOIL!n#{R0@)xw~R6tagxnTOqoWPdokpO zkJ)T)z*sTS39A^=!$^Q>{ z+9|N5P~&Ctss}>&nr_+z91TMd69`Dcb(7tS`Yo~&kTGHCVDPOrly8Yex)ge8{(&bLKrL%~&HuZKKdr*Z?pmcyvh*)SA6pe2%yT1zSy=3D9TxH{A)MLHtk(VFem;B-ytl3la`p^-;F z4$aK2Pd*qk1FO3tPJgzPx>ocYW5jE=tpmQFF%Dv^ZTChEopFBd__$wPbqA*ijO2(Q zO3`l7RiwrwpPV-2Qit!+Ns`V9Lq_%p)qnUYyv<*Tw$4vPF!;2z_C%&fUae|uhzK|E z&CLh{^4n#a?%NAO$8$3vi^k4p)kc(p;{BuJ$|aeHa*%_VRx$YJtxJzB^F9(pqJd&^ z(vMyblO?TT!O#N09cEdC$0mj@Il@vIDO1jifvITQVhGEbTwZXC0mNvfVn4T#B_9}BN;aNI)D9(})o*DjG64qg3W7>)Y1wr3D8s_a7#qh2K&RJ7k+r#)s#cKLq)mv!nhCw`y z=p6F&anzF~{pr9g(PSOqN_7-OLvqI)ehnNeIf7#~6H$`h%uo`f*+z@jK&F5?dMeUG zs10vM6$J~3i;$6sLqgpGaR%?qPjiGj404@Rb z3-e9Cz8NyyBWcM%=7tQ)1R!eN&|WvKekC28JBMN%$!&^lVy!GBV`jRKR)+})EIn2i zY|PnV1!ZIA=WpTK;$#H3k1afG1EvCC!t|X6zZ@NMAsNsiOqpppOxiX=Hp&e;iCJa5 zU@dlwAemAt+C<04H80#UtyQ~cEGD`Al66gwg2dWT(}ql`e{w3R2M~n8fc)oNKh$q2 zkG!oBe*usSRBI1+p!_i6?lM|vDQGrZdpv@OH^AA>`m8hGoP!-rUvK*QG9r{-z8`2j z`-@^Z3irp5vhAKk1fBs1N#lVc~j9xT4uvzB5IptO** zyX-)P7*CN08(WyRK(1uSIo|#sQ*gc+jvSXlHG%Vd4lvbZ;zLpX0D)E=^x7S>Gq+wd zI1CvsH)HdV#N%!yX=WLlp`p`(UrE5(8!BUMY3;8l9w+eO?>JHlw#9Si=}Z}!K~d$# z){}WyjS-MKLWQE`p#`ETn!r>Wu&xzDDai_(&6?i5Bd>5(g&!aaV{UH72BR&6wToo6 zO&vpqv~_O|AjdHsV90V*xgw;=#9=PT1&HndEXRW(Wy}7$P(P1BCw<+;BPAvQF(m51 zX+0C>E$NWukiwq%XbA~B4eN+~sJEoFd!dDK(v zoPAVDieW#&*a(f z!XhU=uQu_inp>JcbEV>c%U*@$ZOTAmV~yF56Sd%dk~;6mDXT`l@K``+IW5L10dV>* zq-0oWk60+8CLEImwA2Nc_u@Y_P@u!OIs)|ZkYkC<19!L9r^A7QD) zhA-yWkloIxC5j316elX?uH(%Js%i|-YTEABk(oDxF#xp!F-Jy_#IiS#uO9+wNSNUA zkgdU1Sl4LtB}_=fh}X&XbjBvIJ!Qrh(JMFyFARj{5D#LWRgw}&jik~;H=f$*W`z8pjUm^N#cu+=BXPMx(~Q%HToN8xNQr3QMS!@Z$=Y&Ci zX=b&AZJvr`={fDc+~~t?sEev&i`WT$)7LojMk38)q2RmZku&E(#L4_HHAQogjQ7$+ zYgz(ASzx&wuxaLeNX_p_LEF@%)#UA@>yxB3Y&KS|+m;O(Fp)T!UPw}kh3O5aBU^@8 zUew%BM$_+!5$}de4e?B~ zj1p~c|7QN!_ybT#__C9iCM%2?GACLYhhXU_Z8X_PD>#KYWXUT#cTVrt9Q%39qp=l% zbQs@sO8_skRGAGa;y(OQ$P_JAp@%nM3H0|5tqa0-U)NR2wNSp%$iYdkTqnIvicpxTG8|YH2bzAV|2wt zkYB@4(m4-QgueKGb>5W_>C4>=(=JJ8{}YDU_hJFCg2S_+38KwTLoS|>Vy%fjgRyCt z#Dr&Iyk6W4kz)(UmW~D7o)VI69|!G>IqH8t3p)&0OoS-W*fXz4oGvL9ay z;>ouwhoQiEc~F;8t3KpC<>O)pVK9mZd>ZYv!}_!Ns6i_%ORASAEtsJd-Z3P^AC?aF zg|B3kgyDA8=dIAK>KL{bMGVthc&I{K$fKdjrvU>lF*U2$la(Dz{^I=2Z%busu`r-3 zFjUVRmOI~!NfF0;HYvBsUFcj@RI4pN?s6%vH-mU%E?EG-xHVgcT%t&7aUE=y6SRqN zte??ybY2mSF@xdJfet&*r#!82SxM6oOlLqSw0TE5JO$Dy0@mustx>u&AE~v7I^K>) zI;O3s&=Dkjw)Io$<0R*y9uL{dj>kNuAT$i8B_q(DsQYMD3(yqg=vrhEQ^Bn_8nWHxV7c}H`|Af=c z7$#A)$Bv<^j0DEBb3_gpfq;&zRh+i<$+RK;1xOgE98$e7&1vYdi_2k$ax;t^cw$PV z+PFF-T2n3O{lQoP5OSv5ty~7lAAp?|fSWmLJKDX4<%I)^FinSJ(<(5M(cmM-*leZK z@kwTCp^}?%98v&_%m^Ih_K{bHn2RA9*eeECi~!*S!N=)=3V^XbWXKkv%)(2X!mVYu zs{R$cw<%5(+#m%2h{TX(QJ|EbLRx1`6N^ms1O>Hk_o`2Hvf5nxMgu0W!-TR2p09MX zTrP8i%Ni)MB&yB;VSb+P{PKLZO`HW+f&ek}^rvD0>{u7z-uFfC6RN8XbMUq%M|io z&rn!P3>>MKFI~XTH)GuWVpY4l;17udK&Z)~FwhX{Ax{&qkp&eP(TJ(6eN(|p*#)%+ zOau__5RnNJC@b_{WQ~h?_1Q6%s}Wkpf*Eufl8c&pIR*-1Ae_EKjyj#bL7IN+OI&qF zgaC^P2-S5xGfUxFS#akF2`9ybLIB-+9@f|+VV=ivS&j6XRZL3yj*kyHZX4enwx#GP z9*4s8Oz&fVg8^02W-6vYpwS{p5{euVi($*NIh>kWDJAftq^S3qWH=~AN~I-uD&XUwmXN5|m~qT2UCe1nuTB9{ zNY=k3w{kg2cZ(yGoTxy$90NcBt`JzxV1g#1L|SICZ^{w802#yz1<+EVH*Db{_tff+ z6&^YkDb|X8UcyQ>EZvHbUZyTLV@UE)u_2?$!O>#=GADO}UmS|Jr z>NL7keB^JWYgTdEsm@<_eh{wVC8*++eW|{SuSR;VtmeLU>#K1SS9v$52-- zD@e3JKYaI0)E#Szym|%|A$=bUm|H|H@}_iEj#WGBFr;rj_hUQGY{LMXCc_uX6Q0_qAAkmGOuwh2z46BCPJnlp2x!rRSA#qFgl zSkVoIS<8W&HY0dA)Pjn0*aCt*!%56?zPa3x7FS0-;?AeM4hd+NHk>M*96}FA`a;SO z3n&$DgPt8ch{9cPutMVu9|@^10NWNAT9>t22&@Ut{(0lHs@9zlrwETRLe!e(t!X>Z ztdN&V^xO(30N{PU$5fXCnoH0kjE|+JGp!9-?08>}*Rax6Zw5ki8xDWB3_QP$Mi!|GT9*L&!sD?8|^soTndbD{xcwWeM zikS8@X`|y2oPH(@*``|bot3@cj3CLK5&G#1T>vUVC|Z!sjVe(4S^}Qj1BwlcDd2Kb z$B3rc+S^qh1}HrlYHH`pe(R6{UqW~v=ZU&>eRtcZg1^o#sro#anxYV~; z!o<%*#kT0}W<@$9eYnb;T0G=35D1XOWk{$0M9sDM&`O-1F+sw~Fbp z1vyz6_V&LWD0{KUcjOu)x{_>wQ3pn}WO5isMNwE=Tc(`xOU-h0Oj#Qr5jTtJd(L=2 zUOI~Wq@p*))9_XOa(ULU-3MqE*(qKrC>_Q&%!x`Fq?H6NVM3(MR zYfQnddQA|DN1-+0FGYo~I|jN-4IbIQXtUy06DC`ZETR_xsjIDXJP2+-KMgsOaah+e znNT*Aj}pppE#lOJjV;($XEY$arUySxV}wJ%(q~}8_{Ms&4!CdffXoU@mR}H^S2eom z#)EGGueGMNT-fO_*tSh)b~2{mDj{4becwrKo)Ka(WyrRe1n#7eD6Tys_2Rs!X{0GF zyiBl%63`G5|JpMil0ASzE)1wDMoGF~^?)x2h!CzU&kh?+kOD4UlGsJh=X)Z_hCE&x z4mmg}WDq+-x2(eonk)-No}Ol|AvxqloaF$9BX zNP;C|h3913p93aWPz8SzYj?3!J*g6zI(ahmE42h>JY;DuX`3XZcU2^Ps zGcvCBn^9RB+2V@xuAVq;-uK*b%FO^nv%$9uo!|DG*`pVkEijZx(se!M1M?*H1};uO zPHk*MuB(IMWC8%hn3I!xn4nB-)<^c}Fv~;6Vf2TMT&b6lEHST;NbI50?mc0>&RlAV@P)D6Ms-ZM9vg0ceokUBPsJ@c!kCt zeMsY%Q#$@SUwW+;#}965=@}5WBP(zMSeL{_iuADv1}2_%pZ&_F7+xePot#h3W-b8$ zdOLEF67L~0ieQ8naUyy?5qfm@Ay2TK*Asy_sUa=oBK3Oqfaya83L%dUW^+kTY?g{` zNJ*=0L_zNyRc6RqzKrsDl#H|M%^=kLHe|G{Lz*+vmx(h} zmx}@EGYwsLuJ=*DtRbO6lgWI49rB2tQP*X|I;(7>dSNN@Wwk|Z2t@s6u<o`U%KB7x$;MU9CGgnN64O6H{&F&*>S%a!;i}pQ)u|s z-=3LF(R?0!yM`k+HHlhj&{Owz$YkX@wGd0Jc{9@PxQp_9Gi1m^u3Pp=LPo=N$cwZP z#39c&J%(I*bj?k%BwdFT(j-ZW6zyA=0E2gGKGnu4T&M5w98=!p7tSu^%+M4|Pk>?9 zI36`0`b87Q`xQ8!dvXG?eBNQ{9zOTlhXhDdT=05Gj$$SvqOOv8x{L2_#)4VrkUWQ) zEBbNczxt6L6z>Nou^!K3-Ur92bQ6UmJw-F<20`njj>>+<{C6Qxf8GGtzk< zGUyFUl9OtV;BAxiP;WOlIfqv*f|dd;gSYL1-srwb1jJoWb(Ch7i%Sig6!JE{@`m-2=6r%F#&uK{Db4Z^&#?&|v4htPJ4;bJl`btD7I_t3dtZAl-$9qo4lWWah7Azqcts=uTy4r(>+db>fi6QSuqR6{qFo4wqQ2<*? z_HEK83CAHzKW{sGP}z)g*yd_Zn7oyQ&qKgEWa67@cNTn6yq(KJl7uG-mIF3D_@#h+rO1!0=s=>V_S@OO_%N2gRLIFLX(PU1Fq!0h=Vojm(fG}{3|Y7hC#OpL-N)%Ta~jYOBGvS^?}TW^NE|Mul7N&Aq3IW(K5=P5xg z0DYcbb$ibyX~p@u?$EdYyDdwW(u`xpGs>>P?S8eqJc0=sx5!ffB^+3!x_am_xVdZxIP3x8>}pU%(6710TSxhnUNdIIEXK zZiPOiKvfXpg)Zb0|FuUxuN;d;$BbYw@BdMpSNrum&2?}XAsp8u5c2NS+p@tSvdyT% zScxH2l`|xCLra&FL%7##+*;{@ham;GB*>6Uj1SUeae%cupMfobDb^70>#cz)xf0+o zkpS%d=WE0GfFuheKRP5d0KK{CER?$wIXY$F6>}dl5{_GO6RX(LLAtDyL;A8>=Lz$~kcZdJhs5oclsJ^r?3H1uNC#Zd1VY_vN@87_%yK%I z%haMx6({89z4#KbkAac}C!rEkNAncwkXvh*jzdzJbKi%YK^__MsY~_6B5$cef{BT- ziP+iNf?5R6j3+9VMf+k%=s6_U1cOO+SStg;2`TEVs65yjj(-O5;pbpkZ3tsJoaVmHM=H%Oh?&qYkQN$5xC{AG}>sWfQ`z0}I5G!OkA*tJs zruJiAFq)8j9<_#Ap~<6C00)Sph(6!CJO?3l_J#f4rVLdtEY;W?u33Vfgm2Joy&X5< zz3ix2;DRj731nt$uxnW(aL0si0R|5V0`?)FZRLx7H86xrI!lM_{bmr89c%7-Gxn1g zndwDmCyFU7Xlc@8^p&*bD>p;?o@hwXs-^F()-U}FT~6~wr)F4oo{>J>XgZhZIT%4QW2Km?elI4 z2b_~lYmA0qgve^v07ovz@~%Wgm`Qxdmw!xiN_+7BEw&d&)~rK*wEIo}h~D3FT#PrS zk~x-}aT^l;UfP2q(6c#f_908CR{wTIz}}qbHtFg0DFzNbZ|(EOOIK2XdpTqi+;cK= z9~3Erdc8!Rr$z-Il&3cr({^7ezNgzMc|3Y437Ogap__ztG)hjV_FQj8j}`+Q`o75;UvU_2c651Xb$-{j_(*l9zbOe(iy`&s-gG{)*p}#r z7@F+dvQ+3{fwZ%t!G{FPIEx)-lg6lS-0*R zL+*Whj}J8mFyk-Bv2@B4p7Q}+&+ocnY_pXmRUmyEQe;a9bV`LQ2~T1kX?_hYMF#9o z!sNnVycy?px0A2|UK~*~*&#hc2!jOr%_**+Y{r9Vb00Sw(gE`+F)#MW=)LbS_^FNRE%RdPP+KgOuZMtu9_AuE1>u%mF< zs&vSQgKR?rHSP8mqXm4XKA~wSlK0WuMg~Ly=D8kH>m)2X(PIP|(%qObMsajN_2c%N zF%o(YH$!NIOh=O9A>eyABXgvOLe3+ez(gHA%jb;;=3LXGL0v+)<2;bcTSm!{$jA_~ zt!I(M2xMk1d%20!#}wC_0RyW+j5*_C$fKIuDvKm~C=Qa;z5H$dR4<8GDb;}hZhe@u zU1wN7*o1{A>t;B(sCH`u%q@p0O)$Hf|#Z*Im=Y`Ab|~Og$@Z3kVW6S8HXXC zCoL9NYM1S zTyT#B+mP@?N5+g0c7;3{qHZh5AApv_i<2D(P9(t!#v?;Y$a%;PP7Z00S}nvL^(_^G z&uP+8px;z3vy^sWuP%Vk@}fqqGAAapxU$(IExjiIFm#as$+#< z@ZbrtgJV&agV(6$DWC@?3ICiG_kM^>YFAWdadZnV7$x-|>BLYtXG1kz2m>TWecziD zq!hrjKfs)$m?9ZBdmC)K$}A-bWk1ZAC$QTM5BoE_KL(&Lu3vvJybQTRG<1#dBL$aP zK+7QYh$Kq5*Yhb#i=AIE1Bfs3ffEhqk(S~8$P_tC&kVR-GYurfjPA1}wRuz%P=2Hl zO8^`Ib3ly0G<3%29GD93XG(B5A0GEX?U?elOl)L)Tu3VB5NjtvR>?#LV~$d@I1*?3Do{nS2t zkjxSfI!x{>uZBz4G6~w=4f&kcUs94Px8*Q%YypF5JkQ$1Ay%qhSLo`4OycJdh|u77zs^VL{FnssBfv-M)4Y#_lzjyt%WE` z%jZR3fd7BZ#mxw3(7m0pbTUk;DJ9iRvD9fuB|1}NG_?td<6=ruSFWfYN%vVU2bZXf zT~17NDS~H@4ipHNuu;fbOQH2$PiWQXy24$E5eqIDS-oKRfO0DirNvReWHoOmOpDY? zf}g`jP^Wbx)Kg`mEyU7@aew#^bs2zgb}aIAgJRM; z>=^kbGrI=-_17Xx7TJnS+;$dt)(INqrGPBDV}m-L)&dm*He1^=0|rUY36@#RYV}@u zTX)~_nYC^|2MX!+juv8@Y{702!0SD{KfIfY47)_6a@KLw@^abX_Ba^zj-!4;YdF*Wz5Two5uP4#WUmPXh(lAz!_6 z4_c7Jt2?CVsy}L8_^f6d?8e%M^wYoI4B>6TEfu^4rZ4z! zz)d6i_H#=}4jIeSPz-rFWICT562rY4GG|)mSz;<=f~ZwE;`)GbDV+~WCnREROBk5m}&}RB6C6e;9h)LBacBC~H34C;{-nTXe=-0Yk?+ z3{ymU8`4z!kfOl1G2%0wMDM|e`eK(%0|2oQjme%>w(A*XDNleGPs#&eC+RiIGomMn z+YG_&WuFu}J-;1kb`A=TJ%u^q=l+b72dF4xkotoNy!DVl9dn^^p3h?2gzz%tBOZpV zLkclIFECj|i~)*ID)TLQ0{=W-Bq5`)RZlk~8crqn2Nz#gVfRV@Q_)tQPAkSBwQW6&) zX6am}K@h4uvg+~xOww&gm?AamfXNL8g=g3yCxCcXzPK6oNcFpa|2Ej`^$`&aj96$& zYHjj{=4{d;z84ZI1;khvEbtS>homfouE+@A`^6$sg5%5s&5G^d7l~Jn_wBl=xDA;L zZ849kN2N-o1*=d#Le0K$M!mhWgwyGME?cQ?y!CzIW@wR48%SZTL+bZ*J@aAY0SE56 z>5exehJ1Z9a*FGYY1fuPW{Gcezv)jMayVpK92B9Mu}l^w!+>!}##R5~*CLTFeZA1G zXL>t9I|N0$(fY9c`Yfhr5v|-U3&oP2r}501D$ULBH;e$?$?DtOHUI(-V_ia$WXP@D zcT|jRHu!DG1J$3sTLb~lCt4h@T#fEt1buru=jtlQbwhm`(&TG>EsF?1!0&Flo=@!L z&td}V{g6$zVmex4(g2W3*Cq1;SZ=ylq6LcEkiz`qA*I<$rCQcoq=z9lVi^eFz0g0; z%1%ckv}`-fe7mkEsV4>@N)|YI&mZQ}L z9^i~7al-dO6VgxET>Ct%xE#RM|48wYRJvC@TQ8_qu@1>mmP&#cz^Kcsz&t*r6lDAg zt1k_SXYCB-h%#JJ`;enoJ3uf8W50M$Do;b|Tq}3CN`ZtSH|JPREl>bmEER2dfD?`4 zymnu#;5~4jwcxNLq<1G`I|!)Z6EErXlKY4q2xo*Li{|Xh;m{^2-z^e zQcat7dcvC*ge64=-;(f~mD7C0OOHLbn<2~GbgzGpq}u%)mnPg3dAiiJ?<9iI)@kHQf<02L z$0U4@Nn`EHEE$9>N15SR5T5N0h%v)}tn-kPn84jbjQJsph{F$XO6f&O{&d&DiY>4w zQ2+ub2^he{*0k&>qGa}Nl7&MjTK_zO>yf^A#Zky6)8Ls+C4<$q_IzXe(OiSr8;hC*o2qW{x5^gHo@TtO(hohFXtdH4` z)5L;+A?7ff3}hoNLq-ltzcJ)8OKOs8cSs1VO9(K_sOUWaH!J}70U%HKJR1|VZKJ{ElkL<*8Miogq&I_5 zzdt%)N&5Mfn?Bk=6)(%z@O&WzNUt7E<#5|LQ{)(z-^nB?+Z-8b+oQG2cqLHql20 z16)LbNf52E%V7B}z&qf%|8zoAFDmJZbKv8)z0G!rMlwA(@J}6Y#>K=YxVy%bkXa&( znP&vhvSY+ju?!hI^*#b+hl7crK+BXrP=Fs`h@e}5*> zl%$_#@GHA=h@?VGu0P~NB?3YR4V%D;HKGpc#Xq`u3tk9GXUw+$^k!bMM*?I75~VJw zDh&Ge8fGNxDFeaMg>SHx-?rKSQbDG`J_O>ElPfd=y?}E?%GO6v#bSVTpjpir8Y9M) zlxi63A|{-8D;wY?v5P^mh`nFX!pu&F@bkhnHH61$V3fi9AVX->)^GX0gp~;_SaJh5 z@^lRlSw#Ne2Z$VC9)4VPwAlIm^!(dg=f!KBpQw+VE;E?SH0vre2S8Z~;ewwTa*!TC zyfq%F3wyeMcpCy)V~LOw8JaBe79g(31tsqu%%!YV1co22UG+~NN5!CsELxa zWnnUdqT1cDdlr>ssoyr4x#O6!P*lmNuoAnA9?qpeOuhIgyl6GZSl zax<2$!!i!5d_R!4YVNy}_NbM$LTzSgO-R<2<7~-7d9Z9TWrj={87GS^rZf&ftuL}n z_U2~XDD*BdHsny&QZ>tvThwrmhlxBRE(O=6on!j<**)v|NJ9=HL6;#@w6xG0C=405WXU>SjI$;5dRLON((gY-ZG)s{5yz0H z7J3V@@jZ>FYmvVFJC|~qmK_%}6uC^0M5)V)Ni3nz?+J;MV0IVWDyZyS=YAQRx)|g2 zkb}fg#q;{M?K`{ogUKN+LTb)KLJQcte*z#_DpCW!k$0T3R^2X6)Oim#ct16rYhT9tCqwNoUl~$j3!aE*JfGW;Y@gRm0p$ConOl}4 zMK~xQh}!ef1^_-VYboCrKiZMW;=`hKz8P!9$XT%3m;+Drf8l1NcSdE=E&TbY)&Yc@ z2VkteUknulH1O~*+H84zj5uvZTu(K_(&*{SGG~2T{`ZH(BsnBcaY2L;;4jD`y zO|X~n_d~`8^ma*4!e3o=b(Y_;$1x>0!%G(KWNR{|(tkVo2e_5H?|WR>kIYjRC)Ze> zC|>J?%T`Rm_j}@V8&VhZAyq1gw`IcO{L+*lZ9}q#swmE?wQljsTUMw;zPK1cJS?Ay z4n73!BlK}d4V9?3b-WN=BWiJz_IZ#o5A-L0)_JBZ@Py&rNy zE?Mop6BBBE`qL#mj5H+>8i;^u>_bbJ{DP4O^=(itAD*$@c+znP~xc zXd`V|I4B$?#t5TSZvESkr}RYdWH?)DHQBPhmFSSY*nns4aQK7-isG~M2XA@I zydx?kca1RGom81mg7km00yC= z`gAk0e}9Oz%00BrA)ykr5#b1zwbWt)I2>zRXz&)I7BO2199K#{8OH~hd^XH;8!}Qh z|00&>atprt=#cT0k-z#p3)h|i^}9#%dJy|_`&#tk$@uGo!Z*(ryEXjjgCSo;#(ZCT zBBs<7pv%p8{d6r4?AIrg-d^?ZJspa7Pq}U(5%}`4As@v5`6IQLN2GuCtgZ2+@6Vq@ zQh)W4y<(5d7MRjcmqVE1cUV`J29KCmt35K$(oDu-OQmfrDrK&CHb6p8Yd%ZEGTWdw z$%39C&m}2-HKci3ir`fn5mMJ-BKpOUNw-ohd9;xI%6MWTC2NQuqI63V#Z9^3B`VJU zIOOGK9MPvS`?>TBmouLl+U9k<1q_;Rr7?@s+wX>44)k*T&x;{}Iu^1Hti1+n5_r5B zI$aDIx!YDov=Dj!Hl#X*X--xyO?=DDYj;?VD)Gv^+8CN-Nxqu!abNpu5#~pPmG4l5 z02XzpDm|ynUianu&GC8=9Wu}MOaF;y-El!|3t;puc3X^$3BSBt*AhCHc9GGP2bXo1 z(G26exKjaL{5)`9*weO~gY#m@#i>KOj=Kz>oMY{aA(uprVvhv_Y0gy}#a&hkc7hH= ziq+kEGj2oPPc>R+n?sX9$h{ng$NFOLUX_btS=lJ@kl`o2((?Vwit!Bh8HBfAPAe4~ z;yNoii+jWSkZj4O!;pf$tSOpENbYzQF9aF94y!CQ;iGyYHszvNJ&hyW3Pi_k(iNpA zd=3;(+>Ba1Imf!#7Ia#eU^g!`<)CiA88dAvV#rz}Tq&gVMh)^+cbMWl#&Rq~wVz3* zgn1D}esDz^?o^p_!5lbNQh7X%Thk1yK=r746y?hGOiYkxc%XSjEw`i17#3Q;Pkg-@E{T{zjniPA_Yc`|+Gh^wQ%@*t!}o`{XbDiK^I z#QXumoDtSo6q9=>ggzn6Fn#EX)Ic`A)pCAb%hs$x?s5WAMt3w-L`Ej6_Jd25K*_5t z57EO;P%?su{s6(JB7=y8u}qn|P>n%f1h&+a2QI5i?v&`l2PlkVj#w3nT;dELU~xon z`4CoIQ;&}unU-kr&}d+u5L293^iR9`$Cgr*JS$VA$V;l4!V)V*ZddYchbB@YsFD82 z+kP1-aUcdbkWEYn0Tg?Xf&SkgG8q;BRf|f?Plwosn3hDgh7cK$5*50e3jX&}42J|p zzzG8!6jaAP*sdQ+*7<8#Xr#7lnRjw&C8(Ol`d!Y$lTDML&tNO%!44=^IAeuAE6`)b zLab&=|8$xv{+lpEu$cIsmgf368l6Ar&i}^GakZ{t>&+O5I5p1~<9VX8+N+BxNv+oZ z(pCjTobo)&Zl3|d#Jqj0iTL@rmfjC+9ddJ3zy7Vt?8g%d&W9x-#Y%~LvW|?O$cX6% zz1&F>J29yEbpCvvi2hwd{1kv;G7*FRc&e$<-G20xqV1#nQ5pjAtx@8?4z(T5;k64M zuUPfKb(`($#WYJ(_^6F!Qej`fnIXKL#le$lBE|=AH?6OUfVrrJydx8H0AZY%=}8{5 z4oVvPITzeG$LHHGa|?t5-X}jo+R<8W6>t$ zIAq=p8cee|Wyo0hHsrJJxR!u-z8T9w`dI}bKJGHx{iqYc(u_HcHB4-AGF|q?>cOhh z@e?2h@kxOWZ(0Q#Y3Yp9j*{mf6-4KbU-(+2bHT7(m0*T0EzAvoOz=$WR{8p`LQfAC zx^a9omR&2N`lH{A)!yt2(SU}#4k>*QBj?qSX0kRJa@#Q~4E!fU_Rw`m$^sCg#JV7D zGsrq5F|UVY)^aocdPv7k*RpI8KoE;XE_vZd%+hyAdyb2Bxkfk!)`;)?qYs-)hw3Nz zae~CP*5&sE9-+&SoajCzbK*$Xc~P+sSr@v(z*oq;<@UG-8LUHY6N!WDeMjo4jL$34 zGBo}7v$j?-KFdHN-^i-k2{BP*?O^=@&PVoC=vl~i9rESnZ5ho@#Ic9wFleHRWJffh zWj!h9)on$O->8`p=-nI^>2!LYjp|SNH-|4-p-A!s` zLgf3SNM(ncQT+A{J`b5bK3~5Xty_m~$`@jqqJZpsk({Zth^9Pp6^oMSF0Mv@c!v~P zD_GYU`4=980r9=Z)?Bh*ef@s(4E*$T`E!h09;NNiPAd7h{lSojXXMNCe#ou>oSsA+ zU!5iJmTJnwG$^1%Gn z$3-~Bf927`EgY{s@N$x`K0%CKzVLX_C*wh*&{Bn{g;*wt!H7|r5HEuvagpk5J@I)4 ztJ!p#fdpunau`xrTCkm_!T{1$^!T=8)Yb=MZ6=#2$2pzAcz4a{Wrx#{G1Jn^DUk zX-v!>|CpbTa2MoaWy&<3hkSiAE|m~X>V9DQSk)wCAwa9(ofiWSpsuH+w zL>-^ZK7KVARvy3#lgVPL^c|5I$PO&943I~orvmFr7XTrPG~Rz0YIu@^qVwy@egNCy z)sj60A>53XpiIosbvh3LOu|+M{gZhI?~p>YWbZ?Q{bI<7iVUeKZ{!f$kkozQZ#`NX zq&)dIOcvcQdX&bJH-GBpTXsxLPLy^QEW_vA>+u<2!OMWnvc03ib{w)RLeiEUZ-<1< zR^2Lw#qE|G|uNISnb+WJ65Cf=^dASln8f=V6xPkzTANry{<}#+{gF z?DLTJZ{W`0?i}#le=jub~N#M$XF5lT`23qC_}E}D564(6ExY9@bKgI2+@cC z=6TpdL9O$zLpts-WJ7-&l5SZnVJ~h57rjJy%JcSLys~1onZ4>ei}eD*yg%t+?I55NSecV32OCjqRAi8Y>{gh%qcKL7;6 z$HYo6Qt)|6og6XEQ{88<4=QyVf#U<{wN* zc#c;crpgQ9pdhWo2lS9HX65;iOn(AysME<=in&@^C8q8#%+?_n(`>(C1aPry!l#j0 zhat0&4&_QI(^O=vZAo9mtXV~dBOfo^hyKkjaMm7=5rqjt$%DS_*pXCcLq zHGx4&fk)91?;qi1E=q_&#Yn)^?ky;0+2jET^2IZFk)V)GBUpC|R%gPJ8|>4NT2;xv z4A}@W-Tj-e1(|&gHFE-E#3YBbj!y(;>H9yymMPX)DHIKT9CA93L&nPCZK1iorAhOoa=RFA zYTx1;L+TO0qi9ckW~P0}VrTBW#7Y1yIr~Gr+ad=f2*hw2(w7d`vgekgpd~YQ5JFjI zeos`rcu|qNtt$bu)nbeXqZW|sAkwO_x%y?uEqNW1C}Ql8RdoLO*jSNJHW}3kizkM} z`$hBYJAKGsx*5-ci~6h%e_&lzyI9ZaI%JQdbS2UFkPJB8xeI4m^+aeKJws?00m@S% zLtbiiQyX|0GTShC@V zU!Ll(Jyg898P3o8wkLl8ny(KDr#?k0(whlQx~kSTyIvQ)Ly z)Os4|JMP$GA+BPP>(` z!u?KF2063~lr0MONVp9t5n-m5ry_Lc`?{Uq(`Jtxr#kG-kczbh)PxgyjOIy>b1CI~ z>#>#ui_mzswoLqNN4j0im%mF~{gGy|aTezgj0lNIbtEzayU^VhX<9N2SpV*-Z;{)L z1m)c(iO+KYlZ0#xnFq;O`4$lCkSblLcuwt1vyZdg(qs?~(l|;jZNC#i62pTaY<)0j!Z0{@)rf|B?|LKOLE4jf3+OwMv+a-Du!p$pR2m zWd4>Ar_Z=S8ESBYKGvBal%Wj+HNi+vM-sOBEemOE1ky()M?4R@_;Hj(7bgOMM?onm z7>z`buoI)|IWz^*sL@8G{p~KJb<|ND2}8pVz*|Zo7m1n zjkJV-wO62{AEH!BhG+)2T>eyEypL}j%){=JoA|~L0LMdtC~%x>QA$yBz?2-!__qy$ zQ)`Fp`t}G3&v8yeR)k>_2?WN3l>2Og3-b~l#EAZFN}CjEXNW0jai0+KPN zk{v=w(>mnZc>Nk;Clk+#2F&8w<;X)1Y<2nWquZ)r)wGJg@ zXxP_d8^xg{H@#+Ud|pYp0UTElrfWU;ctmGvff;ApK<{)q^wRHw$a_A+q&tU-ou6gD zU~UXaOt?@agWnQl?k57qv@*uB4LOvk11s|K9L4jgip=2Bo5T!8R`^Jez7WSmJ0ff7 zO-FQ#{)q{Ma~N`yoqlN)T=I&zPG;`amlIsj(v*n%Pcy3}`k=lKV{_+FG18JI{s>qw zxkmIa=fb4L9k4I_JQF&jih}`>YXvr(k449IGn>KBuku?tyjGWxw}F?O>(_2Js4pN` z>gABaOWIUau(UX%_v1=3Au^6Kc6aYPis$8!AIDa89@2Q7yM#}iiP&>1>0x-TLoP#* zcN}urZ69(R8JgZ`d9in_>QFip6BdE+*@iqUpDo9m@#1%I({r$7Za@xbY>=!28)tDU z6)3fVIE+4>{GRC0SQ#N7@d^mE+eO|t@*H;R0VFa+JoKGyEKNG_I*y2XZJ$u6Rw0l8 zF22jb+mJ3W_p=9-b=-zbWvab$yINd~@rjpE#$>A0P!ERWEvM&k>jkh{#VY!`VkWOg z1j7z9{x&db`~bweEB3TUEax@kp!O^-Av4@|E)*>lx0`_yRW&rW7ZGsrvAqN0vD*p@ z3QTZUZ-xwNg724#V2@e^TxV&D!iPyCLtZH;y*j3|!;3)~l_e%hVHkqgXwo4SfV>Qh zn9)Q^7+c;SW<#)1&hc)>ao5B>0fQ?YiBJ7efwIJ?RCK zCSzNcu%A$1IBd2L8H=z9mM`24C>JjQkVUWP1*wB1{xNGH`+75CPa3U6hl--m4~gJO zlS7IY9rCmz&EY8x;^1cyjp5fXfq^Uo z7x4&AFB5~u?x15B(nm&HDAEF#NmU&U8#0I$t%5XE@rgvU=>%EG4blnD;Snh@nfz3e#;i(3cil7;VY@`Leep!)9AO!3QZ~ibOdt{5*NINya^5lCG z2^2Qup|?6Be}2V9_9qn8X${lEp4G4|dZ^3kCeja)XGC;5Z}K*q5uSa>%ONQHah8RoGT@BAT3Cn|_9=aE^aTC3L$bPi|pgM;+VK+`MqJ(kZ}*;PF`m^wfg(E?@(!QK`13 z{JbyxcZ20TlAtG2%F9Vsa@nNuEoJ(A&a7VCq(^$idK=O!mxfrv!VW=Uh=$dd7Nyv_ z!av9<$_JK(6Vk53ka(au54j&{9!sQWl$v+$$`Ihgd-1HrF)@V~d?PW+&$owW@Y8+K zorY9`(H38}TwY_ces<-fLmm!bsMf11o8Z7TyUHhfGe@Uei zRDne6B_T{*(L(^zU=47(xu^~XbeKx$2#_(4=MTF;k2hmkCpXJ{A~J2CJ+|`|G%(J= z3QXUDI*daMitPLoT56oK%aDh!Iu#8xSNM^a#>}ECIcnfspJ%)|);u#pxIrKzr4|r; zMP<`E)C)jFB@En1LGNd=Ga)87Bw|r_!ia&JwZ-BD-ul}Q%%Rcc3*%#!(jPGfkf3-Td z`n&bjqtKYEzxv>n4PH=X68|4^px|}km&F|oNl@@d%phM*BQoY{BDPv6aur1K>3w}U zzIgY#&THHlvSZ!C_7K$ycaPsIOeg^PyngD%1^&{`)s8*T>+x7XBDeaxx&3hpp;;V= zitkCzBRy$I!Ob}<2=7w+z}NA4izqyz=y)p<43T@MT&$r0Y_<%|zSXkNj#5Bu!NL>> zFW;X8oq;6};95C#mJw#@4vHFS(cKhMYBvBU@Kd3SxzSL9+g2a%z}C*&K8Kw zl*^E*6}6WoT|31m{*~kdI&%?9U)pmNbqH36OxSvEv0{B3F~d4l;+MnlwURYW3CXg< zjWC@qC?ze>*n&zWMmNisv+Q{iO_- zdwSjuDNd=Q0uD1p07!3^l(m*2qbh>-oBo}fL1u=$A5!0XmheaD@NC>SLt>y=0_Ge6 zb09|Qz7+!5Ko0=l8I1?L$np{My*KsJ1f)NLj_05a=*yD{+4?M}z~{PS3`sDbrB{-G zzYN*JOdh8g(PFOHN-oA1UdQs344pS4gN_$t_-iMR$8xqODl*CLLOh*AI{U?Ab!26Y zWjtwZf9l0ekLNo>)$DQF45>@-G>A^;OZiD1Gt{cF5CA5n|6t0ko5TZL`Nb^ z3i#GxKkBqf*i=SqO2qM@_^_EfAQ~AQpco%nMN6)fYmivTDl_JhB=p-q#FIiiPesRq2 ziMD7U>@ZLeH9-Kv4p8VfcY^m0d`rN?=n!v1_PUI;NGJ5t5?!<`H95wa19Gn6u`|nJ zJ9<%z^k*6Jati|BLz)CC(4tL(*2lJ7&skLet@yaCgX{na>$2*&Wgo?w}3=y`1-HD7A5D2VfTqZni7NWQA=f3B~n($rn{5LK7PsPQL?4%Tgg0; zwOEfgfYwY9!)eH?-UFXmY;*2W%Y^cA%aBAZ2MR!d7OVqYEr<;I@~>hf@H6O(At}?L z&8r&+>dJr8`SMgVNvpncF#xseRcv^1GlXh4Bi{nj&rd9QYvUQRj@fFm0c?YJH{<-*by@^P^FkVhPNrg+}ojKB$bN%K+Sd+HCQLJL7=J~qFTrHLu` z<)d{sERPIOA|YdmkcZ|8lGt$$LY1gCW1P)Dtw+|-#e1exQJ<$IN5_#QQ=Tq{EwY*XNetgwY%p#^76j>7A~<6BF&Jx>ICzG8 zID^p1P`2ptW{B-@Rl=D|ShSzRR6?md0e?79~)MT6`o0qJX+%Y z%LVd}%VH6jfs+KB$lnSIUDY-gM&Qi&cB$wxVhS9G1jYfAwIQ0OWIX04FHzDj?EZNo zN|-^+|ARMJWCU4&E~<%XWM7#p^9dWm@FXf0CfXEU!VT zqkbxZ05-|K7g^f59ZkxG)gehvz7-g7M_fdP{c$+YKW7MC2}G)8h2Q7rqYF~xk!qoG&kFmFwOk9P!=)xKcv&7*KgtT(DQjhNB4L>@k5Khj2=ZmkE@2d{zsal zUuB;1(I?V?RU_p9Kc7Q;kd{H#UYVwipRR;-6k?2&yWpoKCP09A(k455??SXudjPL)M*45%m^&7L1lQ3{+@ z{s2)BA!(=EOliJ-{WqW_1_0zh_d4XLg79+4e9L!K`=d)bGzq!Dvky6r`;Y|q z^T$bip;nVIe_cUFf8pkWYfV>&O^czcpFmpnTmPKp}^39sFcGSZoyD_ z8}dUvT#UdjQ-pg7S%!3cppou3o$JN-1i2WAs)%AES#W9;yy+241`OaZBuK=Do%vcP zjKj}AYV-0yJuzVJW4@eMhE#d7Jx)oRRdM0VgmF--Cze0Jiy6I#P;f&arC~S-mKlUK zF`&f`5#!h7QD%5P65Gu8Hu#vH9MZ!K&;jxxbV+56KDGI-ffWxRjt1+Y(LW5*at z-;RQEd274w8Co(A8>YlyH1hpKOk!{$M)7{w;0LQd(#_@VilE3GgcDa1!;q9m%Wp-| zxWJ4E0mn{Bf*nd-1g^;3jw#3w;sPb$NEj_O6%H{{03#J!l-85?;ld_TqlfY3$Mx4s z1!ReEZM#{djgcl-Td7R*oR0==PF;)I z9$M%dz%3dQi)gK)fMnG69EL2b6cTyNjcPb(!Kqa#9XryOpfG}CLI)o! zo1NI9ds&SvEQ=1uSnGJ_XrL$0o%DPB5 zF@WRxJj!`smKt)7LJJKL7Rt*gfZ2qSQV&MDvBui6go5%a#zWRQMu#OVp&qhim2(WS zhiR~hVkAOLq^UcheA%u42|j*+?Hd3D_DxDWIjSa#r9@;3E>9g2nxgAJt|CI4cBP+c z$^dZSc^jB$STMx2mSuN1Wo)2?QwMm|16bogxw+mhWd}_W3{(aniEut8#crhxhmbyv z=%PIU?NojyyBwb3BouP3gWov=(k#9XiTvz1{OmoCJf-pCfVQuePWhQeCs@`(^z^c2 z!&x?STxgML6(Wo1HUI^R`jA(!!Ko9jp~R2`@TH2qFqXaM9#6Vshq&s>rDct>4J}y) zClEd$rGX1d@3*Rgn0tHyDMM;!a{G|3^1;LAQ<88_L*jh)$N5bbuL^s{pb(s5B2PY@ zn>-C$mROQj$P1i`oO&t{EhCUMb`2s{gm(u{QjUy`SWq`kq!nLY93X2x+Pw26{|_10t|oQ+dD-yMd$u zOPC`)RbTww7Y?v0!oYZ;iqy$EK~S_kxe`GpPq@ zg0xMF969&`S=@%yx~!a&4I7ym6750B`T?5NLNZ(o(hbx-K@&8}9Bd=QcO6><4Z!c) zn$%6jfU;%lEsk*-aSTI{Dk#|NPTS!m7ETY<04#)l$?J5iI(=(2q8g`;+E?jm6)NmD zrGf*&8%9PtJ=BeMsDUOF*64yQw471P=#g?U9G!x3>|9njN5+my&QWMYyP43@*mwqMKp5>*H~pzR+j~24#o}BDGaU#*nm;( zfjNhvyI?Nxa&5l^jCch znQb(=f1ZtUgQtB^&xl13chc{`c61ICPCL3Z^ZF&N?FP@wV$7Jv=3W&Eo8ZkU^2fTV zYtXrpEORI$pybOb3fa@&mMta?N|k@guUb@;&kG*49RhB=T%aJO4Ou799IYB62z-`e zFQ?c9Ib1UD+i4mOB0+!jCR4zP+Adz0!Qha!!Mv35z3jv#z9HsC~tD^BQ8@y7_pY^ zgO=I-VoNj_YI{W(M@$$xxXmY#T~8GQ<1C=PEx%Nh69pqcvNJ8d-khPDAj*p$ z!b)e{8FqrXTG3G`WcYFBO9UzZ0GMDB6gQxVO+z@OL_Z9PI?L1!9H&E9`G-Dzfwlrd z_K|)j(fCHAhxC{$fDq}TLq<(o18>AdW0iAUXz&K+5)MO(G^0}^RVVg94cXyh1R^tw zzT{;CEtS$J1qp<%P_d-2lr^DL3LJIW3XqvY;{aO$|=z0$PsdN{y<3>V(iSzg0N z<@e)aU~rTnw?Uw3 z`%W7n7KPIDzlUiApyp^hSf-flP~^Md4Xphk?MZ#MU)Mfs$pH-F#Rj=bDJEp+W-%W3 z#M|EN%_cN$<+>d@dL-2CP;1 z=A1A?bkIHA^9TRWtN(g4E~wo4M3@TY!gc(=ZO<64+IcbA-?~I_i<2>qZe{ zWYGzi+7=xKC99e#0YxD&jrf^%HbU76Ck&2apsEf-S{yZ15SfCP{sL4&4fyG07DT}0 zeSDZFdma)gef)V27H4r$JzLs<7X2`uVCqnS)l z2A=u_g3lvk!82$q@p}RjBGM9PQS^Zo;kaNjAXVxoQ8%JYSp|7rG~KuwbE=EfbgiM z+Qb{3LB)@TBqM2P-PTSQvC4!O({f+`#)va7on_}CA5l3dTESCsKtTs6`uIGakV}>L z)nyPWT_wQy>dKC)CB6UU1bR1CfR=zMaEY=Y4r#qt(xh8Q{l1q}skHl66hVp~ZWyb9 zGZP<1wjtrC6q!1zlpN3oYnN}qAp5It!8pMWzDc2~Qh+8g?WcLy2S%$D+g=0n}bxElJSfCzM$370(=3DxD0UXi~ z_on}$+Z-2S<~yVfEC+9Dy>5kfpo`a}7%H`}(R(+BjQ2O=j@RCLqU$z>jc2YN$Ru77 z6U&dA!#;=O6ZWuf>R9IsD10&faMg1{G#}jpyxmHrwO2%wI*HCT16n*6r@Vw8ZiZI4 z{by}=w}qw8eOJ6gF%8GLXwsHoX+nJgWrh%bb0^5qy@rY3!^Oa9dIl|rq@~hK4VmhV zWAS+;vItT}mlDuKqmA&xLFNow{<;fUtyo*&lr#`E7$kPYzE4`sD&B5C~94 zec$gR|2Pfx%-cb5z@{rQi8C!_7!go>%4=VcoM5dFDpF5F9)29XV+e{Qm=Xlb7S$$b z_#RBJ5C)RClqEFeb`dIi8BZ%M*&;BMKXF&&kx)0PJ}M^kKFp?2Q|u`GyjH)Gw!R2V z(}uyN;E!AU;3nzwYJx^7DUk)RDvW)0MY~BdU9K;H1}xvES<{MMf+mZaHX3eSzzd5i z%BKE`#11CZL~bGD@KG6*KB(T@Ubf^i!cvCJx0sk>Uy!1}0N!4j26VIuuvnJ74q%v6 zJY~9JzIx!Gz9J9S(7r$}8E}=A9|v=u zLVQp({JghGbcj|j0|i*-Wr0o(1^}BW%Vw@#qx^mP$BJ3jc7Q33EijCSBFkrroWhwM zUF-=h-{I8<4a?v`3P%DVP;}6ou?w7UIU`oG_kF{_N^v&#C>&6t(dl8RqM%bP?J#c} zBVm~1_w|S>p(}o!awvicU+4?|_3TLiYiJo^ynn&ak;2N4S+zrIIgVMy%10QrNs6I@#@N zQRuL02qKqiwicbELy83paL!7kAU})SK&sXwDrDRNiowkQ$87Ijdh(<$KuwtC* zMoGCrU7dy(f3ouQIJyf<7ZCyndPp*`JYmPVIwHG>>)hDuS`=FXKrT8Al(e*CJmqhe z5sc`Gy>wb+3>lvn)Vv_kc`sLL+-B6`+VA7lV1H!8Ib5>1(y4D&}xr+Nw^% zUqt+JyNqR7JA4o31cviyz_OwgjF=gahe9<{v##lrcwP$FP962#g${EL$Di$WKY&x^2Gy=MaSEe?xDCu@7Mvtibq50koapoc%!P)GOuwz z?j27zO%-KG#R~K2E>NIH4?YjacUX{SZxMpP*akd;!wYDuQtO803{(lN&;o(21$8EI61Gt1HN#r-X7UMaPnKQZq7X-xER~hLo(F5f5OAwSg=C#cNUNVACYTzaB_+ zxIDuAsM##w7GDDLSwogY&4gezNmTwT6Aj1pgxeMY_?y0m z;ooO81;mHHQUHLAlYT~!46=Ml>{;uIh$R9)ZX@{xC}miX8pO!Ve+emc(Rl;%oe4`` z!-C;4dseUn02T-AK)u)C}AJ0pD7xI}P!(2WiX$iUIcNsf^qP+&@0CT^9 zFcE=N5gu{~UFKv#(5%LV`B>Oq>~oNBKhSW`5OK;J2!wgt$k;gj-mPuNxM@lgA_oGv znEWI!g9e`Ux?T-Fk3(^a0u2A8fxnwoua&EZldEfiaG=$o0#uQA39y4~qCHE=X4CdC z0-R9*IORk^4XaZ0S>(&fwEyRUoVP~x2Qkc5hFpx^QY1zlGy~o5*F$HmF9u}rxa>nfiIA}}P)Ma1#P1mKHqGGwg%3FYu{+M3uu|W#L zEKIJE9#K+&>doU&4;X!Rx@rYtYB`)H$zZf0u7 z%p6vlRf4i&uR{nQjrF6>qK1f{$9f@_+Q*4>8lw0YyGBJVLOFGZG83EVE+6-=z-34? z)rJ7Hu(E8k>lBmKkO4L#F+KOT!MyDZPzvz^@ge|lz8PTDc`t4TXpZN$Q4hd_>mzSJ zI0^t02?!7m*(nH=j7MXd@qN~wpQDjTWGnP=Gk}8&7W%vbMIw}cLHwOjD<_(@gG!_O?ZfeyVylUPH>FM%uD406_|z=2@ziy1g5{!d5A< zP!+Z`vH=<0E}Dg>t6cTMm23F=94Q6>B%G!&f>bbwK`>0EE3#RZlj}%vApkntL zAQqk9buM5XFBRX1N{NQ`i?YiqYHP5Gk189*v}f(|P2F)0>kb7W5t8;Z&5*&7P`_ma zJOF^QkvpF?q(^?qGP6%I>vDrE^vjT4A^*+SXV3eW>s zfk^K&(hlRgq1yql;l~NHy4E_=Fo`#tBty&e5pKb;}p0=MlRD@XRMRMk0Tr`)7 z{RIH;&z8_554;p@fG@tgfb2BozWlg&j~| z>0-09dC0ob!Zk{1IO6)kjH|;B6sIQ$=8~ntBJHBXA-r#~6XyF+IkIdY~ zTIL_543xO>ER8zOc<9hv-bV5nfH#m7g!DKZX3 zFg;Fy({KBTGcNSvW-Qmc)tCMD<3_a6+eo8W?6-)bD%7Q&hO{EY>!8)$cAI)?DMJb} zRB%QsmDPtlTy;5sE~q*~IfUo-wFoK_TSXugUEg;s;FT;?iw20P2TI9zQX<#&g}5-N zT_!gMS%UQzzqo%}s;7;ipLmCQ~|2hP3@%S(?xM&w`Hcz+zo{nNqnn1<+<;k%I`P1mVwLJ${3>kwI~V{whhD2t!synp z@{kuEAi#(0dfUlWS)a#Ei=G2<)Nv}+^4(lUqvuK^=UZYjh!>?Y!FY%y@bciM1eTit zFUrnC&c)=5Vf8CJe1`yNkY2!}9Vi*@vsbFnY8i%saX;@3D~H<$cn+7FZ7zQ#DvoNL z;~gT70^OQ!t(^2^PN%e~6L$A-l$7k@qT}jrJskJckjP)KT?kV{9lyY9GOISmv^lN2 z!CpBcGHiOPz#Ifd_Z+90Ly%GL`{fqk4>#j-YD#BsN@vh9i>Of<8l^`uAC0!01&wh7<`kbR49C{Hc@Lgb?%Rcrp6J z3miRkEtC>n$eX4dDlYCxr!24kOw)a71K~)tgFv%NaQg(r3@B4c<($hQ;Ku>t8kjeT zI!Vp1v-T+uH-oxy-rNk0^?>Pw!BlX}F|T02JIxDAb{KqorDfKwj%eFP6ky+Z&JJT(nq zw6Z$?!5HB9y0{31Z|LE-0N8>!>_ZmcXDr$RSBK)oh+*3fqR*peiqH;x56b?pOzXkt z!H~iG@Q zA!uI%9B3@RS7qcJZoLp3Z}ViB09wujsoMw77q3N3XA?1i=`6u!-OTrc5nmMpA1E$f zHy(z{M50$3O6()H5*h-zHLQTOh?zx>P!)K{I!zJG^>1U6gV~*hRl44sRip^_cFk4L ztd<@QsX_ZlCGcfJmLT`)JO_hUITVkZNjkI2cw&4% z4$(Q~AI@T1rp^e5B8)*xGW2R?ucUGwkZNBUk~C2dgRJ1#Rl8TdtT(`WmFCk0ZebS@ zGp&r*HwEno3QQ8ST=j9EtV79^Fogv8!zK@IzA?WebtlL2?y*kcw1 zeYW9{vm`6ysET{0z%-`gDc<*#_`SBljGsdV(Z`Rcz{qkqPhmW0xo@?TBf~-_k@79I z1Stwjl}?#9$V2kie00&rFCa<-6H_K3n~%K3BL|&Od|B}zv;(Fa{8ntnD$5q*A6LSe zSjQoFv4u<%-cSnNT0~*x-LrfErkj~IxqK9fscLQ-k(zZu$u%kfs8K0%1RSXk5zr1% zBvm2XZ7K(`S+?@lVYrsr&XKd>rt`VGYHr`p8knc%+C#NFq(z4q{hlBHgFD;UdS*Ln zmf-$zY(&UlH!mb<>>Ng-hy$v5v_RR*m~rVqys{Tk`_T^9U`PctF->?wPx(8TAw_kR zZQ1sLmiaE|`yzk|E3#FYQW#VS_00#w@@g*o2PjMeyQSE&ZiP7U)~*6(Y_b&Al;Kl6 zlEU0-ms&KluP5_m*Vfc)j9>zWVkW@-Ej{n~ll}Q}F^pa2df1|{&#JfsZ8-m25g-D{ zV`4FhVW2XZz(OR?2=_%8emADTa+E+ibCF-nKTLTIPdv`vR#XWEbG#*9uw{aTs+64u z7{UQvvV?f%=|Dl3YPbu3=fXo7g{{p|SU}lUti7xgiM|;Zjc&#uRI-tN+La1B6^-CY zBhL=;Rxoj!wTv>f0psUIAu4NNjR5GwP)oIj0OW1-z*NGI&vP%gV5o{ow}=?l2ct3T z%dPOj3JMUCg*G2Y>A{;kFCAN0lFi({MkEQIx6)5BZm~0b$L1FFwxEH84c07WhH}-k z!OgdQn?=*^=xr<>0ud#zhu>sCZ~%1-Bv@e@xAK@Ng!Vlps}l%R)e<3U!FJSvmeShM z=Wj<|Vat-fpu-$yNLZMZMYd2XdontpX_4TpbqF#=%7o4^CYB*v69jx(9q%eK3tZ1l zN=;etlno12gOvsex^2_L;mJw ztas$}36@n!KH$spB{WEIZbPPrE6gu99kiL_kW4F$8*_ItIv0a2FW9aiAlD(=@L`b1 zB-#29khKgAICGfpLXm|b))v{8;*Fu%o)Yfg=77$R9I47n{g+3=>bFK z^VB(+F#TnPR5d=hRUyEeyaA_64b;{si+KasVwX+k(7A)q&g_kY1jXo6+Q3DKxth>J zqSITbgkCl-A6_Q`y|oA=k#re9Ikscxh-48uhDj(FKk8a$h6dKI2}BeC1u1NcmzFs(ZG^139BkOY2XhjJdl4TR89#2 zBY}_5fTejY&lIJHaS)|LJ=_e5E{^|A_mG_gJeY+#9JZ=qTTt}uG z#|`9y&No8_>RD8AYJ_4jTcFl4NJ*|3ILZV<0sKX7ASzntXtQz`x=(QeqaoWfdAM{FzX#C<>-b!R00ZwAytL504BJ$sGD30ODOhn@RtqTsIC?vs9~EcA z)-zxHE23=u)EQ278H(7}Zf9tGyVkZQ9zvOemkt#a;%DOL%?mYkT=WAX01q({HQ)Zs zKU`!BElXCC3Ga&hcU}yvXCOdi__2erNCg2wcBc+M>yq&xT(B_AqjF(zt;j%trySk@ zJa5lIQ~^&#hYY``T#UIRMi2-U+9NyIuo>}_LrxCY8Cd18vzU_yTV?c7<9G4 z*j9O^fPgCE^LLi!MG%1+#+D&pFxAb5#j{Z$rsTEC7^n#dA7Wy@^G95thNCy}ie zH4rwzjJ*qI{%QMRVW}(oq>|RJ0$6tE^aK+I#(?&LiZrrH2K$(j3ypzdo6H(^6^gaX z#!1?4nJS&G6j(DP!4h_}f89s{WXT9$jB{pQmYS21l zkabSDN6>=c01>h`N!}^z#OJ-h0BMOANlD#(kMOx2at=p#anmBR zXG|Cv*9Z2$=NGJwbA)C=g%Xz!XNd39{^<8)v zRe8T+%QBgS*P6c0A=U)|TTJoDT>3Acv{4!ruMP#kjA~F^g(`rDOK+VH3uyL0qVnau zPAWce&;Cw#gD@>1QRHiE1^_ujge)L9v`~|nP}d=qK4aKXx8Bb zKJ6fGij^Oq**2F2_93_4Pw6K>#^_IBu3c=SG}Pe|64sAoMTCvZ#yv!4H}^({sdT#= zLIy1xoNZ8+4rYk79zwcQ)uPB_og`%Mj77GY%knXS2`qIWfciKQWLN_;8xI3`DH@+r zumYLdy;UlE<)0pyC7qLiH>gOr-~taQJc4Ws;GVQb)s-f2Q8ZbBk+JI~QO{eqp&nLR z*dPWF(FGxK;L?sB5lq5|NRPAqRT&F%|`H|7UaTEJvhOmBcjWqH=!;KCF?-xF0(uVakvPKlhK!=##+n zkOzG2>%%N2iSHt9j=5R4sAOmbrQ?SU`VMnQ(U3pg5jQd|bkgA7rXnhJ^V=m#Zxi;` zJH`(;BW35p>p^rvSFq1_(wl~3&p{bCciibX`cmx>3i@Ut`J%A}>p(Z_1rud!!U8iO zeV>XwtTp{)>==;_KhyEY75vDcx8ey%4NJqq?AiB25`Wyq8<;R0F5!JWwX~GsKujP* zw^BjKfooAkfYG{U`qWlY-pPlkGIi)8_AulrYI!Kl^^&~|?NQ|vE`ZH5auRU(c>lc2 z`7Pv?J9dbl%k>(jFwnk;=)YTaVRuBb+Zl={VupjQgaSS;FYOGfv@E zd4}B#GY+iqV!M_5XfUU*g?(J_f|*h_jWm6g7N5hx`66WrmhzQG7(#ZF`to87eKrpO zQ&?!EXMwB*=oN~ClzjtB=4pGdm{C4w6TB@UofO{Q_VTUn?iK-qA{jy;Yl;XBF(q~t zW;`v_S=%n0XLIz~{Q--f^-K?kjN zc#Wq7c2G&Cu?D6-#-=ss^N4st-s>(s5EC$rlUr{qz|A4;Z%!P!w^2g}O5jTr7;`5!Aq)DV* z&)NL8r2)t-pBTa#d!$Z_JZyUItuc6wCbDW~Z5i2z_;CsAr|wb3uVKn8qwZ3>_Eipi z{`Z%Bw47etbW&eY(vqJ)z(Z-4s;8Y;2`MA@6c$K1jjvY$LlB(Uft@cEBw)(7f~Z#G zgGv(M1dW0?`v8=US3YFX-|RtiB|i#+1OpgtKcnU}WOD<{bJ37fhYXlN(8pHE7@z`; zM`%4mTZ{n}hC!uAy36&0<1l2HP~*gf zfl7rQ=Uh0l;6GW28!HeA42|US3+&HyGl_qufHt^*?qQPBW~Sui0J#9GJDAC3c?E@o zc#K!Yio;GbPVNFR8*u}e(#}$k$WV||a5I2`0xe}3BYm%GD1cE&AbSGC;dHsCTB8!c z;3Nz1Sq|11Lrc$QP^-AYSRWK}w_7u#bBypFn-x8I7NvEGgn1cjmj#opS#o%21Bs0T zh8EgY=w4k)Dd1{X0Qdld@o)$!msQV^3J4G=GR>s~4KYmE3SsP)qZx~^Mn+0jv7ZO7 zkH<}evT~mqu3b$2IMfvHK3WbQm0?+-x=k&wCd82;C;~y|ObLz6h6fSbgc$LVt7;(mpHj|6K66XRR@6v$p|(Ix)$~^R1w&%w3UJOb&|4@ z{JXDOK3;$cN2>>G=aiOvoKlzg(vTX!QnTfBSxTI>krd@8{lr6JmO7Z}ZYm1|kJf-k zr-A0{)kg*So7;WFHTHz0l9Xz(ExZOXdrHdwm`eSfBv|Jw`|cgQtpv zMob;8Q#PcWxfps#BqXmEUjPaWNiakku(7Zapc+Y4f_|wGu(a9Fa~CLOoRq^;6el0G zOS=lf8n_NQp?m{iD9=tdC>UJM$WcnlYPp3e+c1)hfEiFu7wEqL7U92Hyj*E8t>?$# zZh2GJqXrmx#skdP$6T~?zWI;ciyZ0^RfNsa!82xnI$Mf4^mtFNZ6ZfWTl@;uK_luo zO*>A)$_t{p{_^{&6z@GvwvDfaIdD6^j{tYK?#fq^G;s2Y={9P$*@nEY8Bf+fZ*qMu zZ!`U^@Ju{T5w*u2v9I};k<`cj%58C>spq6jm5T;T)G?%0Or7p5f+v@xzxbYAgEY_O zGF#mZ-FXomHXrWEq)c%J^y!|wH@qG>MG+vbj5)=$A+K*n&c^=QA=@oF9gdgGVcp9i zn?NePcN;L&Q1SpX&MDH2ex@mT!Wk5TV4EpRG>w2h0;18;(wQ|d#tcu)BToR>Sxg{v zJAvt$q?I36;61uBY&7IF1Zaq+S}Rk;a}0~CP}8-wBwB|ok`DKPF+(WHGS=zpc9N|o zt93-X0~~Ti1wF!3*EslbQ%;o44A~YquL{=q)`g8rBv9ID5ZkikRzU;#*t6cI6&4BX22*@l#ds}G37ac1TJqC zUs&?=u_zPZ3s0L|z{GA9WFM=ie*t;O4qI#^wrGzZFRDBZdgPu%rdU$y1=DVhDIy#J z@SSJNlVmW@e~2Pgt~n-5skpirXf&wqw-;bYI1X88_2W97vJyqR=dpUq7XYcoT-fAT zc6&<`7Tx{Lz?+G{HKIy+)xCzioC~Np{WR4$K@Dt2IkvH@)xyVwfxKNjS^UGr))>4>08>i&}{B>SCahRbN&L<@7tgv?-%$!`~rsbSHfAr_n|8DG8|81 zszEbNRtpsKmZCrPo;AD*7mb;oB?Vzc^-$UIiJ+)!xHwqMP|T^ora$hUVK+3ZEF;0% z4GKSwMk;_7)r5zCtS8pn^?jkJ!XwQ>dLEcaLK%gTu)vsY#EH82c7Ghva)GR{kBOgG zfW(e$d7^e*|VNQF^>GapG8VU!0vTXGVQj?qjJlop1wUarzHu9Zrn&_-TGYXD2f)RW%I zaa+iHKOiY=0B};fv&7)@w3fXZGNq&F=M@2haBJI~=ffH#JSA$3*`KKtzxCz9W#Laf z+`}%9_pmaA$%jUrZ#$c=9|}UN5@5c&8I`SvyPiRoElQ!pj#sHET0tp{Dl=H-;&~&q zhdP{Ql)8et?lUT9OL$A7{9?e=f-{h3;4Zm^0Xm|K5XT9|kED!mm5AJFkHs3l@%IgBtQ#2BbN5(-Vq0EqNGycPIxpZ>;{)#?;QV1tOmi=ICZz z$G(BHz&w1C_Q^`oX5OjL2voCqqhJ0NaJfop7gqs*8&qQZw+rU9*j@TyEr3)6LGo?+ zfw?MUc~-?PXWB%RUBR1Xlc$l*259Z|INqANX1oford4U% zcXg^@6ioYRBk8!iqnAmlbw%?Xq@Q-H)U@rIXzB{sj$dF2lt2-fff&x4c?mkTB>@tg z&|(04=>`p_D+JP*61W+$6)0LXNRY+?2Il8QF^FRd}J!WjRZH%b#oRtzMLIZYJ;`JT+AXC+gV_p6r;<=^>^BE>Ux zby($nUxtA8S<`CCsIO4KLFOxj3eH+V3p=Y4!m4JiOq~Es01cvK&exa`ROb#=3ToO ze6)gN^41w3f>$m5hg}N0ntT1ZT|Z7I(uVXwUARYg;B+$%U!ZZqdud2oYL}>v1C`rF z`6;}X-reFUNosF%Uk}+~U9=85MLJ{-s3V+)ENgV~!BAVLdCf6HB(?N|GS(6@HwQBu zMqVkTDYP)5oXH$dR-y1_0AMM&Ws`{|)Kb4gLNOkB)g=}Sx}sx=SZo+&Llusk6*;Xh zOUvxJlC-HsfL}jE)rJB32+@A2Q|yoB}H?;*?1W zd}IL5=QHBEV|GtvkVo9{W)y{g9NA^a<5?8;JW+A87N_9rAub3mLmq0ufG?-n0)e)T zqSq`_fL#qDTH26Us@_g_RkplsA<5NSyYZepeJVfCDl2~g;+b{+T9nsP>*rWh82x52 z<21LFc6a;bQwJSll*Xp-n3h($Tl#>*FHqt39`=!E*}<8*pYng)5wQ|d8{;|tOz=#J zE6zflVjIDJO5S9pcVK6-x2XPN$OSa*$9dlJaT4`3Lsa81lW!@&`5_t3eq=>><2+={ z{g8*_Zr)Z`-%@J)77FoJsp7Ha4{wI-$%KWe6L6yU7o+8yKitL#QB$-=8wv41yY z?W~T1f9Gpa=})qf)SC8vTIoBWx^itS>iRP{N~9&HSq|B`_zrP_^jf|eqW{H^2W5`5 zv;IQVi|H@(&P^*n@1h|Ubx7}Rfi>T|?t|MK%a(V)87Q~{%iX*=dd~;PI2k!tMI{IH zxg=fRI0x+U{IyfkMcvugNb?$%OXfjRaJ`JOrQD(g^(|XCNT#E0r_hYEqt_ zaI>sv*G+pNNZeH^A)`fQ^C6;o)SNkYVw5jz;SPv-^w-KFBjiAkeu&vpFh+9QV38Mq z*EeGHi{b*pfJzRfa5v?@pSM7S+E{{X3BhPu6ae`=tEkV>@9P22CFmYyk5IsG4MG^l z9!)3H2Q~Fk8thn)X&pvDmpjlAxKhH1Su&%t1k|Alp$)YxCa9wkUPOT$Xw+U%V_v$m zqR8^HB3MuoDakULwJAnkHXJs4S%LY~ONcnUOrG@M5hCe>cFe4~hBlyPfl%Hct&H@N zi6|}Po*L6*+xt`vp9@#Yx+g2&7?C(5iY-Lr-ZOfGvFE&q13z#OB(tQ zHT2`-ugDao7W6BzW*4EzIBX=Fj1#C?yym64PfjSX#)!cviL~M2k0o^|QV7&GDxkV5 zf!INjWSkM%M{3(40qBSzn1*Mc(a$RUyT>B7a2H2jJrZx%ky)$zZOO5wTRHL^ z2F+!@`9|qNHRJ{c4n5P z4R-7%t$c@9(zRZKCFx8fZ`vLdXtaJ=yY;)w*I9A-JDAy7_fQ<)hc7;lzy-T?)T#u` zx#KFM&7;^^D^z_aRV?-$yEo0X_V20L~ZtJsfozQJexw83&zI z#X5*v^*|`>_)>a}DM2#yos$pyI1dl3b`6F>nBTzJFCazACiC@RI@x)DCd`VtLFEc@ zLBGR_7X}HE=41=qpK@b2;P|ATFhS=an1=)ek5;CmF)jG`X#_tKkDs@@_7;8Ka>7&S zixl^g3cx#Yqi+YMG?o#l+n&kYiu#wdG*$aEUjW+SMIlPdv^5$kI{i63yY_Z^;(#5Q z$b@Gvi&DN{@D8tJ#riN|!QKj}12k2jpeDe5%tlBre5v-Y-#6cZ1$kP|${d@xKU`^XFT>KJ*{=P}R2e36jizlx}O6PH~J4g?u~_+7dYI-o0g85HM(rtQ&l(aJI`{AlZ@o+6Qh|cv9piKLWWOqb;}Id zq*2=n0BiXowNlRyd_fg=vRUH>Vb;sOt)3%RM1>5b5DqyM_s&8G&qK}*Mtb3@U9#^w z>Pa*Ly*!P>)KT&a@T2ioMyg_HD1R(bv&b4zt@Qb}KSd(0l1Z6zL`C2q$G|c2A-(&A zk%N!As|u*l**%SP^?9_}x2ID8rxXB&j2RtRp`)-C}{i>@yp=8^>ewnAi)G`aX5gX6)FCE3Q z5rY<4FwJ2VsYcLD@OgH|RSgV&0_A6zaM+-BDS=grbxB#hj)|e1HX|P8FvV-kmnmhn z0i*o556o#>9KO{Rk#p7ECN)lI3tv$A-=BI)dQ8ymo|G{?BJo?UrGESi^?|Y!brBzV z!Qv11I$+WaUiL6#d>BjMMAaIlwhayN=2~6M@ThDfWkN9v_USYB#Czel^=*WH1YVK> zexwC}XXtMJ9bsTixoK(29s%8q4}ky-pwH8UWEUPCOqh7k=xk{S|Exn|IYf8c6HmHy z7URyAAs1Z#!&BN;V8aqDasB2)`Q^d*d%tsnbBOWXgPJzZ0@3vw7`Wp++H z1q{n`j0fJd7$08G_1xTya_!x~CQxCei-b8Gs|K)*>@@7GE|mu_e=+7RK#=7$PAbIl z7c8|}bsD@W59C7XH)D7+4(vu9u!L!rEWJ6XKIK7E{oae1aYZ^!r_mYqHJ)w(x7Gpc zGIVQ*g&$hlno#NI-eI^Qkrk%BXr-sYxyn~VwOV$CJZ2m_9b9_PT(6bgMW4ys<;Y6 zM@x-2)}_>@fhiLB&rTQL?m{_}Q36fk0tq&LnHDANT{S2yPhpY#EP%Ekcai%B_DYEO zA`!&Gf$`a$2G;qSC7V8u0)mYfB& zG}b&JgF_Mst_wn1d$~ZtV1G2 z3>W~bBJFcJX7Mc6j*PDCD*vLLFhNeL?O>3HNa!_lBSlET>oyMc!bL+v*pa{d&tT^g zvvG5LAv-ZH(m0`2`6cvJdmmTB|HkMs@(0%2=;R0ST~hjxw<(0)*W{MMi`ealvF;U?DH@)x~zGp(iM213p82uzZ4G&U_#Q7a3A#;~m~LxQEw7_d~s zOz9cVX~~oU{egwIVlrN#&hR)ucIr@vw z`{@W9O*M_q(Ba)X+>EiaUg`{;K0K-(pHDeWbm6KDqHm8L zX9_=|OC)G!Bt8AAF#efz1mJ|S1<(M?k~zkP1%qhDeS-=lMI zu)zW8^@B>yI&I)qkjqtg!!VA*N)rgRVacO0H)Q1F&$Q8scwOe!@2Z-TnUc6ZWe4VR z*2Soj%f!%f#&+YH5NsC_7^Mt3{F&51M43#G3}9L!rJo6#A_&mj3>XINs_0hnOq+`h zK{ozhadnM!{O~LA7ha-oiflw3V2rXEODo>ytkqy(3+}A@48iJL@ z&8nutSxQlU`Q2&z0y${V8i!a_XK11(m+!u^XSi%NH1&3DdlQ`<@nVc#+knPEPylx$ zAb8GtB(6U_>L@FC4tRAa1puWsrmF2R$0d%XIkrrXxd?2y6E7-YXRdaftLp@<)+sGc zD>=^4u5-2fREVf8vjV176;qBwRS^q*ycrGY3j&Np4K}?w=Z0Py%fmBC1Lu08!uLuimaSusyqBeRDbw&p}1N9U3?gP(rn4~re86H7iD6aFS>(}3SEpny{O6f%=C z3kI-_hBC_0Q{wXhPAT(%hU1=w(+Q}Sr(_| z%4Sh(mVhX#C{(uVj(^_n(x+DAC@2@#v=J!o21hK9?3peD0p?hyCzyI1DS!Q-^w_^=*3wd4=h5PEGwgN|dYyZ}T% zyT65A&pba*U6O8X^OyXc{M~W!i81?bn7VR zZRTOoxiidR_4#r3@b&K;J{?gaUZ51D-ZeMmD2uK}wTzS?g`Q#vTVyQN%&yGCf|z?~ zTh!6iY|NcGlwKXljz|#Aq-p{YrW`WyhbLx55G?3xl$y~+A`vacc$}vkb8s@9b`UbXL?fGTX7V1CVJzA80Rf>78Dk4m zMv#Vw71>$8+w?VHDhS$ye5fot_1ok~)00hI2i`vuW$66A=nD>Xh_7oHj^bJvZ<-lM;S`m9~6dBn|-&xbU=7^o!<(Grq0eUpx7E1h0ib^x^(a zwLNY4i|@$}hX5{6U^ia92~&Uu)s)OhQsuq;;@i8ECMBbNfjN+cC>EA!uqpVmP1$P9 zlOQj%p#YVnHs`R2d~-E$v7I)M;nmoin;oC~n{hlP1}Lh{@HnWU2rPCA6m!fi#`B^~ zXqXht>WgF5x5w~;rfsGW6_z0@jCW8`O*aJ+?bZfp@)CG|Gn9ave*5Q59*6e188SCR z9-~nu>C7_3c|sS{i6knmOSqehfgy{p5H=wK^8GR#-Y@)dkN8&^f)rodrxOQr2PyV)#GCgqZ)|eajp&>NrFH>uZb9 z%N)canIxn&;fvGvqv#3woUPy96@3T3*>8(c_1(`K!i`;3gkhY|#vjLYrDqnh$!f`J zMS0N}qQD6Y6#?6NHp+)=9{-o8?MK3!ID`aayg^@a3J5achVU-2t=T*lFsNdk*&|PqDw!6uJC*gqjh3JoBC?#r9VstEeuP!z4A+Y0%7brtsmCMn*RtaU zG}s2-SC9n<0QhNu5$=6M9NtLSse%y}LNrkWy6~6=fwb%wkc)l5Y|nmyosgpqG>Wlr zWiN=wx-PGTdk=+UP$O)rW^vd-82>n;2dd5UkWagc^ovX^aqpu79L$aPdm>E0FRKCj$`AZC@2)UdS@zQu+^PqyCIwRk=Xn+hFpp=qg3k{$0Mq<`vxR*(GtKzkuhxfM!mu7UX2;Fjl7#T1ThPagjsK zVP*IW=BBjRxKvlqK~SCy$GB2oNe5cenFCiXeIIRO*BA~>b7=pcZu$w_E|SG1&WUB~ z9O+#tf9iIHo&(qg=~w+Qq=XnO#yMQ_Dy!98skuDO0ocI@-r8HxjGpTQOu!(qd?)>4 zmbQ=TCWHJ5S)odFz!^ix^qQ4S7y?&W255Mj1=M}i8VZ(>GNip_DEbaV3OuEU0<}m< zZ(%r0)POb+*U8vgkfR~7W7{gwLbLdQ#7FKo{k5?KMUDcYzPUgit>NW1e7B}Sro+uZ zi-`!VsS5dtK&||tPU2v(hiG=}Us_h*Jo@{o<$PIyH-HtNP$dCuz12;l@-P7g=3w{+ zE8vu7md+Q8_@Kqa0xS)I>EVk7WQg3H0cDoq{THNUGQ5rh-gTT984+S*VGO#L_tZfk z4FI0Y>rRST<&;tZ&wCxMlmtDV#qrWAjs69gVJWtUpCws{r^BY|;^zSqByfxZ#1R-G zR^GD0gPo5^9~!q?~|627mloC;)wZBpwQXmkmcvoJch(HYtus#Zi#>O|#t#IJdL zX$Jw72gIu;R5=4BA(5_p3z_BzxTz7(cIl?qx?$4J zaTtdT{1$8@->Eu!){D=wN zODCXZ6FB-Sk?NG9ct=&`XUYelVJ7gX^5pH~WyC?UCm9|W(RJWQztn!gU(ryj^*NCT zX}>mR+siQE<>KWzJ68uE9pdp0dM zEcx}03WE-*l@H679C~SHoy^eJ7$z3j?z8$yPmKY#S66uAO;vh|0;8xD3!jon}B51|*;(`LCtM&iqVrk5X9Y6|7E(Yd}?abRW0agvyV(jDe- z0mnqczw01Pz;-3>_D$PQZzD>!aQ~nI?BI~Pb9k>Ig*HCNMZ)w=j973nKqv8_$|-A7 zHjxYpqGvlK{I1t>x>>FTP`cJ7(LqYdhNZ}Wg?$b4(4tJ`=%oT&l3M!)_zYOeUn$@n z0MRR!r+s~3K|ZJ^we7M&uiy)jGz*oM!aWHp*NBpdy9p~j8Vo%I8#OmYDbKsngTO+vP*~IT!)HbRNiCE$*04fF6E0KA%D)2|Z zzzhKFYs_NYw%s2>%7H(EEq2Misa|clX4->NvhW3J7|uyCD37T?!Tc3+kH~d+#062K zsImcZ)#FEHSVBPKkUdMA7?Ru4Kbyfo1eZd*|7Sj3uuX@7=CQ%_W{*t zYQvUDB16&~Yu?0wD~hrP7~w0?2VUrh^L_QF?g)&kX%g7+;}{A^p%!{+uh*jJQZL3E z?xJN#Q8xRU8L-S@jON@C!Jh>luX=P3Gfh&#ufHZ2(S=39(%hix7B{k-nRA3hW8JF% z>c0XF{-OU+e(t*sJMU5M?#2H3d4`gho3oj-q#)~Y_g{4w@CSQEybE9#%z<)jy1XAb zx^6D%(Q$Q;n(%&`yZRq%`Qys*9!&Yugla4eze_URP5s{u`Li$O3*<25%|0iXN4)XZ z(c9%rvs-fRwmw)U7nzre@;eKJLcrHUJk5r`Q_#m>M!oM7dgSndgYpuxk7-ouKy>4^Ce=RDOt)V_h5PS2!$5Eb^Q~;o4i^MuV8@|oRi%}G1 zc$e^WR*=F0V;3mMkTkIAXPU!F3bdYY3mlC>fR7C*%IZGR4o^N5agS!m`-mIVn*kNi zHth1?-1gkMj*>G zvaTXN!41)Eq~c*QYzxh7Cy!Wgc*|9n$b+`+_7R;WLBy;l%aaYwo6%lXFvpUbRtbBO zN*Xl|*@P{2F_CK`dkKHAuv%s`7xYvOVqoyLD6x(>bx1?!teoapT;L*&hVp9(%V$){ zOQG9E>ofI^)hQ(huc$~*dF~RBhq#$C!n@?^0a(iR*@QJrz!#v`ecy0_}RmA@#k6tOIWc9}#YOEP!uZjM^9S8(cxEqa36B_Ai2-F0G#hbIyK&;Xv?A46!wj0 zo3@OMr@Ic(hZh4teBM^hwh>PX>oRJ6lWv+G&*R`#4A=`8Dg`9~lqG$Q6Pqu{CE@$P zr#-@PIPGW_B4?pNF-}jI+Dd5LwSwUpKr+jvX2oId7Gf63H)Y+>&|Ck~6I5*H>9qfk zq%eq+EZI*vL9mJLMXSqtiEEoo-*XOtv7zc_!KsLW`2&1%=s~;ok#0C=+IYU8+J)~U zGjfX?jX3;NExNpHZ5ne=*VLWq|A0?rj;necs@e8O|wD3HcM!-|2LaG+sP zoT>m^%eqE7{Yp+!sVRtoVUe|<&9M<9XbE}ndp$EVBm*g~p-^x+2*H^CS75AN1f%8Lw8bvV@jA9%!JY5mPyh9jtBDMQOEp!zn1w%Q6Z@=mtQdI$jnNz;=SH`n-j%a1X$Cg-#0%c-0%ny+IN|Rf6h@&Y75d|Htx+!NF5nMj&rc ze%o2~ZS%u_a5Fl5#1~$W#r4zP`cTId1&%%Gs=9x`r>nTW)WE}wM>188s zho1O215roCl$$FnERUc6G8Hk;V~$T&tQ!L?BlCYUAmH(QHqOcC(=W!U7B#-;IaSj+ zoa?v<>x!VE_Pr%{_01G0b2HAxI#b4PO@~q|c)j~fb2chy7)~3cty0sI>x8aC<+LTope0<+m zXsp`a9ezr(PUTCkl)fu33TpGcdf|Ov%9o^~CJ(Ft@P;(dL&-jBiP}2UmBDCyW+hyq zMi+H8$Gb2qN^!OR^fK%j+7-TW5O_5;fJUXKqEc!zG^P+{1Ri2#0|RMrAj}0+a}z1n z_81=oHtLZ^Dt3ZbSq3}Aam>SL8pn3lE!Zhvly}K|kywXh4C^qv@)& zy7qbULbb+02PG*(oXS#c=+<#BT<-N0=_)kcthZD=Z70e1Yys1G3}F}mX~v?1ivFZA zkB{Ih2T%YEwPd&Vt7fU{zvUy5=^nDjipL`u^%ug9cd-wk0v1#-w1#-f3^f}zRT&&Z zn!)s^01F4f0ys3&v_9)Vv<~T~vM*`P@kBiNVMIIm=rgH8&ETS$SHSiLUk?8=;qeAy4rf0QwV0y(Rp3M8S8dALgvBje?lAzNBtx9IPbF;Foq4tm?bm zkT$@O_$cdDJ}r)jStLRskalDuc37P^474)Cdc6TBF%yNrgjc^y5j_lD20Z2 z6Q&#zbj&jq7O7@HYiBguCY{LszG<`;bYQ{j^!9Wk39;0WpGBAJFBP7b<&+}!SI~D7 zXYe$p=vIMpTqj5A^9;z+!h!U0Ml6nII~^p(Y_l*n(v_{zk1OQwF2WTM;vpuleGGpCW%vqoy(Y`aCwvx?CDaoJ94r8?+J$|Ppb(6NIa%I#T1OL2$elfv zR=*5~R44Jsoowj>HRQ9N?{j)GtghL)L}8Ry+)X8a_%{96(YYY8H*&>#T4Jb;TzENx z0YdVy4#H(*7|RW*|F)wyV9Qr=x|}*Xc4EGwXIyhb!g@iOTW}*S8^A^8AA~6pPUKe7-CZKV9ejJpt*Ba}& zYtKzt5~f<^5Qj__A&i`X9Y%`Q1_D4>#1P zklO+RE^i;<$2o~HJUZB>jaGOwZ2`qF&6$X@mW05_#YzaLS#K5qEjED(J|Y95P8s6x zz4(hKnQU{ml;B6Po)p4w(X_lRrMi4xeU_CdBx^7xr$P_Q0%;DjvQT+ng395r#;)?B z>aJyP!vh_*kLDbB54U6_j^;EAl)>-DzhMm6bJ`hCb|$TA-$TSNP*bLS9)S+mZn^c!Ji2$9LnSZ=d&t87}s_qf&Y`0dUx_A0FicuEJ}%> z1gN*>1f-y?AfntoqOuCKvC5`~Ht*RO>DOP#ZmG2BXS%2tF%tN<$F4tbFr}!F`i{Fn zwq8iQ2PNQ3%#AOnj=L;`?Mo8m@P&Xuz-f#|s4`F+ytG_}Z$!JctHZ(f6#`Ci98ld- zv+ia=;>9_7lU70AZwcK6^EZy)xC?GQK-_96OV2HHLM)j?tR^LQKMuuw8(z*HR7UYs z7w6xFH#7zCg{98Yckw^6=Z7*VB}-EY%~!J2r|h@|2-Z${_UXrQh|r1G{1ucd3`<_( zFbxL8)PS|T(-HKKHy>H(EkhYDs41T(`0l>sP`+1m)kT0Tm z^l)w21PWK72%iVovO&cr64PTe?11LPxqEvMwP0YN@WN6MurUk>OlK5-bqq;nLCC&% z4nh>P5zKi6P&Mx%CouTCNK3-^s1=wuaZM#+r8NvgYU&-VWNDgN1&g@T^7>HzndI`% zgu{j^HH2NVh7~37DPe6$6XbhuBi*HuNDi=%@Qo!iEha<6a>p#g>7ZfJstLR^y7JSG zeKZ@J0HS7D!4z^z_woP`p|Phyv=vF21)QvdX{kZ%NnH#heY^m&SxyQ*&VU6{7e3mR zN$5WgRsJ4~ZQ#&9;YELWMeB^s70#&?6~I>&FBWnH{p`4xdmDMtXBMYc524AX|>|Cd8p$gQ}T0A&DT z$lH|RYU6f-{QV?b5akf=glbksfn{q%7wR`QcB?xyYim;HvB5WkIZSP9P(#F00W5dS=S6sB&^Mrz!#aGk$pjt#SZ{v{ zE)MFPkhAO~n61ZOHar*Y&1rOWMG*@?(dfQ`IB2#&;ZyHq)=^c>R_8( z1@MLBd_dBo1ZR2hHmfSDHj5maFNV!=jtjwgw3PlcC#QigSdDr>M0cP~br#$l8931P z2&U_f_y+o<8nG9J{Dv$EkI7dMs}>h=a9;3kq4?X z)q=rVV!_*XDC@-s%N$jQYlGv%*+*1_QB?K}@UKpc9(!ZB$u*vhKrI0~uON_2e7Z~F zK;M~Jn^NbM5XrtFCZn?WPV?S|K)l!k3e2(>FEH{~MI0SVo%vF=4wOsGIOPugC|Z8l zxT3~dSl~sM?HN!|wVK)Y-=(d|hc#FM(W}GHG*eEOVGl!N0kX&$ErEpaPqNfaa^6}D zN!pkTDzAgEC6{@gf_)-Iy8$ef}57G?d zX)YR%f>tuTic~>WP_p*04*YP+w-^SGwXTQhE9l4fC_;ykj6J-NjO0SA%d&%n*(Oyy zG|>8WF>|N=Rk!%h%+`ptb~UAL0)4zvnS$XOsL({)61EH=Xorwy9@*{y#)i&!hZ_da zxApY5TiCw+g?L_ol5|`wQ~u}+z>_5~jS8o61oF_$TqW)!6yaw=8UK8v{Hrca0ob|= zgV(Ov-k$yk;&In8(j){!T5pDt*|*tEAeU*kgTWtf&BHMqR}#tvd5w`a>Ta3xkTFBD zs$Yksux%e3(L+!RZN7=JFp;aHKBVlFz6p}?I@MoL#dY2JuFAPhgZmiEI|xZYQ6zxU zQ34D!f{Pg}U(F2QTKhA#%w+&43!|eAUBpMQE^5GO7uG(nJ$BY19Wt>qEr#Pvxl(;L zH2BOc8gUysTB=>5e$KFwf*dSTH6uZ=S-&xbN3{(L#2dJFjW4J(8zXIS`@PNI` zeaa>@S1?a<(Pop;ff>Qw6hL`S(iavJ`Flk0 zAUs@*W&~|g@Z(U#Ryei z6gYj3DL2DR&OE_s44e~XW-Ti55e^fOYS>arZ<+M1D9L3>EJff@1y?*Cz5vS0lAyOA zx3e=@&E7yEh)UZ<9K?7BYL{Av9GHiqwh2!?$YMr35yR-r5=ak=r(X_Mm%soGuuo@H zO3(Sk+JOeP!*5~giHF`h@TJL=c$j8Op{9%D)78fXlU;>3X}H_hi{#1~X?a2i(=d2= zR;xNM#tU>T3sR;`N@T+WmdJC6)ty%{P|AxH55E^qVdCRg%qQzp@((#wrcC8o;T#Ge z%VGIZfX=NcCQ(g=ihw;>*OoaIUu?|^aWCc^-sTH)+bu>M1aS0l{Y-+Cg2Q+G-_t7eW{ z4(fg>y1f)RU&$nDJ3dquj0w|^rlzQ%Y#@xm^Ykx^oVqMl*1^>gm3okrw*x8V(Y_yz z**CmNySN#L+w!0xV9)&%o}l@@;!|5Y?788j?NdZCFcsnkwyvuLAhiSl@CUr{awp|>Mgw_ z-vd_%%MHh^OI8>gs^MAtV38#Z!QELGut%fW!_C?$(p=kXO#9`2e?be# zeB=9~5WNQ3GjCajL}J&%0NAvk!1;RjQZW3T1;dT9fCefn=UZVZb7+L{RI=}-Jq$Rs zlqphDX)h#Jr&QAn5DfihJk88?=euk?0)@{V$*9R{q!M~SN`|H69qv_Xq>now)Jr*! zK;Qb?2uPTvn*hidP}CdZ!DGhjNyTa}siJ#Qfhzx;!- zx{NDK)p}<7+$l&0D@AXz2I}*E!GREUvvBQel>25{nK;FeOqNhdjH6_5cTS?i!JjOJ zc=Yjf4glm{eB&t+6TlLI8+^ZIg`CjmbUY6(E?9f|j5zR=9nf<)J7U&+I_PtJ@gH+h zGx~R$-ATw-3)Gbkj1YY~KdLnp=JC%o2Y)%Cs(yJ@S6^>l11m!gPnr|ts^+`i(_}k^ zq?0O~Kr^zv&?;zufVZmzgqJ`22j5Ar7ni-JEv}YqUL(=7w(<)y zDILyD#`sYO1Lm2v47XE5khg#mXmv^A3Tu2cw`b$WS5AL`HMbN8bl&gVrcgdY25%W)r`C|EdJ7n6!g4r!yo6*d&wnIF)7^`v+g)#Z+t0Xty&Z>36#o069Fp# z-#>0>I6O-{1rKf^nQDW$C~0W!9R_S$0{V-28HwqAI_VUay;84hz(xy8U>M;Ex-2^lgctakLmS z#bp8Vj#4O37=-IOXAOMBwN_OC<9syST)F3vlZKhi>e#^G$it}ppa6tsZ;BFXYLhi` zsS#m#f0pksM9aYmeJnyf-bC85L8rg>nZGA((46vaQICbi=CmYq}XI; zziuTesbe(XYAY&*HR9SogG)I3HXQSi4DxeG&TfgHX&te`IN5Km&4AuL_r~ucOR}uCcOaJx{(lMwRoBb31r>L8`kI$eR z$(^9orBZUC&fhfuYIR{B@^^UtptZyIYJ=r661X_ykuojC*Y|D(Zsz9z`pTJ{8={1lO3^?Fv z3hrj8wL2tK) zeM3&gHK-fQ6z{aiDNiz^T)G+C?D7 z(d7h-kafq)!9W&T?3`$4x5T}N&qELOGYesahNPaF&FAM8wtpO)$gV>&sI4JGU8Fs8 zXFuMD1XC#GNHk@a3eb-$!^|sS3n+a^c=CdfMhQ7^`=}Rp_l*PIj3Kb3!=XqJz&$jL zb7Z2HEEzP)N_HBdP`C~b*TfXPoV(ZhQlpR|XG}@Pl_(0>^*Y@~)%Z#r4jtq8NM1l>VZ&0X zW7q2_Cc5_WA-vTjyp#-wiZzNsNBPSh^$>tBxYI`G%U850z^Xt@kU2$-{1#x1iWf;$ zdgemKdIfqkHD75M7*AH>W=?p*BXD@`3T~TPBhMFp8HaJBuj>u&;0Wy->CC2s$cn4D zTJn5tSn_eX!ayRT&GleZpNEfqGycqrB$ZpIE1x&4^W5!}?#VZED}i_SD@Pos2vYDq z0`*l3K%*#=5TTt%T8Jz3O6(uKU@x!bJ}^qUG#Bf=7~_1JYsx`4t4LXbG2|(0o-qyJ zkgSlwEWPw)`+*c9jo5I%Hh&wyW7fhKS7-I(up>ZCV5}*b{+)RcM&AOL^acP&(-3;_ z^!b@Ei7=WwqO9eEQgR_D@j=zH`2XO6u{$c_TQWikr;8F%f>-%(uaO};QXwYt(}^4! zA)xMK|GC^lgi_33D7KSRN*nS(^eRY#%;=Fh$G|FcD`Nqnk%a`2kDcZqiVj~KB5qKD zumE%C)AN1+$V1PP{GfOOQ4hd<8&AC{SG$K6|lN)U%5B zsYgB*sq&$)1sy@V9K<@zl>89z`Icg6LKOxgra6kH0mkTK2)Gq=4uxde;TwdcSZI7) z4;VmJWc~h#0ol-A^oXx3JTu3R zx6Z)yzJYFiAIW;+fh_=eQxHQTdh@OMISjwz8b{nUiqpujw9Mxr zgLRdu)iVq9!ygkS9y4e^4Npj-1eKEmV;7L@8X!HLN5-fko7MS>h;3Q*aAL+`vG|@o zC-oDS4;bmtcCm(72q5_8We24>9dgnUs)&*A{vBYn^aPJ$@1? zx@#Z^3SZ5X%geMegj&R_n-u7kKIRKEB;zRrCc5;Qk9P)Asg&vp?ejGB=mQnbq zKkSwB0PyB!?2=GMDNZh7-yHITP0@KsOc=u$omh&RAetz^49J>AZaa!YC5dIGitg9y zS!8XA2o750E_HEE5ZNg4_>ff4N=?5Qa+icMh9vmQHzQ6V>%{`a=9@AslcU&T8rov- z0A3uW$JOyH7NG)Fr`ggeh{%HmRurvN9FCw;l1HaY8=>QC7y)HX7;egQ>ycB%5gF;W+geqN-DGb;jBhkeYrWNHg&uCopa@gu22 z$1>BW!?gUvk%jN!x3oN;Ws+@fpGquKC&b;A88+`#Aodg%zFojw@dF&{mAqb7a8cnH zP>>Odlto+;mMx>;m`M0R1UI=$(c^77=Et;9G>|O5zZU=FEowc{r8pSggeKu3_-+wu zh-1NOjm%^83VP%H={>5(ap{{k#*~x0&a05K2*2>lCJX8mlOK*@UNJace&0a!761Wn z#+|z|+z|2p$ck|9i*X@k}t>jiKcTcSqCZ$(Fom;4{LxEfLMl03BMBxw10iFG z)=GA`L=}PP#=4a% zhN#_bKs_=tM~f ziY;#{w7(cbFjwJwDsc`Ky3r6rDt#YFu_ADx2t82j zB`vxnGgU1V#DEmRK6s`e$|L5R)C_L~r5FB0ns|)f1RjM$fPrw9ki=A=jiC@t0Ej28 z?N%XsfJiE8C}&BXF5I9H&q%anf#l}`6op^+)05-3FeiubNDn(;>3FDOWKiPcbS8+* zEL(uR3=q|(7xwM?z$lnZpN7K=$^uv>?$*5mXsy{b5iApJLZl8o{$hZHK}mihA%yyV z@je+kMt)DJvIKewp)?U@QQJH*mk~3BE}AN8LtB9^WhRHtuoQSXLGYOOPrQ_F-_t+& zmAaqr*5uDQWM*E_c z;gSVhF}>uP7hO8Ym(HjJ5D3)r<1OsK8EQ4vx$&=RN4y_WZ39G*$BXQEdMXH?c*6Ug z`L}H@b%!_xE&HgYw-*vG-x+Nw^Ryr$z40E>7}=Y;uu8xr~cwJ92p|6b}I(uNchRPq30?88oE- zx)Z2GDyOw!J-yCl-(ynABfv@@^~5MN+F?^bll497ZNVqQn;WnN=319a)l!kHCA+5F zEywE#9^+(KyyZc{z`v;q4o0na0CB`9N#Kw~WUs)^#NWPyhX|<|c5>*YU43U#t0>(Esp^%ztX8t|j9?=+OTA z{3EWeuTA(r%gJ<|migya?WewMzb^VGmg)M_r)ybGGu}^o{2O;C5Qi;(-ewlk>&ALJ zYyJ&SjPL9#Kkshn7kKBv>n+YGxUUzMnouvFcfRjmC3XE92h|wS^7KM|Kg9z|#@f#P zkD~62ec_%Tl?&zuJG1|hQ+~D>NqX^$EG6VfgJs{JHD?Lz|Nfs_Rip0T%KP`C|5c;l z)W3J^)&EWYu<;LesQw@B&tC60h2+2MsQ&&<_=3@3e|;tDIcQT!vyVy>0Vdf%_7cn@ zbw)t~MpeCqFWNvn%2uT$c<$#J$I?^Ir6^fV zS2G#1H-`csvnhl2#f_G?44HTnVe|t#y$bRvRuUiX=qD9t3lQvwb9jc9Dv?Eq@mc_I zC+o6;5Es|887k!@$3Q%k2N015f*J@z?&F9d7!8TpgC-=GJWLhBq}W8_V=ritWC;fH z0WJqq9%Y{wkYKq=0IJncIH{#XCkevS0XWt}fetJrC^N(Am>VHPm{Gu+N#=^~APRg}SrLT< z0R)&N;YUm~M{uV4CeP-VD5yClR_oY8#lQ=VrSx8(Xf)A+aX`eDZ)ldmch!zx1H&{0w5&K^;j05B>5;+wyc^5++c`B-sy5 z3K%|Rtb_JJT6^oNlfs^4e(xcpe~u5`UBn2a_J@tel6J+}?3t2`65>v+d^QY0FV3Ru z5z6nQPfCTH@Z%$#d?NSs++J<*G}(!tHE;d8vpt*nw;<9;eWGA{J}HuM9ahnU%%;oi z2SalOihrKps_k+1Sz08r=FVjv}>ZLed zk>?lMxp+=i*j#9g1M&;cx3v2hFV(&KpD+EV+>>4Gy7P~gz8$xM{$Q-ldQkk6^H;wK z`-7wSV{>)He|doFj6Spea**n8ifX=A{dfCEd+#Wz2RGf4S67I{Rg#DbLf#zgA4dRi zYI}k{z+_MxZHxgW{1FHMaY2&A$J{JUWut;6;!PPpjxBOosqO8aN;|9vEjo+l#5z*) z+R_Z9uH+zNX}UrL;nW!h5t@i6U_ywRsCYsZ39NgZ3P<>pBymrah%a)Xrp=LAkasT0 zB4sr-$rj%JwIVwOvX+OS#`DNvK#&r?wOaNJbDOl&7LmwH6}6tQT${2?FOo20RaO!K z6D|0jQtoRem=ZC!^Q@W^lunU$A^`}JGVRQRZR*(t`jJOZ*nsN5Z_^3pX1h#$Z633Z;zwI2fS~^aW7n5p#lr{s@%#XZs54s=ThgTP%M8l!R5b)0|3s418EK zmP%scg4h%>C8R{)0AZ)=+I|#+C>jRIaNxPQ$kZuvQIX3Lz?N_6vB;F`2x)zUKyDBq zC^?GIMFQ%=?D~h8EQeQ2At728^?;(&iY1UK0|GM>20#=A(Lx2yn0=84J5&Q8_^~2c zNujxZ3K{lTbVmgAfngZ3rHi`sCD)x~(whXkGx$7eoDv8whPc4siLOFuU=Xw&OR(ep z$`gk<ZFT$k$t4|R@xrWzDQsFObpm_jHK(oI(K-kdcj9O}gT@PC*VWaqh2mz71DRQ4M z0f89Z=s}u50uEfPM?ec`@g>*@2wQ*sg?I?WG7z&v#89D0M7pa3=1M65AR2U`Tr`zZ zI}S0f)W-_Z!a9kSec?@ezGeF)0~Ebh><@qb8riID%przJTu~JykxIy9jw}AUUG7Z8kioU1-3=sO#La+b$sBsStZt%B%GT6KR23Rlj_uBJf&w8HEZI|7v z`R~R&Wcg&T!Qbn#2@azj*14JIqXAq_WmeHqdv*BmIWuC;{RHidH+5b zr=oupv)XT!!9uPKDHXy)dOtx)LYlB?ssfTID97jp*%M6m5l9woBCBahU$bvnw&wMh ztN;o6iH|Fg12bBv_ES!Rv5VBSLy%Ijp{2B#TtYwLIy8_FsuVW#P{*$a_P;u!q;C6P zxRGHqR<6PA9-t!0MGxuH?K@q){+2!1vpOQ!^7%fWZ-tUIEVpHASyCY>hyrF#h-;IE zY)iy!i4m=Hw=RK$DlNhAx9kLxEkskLSwNoh(~l)hC1F+1FViH<;Gb7jdq`vyX~PBh z2P`PEbeigyQi)=Mq<_Hds_KtMh2}*Bcoa_Evz_#(PkJ6I@|5=A&q4^I0!=KEj;1i% z>hpf)KM1PN3-4DBBzTE0Zo-=N>{XCufOlY*bq0ilT!-lr@OgEKGDI0#R9HyRV?!3I zOA59<=p#%i+k_Ftl(;SG!Udr;QYVCmje6LlTPTSd7(@b2TcQML*i9b_4IBs-_1BOo zA-wn}wp^1YuK&wFbDFp2f7Ksb|HFSv$Itia<0h2HR~cYhy`BOQO824mdpiyTXP>s8w4P4eVne}qUPgz9P<_cl6q{~ zQvJjYh1SCWTlTiqo3jw8lXWBh0NEES^qc9}ci)sK+Rond>9yvZszT{qT#plORRSX^ zJ`R~j;gMsO-!zKv#Ui!!tQb&*RP@I-4wD!oM_TxD2q|u8=M#k^;?yEUlcQ z!=?t<#wr+y*^)Kr5h9#ITwt}6p`>yQ_L8PduHF)W3##Zw5#~utUDPC`q7=`_QB6SN zgoDi77$$dQ^rLBPDzf2WgPsZ`uxe~H8pP6qEdHhkRV$tb?^2z7PjcWBC5>r=E2i$hdm_M)VYl^|sV`94rN}l}G9Pf$2ub9&aS4U6@){>=5`>a( zK}iWR)I`)n+?eDo0tsU=rS#`m5!zq|#I?Ef&~UH|sR{{@cge}QBDcRsjh`~{5Bt73V@93O8c z4@B#sV-^enKd*t@#g|fsAc@W%7d(Pln|CT;=z}v7ppOh>Mqsf$O2s6cnjG&-aWn;t zvdqe0lauz)ZUTbX;&mZS(i26=cwmc$BoAy1z(Ny00BmE0Exm+O2P4ptE^iSXWWGPp zEF&(Eat<+!MLkrTVQdVE3?RYE>l6S0fdCLBmXVjVC#DE$HU=4}>_nsVAVOS%9e;Wv z)wC@Iz!O#z_v8-s3Lq}$n?2HHp(8*GQm*bX# z$GCqNI<8_+JvkgfJR|zJJ}~rM4&a}M;yeQt$|?* zKzM>Ai14%s6V>2wO(;gP0G_B{P( zObBY%9{|1ibaIxcvE%z|>?H*&+>FXc7T;NKdQ6tcl%9Y9@^`@NGYvYZFdDPEs-DUKLbPO=CDB!A7p_Lb5RP zJAesj=`xQ-N#Yj91cG6X^3L3J<`JaJ0JKuNt@I^qi|JQ^hsdtYp9xMVYmT^#Xv3^( z9OS9YRbUVwf&C*47POC$RQ;Zo8Xy~U63M@i$d%+TI%1d49{2$$tRRdv8VDZ?!tC=N z;WULH_D_t2h6KPu)iA+_%g8@$#F?t;x(Ycf{tvT7VA4io6>&8Ju>3{A^?Rxm1?Z6Z zYP}?VbV3V2aYN8WC6Z%A81Hdunl;&Uzq4dnO8tKC@;(l(Zfox7wMF-I!p`RsbHBUp zKg?WcYuxe7j_p;fJ6R|88g{+iZ}SN&h$4=}s7)PF2sPx=>D?s|u* zesi7v)xX%*_3vJh!CyNsoBeBf)&FsS;NJE2#r_AQywr4PH~7W$uH~pvL5W?c*BPv9 z<@aqBvjtW=QX8Vx3Zk3;_L@~=i&u;8h3=et(_zX5&g2OCcWypTL!hf+$vD>Nwb}+c zobdr34An23Y8gPYZbg4^0@WKr4quC^eU)6nT{3uFoTMJZ`d;HX__qt#+IUPIeL_dj zLGPE#F9t_!r0cP`=1Ou((LCYWd~|ATHXX;LXe+90ZO;N}R7b_!Ub#27e?hyfK2KXY zxIjp1D3qOuXDdRZIQRZVepqP1qxrn4xE7`il^(B=$4G9w@}4}Dr+r_CU54?709U(5 zGs{gO+(gy#mKF)&MYa}TGe=yo7?*8Zx395rFQ4b79e5bL0UwvRiBjbwlaSJ7LD?Vm)z+vh<>*__26l$zKY4V&EQAzP74~_)%ZW9kdqq+` z(JNz)oR;H`H63qZUqD>+cyL9qytVG)jbf(VSCTZUniL`cvX{ z#nit;TC@BBL8->s9oSzxvWa7MleDGO zH(fo=6%6CNnAYsq-R<)PtMO0LmW`J|1?^!;Pyx?NRUyd^D_!k-_u)$5>5|YDK(__% ztC*k3n<*Ij`~}u&m+~r+@4rT#yYuD+6W5 zE$BtAUa(?*j{RjYP^o*m#@Z)Zg1|1$0R}n727|o4F)2!_O$Z456v5EgAfN0gfY}g+ zCwSq6ya}VL*c1dd&}=~wN6e#+U@$Dez#a^Y1epHdy8%8V@OjK1T@O2xr83l*5WtCY z!xKGnUmgfXOv*YS%OK3#l8&It=TSQbkP?sqfS|1Kg8igG+z7(7w7 z1!kRL1AvyVxqtr0m9U=_|Be6Q|F=^Al?CL~UafN{{at2%+g|Q>m{(B{s-ak5=dcMN`2XEr{&RKj``~5Bc-dTeczJ-|Xf!6xb|;Ug}`V zC$w1z@at|+{5WRpqy6~znFVC1LkdmD9coZWq-tD+82aL&hAEYQe~_udM?zP0HXJ{! zqOc)PZOB;~e56VB!@s?i%7itPUGxl_n=}&0=pV>g*F_b12t!|rqUo`U3L2>m0gGsZ zmWtn)mJWn{oWCX2IYN;q93~EOZV6a?X6(mHbA)u@H0Df10>EGh_=Nm)EG(TeSNtVP zTn)W`P#FG+hIpA^?+>3-hdYj{nmrW>Fhy(R7gTd$gND)}{d`#Y|1YIpvQ#!B$;!6#W>kact}7RZz;p#mZi-#h4Tk5rx%V>3F}JJ39y8x zpmuyv-h@Te&YG4R_8_`dK^epm#QTQLjR?O;r{y@0MJ zDckb{Q!TK|ai@B{0Op+5uSexV?^(>UfUiM+o?T$#OrB%OePFhW@Q}9dx6idW@4aI& zejEyhk8&Kp@&slS7tJfKE&Z)dd=*Qfuk0B2Q;~gv;z*if5e_$Qanu|*GzswpvZN^O z)ytSs#+)TBv9DO8Xl9%K+PJYz+R_p&Jr)ygIl=;hc*g@G2T18$KKvEwpT z4k80emer<*UMBf5#0K<+A&4Ohr+wb?!g~g|QrfBzVtknb-q37Y9YQ7J*>gyg#UQ1* zaO%g0sRUaXJW=ai1Z-DJz(6v<(gG>?)GZHk?Fm6ZNd;q>ZQH-J$bW$UQ~A%EpN#(E zw){_bzpDQ$^!<-^s{b0>j^KBiPsTX?UbFm`P`LfPPr_&4!~c&$l_GG0_d&u+@Za7> z3tw^%HiW66n=VQX+U}C&v@uZ zT%q15BixU zA`5*it5msO4NrrKfqwS zumhGr0)@F3+8e!STsw7#10Nh|Mtr(POcVhClRu0A(}iQ@M44@Q)iMGQ_54Ca*v|(z z;nLF-fx!3oT$~}!iByz*7_fY>R+n(7;%=iz?n^w}CXGY}_c;91Zx({a4k`{b+3xXO zvX?TKUhaLL_~?8w z-6=W0pLTf>gZzGVu7uCs=YjbW@U8j@%+Rq$r$gTl6LmzEj7#8v-+M2eL<6E%4 zcyEeNj6eJRd=P`9dtbOY^;733qCBR%MZ#-`f8=_Xw@$3iZY{ z>r1uo%Kqe@EP;2N0A4QvR?1%Uvf>>XF#o(S4SEi*4v~IO>ik0gg@9N8-<@=Q^^zRg z^@aLkoI~fI1f%U6B~PzU#)iQQ3zUU3%gK)|u0_LU{G)&8>A3WyA3(iW-Yg!!-&Sw+ z7k+o(Qy-RmQ~2ar>0*EMg{7xF)xJQqbTKnDU)yGnSQ)Q`-~ai0&hEv^hbnJt8FMp2 zL0sWP(ln>Q?`c6M@w-!Y9j@%v(=UrG8khV&_S|wcMBzIy=DE)}D=a%LGn_0}R{!*o zQvwi^N|JAgWh2xh*Pj-qd(Cl0OCec#&&~8r9WUO zFrTD_O!(*sAL@{p-zIeZZ4mTqyq=7<2 z`8LTQZ=v3CoZ(sWPnHB)>Fz4Y~pM_#Wj4&~gHjMZud>95%;VCZlsm?JW zGXPhe`k7$3bio)1m?p-ie4+;$;vY70qxz)QOeXuVW`>2ZJ4OPCY!)!9M~(e|i)nUX~5mOi!LBxeyfGnx!Qe&lNcEZIUCsg!t79e2Y z@4)xt^zqt&5n;Ufqy`5h_X7|cckLIenHC}Rgpx4%VpFK#N$Q%yqK)tS#0`b#Thqdk zfF~K5AHayDALi$^0{}<^47~5bz7~n>Dac|foJK_32jP-{ejo|ljV!maC#?46%YN~T z-TpP3;(&7bVyo-Dd;g~C=T|tBijNzT^2uu3Cm^XJGB!a|uR@MM-=|L$<9uqINi7V8 z0m_!GL6Y;WfVSAm=n)v&u*v)RH)qBY4A90cdq%umnbWOknqWiq0*S5fr2}TIht5t5PK$w9Y=WmXyi*3sh1{?vicx9EOZ1$p{&_-ht3NH1vOp zWGAVLjaj?ZHa^U;38@9yB2Qb_xKclp2-g*!ge=Yjt`-zwb;V*Y^w=ZIO=gN9#i(18 zfJ3^jCGg>hRTlW}pB&%szHbw=6190by2BRUvm@nXb2jY0B9G{0i6;*1b{HBaZHt%? z1JOHcM_kulY6~@7aX!h$MFW&ki}le)g$gelO-Nr3ODQuYvU%r+Yo)gQ0k+Rm8w<}v zU-BaR5#eH79r-;8x64gI5%Oin??{{nk?m(1R@1Pa!mx8TiU-*m%`Bfss_YQ>_rDfE%t7^1NEBKqujoP% zG>KC|dT1%i;<-GQh+N8(oh`^i<+It*>qDCc*c6}u@fni;*#E?Wqx3&qR{dqy^vw@4PaXRXVt4FUOn3iSB#{wVet1NsD;4R9rdQgD5O=u!sh z0)Q4343aogr$7b_M_Zwitf&raYT)M?Kte_<3p0vd@%OFa4&zvmaKvBQr`*PdV%Sr7 ze=RJ|M~Ec3njxDJ5le4~!h(Xy1P`^}H8}3!xcmZSSg9&fL@bO#VAa927$VFA4@%TQ zB!;QjEa;vlyd~CBekR=`4E7)zQ+vj|g(Y94fS)GR}5T;P_V8c6Y2I?6eu z+vFG#zW%8(b0hO3_0{6@jCeeoWj{!>C(ySsl@R4188BMc8QowI>1-v$jMnxS-iks60&0+ggp!VlHkUU! zRbroFg6slkHir!WhK3>paHf`*ola(V^vE(FY{D2T{!jtK#D_&B=h;xRutJYOigg+) zBCf(hifSkZ#?J;Bk~B|{F|VbLD5PwGJL-UpC{wLRL7S~;1HJIT2crPudtwQ)lxr}v z#wqNLesbvvuDnHB;LR3(b`(LPtqvQ@fV*s$&O#xkO*MB;4vMy;eBlNH%U~ zMZ^k(rpjXxRiFXDTLDAXGDS;fYV(X(oOMqDl#GPg=3IiM;RX~a$+fuhsUVQLbhOM8 zMxdh1v?3dm2hs`%5RyHuL@=;K4ntfJwm=88Y)ds&Q32I}jf^oZ^+~ooQd>xg&l5(N zpbhxvjTcas@UMvYzTxlxvp92Yi14tJ?WOVNF)eJu&wX!PTWu>`oL^iN;9 z_Vkn;6%x&oiCd*h*t(u%?!o4e5ni|tb-uq$j)I%5uj4duDY$F;=9hyEtzGh*v4Pw7 z^n^W6Nw*E7lP*?;qguI``N9I#QX;>VpZ$A_S+M>V*+$^+V@7l+AF`1b`k#g&c$@H@ z6{E0pJtmCd(=~xafXte%LVCf*zwPu;^-19Z@7r#;IJK59uz#QWm-TdEh0g92}lOC<$Lc;;#~Jncj2+PZ9dE2!l6Jr`*15 z#WTS`HmOAseRA59+cC-9!03y#K{31{pC-GAAphW@ecFdVmkcugp17CEp0W9Breg!z zroAc-chDa^B4U+cObQVte<|dlWX!z3MN1lo0S=YHNik$d2CPK&@!KsOBrtQ2;|2JO z_MS_YG(=SA7`PC+&sz@go-HpYHXJc9r5|20h9X#RneuEn%Q|9dk&TgtlyzTLf$aaI1cGy2CC z_#S*;9M||CIex+a8=kvyy;A?^fp)zSeJjSg@1VHkKRH*|b}IE1_dMST%dzWnw7JD} z#1-ne`isD#?4@1x)r;6)^ilaISXA$I-~A%75M)dSxz5qqci-U;R%f3Q@A@+*8W3`a z%5s5mt0=c-jG&lwgL9}`tHrWpE=4bQjp9SZ4uOU#U+BJ{=U2r&{T}>*vzA#3a zkKW`4T`?LX^<8_wEc2~Y!i1Z@(B-$A2q@oI&f{;&`Wg>xQ0?dGw-Nrfes&%@X@mpc zljhR>TL=Ml!EjDUS*Oz&i3qe&1AP8ke**0N0V^6A^)9?U8^wwV^e{*t%lL6D2=_Ru z(=@1`Xa1`zfYk3m27$H+d6K~$P=S(+^y~Lf_=KT;nORWzJ;Sr4_&fIvApR2`F{t2B z%FfAzCjjZ;14dX-3LIdlGVueF3K<2PEcy8sS0dff#u^%*^-x1%#}O`~<{Uy9jwIuE zZs^xYUNa_iF|)zqxnyM}_``yj3RI$@vVHk1Vsf0wAoAyz&M{2zP-2*3S@`29R=2;Y z3sJbjH3MCZB?yR8`8{3g@54n~0wMwo71h==sDLoSPI{blhZ5Wj=Sp^q0@srtQbqyG zR|Rfgz+~L--<=ddhaAa`a&0~+|Dbsxui^LJC9{Hl2g_+LEiV)xZjGl%Ej^HTr`wg{ zn|B)E=U>A(%ONML_i@+MXtTtG_k$@Lgl^B z-u&l(L~>g`2YIVLjWF04dU?IvW+JV8S(dHP!@!|ChSw@WOpZXuVeX!M9rog|m2%Kk zqRT;8=q`bvV~E?MAR0@GCS(zXGS~ftI1FUmYg);p1h{>7rZ9@9+@us9jnEJP6=iAa z=+Y9wcZ2PBUsFP2DDj8h;1dGiSjMn%4O%%r@AIWydRQPrgrH&RU}5nez_k9l`r#}9 z&we3*W?;*2DuV&B9$YjPf*KeR#lyMSOWSI`;Io)bk&l*B(uV+N@EZ;0#=(8H?H!A%E_ zQ!al8O;?Cs8c@P-s07UXD(!sGK>en9yKj@scz zWRI7>8MYf^fDIQmNm%204mi|?WvZS<*d*}9uB&1Z)}zJ6@lhVny~GJ4@w22KN)2y1 zkcFK+&-;aTNa$(uZl0QmR=}v-y{23i<32u2m+^PdazTx|-V52NU3riLm06 z+1VIjlXBUVB@sBi*%^xvh*G;!=*on)@beKaRGd10fO!8C_^HUCvF}CUusFcO4kjA_ zV{h1LO9Mo#qfKHy54+jMDzTxBLg3O?A1`goP|-{F@S*PYqPFbF1nCDd;lBm0n2R%n zZHswyTyMt~(nGdADcXE8g#+8b3C&QmB}j_F0*t8()F~L7N*aI(G#w2iQ7|TnO;krn zhk*-xo;a8Y^t1Rf)e}Jtdnqbvc)|ct(MT$MaA|?Mm)S=WJD@IFDk>^0>1hivGiXK^ z%`VB&vZo*m8@3RXw&d{9iY4w@CJ9JPg}3-|a#TZ-um zn9;|StZe9~Uo`urMW~Mpx7TAJpsVWb#R2ACja>$Y4oH9LY z@>ci`Qj3gr$YJwz|cI1rA+X+q0a_LZ>D79=qfrpJyQO=U7adzomwZa1KnaaTk;}mmFu%r-CtZj+l)blz=)fb0Ih{2SY}j zpt+G*6#qc1;z6ps#O9F6=h+4;rymsYBY~zmD;L<$!>8hV;@H}0U|j6x3Mti=%5bFD z(h7(_6QS*_a;s-4|GcEqUy^8JHnWY z+t2+n@*kz2iPa%FuPXKxm!_A8byj+#tKJ;Mx7N6-1F$-zMPz$kNMC1v?MlD6AE#kA z?OCKFJ~MUD?FTqaFgYYI^hK25&30iNE{ylNd?7EW{CF-9|G+x-{^BF-3qrs333ZrP zVKM)??9bLaVPB}f^Lo6reFN%WCl9Wh*nj@@x!#R_k-XQ!wCCx9)!$uiGcNqEFZ^cP zFCgpSSP-{?n*JN}n}gH&SF`rlaeDviq+Y4&Hrun-)iaVWwPjiS4TM&D(fW2--_i{WEFyrIFZy~;)r3t5`hcel)fAH2v@Pmx8rE(CVL}V0$ zj_)mz3>eLmE$a?5e_Iy?NgyhV2;u1zSpZNK;!i+=sRZpa?J)TJHUFjV18e}9#-o_g z@8op+?a?blSn&IZ4cy}Z2vHecJh?ytXX9X?;D;yxOYnFic!vLh{@5sY> z%W+6&Ac&dftRCdtWl>=OZh)*fqd@AVZgxL8!YDW`TU=Wd`35V*gXj-)eggNeTXR&f8cTlOB+Ljh))p*TM6p5kp-qD@begEA4&P>N)C5D<2)eZ=iZwG0in?7kQva zv^3BE`~9Q)_y14+^Z%EI>u( zbpvqt)pIiv`S>_)LUes*#4692p_F4Uq&8JuA5*X=rPz%Wjt|FYZ1e|Yl1C7sA;*c> zEGz(^M;GUVy9KeV^w}r^V?5fKP)%|}++kd@A&Cwq0jk>fC1=TgNbikd76;inT6v5NfglSNd?!Gu*n5yg~B zJ#lFZPss3bi>^jgeyJ@f6ZllLM6FDzlZI?evv6aa91_lT2QrsggSK&-;~Oatld)k5 zBE-=W%E&~DM6I)B&N4MyR0vCKjK}l#D&r z?8iHqyq*o>e$$r~8GOj~{%(nRBgPtvT3ct_<^`nOsuwxPMNwhRfN4f!6@tPaJ3et1;L4t@7eU?*N>l_zsf2 zsM(KZl+5SNt9gMvf6Cf4PKiv!TQSe<`Z+dW5ClAe3&6lsu&Y^JJs42Y68WP`$xJ$2 zF7Or6!_(Fl6=@U>A_ZF%QihL~fFg)OomioyN;Rq(I6zXaC8RMak6I-}G`j$A%Yg(9 z&ICll2AB9yc4X!E6!`?GAtuCFsxi+;#7XS)7_(#vZWzRD6LX3&C9{%lcwoy!K?jEP z!7rc?NKT@xUDgH*o+PyJ9&=bo!~~Y!Fw5{^16nZ$v*cjCNXr({wSaSJiIcejsvMOG z2%*+KFS3$IHu%d62AC*|SR#R87eicWP5FLEA8`jAGzM}AGIAMcw4IieB$w?e>D;9x zNO4(%ppj>57|jN~qRCizkF{*|;oGZXTJ4<&8D==D>P2y=@LeG3%g6CoGrsY?TVMZT z5P6(=4+CMTQ^oxkmh*Hbd7FnF+M}|1Ie=va<3hI>Xg(#KFnV!p?BgygYFXi2;|8gQ zVXI8ff|kAQAWV1*j2rVdKP`K*+xv1y4+vGpt&s0&ZRf}bZM6wFZ%0%}7dU9#zf_d? z&DW%mB%);{WkPwnoHk5wbkLP5A`{1)eaG>VMA|*(xrj0^>|h8B=5W+iQb-*vZec6n zh8H40r{xfGle%gn=VTPSVfW~ai36&`AZPEc0J}_ao9x;k17&C<76)F=)6^Bj|LVkDat5cL*Xq zTU5XpcAfWlb8NcBc%r(5?1SOOHGh@@0r(J}-nI9y+ZW$*O&rF>srob5TLB$t(`@iZenaoEG8O)(u7kT@@Y=L z0D{r}RvMWMe+aWcqV|CV-XbQd#wzH50#iXOk6GJ#JKa=0?1F}w63L>H;!3B8GZb}5 zh$s;mEPlR^}67XTwd=C)vi9e$2ueB=Z>ZbNb=P?)&~Z8-#VW_{9}0U_RBp0Lsl zOGrXo*~9nilK}-g2|dfKPymAqDu=lTYT2A@L*=d1DWPPKTVNSF^d6}wn(by zP~d$zxQwSDn{+h|{6<5SavX2dZ>IqXQH* zKfhag=?wn|@PUYM2*)b{R(0y+^D6wYVaN<*427URhu?M`QUb;Y9RS(|sB3?I#SkGx z+Igh(NsXtZ^jYhVisOCAMS|esy;{USR2A8k{x6oOZ&w-XFnS9Xk*U5x!Gu708&Xcs zR;15y(&yvR=f(K;NMh1l`TA)$Tpo`c*jFBdA6U7|eMYq&oOO8caiAX`ik1f;J{R*h zo<~ZTDKg_|Ps}nW|H;&n_5Lya{_O7ibbPCp=fulo1U=}|=a6!!w8y71ReYYy)<;C& zc&NDeSJ+mNf6M>;4l#YR|5bm#p!yG@iZ}j`m#ID?zl{0!4zl`6(ihnKHLAZb(|^qM zt3FY#)Bed+fBTZE{@2s0$N9SY%dd`q_~ji_Fm0x+HV-I!-Nynz+g}~nM^KS6FA2`2 zd>)X8oBxa-kO!8Kt8*Lqukultbw2vDsv*$}t8`Y=2t0W)WMP?5j5?BkKU+W-{X_Jl0F(-S$3fzO7uyMv*ptBfL{0{YFk)v#( zHI%Y;`uGFD(Y8QGe(oe;j|ubSvx(%M?}>i_#^N42e}AST2#5lWTOtMA5Du5@BJe@) zz(2i%h$x!*w?3#E)Nr{9&o|zRQomf73FLu5m(jyYOgg&a-aJI*szIWjS>a_OZqhhu zi>J(mR}1p(>Q2BU62PFjTtXUcC}}oUG9X7qoKBB`j)!4#nt9VA$^z|jFz|C$G~p7- z4?tJP3dMv`g=avKg=+jKCPbr4ixUd<#S8L5_w$PgZoU0HSL0Q?u(y?Nm?rAgc3wZFWTzJ z%&et25TU&sUG23CLvSM03TJSd-JROi>ii9Rxz+HB@o<9A?2bP?JDo**o=)u*VUdi_ z`{R_u#Y{@oYOELMrJ?U&y$Q0?=a5@;y9u(y8n;XCv4Rjl#JH$6XD&i6MN^;;J&p0h zbM4heZvOj!!ux`;O{FwL9>jAPUJ>Xagyhw6D|{W}8?!%k_K{Ql+7H%6@&fSmZJ+Pu zEQGFQk*oc$2^>cg>e%;eJnjxST!D3+8F=UH)MU?&~uMRSI68 z^4j(l*a81T$lu_8C%v9*-UI$e!n-!bF8M-C*T?p@Whv--C9HmZR>FF-OZ?q^rAx~f zj_MD-?CA^ijp-XZqW=IF0BHx8yqE&;zHK@E7vt_n^7?G*w_aZiI@0r{&1FfmUfql6 z3%u$#gz8h&l7fR(?Q)1+{Jekl-!KuiZvC;`v(YvzkC>LVZKov2uxn+AaMOrV;7tXC zJFlVm)20#H8jc)-QZfU+$g?P_&BeF8PBS0vG@ZIw^u%13X=IB*CR#mMA&J}z>9B4b z=I9#N&r?8B0p&i{AY+-*cao1=5>^~$So-3v?0keB6hj|^6DY}ZR=Rz(wM0_2=+l`- zX$*Vt_cit<4a4*;YL$z@&N}pqU;A`?OhKPi=pv8pR5CNc*oYk6%Xbm+Lu#i;NR(ST zGl&X?d)6hbA@mW6RY3Z}1j&3~lcbqHe07`)$tO%v^zJGwvoQ|9zfP7vje9c}%equ| zg1#ZI{C&ct;m;_4%f+X%o(qs?_NC+xudh2ya_pDCghN(J!gSykH{=Fy&lM$_sVwGc zk(KU(C`Z1T(mw`7!9`MD-QOfgo?JGcG!nKIj&mGj`m0Fb7+?b|%du^rLWK(P&l~S< zJV4Wv^PGiUB^^(I?5iWFq)gS`RWAsi;t-fA zQz*In&pReDpRLM5Mo1O4N)1b$7o!vG01he9{?;m%z&+{JtH8I{)i&Eh)FJb<>hqoE z+*In4e=~lX;t;({D$jLqMf=(8kQbz_`QHE5*_GeZIxDw7>V>$)8oZV}as$$~I6?)d zhn!zai55wMm#Vo@XZ^d=vzQClbDYQ6-A`YA^xVANKwe#WJ7}F%0DLoJc%RF|`$WR2 zYp1rMmXw%$89gj~K7{oNF_Te!db;p{?X$d4(;#3tbsEPJ5Rd43tjmMC?>*9ot0Ze#72gvYXqW|Lw6_m=Y~hNg0Xx2xB#hla z#$z9ck$&j>&;K_`xzt|`qodbh!vCzT=LW=v|4?q%zq4Q0-5>$qZ|iy+_vOh?$bJCyUa)xOnwSmYl$_P3tzC)m=P^7Vi(hoF3340IWaGYffz zu=T(7^g><*FyChlP)-P0lQ=MZn_c_Hq7bluPcK67}vj9+LYSsyQs{i1yz0?Y6poA`A%<$E%QFJ_LGZLpd?dp| z&SWz(Zj>BxOfmQBL87oHat@k+ydC&BbbJ!>zx0JmTdWueQj62@wnSte@ox|wHnPH~ z)6R2@#)%mu|3+?ny_i%K0&f+c@#9)|o)MHku;fJfcLPOOHI%$OD8+SqV(|BFn8fMz zcF@pKal%$_m3S~F1O>2A<#xoB4siJXg%%IdWbb7#J}Lah7j#;T2^7;5nwHV?)d z1$<~og-qFEUc3^ib+x8+C8?+&WNp=oThAVn8Fsj_OdS8?0e~ikxCqEqJZ=HI=RU;e z{esW#`czUtVAJJMAjQq>g%nse64ew@2=>hinc|D_+ zJx%+BeEYmcgdc=p zq9rKkLOFr>NM8a1qqNC}5nTkEH7WuU7WhdPQ8=NzB-wBwEuL3W{0E4phsdziqfrGn z71l}RvdZ~C6;%db6C`nQB$)P`O>N;yBn=vJIA)b#OHbpnFckRdR6$WjM&`cTTfNdC z%+&=k3er z0);V;yJzs>i^MK~Fh-L?nIPFB+w)nUHa#uAp(zLuXW)s+C<1{dql6WusrfURVosLD zE}0_~z%pGP%p*>rM&IOwDyCq?vH^+$Cku>_Iy8b5X{3aQvCJ5II3por2TfWaU`!V_ z$~_y7WG^EHDMw8)yomL=!Yp2xScj-Ez|REF7g%HfpMYoT2Btald4Pzyyg1uBtApPF z3?o?L&45MQ+whqhw173Sh$56#VB`q$dBs=>iO*9~+NA{^84N`U3)FV5QPHZXSYxQ; z$a+5Fc`Q@1o{&6w1{+7PksbguMGj)f8!|k$05M#FMp?>-BHLZb?ulm2MoS8b|Gs~i zbPM_x`;Tz{RsKEn)&EhY|7=Y4zq(AdEOvMP2OVAYf6x*Chpt%t$LCx9@1E$lzKBkS zZ|w_EBScEb7#A{V07rl#5ZfRYQ-MC&Iwkc*BFJ>n0AOVhVj$&v|% z9$pqRG)DCtieMh2Pf+vFL$r8dZ`m_cIvZ=LDCzZwap7mrI4KlQfNJwbqbylgI>?Bs zFcBmX(h?CKL{SpMGUh0mK&zt2TwxB7e(4Yn9{ZGuqFh6KkTA@iv~bCagrtTqA|j!* z&bOot@K2BF@^XnRMJ|?-fX$Hv5u>Q$q2M8SQZY}}mZE%Xs80sq^N7?iB^^~d*u~n^ zg`0hl6A(I31RN_o!DSW2U1>t9;DRQ`(fSiJksqKeRH3#L72+}Q^CA->;YTe+G_fL7 z4>2^*%C|rTHm;MpP|BuIi8gJIPsb$?5^PUH9vkHID$Rz9o+wT;i6PG_gp$cR+7bbc zM2RSN2z*E)Ic?$P3c(;`1n@3*qUBt`Cps*uXx3&FoQGenz>uy7VrG#e~kl~OqZIKPlVq({%` zkj15gpr;Byp>K(wc-8J-00chf$rO$0!ASEpu6|>wAXaBW{Nq^5Tw|igNVXev0=d{D zG}%A>$=vNi54@rT(DmmVe`@B%1S49vYB$Ax+h#Dl27|ryPCai6=Kw_%|#WX_&0YcE>bZ>~QE|tM1B{EVJ z3;8+Fk@6(Z`;ovOAREnslrrdtq)3sb1c4PZm>;p7RAAD}oHR2vZ~>r@h%iT#sZt&J z86U}EqJ}w2i`t=yh#WaKx&jO(yed#X&n|>)i6}f^5yBCu2bNnz4FDrZA^5~cQ-G`h z{0asHO-1PBhMKWs4C&5EVx1TQ_5d(z9-xyCMI|i)I#@6gI3CbK1&=c&998U<;1CCf zIy!^4CU$3)A*u)siF{n62LWF&4$o}0NnBM0L%%`kHir|F=EUbMGs3bl zWtfBi`F_ANjRkWUR>JSHNXnL=OLrxt0)^^%wrcPP z;EmJ3SgZ2ug_6*NNx_q9`lUqxO+9;_>=T6U!xX@#UuYw0>57n?Bm@DpJwLD0N}_J` zFhW9^mxy9V;-;PxpffNu&J+Ve*v_yIC4l9ru=o7mVg>A*={H2jvdaOxNU zOz9wv9?<0yNhdmziLBmw{GN;qh|ZEU3@Y=1`hs_Wm&Qrcp{U^%a!_!i*^z`LkVajT zu45Js!zCNxU3r({L9gF3r|2T}gIZQu)}hB-I&Q%WJO!pFmZ-S4MNZfoFv{9NIWD0tc&75`t4KYZr)pcupVdM zT(|hO;Nh4v>Vl14!G=c&%MoykZ~P%cPVw>-mWZ6CI1~R-FHqq1da)*b?C$Q=vZ;UrF1E(Nc3{Foz+k9B2A$S5d8mza)FZZC;@6v00$WkKF3+pr{ zPE_iwB}^^c)vSb_Q%lE!Ioy~8o$_SqKAD~uu|%ZANcu$1T*Tw1OU_4lyF!Vl$RK)% zG|PtBv-c+BxROzCB<<>8-Opf%<~W_C95FN3mQ!#pw)_ANHudU{qjZsHW=RGbY0I&u zKl*1Sebt;B1F|P`I%{qy-m#{++D0DpboyiD@+57p3t_04r%ELWNT-y=^D%Vq)50iD{1R)QJXsCdI39RI->>Qbc=O$-%FM2 z0Z&%QReXME>MjXE?FAGd53lJdn&dnoTU%oT@M(1=7R%BVPwyW>-~n5T~<2-hHl zp+tN?_~T$0iIWS=2j929F3R(JB9wILRSYA5j#+>PFuDZ(J4*Y0!q;b=fIrH~<;OdH4hx?M?$oan-CgPP-sAV1dKnF6jgYs zCFTgDjFIh5_awN!4(lb`!Aeg1Z z4W{vG$N+;sKv3~HPILz*S{OX!KrQB(Ab8nW!$53E3StuG z{aLsA;dKTnIA46rh&sLD_1EB?m)c zC3-*KLs!oD1h$tIaxGBh)46Ee6+~`Apv&L9WCgOlktq@IDWf z8L1)I81MnpDtv0?CQPW@>Zj#E*Vg`_?Era9IfCqAz0fPr$D3(aJP}W&rd)sw{rR7t zW|{m!Vc!YTKH1?UsxEbt-_|L|!DKG+FZ{bVo= z)dA^R5vBsPt{`dFW546_VP+|S6LH5an9yHG+O9?v0E~FOxjCw<`^?}+z0IpivMXd^ z@*K(}7pE`vlp|S1KgEsMlrMw${E?Vw&-Y~{F!0+Pl~p4jJoWB zi^;Bh>U-Ft>)~HOB-bS7nDBfaQ{9IvoRFu;$Y9P6gbvMBX1RauxYmKR-g-TbOm-Da zDkCT12^*ROevw=gOY8pRWbcE^<`t3xxZE)3X*Gvp{@|CK$q%q*W5%d*-ke2UAa4u& zc9^Xj3ZM*ih`KCdxnI-H7l|7cw{`K4ySR{-$~)SmvZjSPEP?wbp-ONHzn{>7tF&6A zuzT-O8Ogmk4%6_K{&+tQC}B&x`DK>hin?F9PqLxhU|ylM*lqXo-@m+khv9RBlf6Dh z?R)d6N=`2VHDvp|T2a-It2^@Jkcx%wYH~{^lZ!F$cWL2=Bi!t9&bSlhzxIFd!Y^E0 z+&`G%2ingEpWj$XStM;A36T2NCs5sogum&T{1NT1asT+?;wb(Vzfrv!=fC2=H3%WO zZp=Seo*P4w%O$&klHXTJ`2vFe6KjJ!&o^t>7fD>5`7&c6?ep5Jh?D@0uIp$D0{t(O z@27$Vn9OFEUF19mh)jL9F(Cmn_0B409G*24dufGH;sz!Ihl0he z;8DrLT69t#n7Hqvmp?4l8r)*U$OtlhG~j1i5i3EqXr-*q=qjuVIUK$5dPsT= zbFy;&Oq!4nBpT3&f8#;p?8z&xAZIh)Qm(2?&PEsl^3$j-z?g-Qhd&d76!;eD5o}}a zh(ineNVWksDED52`~fgb3}{AB%t&_+dh8^kT#EP5vz}(fxW>?+g98zx#Xoxtsa>S` z0iG66sE>DuC|qM@&=pw1dCd9=koWT~cB&vI!huYB25FFI2-WM(!Ws0wQC|GYO*B-& zIA^=qOd(WpyCMWsFe57zAqKR=i>RE76xSoxW8F7an4`DQ@CPsD*kgl=rz&skc&jcW zNd~iVo3jNpO))G<0-iy_wSCOqe$X>GcZ?Fl?`0A^+^IYcu~)(uL;UQX7GB#Eh%xGntDL-#XC z&lM?YV*+9j^v?DajFfAU7@z<{7K*RFzXB&-_8S#RDLq-m`f9EUrW@8Fj@bvWOi|aA zqHdEk#np7v3MY319HHmj&YPU}yo-v-KY z2wKThR4-M1INSW;?=y2b$$7Yc`1j5Kj);F_c>d^gy5Z9Kul}*ZAD`oYpF{s2aIgLo zF2_Hk%gsP9_WF0e7}%ZiGv)6ObblszPf7+NdY&PLxFtMP8c&CqoM3I0`dFpZ(libB zkV_w0Abfq`NDHaSG;b5JG#rHLQjo;p6$x_bfEsTeoP^$Pr=w@h(Wn_(`Fv`)` zHl;>j^0kg~qc!Ojs+JJ($_4E|6OtJuZo59^XKF#KsScDcyxlP3C|jCH5EZ>)O6lQ+ zuPRQS|H=R7>reg*vGe?s2esV5=2**rdi(#E4 zrq@M&NhYz4PbaAhM2(VY{vIzSfXf_K!I^*=< z3Gp)m`3IX^z^jujBnu+o!y78@_ea76yyONSwmi0$hWXO1yNQwktDlqB0T}>j^B+x0 z3Iq^OL0F+0h>GDM?{tuQQa`)13Rqg?f^!CvcUrtBk23yDY|Ve@(sE77-KX}KVGImS z?7|;xZY$`rf*7I>cPS9Sd3=?ptf;6s+Pa}kI;mlrwE>)zT8FBXnnMZaJs=BFeGPW= zOF;W^x=1fVk0KfF%pR6>YoiIzwngmY#}TF*UE8GlcHs5QeBuk4 z@13v>#L7MAaO(cJ{`X?_e>VobWT^Lgxx{OZGe&0LLh4DFhJ;N^j}11aK41}{c@}ZM zvoS2RWwDD8)fnpA)qVCpz5b<8WGH4<>c?3=0&+l4s$6!ihS=FhG{QA6UbcPDzBSiV z;m2iArO3vKE^%2^V*O!uTE!O(S3egenNn-W)va$*gpGMG=%w(N4U_x7vA7uQY3Zf+ zY&%?tl@!YLGUwu}&kG6dPzHD8a4qGNOUIF)r?W6~iZ^A&a2-bY7Q^Ax_7~a99rpt{ z0D2!%})yb;+rS2l=f{+kqf^v0O6u8RwO+CaXkx zXHj^1WM46pRpX66PE1;4_`YvKrfBLj?>cCZvkMx4o1vG(YMK#c zLL$YhCzR%;fc@Zp8A=jp?0}%y;T5u|6e>xf;|+>#ph~!>BQc76yAeDh0E{HasX(ZF zGaP)%LCs7FD*2$TcbU-4`5*<3SWX%LsRxL1qeyOiXt)3iVP1oFPOZWlD^4Iq=rJ3ZL4-Eim{a1R)CgQmotyx(msq_E;}o$Skwatva zvh{)s+-Y2=kk+B)YJD!)oOA1xg8@~!7seTdk^BbiPQv*LZS2r$0s`aqv z9fT>We*gjkMVM%{9`31%8i6Vd_Zak(a25!WgEu)RY%zTJ1-?3@8J61d=eZPz0iNnI z5q}(Gd@mruu_F|CZzX2-(RB3B2Vx5BfI%7z2I5|`nIwWLpdZba3}Ze3Y?aknNCR3J zu>E>CLqZr!zi^aaFtrIWg#a5J_ETeB(!G4)LPDaI0@OzyP;|!-U`ib{m<)}ZF(%20 zpm+*MfUS=^Ru}`UBLN7gLUF*ex2R<2@^^QkC=!nT{EBOUyopjav0(n0nhj=l=-+6r zfnlvhMPjrzn>S`*aOv~*@NU@njS=_r7p&K_vj2wQ&r?POq?W{r=hTvOCL}fg? za8_n z3krlQl%AE8{KM2PruYCGRWXz{$)sBJ=X-*cnWKW$&W`oG9{9_7ze+!%5!6@rd0n60xG66l z!$~na_zMZbo6Xr~O(M~}C8Hxi=e%WKOjSy#!RO5r7wmI+@US1Fykl(C7t;iIB);BZ zgm|JBGmLv`H+Tb8OY1^*Y)(8&!u^?M@E=eOX-2RUnV&JktY3w=f-=xf%3_c+t+DE4 zp_Y@OJW=eSVswSl#sNOd+{mq?>$U6_P~>HOS3E%-uv|yhm;>SU@I(rATfkoaOsfBQ zhWZQ|ZTMRFd3&^*r97XCodGC-1a}85Kw}c6!4|_bOh3K6#xK4<+N9z+!iwf!`WGfA ze}()v|Haq8VE;wgC*}O|;{acb{+prycm5sY_p1M$`t^4I?Zc@4hbqb~ZJ(Dv-faFY zw>3F{Q~jYM9b?kpopJzK${35+S$eV`hcx^JlDwf}Sy1WMN(A&YycnBW!oaJTaj0Z# zA(uX5)*w+16Bc$}*cZUU!nY#;I3mz53a(R?y(lV<#}lV;Lz^4`l$SKcpi{G22kMgL zlt7Jy?F|fhO97|*3ceIdC?ocv79500O_4QbejKemmM-H>*dCPNdyzu!@Z%SX2+W}E zelVe#R2R4`$m&eMqc@e=8Tie95-xpF7p(L%DRLqvM>vjSs-u3Z7}7Q678nZZm-DjL zxf>Lo0#C?-{=%`;XuzAZmN5fJ70%Kvv?a*;2>A$FgyUmD?faGm6`PiCSN*W?M;ONx zQAs1?`)W%?T5gb;i`Pu@LI+v@^Zqkvx4(@4rLnKzy_+E9%DF2#^S^eJl_W1vPj$_Lg?oEZhZzD(QVdpR+ zt^JjCt3Rwv)bInigLZ*^AJv*;FI2N%fYNXlyQ^OuVGxJfDIGfBA%2$DFzsxN6w3yp zUZaRb&?28E($B#X&l5hSKT2^e4c=R7;cpC5S?xf^ozu2OL7!lx3hp{YHH?}av#Wy&lN@CD<4A?22=E0AElq7X{OkPpl!)COMKklu&fH0|0hxEjeT+w9| zSSGEzun2^L0c-JMqa%m2l0o=yeh-ss^)Kl8qGL1^GbS*z(b|xUMu0vEKm&>a*&l_y%M5#8eVw!Dvpai?M=OVB9!wB9PXbY zZHwl4&H!11kfELcD0-G@9GhGsYt9{f#1R$^xk|;6XI2F?ydLVo2aU|Q#yR4|04$(8 z>==bJJH4DYGHJnlD#tcMs`RpMb2_OwHw=40%VV}&&0v&|r-+F^G#|2Z5xw25wJsT7 zR^dEY_s{MwHXw`*`?ZoGyb8}twkf?T2)J7F!&%A^s0aerO$_U9@*Z-n5tTdC5%CypPPro*Hiavap#-PheX= z?n5$|<5%<1#ng$0>50~d6j+fMQzdMO!HrE*uI-XcC>RO@AwLh4edGg=^y*28Q_!zF zn2+cszl32co`0A&gNR)Ul+~yv64W0TzLn+Z1ad(!Z8SN>Qxsosp2#ZR#P-iofz(Sw zis+!;yj=Q)`Csrm*2&p%Wbo0?zw!Rzd+Ge6lTK~`7x;ha(M|qzm;+IeQ^vor$Pxcf z*Hm9MzlF)#*X_RD{n8KiDS#s-e?D)8&EH?j;L$uD_~7i;tk89$oqB$L&uJ6A+|AO5 zA0I&;qVzLWYKW2>;^HF1MtYS4o$-)MPn`btHerufU}4G9O& zGaY$i?}5a~P}LW*>agcx55+?jHN-wAaB6vas9=jr`a(7w7-xi!xFeYyWl&k!qrg&X zy9|*f6w6qDfNnn=uShT2JlWkTff*%7MYc2LCOXW{OZnl_Mf~|d8>nTSJAV2$kbY?x z4a_d8bAEb|MG`JX37*B8!6+43%A&er(R7%1IT}AMuLa6&rC@pdncDYedgH&avBSD4 zh@3V}k+`Sqh>{gw--$VU_^3==z?b~%*HY`wq9Zs1cjdp5?<>e_imKlQAyT&AY$57U z7yE3})h&Jg>ZQY%B}oCSn5fGE$2pVbx5G>qtdnKF1Gv&5t4Sq`7NWcM?vEwQgqhX~ z)^AtjaGlTc1~+v9SA0mP~U?#g51+!UTsF_i5u&#jol^?=P8Q!g3RzY_>`V0u zDK8G%?!jid%%N0C^fRXpvFtU%5;F2GCGY3vPu4mBwP+V+H82a_RAjWPMzOwtYGxhn ztyoG;Eod+}+i9)zbo^t#h-rW)A_)csTva)REdXe)>Cq73nfVb0~u%%lyD>< zs<|~Hoi1Asr_LwzKFV(gR5k!-p8ofd?G%G?X$YZW%YsY7%@YkJWML9sKPe=h@4EQ1 z`W>KfD7$BdI!;f@S}?2hgPb9b38gCK^H>qU*ai*?6}JC+r|h$1M8+?-6MN|8BlMBT ze!RgC1m2Sdn;|leCqe^PVI=1!>${(a$kFZt24zcrWdq2|f(>&0QdR!S`FFA$IG4wA zNKm3oOR_>d`fA7VD-Qf%^IyfF{TaYE`vclLhJqgbw=FQpCToKD-YpF3U#P(QaP7q4 zTEH8?@OUVoxbVv_$2Fkji&8p?%D{w>XQyHGa`}c5U6fa;I=a9kWL@8RKtQbE@j?!( zu$B|6T6Q7{Sr`h6i7Pdm2l?m?nE-5p9e8fTuCcIQd1fhtkvcDjQTovo-$9Qw9_<_9 zDZv+@X_hdkRB<6Q3a9-@rJbJd2T~x{{e;Vy_Z=1B<3O~XX@YAtvuhEybYFl)JbM!E zh4J^_2kj2jtf;~8=3jCS{1CK--mv_$sL(iIjUb?>xmT{Zv=&^W#$gu3Q<_qYr~+i( zj)JDSoCQbV06-t7SD7#zm}9yDgLb@rvYuPDil4FaxxdI?e6x zdy_&fnxW^<;(#`!k6YzMn-Y24_?@)7v9J zBSMlef?aZ8P*Eo1q5+(2d1Ueg{F!vy%8~T*1zy7l5A+z|B`}MLa51+W1PL$VWI@B6 zUNzGC7K#({N_mzC6ac%LqUt3maXJ5@7PATW5aO@AjY7f1>2Y3`8xJ|nQ`VKarFa(s zm-93o$ruhE(!zA6^@GyKC6h<0c}FS*z(SWtkKhFy3?;n=p!XXMeUk>)td#VC95WS{R|z|0-XD+nUS+MZ zFS2i<5lqD_NbLX%j#zreQsP((l#@rW)Ftu zNYoW!NE{yQ^p|6@CaT4^v=WVkL*}~dSf4G^rhTCU9ISkV75D{2f*NT;ODKT}yF^&` zaDfaABmwf+4u_H*f8lIWU>FzH-g&2dkm?8p-Da1BLKCtd`E!}1avdr9*+pM zeN*)3GwW`c2EZSMXo+wxX8N_7KNH>Y;n7ycLM(|xQ+c%>2p%wm*`x)NAI<;1VH)_+ zvnnq{RhIX`0xD7x3n9R( zbh1AwgP<26(aTe`fWdf$Ur(YhKsmxt3+9-;a&EUh#nq1`w;VlabT5Wqz`w0v%R-d` zNxdU0QsZh$*oG7`sfVFFFAby-ZO)*Gc=@~@*ylibzHy?TG=#f|ZrJOuteR@W7|)79 z&Ic@jvR;XxK+=K-Ho#%nMA06ygT#eF36_ZH`$Whnh$2EZ2$~Fw_6qu#Ui5x*Ck{Gz-(lH5_w#fOOFC_jY%LHv&~Db2&XI0ZD8-RyG_O3Amc+aW%GyxU(C z=2}tr`H2~?$V*&5rTLq&a^7o`N>6hjqfnB++W!L5YIhhDr2N6Zw!GQi`kq+^>QN`- z)ntD)VLehZ7{)Fl7E_$qYRbzj=oN5jiCWr$Fem$n3_^ih2{k2lfVAVSX1@K++;9ci z=McZ3l|2LyB1>8ti<<5*i1_`+_c!Np6mz&2>W(dCdE029t_|2~&j>4zk-(xo)89an zM|uuKsy@CML3#)eU1fHt3nFB>FbbdZ6Y0R_1Tv_-Q;V=$MndTY9fjl4Dlkn3&t2Mf zU&l+8)>x35pw9p~v=5dd#(jU4?ytmxQQ z5jiAEeyU5veh#dHF?eDJdF^+iy)RUS$Zq(>F{Ju%tCuj z^s=q`xERe~bCObCMBgWZy9cli?aMqT)4R+kC5UdG0Hn}foVbqTWSQRXO}Z^QUw>W{ zRg@z`9ZF>*r2SK=CkW?y&Ou>p$+GNQ#n#MPCS4+Y4#sf>RrOAE9!^0SMc5G;MU=b0 zguTnhlPgC-Y3m%8VlHs$qM+(~NN+DuC)h28+h0Go&tfm+5xr@8Sruf5a&d31^UUV` z@Zx%!w>ombTpO0xD~znE9b!nsW^!P{!_zIU4w z_vv(7(^^T9#G*`dr>0Cp{CI8iGLU(V+_Z}N07=g=tUnT2W{sEeauib;8MoyMdcK6^ z%5+T2x?Imoq(IMKptGk`9bbSzFGpvhPOqQG=_VckSGT#Djxw7L67ar?n{|haJj)0% z?eo|&-vR8k%zItw;m`C*DKvFu)I8t$E(RYD+}|ZoS(kc&LHKF_=oO0qgRSsV6?new zUrBy}Tr2W>%%G0Ahb0R_PYEQ2=OkUzjCdQcB&Gp0Jow^kSBMvF2coE+uak83JciC; zu}5SW zX{RUz&+FmeQ+z*9Sj);e>VFadN;#dqrQ4?sG~0S}cmjqEQBpE0Uc88fv_aW=i137Q zL4B$-Y}?yWp^j9l_}hqp766n(USlu#aKaj;gnm>vOI#OA%J*Hf=l&{)O^qQD=g}>3 zK~z2qNEw4bOcZkY=GpU_K5zAh0kpBF;31J(fM@&b46_^pAQghd3S+ZmIt}s(AeE5e zj)z}1Fe$&|;EzL2!a<8@04hAzt1f70U!aQ0^HnQ+3+X}DGUicu`8TXnwxPKUOQ_fv z-=B00dQ*022BysdDl)VY@f^+p5|2GIgD^Sq_+8n%Li$>Gu0j6Q2?l@ge^2iPyCIU~Ka_d0c zTXa4}e%=q3y4mX#f330l?<13pGU0!9ga)1Jer723`scJa~!)(~2rA4u&l0AH;xH zLgOMZRt5yhAfG}}4~(R;6YfV}fHGw*))+ZjxhCeS)VL*72~-XgF41Aed+(wVxi57t zbNHf! zk6hcxP6A;H-t4lKc=?_s@$(i%CSXvk-x?WSB=J;1^KrHB0IDBh;osn6%RjdKTnlN_k87+ zX#o%63Y*tj-nIp@Ln76HFK8hY6!O%tu=(fLNcGtuUgP9#L0HK`_^x%6;JTXdK5Dg* zeMH(9;Xn8@{HDHGtor&bF3_sgVy7@4+APT-g1}MvTXfMrl`@AlPJ@=94;wpwiZEVd zu5L(KLZ$&ThuYqnLvu(~BpRVt9xD#pRkQ#}OE^x@#I34p4ng-%k6diH%y8v%w8I>5 z{(|;blAM{^m) z_%3_z%D?5rp6eHhU%T>$LmesktC8|=dTQRT_J`};drlSkcPw}DOVY(P>38J<#aF}W z&Pt&8P&Hk5l@!B@yk?=&zHWPJ$HitClZ2D%s=EhlPM4wY444`yYG=A&q(tcTQ4~6z zm*)xiNy0~cwTrOIWE?aFw5Dn>v7dJH^l6Q;XbzRFLr4zg+Xjbui_ArQ&xU~sE1=?l zv_v*1^sZss)v3UVB0E+f(*izSq(M5*lth-5bq}G3lu}r3LAP|GmVbX-qrq{|Hw=}J zC>-EmUDTu0pnmu)?hXw+OZpy1u78(id_e79jGCAN8YHU%A z&ug6-&9*#i?Oo8qlsVhZyd<7ydi|A|TsT~F*45m{QT0G5g4WK+~r;QlO;==tp^o0oZqnI>$OFK{> zP}!*PrVRY@x)jX*Or$H^ps19O0;%2iKrwQ#)5aAHot5%B!cz1QFk?mWe4)4Cod zfz?N&l-V;{Z`leW-vIjR0llro)ob22yD^VlCbA6$rX~C1sMwF!m{CM8lMQbo;_XdT zQ+CA{VR8M}Ci{5;4mb-g-;V<>x)g%||Nmhon*_&dBl3D!BQkbcH$wucRD559QrtYT zt$|p5&*=~k5V*NOIWj#~v*O9E2~QY;RK5e{bSdh+`@C$mzP>X0BJlCNh-EM+ zD|l2arbj^5gBgW`Zb$)PInaKx7&JX18bMBCbq!TJq#6non2I4Z@%^K{wBg}^zX*O( z^N}^1D~Y;S?Kd}X1p-L;Fe(p6fN(c)6FI&Bq(zKb&~#8#$3Hh;*VeQfqkzE*bZ3Mf zjYAnM*^*7!iDUys;dK)_5fTd79V?<_o_ZNY;IBe@#_??kd$zxzANp5Ns57L?4--R}X@sM4{YP0stN#09dru7J zwHtBWR_3}3>!?bc14?JXzk$fiJ0VLoL7C;(KQl#0NVrQ`6mcz%N2|?g8(yuiU6W94 z#PCSy@Fa*-t33rKKiXh!;otOy(j$N@vPZ{Jl91v?HAMGh(KiRn%iLp2Wa$E_LF_4l z0+5ry__*{I``7BanF|y-`k9V5{K%fu({Ztl1gE=G*~G*Jt$(9UQLOWdhL!0vdAqjF z$z6?QHoa0b9Uz>Jg@tMf6Z_8Hb3RnQdZ)$GPyw5XP9oH)jVYWq^ePK;`j+kT`$JKuACbpeG%U{)JElbuwnt9mn4NC8Tv^9rYFlCsmf=-5&S(+Ymi(*XemxGvs zpnrYV%!q_bQW|N*Vzdk&tw6eww;T{#Fpp>e&_D%2Wxq#+5Vg#2yN&e4=VeWeI>0mF zaQpd&M-3Ctrwm)uhiQ=Y!J|ed$*$AzEg56ld?!Lm!`ceuFu18W?s6Vpx>xP^1`_q}5tREyluBL098*k|un*cku|2zI)kH5+Jc}Zhk&iW5_$qy0Z z1DY$y(`u^U>?(S`8&0X%$cuA7E(3qlf(&lgnh#QUu=4e_fUR)s$-mj9;0VuLj1w2*~ID;r)6-_8T z5H=X5kr4sJ4y}YaNI$M5A)6|v7%zswiX*VPRL0|7`GBosT?r@I9n@mfQUVttEAtG> zd6w=hYi)s4Ri6mtY5};i&jSoRAj+vaY7N<<5+-MPK10(;!x2SV^gf~`rK{EvRO3@n zPiZMdlr64%m@-R}eE}~iyfw(MFT`mmx&df!WYP&(Y20h31Z`*`0_(Wj{?kkCpS{xl zF)t4No8GhW-}5*7@&}ZEZn(S1KRnKT`^)jy7+t7;{r`8|yuWn+NPCVK`rkIx^^K{& zc$xeQmQGN7VE$cx{=k?HN!o%Yov#|5%HRKc0XIPa-|CNRkcXUaLq<533gy*Od6wmjY9cx2%?zJ+29+|lz zQAW!P#W0BwQNN#7_Wkru*BlmOs2lr?<e!gj4>2`gdX^OVmUTFSQg9ukPnAIj`d zVPJ8DrrL-gVRjsdiAGeAy3T?|!siJF-!nj&MjJ*k0gKh=nf%|?Jw(x;RkbI>@t&gv z``~B#v~e)#7AooZRN|xUf{;=iqrBWl8<4&Rf{HnOKd@Pnr|dL!)Eywp3wL_u`g<05 z&r}(CWUD}hx5)4S-SP%$y=|l!6^1g+a^7EWu5wu6p!L+rJGNEiqpBZ?{@BSfL z?$^CD6o9muDQD3F#h`5~64}r$Oxwmo5G!uQ>&KO~<7eM+j08WED**l5Z!<5R$tq{1 zidZOHZvLeSBr1}GZ^z$E9~f=6#x4kpPP z<~*aij_6z=cW_v01R1~HlzEPO7jW7>E@Mdufs}s&$04M6`4mI|9_`=-eTa9WJ2Vn<9$RRdGH44S%3*t ztro(sj%=CvAg}j6@JcZY*Ot(=jR6)K5d2rgDi~JbUKk9F0v(tk`vK{T1pNAru#eCW zhSDLw998LO0vU${vrT; zBLgMjv@(HAsz4z<{S_x@VbCyewqpx>2q2X5FIp%k8xSOxpXu4bWE(c|(Qcrq6{z9y z<)5!tQ%?rWc>pHxqo5G2#y0Glm^u@$%cj8kZ6~t{d-#|fSk@@?^~m%%yMzFqPeHCo zC8lK$Z2505-!FC(n7D?w77mm#6DJ2hom3JHX&depvPw{0%qK-avWy$G<1@1T#^tfh znL!Nnw0{`Bn2&s{RlH4Gy7rLG0U!rY$uqnz@BG+@81)R&Rsq3+ zKiO?;@cT!eQ_SRsL@mtu?r91(}RwQ z83tlU_}NT{DHVC14HVoY@I1w%KQ~x5#vy8R(cZrOpzM7crYMIUVZ>@l)IWP&p@+B> zIs1KTbFa)|RS7$dK$Hcr1$4vbji6wS;`(i*1VHqzIm|>s!{K#?ZWnCj(m29w2$9w9mu{snXT?4A!jW z=~D@oC}p+OQLNae6O6GPsAR6!Af;Qpy^~gzR}A16!uElZ2tkXaU{6)&o71llVgaK< zvmT8C3Ku|Z07zV3>)Q;xgCu}=8OB>@?U5IxmU20Wu$8)_cc4WSvdGxI5BqSJ;Yf?r z6g#;`g$2jQ04w62D!mZmuN(F@w>kD9iKEj}Y z&AZ2&NQPWWf;;FJ6S=dtQ6%-w4cwaSJ+BWfAI=0jN7}34#?k(AyHDvNg51nH@zGqmtuJLNb8J#~0YBji8IcBdmP8*n>BU;2ZD#ol^W6 zEJ&r^@Z-KO0NwIEqv@!mJXf$oV?rLw+xfV~-49Fgoq?TLWl>wU--IxJ>sBg15z2T- znXLri3(7ke-m_yJMBW+oNMhe7Mz@yg4?=Y`A{TLrUvsOeL! z`SS>|%dK#h#p#C5c}<2cQ^S;vvRwqQ1$E{4j|Q8&;vO_5vRf|1XW2WN09U`p>~Oc* z8|BrCuAa*^d+*#f-Oe_tgzJNup6vYIoFkyVu9w=FH3xK2xk-R2p4{Dz`vaVQSbc&6 zKXJ7dOTojwe+yc3nU=IA!xLJNV^fjsLhaab^ zNQ;WSLk$7mfKEe*kVuSTUM>wiiTH#EkEHD?P*j@Z4C1Q*Wu+t_xu`p5r8z9RuY!|ik{j!F6m=km_URuS`$V7MrKB_r# z4jtc<*u_CN*6Cdc=;#d%!U#j==zW@!AAq_7ZmdQ{SA1UdHuE3x>0#-rS(Rmxw0LL- zGK)k)eQbz0EStN-mzR3My4Q> z+MsJ{P7I}aqL2)lH>pWp-@XgSZ*PBhq8Hl$JxAdWZ%xqQ*XLq4#y6f{Y5%sj=a1j& zA9$X3&+}h=yIz{Nf%%*U`uQ!ifASnoqG}a?eR5pf*Uzqa@!XPo%Mp3(c_H4OKKV*Y z_V6z~!H+A#q*?bB`4K5EgWVxhAo9p8BzSw(`yQ_5oUc?ZV^$-6Zq&6I6*NFsGuty6nRGj0#UBFTi6)hhCXKj7a--fSxbbB)kK9Rl&Iw~lMogp z5k_yE+%|%QAyQt%Mg$dbK@E;B@+1jjA}e;uijR|5hqBN-tKexN{p8xct;t==hD8v- z+nwyG1bYkxub*iFIh2>bF0}qFkkTO!V99ApYZAmpQC1is$I0sfWPDEm(Qd0I!3sx% z@5!YBXh*_R18_7nKxt!0Y+BIrA19!yyhvh)1+29E%^QTsw9Il2z~Vg}RrQM-5Y7gY z0Qr9dmOsG9`_q+-fI>63NQ3Uc{Z|5Fmx^v-8M7ZZIUn;cfn-1@gO-nmeALUlcTM89FWyWT3`-{*F~$?; z7N19JJ2DWa5uhru^yf+No+TGz*LOa77)&Pz5qVH>4KLO#W^ z{*$a21K0iUD zydL7ea`gYszl^6}1m=%U?L5za^@$K)D8uuct|D@plP{A6@huTAE~E-JxeFH8FR=|& zk4oq>K{c-fj}|#1kL10#mest)pP{g|J$Ly(-WQFYQyqKutGb`X&xucL=jeiPSqbqIIf`>s)<+N?KsSgyt6FT zm8~#%S*BD_n#`ig(OUG86W_40jHA(X*zOtNrXAd@aRv&y3sv@k?d4?0(D!@#R1O>u zw4Lq(0Rn5OFa^9ExBw=?HR}FMb9nxNh*4mCP~ydg-i8!H=+TA9J_Zeps8($x6+lkLSl?l#S+83lw8cs zJ3~|F5>Et&n*%ZkFpzr-FfCP|NZ9}ZNF}%0#LM$!=Lab*+ftcnQkL;Ne&Q(NMc53S z247X!r`$1*p{#5)g>1h~l7$xex1%$+Wurw7gOt+j{h8yIA~7F1gN(?i{PYx%RrgJsRdZya@khH9aDl@bmY(M-?<4d3)a0_Bt zv#t$#N;?jkRrk!z0hGYZO%-a4;(|q&u5q!7o@`wxbzX6;7Tw0pLF&139ElzRsprDJ9mzXG77RqVY^On7X z5trH1&FC!c&$gX$rmRSf%0PoH_y0_QNFF-p+ODl9UJBv#mg=ECi~<8{F%9KfQo%y29rx~@3(Ig$`TK98gC z0EVSZQ~^vyNAS98o3NR11=vk;YTlH?xwsyg=wZ)`wKCyTS>p=}2RIx`7-bENmWKa^ z|Ed4Dg!wmb^}q3y|M%?hzx=%aFXHa~e=|?`dB4f-^1shqS&f-Y`nQBNqIX`xZzNY} zy&9`mfYnjB0!aP#L6 zR;}qkSQAn0hoZMMES+49P{Mw`CnsMMvK`DfPO$sVt6Zp7TFL>g34(j$c#ad@Z_3|2 z{q8GzvF>whabFPi1&OIItA%b3lA*F~(8d_GOj0Z_zecQ#FhDvv58q}vmkjqw6-af%@*kcc?5r7Q}4NphWl0E<a$z1NpR43g}jqj(KrYMRZpq{O4(5lZ&Er29itl`?& z9aMR?a=VMy*thwImtZuNt|R*gEstVjrk|a?P(;|LIu&rfU&C`;eg~NAU3+B+^%nMr z-?3f>jqhm)k@kg-sp1_Eil2}A1o&N;v%SJox;#eF^}@B*H7CX8d~a6HcIFHcevR9> z*K5~bya#*!IrWEmHTATQkuK}rpw9spws4-tz4=mP+obKE=gR#?_2EnwO0ST)m|##V zq9}Jk2mK`|S3``dvsIllkq6z8jq|w<^BL?H!|89G7<9obf~%1oKVJiKUaAG$y>;rv zJG^6MgTZr3<2Lmb(2>`5imjmsXPxdaNmy!W#BDWm=%n&*ULnZDwBpYF4U{0(rNA2l zp9QC29oS)D_<~`U{crS*mPZ{uq3TFL49g`-f2NnAyzqX8HL7D+HIlXFq;AVn=ZTZK zBVy_{NArOO?mtc4Cr_DKSH7|DT*KnN!xwt%nrJpmWFAM7(QYBY$KC|;Y7wppj$0(D$nc8l=$(=+v@HUB?Fi_=Im6 z4Q~j+gs7%<`c`^PLGuJlO(y}=jwkS)F&#euLZW*ju_BBgTi5*>V{=qgb`jn56U!2s zpPXO{V=GPKiWqDZv1iNEru-RDzW{y|u!8?owXqPuBMMt}=7MSw!J*4?Pe2KFd9RJ$ zQw2Op&uEG)rXNP(gGW+4bl`Q0xStkQ%!!XNPwR zA3@QIn2Zh>?RSc2sAhlsSSAIENXz>zZ2itDZ#G2pIG5^RiyZaC+*2blvgj@NWO?Q0 z+P_X^4J|!H#t*>DrIQ%rvzPuM_;om$i9nrpm^$HczCIph({+L>uJuKg(M}C53Umb8 z#z?GS3>RX~Z-qQAQ@pBt>`uh*ty%9)S#ztdGk0D0SEeZG$GyMwgnEMsdZ{$j7*d^b zaXKzJ^vHx70yLQMt}l&1+C1T9FSpnVm+whC4tvI1zVvCn+}yYvpC~UDW7fB$WXh$g z4M)N&%LS_2ufI_T4@Y+h_7FwIRd-X&cURIy|1u|DCRhFSASxJakuHQZnsdKnF6Ml- zIr2{vFn9$omb9+9KFm0I_5iB(G@A`0s5w+NaW)|4ra4{{*dVa`X#PDl%CvV5x|#FE z+Dfip$Vz@`Aet$-O^}#M!}0^%gqhP4ZFi(~)Fz;p8R-ytLniRH)EsI(Vlf?_iJhpl zlAL6{SUnc9@=&NOF3}vjw|!WNGbcfk;pP;}Kr_OX933EWWPN;f*D?NkiKBqg@W8C_ zQQqM^R$O<8e^*4yEFIF6PmJx_Q5bFE5q8>d4cDdEo2QqNQ)~#3;p2=f63yu&ME*Ad z$W{|RdMVh+8U7#8#H>;uL7&E9LL38bMujpAsLwNG0wo;w4!wvq1G?dFXh;8xxT2lx zm~V^H>d5>Y-zd?y6A6eGRCc^pvROA~7g~@pBMk4SVkEA#7V(o5>Bz>z8mX$8AVx6~ zcS5EeWgMJ*Pkza=ner$#iqu$kQq={DVCtI=WLKd3vvGIiaZDM@<{IpiVt84|mxzX~ zX$YW}nF7T0_5#BMqZ_dN0FSN*iwFl*DUlUH0RS|7PmwTH+t%@f_7)CjkgDX>n!SkI()gNhl&IgaS-504US<$y zZwEg3j%UBXl$t}?>w5N$uZkd0Qr-j;azWiYDi~3l)*t7OJG(k0S`u$zr5OB4DUhu_- z%&kIFJ5(*HgNRqCL(R%804`2TwY3#ncLt}2TP-sg*D1#Z20Km(Ic*P7wdzrHZNcIqxDKWu!(7Qh)=LT>5FBLW|J4sOC|FBd3Od(+7nNk38)_Ke_#zb5AXUch> zPnQi;RRM~n#zzz?Ly{R;26VO#3ovpGXe~n+N=AyHpQxrB2B4Pyhc3B6{sJ->>4E{+ zsk9VOp&=rWh1occfJYPb>$OR=$1Xr;HmV!Gq_;kWWpiR9cw6w}d~n53Z#15iB+#iU zl^@bg+vLd(EmM9pwuY=IB7LK-9ywG@gL4)Fri>(N>DRUCk6NzHy6RL&=;z^CdZ@{%v>Rwx` zqHkGs2*=x0#;f*M=XfPemed`mf}t(vU2KZCr|IIRqAo(_Em3YduNuC+t8C6i(s$M* zqnoo9eLPqce`+?Ospd5lTo6PA-q+OiEPve;6@=^@<=}n5jI9Xkj0rQrK(Y_})~Sbz zi5T@1&;j(g!5M;<2uex_Tp)Lg&toFLfQcli89P8qM?@H=vMY)Pmr<7BtFph)f@!XP zA5Q^D#4pw@4kTa9h_deqR9?7}>keEgcZ_)`hO*j6DZwuuxNRw&?5ju z;!nLK%O3?xJp;+2mp9vjl8lXo0oTNc(qXBa0wRa78Q?!Jl{Lk;t=kYU254AV0$DJo z4Jkc}kc=s#Mn%z{(bn?cG||t~u((H@xzasLe5e79AixVB2M^sJ7Ixa20q4JJ-1k~R zGjrt4*t^FwLIL!+kj0MFj`9HU@$uon)oR^C7Gp3J0h^#m8*a}IKe;=^Fz;{^o$Y!} zLwe`I2RC!ONBh&o`9(WcHiiaRaA06ffM!fYps8dhUY6AF8G;PAJ=F2MFb|ADW5iUA zgP<@Buw%!%M)_srb$s1QMv(L_Om{Tod@*cf$QKcKMS%ye#^wn%Yo{Yy0EIp@#WW3? zKvtlDDq0@^R!}$~xEBBbP#poC0V-t#Is!hCNS;ikq$47s6c~805(#N;|LWYo%)hBs zEy6@bamx;;o(8~%(C`2CbPcEh&6IGqgXYjy^hf`yr&F5R_F8^@SN^{atS9YW^=bU4 zqyEQlCyn#S97`qw_SmV0_%R2P42|0p+|lm{xJ^{tr*KB_sXl z9YcJ_Ebki{;?KAF1S)9VDbFhZZhAt`)qGdXnzG6EKEx12t{m z;UDAy(iF3#g6AIVEhr|R?;z*QLdqNIT1m6^nza0cD|G%@#jk`favA9_0#MhcuamlSly8VfI4I|w{bB5cDO(JU zm}`*VlR59JM3703s>d??RQmNKF3y+0bSg#S1$6;iDFG06-o`2{1O~F4bX8iF);m}x zl_F5kY;pp(!}_38f5E*vv*8Pv=k4%|#REl`>b|{|ic%Z=5IRZ+K{kQMm%85s6Il0I zYDC!}vpcV8UiA=jm`D-J*8j?geN%B%_7rnS^E_f&3#6=2kBsW7T`8xVM8bw}t6@A1 zG*+GDK_cuy+jdhKojbsnW=4moaLFxv3Rs>dXh`(9evC%W&@K`fDBAZVnc^UOA(dr@ z**0N#UMcBpWj<)>?-Z93|6f0mW~staL8jr=u%=;ijFrEV%Xl*!a=S!D%%urbHXe8h z!8EI`yGqeY$p$6#=aLkggJCd9VZHKTqg@yUszNPoWMaJ$jw1`0m0(|H|Fen~*@wc*+U*eH;(_8_U;t%MPp@sVNAlf3NqZa#7f{=+;D2j2aAW` z_rvnFBa{1-4H`ITVvm`N%+|XcjL2n&f0wi0Pk=j};k>{lGR>OuE#yAXMV3F4m$(4PX%h*3Ko z&Tiy+LwTDYRu%)Cqk?&`7{*PYa9UA9`72h+ZnUTFh_il@IYh3cjHu-{Tq5p5Z^9IK zZ6QV#qbU?&eK^<{(jWuG{ML6)!_X(MZrx~4aHW%j0pbTN??X;d_>7c^=ST8bB7k*U zemTk&0tDB;BQxAQ?#N!|?d1}?S$)VuT-U5wnH@mViPEl&q zLdJN=+deGr__zZ4JGfDce654fOTdt+1d0B=h6#1-D4~APlY#%4`bgs=85Mb%DW#`K zn4uxaZ&=gWDdag2vok<@p zB6-CmRsaIiqaYSQB%X9Bpm~m2<0y&$%Z24uEJq6scEAUI%Z*7$tcabgjIOdCnayp} zt0#TH0(nhT?wWFpz8vLSWmSz7r3hK$DB*QEOIZt6IS&AEU7FKKXFg_l)9RYc7Dy&j zma;z;e8nXvn$H<0oeK=KKVVz?dU1Th8@m~GAsrD02Jkawg23~HyV#yNA;~syudhvC zCw@7}BcHc{DG;cDr-Mp<>jVdw5WJWQKp%M3X&!jxa5=fHXu61j2S8XTV~GREwuB!-QR|xG7*bj-zeNTVB6#6Y@b~L@8eyWJAiW z=Dm^-Tj#mrPu4|m-+>mmY8p}e;AQtxf(}WRcibx}iYlLNxSk(F;PVK&UAfXWYJ9v2 zMAtq_-F-AjVuqOxBb^DX(H$n+NHCHmLc#|12d{G1r(wIkZgwY;J^O!T`N&{RILA5f zY3g5ef_rbS^fc)j_p#?XK{Vgl5}W}Z6g+T-dU!1+7Bn?t?jCyws68oR&6N~I;ej;Z zLPsOn2aW1NejzyK#mdc+PTw{-DlLR8^kEY1wj@nX-@KfET68c~3gi;9I%gWZFxI57 zz^JiITGYR=-P_p=3GL5*^_?J@^8dRg{oTDm>GQ37bKke_?dlAWm6LBWe8l0?x9;Y3 zvU+0=rp_-rYla_9yAHg%1^$~<ETmS8s&YwcL-PiXlWo>^u_bg>^E_L(LHA_@hFW`?#Yp#xf z40o0yhBWk5p~54SLs`?*20nIvbyV+O+e0s`g;f;vbdpXm2F^~t)+Iv73f{PMOGx_X z(fSncfoc5N$gHY>2&wI{9=RbExDRf$RV!&W_*&I}3Q-ARBI)Uw8;D1=B=&;V0kr>2 zlBX=8hp;8MfE~KmA^4+fS**%+tzTv+Zik84l1AE_qP8BZ!?5fDnI#^6B8D) z(GAlpxczhawGN}OaLPpK(Gm@czy!g19EHB3qh|UDd!GhaSa!b-CP)M)0IO=v) z(_W=A4iXM@uA~s;M|di>ZsuL4$v;C9Dztz=mRx8(&J-b)Bz#|X)dN)j$7|U_`zJEX zm9jwP%Z74mztpj07rW!>dW=^8>uPjC57r3Pu-9){T>6(-LwDj^w&O(-Sje)C1I*Oo_^!v#W{}6| zcOxOwv+U0i-qi5nB}uS+S%lq|Tw4&QmmT>*m}J{U9=!QxrBCV4Qm10t8Kx$X;jMwy zC35l+m*naf@H)EQ;uw{Vi{9*1GrD|g{Jf~KHW_sr&CpWI6jGiNNZsoQcwwhl&u)fM z09#}M@r+(SRI18#Q^Rv>+ozrnP>NY^5mx~8EoY+6{Dv>y$jq8~-p}cQ!9$)@Ucmw= zL(QO=4RWN4OqjxfwHi$yuFl1Fm3RZ{Z}#LV13_LT6#E&`>%r-DH4kmWUI9&_zF3;U z;O!RW)3_v_-8UD>#D;m}In#h@x47?D!0?|ns3eo(+PSk8N6h7BlpSlqae?@1l) z)5*57c#1T{q@oxZ&Bh#U91nMfK%6Aug4nGNF#9a`PV(VEwq3FPY;O`Et>)X74RCz) z3tofN@*yyJJCU&oB+dFPFHftj%St!LrhKD2!b*|qL;rNW<*VK7*cli492eU58}Xf- zNuBRk&5wC;+Uy~AyYK~Q_TplYDkGseTb)@@_m@*}AXFY` zD9|7lq8cgPIO-;9ug?|QpVw^tJ){X%B|>n04E6*mBX`cbRk%+F_DSnV7{qD}VZ7*H zXIvE>-79@-@3rXz`^+*rZuS86>9+5z^Ih({jMuAKa%z|er2$Jz`JFw?DMCJOb$Wvn zBn2CSq{@S8b@!y$v$mub@HowuvnJT??Zm7{wijgN21&MR<6NmYPG&#PvBL}D>h?h4 zy=2ypX)OEPfE2KJd=ni&9Qu!rSU2i7a&^tVbi|9CWEU*Sp-Eyq++pGhd#JH=GlbS5 z!aNECr9^TclHEK>6g$;`Yuu^BxS%A3JA%QxEO;{Q*31F~DWK)g=~LftG2~Ym*UdA0 zQ=io8nAM0kl`j7#>NLb2T9u$-{c2FRi^hZAVN!V2pX)}TZL>m7aPrJ_J zDtW^XX#K9*Z*7c5JWiretn#<|#(S4AfF^KVQ1AIgm}vVNAhjKceotcI)v3^;E&kk< zv@OGFn6R(;!k5N~!E++G3wUpOH+l>W_ zl8sD~0WBmSZ`nEUa-N$Gei9`rebfv+5I9OHoFuEN-U)WYL*g-PC&|9!jZv<0Pa#!q zkl|aWxj%qYo7C0rBof7^pu1qR#tom+a5eF4=s=Z}Ghb+FX)rSfZOi;(y}#A79Hv!8 z59sC_`$-gn9vaWjYVJCSh6ZfyZ#4S07<2V|4x$|xa#m|Wb<@CCqq}>GGj~XAQ!O9t z78%|G)Knx4V@I2=bdKMH`4$!8rSLhTHW(tr7Ko9Tnbm9ZU3t&abfFQ1AwZX8^>nG| z3;ZlyS&sQH>IG$8;kz-3Yy7bsi$^~W(7Zo0HT~cm>dbq?l8sIjJ1i`|^Q#8z*KD^1 zAOHXwSAjgalUq58Z(<-@vhNhvEs+DA*GN8@C>X3Th?Su zwzyP44(U7KDN^Ll6wWXxb%4VULjqgya~npms12u(EvNs7zsZa4s(pdpQ4nLU!TddV+dXX>EWcqjRdgC1{m<7 z!C?1ste`$s;lf1lNErq|rk;ZY1AWfZOH1N>7OyxSjY$xpkRvwaWfm{0Vn~S4F2QscxB3cSh6GQ(t?6Ku}BZ~+<0Mth+M0b-h_exK&>Ka`Tp(8 z!_Ui(4o?+s^zL~39piEcfisD`vfn-(EFP(D*lOvPo?~nr*L1x9p=@|C2mx>gcae~pc zHdLL^7KQ^)ONMeVAeEp!VIXcvlVDa^PYTj2Wx*VSE3h0%HC^qFHE`9~em{-1CT~2Y zV~+iD%Bm%I-I|kBFv|xg*|N1>UY3$f?Rgo;uV4!!%A;RhJ=!pK%y1A*mQ`H2xp+XT zEL;qcv88QYQ?f^H+Qp+MslJ5?Ln%GH1jLBtm}KWuB*HAV;3-(c5q8Wx zTLlf2E-qbWq~H`I?K2COf$=Ja-@@sFxKSXkNct<0V=~+XtR)HSEIp<5atZ@-D`P+m zYoZ7OX~my(-GzSl=~VH3L66+cR2Ox6Ivf*3K^{4p?{e^!7-8$4_s4dyt1NrkX zaKP$OqU8Z{$Ul4~)CbFe97X{H*aE)@w_ux1E$U9MRK4B8;Cgw*7Zz({cgKm%lk$XQ z6|a@EXz>kq75Ynx)6dB5>;-9NzpTD4Zv+&mQ~=cZ=kIeyo9n9wGygYOt6fsg@b=!` zwg8}O0L!t&{XLnS5<|&jfsh6l|BMf;>o)A9S#L4N&#u@!VVneR1%X+1=G^`=+N6yL z&8fB!Ib~506Y9;E!PX?0vhcIB z&0Y=DXUfLo_%gt*5+Zn^%YHKWG`a2(sDmMzjgnfq`i_N0HdYQcSPJl?6&fZ7)YiUx zAr{iR?Nm4DlUmTA!%-yP7JoQIO7n%}pvBri1K#A-;2o=ON+IH& z{XHL5nrn+=jS#r>Arc({pE8hb4M9$uy;kzNl4VGCNn06~ZT8DP*9zVgPbLjJ{c)fN z%SCZFm3tDsSw}$w3?`9EC@t_!Jz_~KW;P@Ji?GWfX8Zo(Q&4M-MKT4)B3&cbBs4m_ zx$JgQSa~|W`TtS>)Lzs52aG8=&J`aDe)w^5n{7G(Wgj}Zgwh&6Q_L{p1O2DPZc}|z z@|4|0;3Z>);E{wyg^9&IvyyPi(tW_4RwiQxn`CKwA?;>fN3Cf|6lcvgF7(dYx5vrg0H8SaE9`uk2oUA&H8DEg=;Z-HW;h zD||>Ljk=<=l&#L2l4Ur#Dkg`xj9sKzbzmivs?jI%MWogxXc2U#Zt0zA@f>nS6^qds zj*6Xbq51-0gs{0_GmlCfJQp#>w3#MsRt)Ka(FhQ5SXQ~7g~c*$siww@5gm#UPYBnU zR0uaLaw?zS%~%x427xb@&H%F&2|jV!BI@&TwJ}oDK*VYCM@^c^#%*b%8be*9O-HLC zpP5`Woh))sG@PnCO!B$@Rx*@L6c@Lq##Y@NQvbU0kwbqG(-qt@{wbs!%$2? zI7gNtCz;?$<~CN276Vc4qSaU`~F65r|kn&yLNfgCk`Ro?9G&yjEw$n~r$a1hip@={A$+sc(!-tLZd^J8*FgU>~Mc@D3L@7xT42m3QkX1Fg)K6M1 zFPgTKFQ`bPQSkWQJ2|}2SrdKTnKXFL_~gTle;+-QMO3?GzNOo0u}phnD<|5-{`x@e znFo{A%iFEP5xHxfV-GU>iD=;22&LURz&(x+L_|^ zwrzu-&w%H$2^0sxVufgQVaqSd$06Iscd{>#VV$#!z|7m@)FgK@U$c5zvSW#r)v-k` z(G=yFL{I!Vx1{K*#tpVtn5~jUPa8N(i!yo#w}?5I0`sHOL-`xkHA7uR13*#mEJz>$ z8AA1~Bq>|R)04hQV=g%-QiUj1Ll#-Oc9(~1+RH8Vfh%PWr{Pu?S24tTRwg|=1o$r? zhh2NL9*;Ma!y>gWDJgf-FFA}~d&E7ALGiT>atd$~FVA-_civlYU2AwVcrrx6mCsO? z6tZ?~d>vW#|Ml5%k^3$D?Ny2=T4>Lpgglao=XDZ{iQ6-1!d05eBj!T|A?B**>A04H zQ1A906|5Ycmq`7r0v!$QcL3_$(!=W}PL~oc+^e7LNcf=O)7B8no2Ma1T=`t;n;n%u z2sO&912McOQXHMdjV@dHO%mtYs{^(Zmt}dKs46c_m2#-ss`C^VryrjqOIi+mPN7Lg zQSHpX)t~IuwSKw*f-g4|IctIqyg|v0rMOL??8r+I#4GgaU9{Ueb!A3f)wpp6F5nPg z^Jk>Q!o~62;~mSuWe@~x>g;|T6MWy#{s5CP#C!aAqC2I)q_ER@lT?(# zCY6jrLy772CV}2rA3uFBQAmD={S3fat;KMzwI0j$U}||UiNo?=Y3^0T3m6=20tb

    Y0l^^ltBW!y9?hj@CWO$3C98Hc>F8vYwD?3+-GrlQGmj*ivu=xg$d7&SbmiWQpRh5U}x8T43iT`c4 z^zThST6uo%#Ng8vGAp&DCcztRkF-U{K;F4azW;<`u&XGQ8IlL@cZ92-y5dwmE$n+r zIVvz{-UiuR8x4442C<_rhSG7;65tDqY;O|k{mID*-xf6D)B@*wq^2j+d6S6m$eWmj zm^wG0plSJ zEw@a88cEjH>Frb($YDq_aelx(If<}5$3P)^ZYag}9d_do<21~i1EVldoK+}7VzvWx zg))qo|3pM(hG4w{YTSR4=iz1`Q*6G=?;knZB7jxC9ryN|S-w7&ENA1gb-!35Pk^0M zK8=Gc?w%eKZ}MKTj@Qq)tIkzs7C2KT3ZM|3&GWn1>E{!4gGZEO-1Se10bK{(elscU zHZ1b_DH2tbz1}OH`u%f#s<04PmhjAt6wT?M$c+&fLnC)9`@$6AiY zbkm@s(Bd&&7nKb%m}N*T&E}=dsRG~lx))rcURQzn{e~Fr5J2?j3kS+ESP{HhCxg}s zCXM@8T>hJQ$a3C)BOPBSncbOa!sm2-21y$z>UGTq*`i3uF^`rzso}ATN#IYMd#=$? zHoeJk&}KS1lykBkAQwzJKJe;5?AyJ3sAPb!DB z_!D-Yj85G8udB2S?NXi0B@zCmc2`YgjsY37f9yoqh*ww@`~A1_(12J@efI5Kw5gO- zTu9GK39{b70j}}0yGLlGG<^Qh#+F~kD4FC~NEMq4^?Do~ZfC8WM^{M}+PyE)5OHZc zK?g7hjuSvi0uz<-w8jYQ4qIe-oHWbKQ_n0UodKS%*jJ{poSHD&DF{mC7cZt!Fm!1z zE4%S;D@>;C!t6&swMd8%dnuUzrR!G;5R>8IqG=a7)^5S_0$4Wt*CGh=&Zf=jTn>@6 zP2Vn6EA7!0fZ$FNphCE?4%BF$kWxw5IZ01v=J|J7MK)dFui=9`h4$8YK59JE>~Xzw z|GV9RR6A;p?C^F)DiC3nzOAIaIHH!O`e3!)tb!fYE~y?4MQM!2Jm_?hthoyqf<4OB2#JfVkilmM$G8+V}+;^0rh3vCQ z_6&3tR&%*DNd;CL6@ut8DoK;sd+StLnfx;8i^sb(ET|tqN!snm>pGOF=vH_1N|~dL z6k&T_PYlhTlQ!*X({GYsy{JRlr)hdegtM?c?99`=EbUe$u6q6|LxZs1ASrwmcVQ`; zkB(2`&@|caj!nhTm5!hqEOL-hWVxWiCnDFjTc%|Wv}ql^mneHybk=lutuoUI6>L{E zlr|Gzwh25_)@fB_4jv4h95^UEx#5g}Mi{6^xy7urnaH?@D7(sf$iBt~<*8XAj%a#Y ziLKamTXjfPg_4G1f(MCV=(aJ2Cu<8Vorz3=b}vfrm!?NHJ#OG%njrR|E_eTVB(QgU zON+*)Z3{iU?zL0V=0xrf!gpx^osC*wZoDRYo}SY=``qzyIE&_f5UVbuar3v+g6eSBcDoyr9npB$k4WJ zd*eEljoj5BgWc3^(MuyrwlYt?z>xAhLAyb9DsS9cvP zY2gXqMxcxJ^9^A>b{`E#-GtlibJy_X9Pz$qe)lPGJ#5J)!w-geX7X*aBdVi!3l4(< z@9rSp_At+ritk@SawOnd(KX@>DB&pgAXW4V6Ln8r!7y(CO=;1Sc&1B6{CAxJckybY z|5bVgEmhMSsbR?Hu!-qkjMk-X13bGtiu{{MVO66fNajCtr2x8^;7?iQCa>;0HC`e&BItl{YRuO}iC8%g@&+@y4GpN3F)zW%dV$uK8+8Wz|s|9Gq0LOJAg#5CB& zgak^Gagh3@uCKGvUoabwHnzj4iKphw2VN}vih;1TXiJapIC1X6R~jCZ$sz5#vnoMs zYAWD)&ve0kHYObB-eCM+!*HeT7@vhoAWXQn#DVR8pl1G|Ew0+T-lFNE+YUB83B#Q@ zo;i3yGp9^a5~w#{JFKsb~DKMm_2{|POpo&SLzIOT^h za*1TdPuNP!Z!30OB-`Obc``H|difC(17*r_MLGSpD9dpAn(pG@nuAj~;bSl)O7_J_ zTr4F$@#hC!EV@opd&C}sXo7)N{~dcn;<;0Va(&#)LVj*YCw>C7lHgqzeXc{>OiV~`h#%q}cyi_Dey`)9<`k_I@IX7xn6Nq2b z@S6V#nn#Jxqvp8;*HGBxhKp4eXFhb|@%ivRJZpQ8=K!q(Voq&jw?(pt={;+VGC~b0HIsfO zwYSfgg@;rlTah1RtNb;kH1CAHj$~sbRE2eIpRo&X;UC!w4dft1b?4bd$8CA$3JFggu#VlG`4}4;joc`j37K5PD~G^{gH3|9A+k8Y zDF(NLLdK2Qbq=r5nCmWNLdhHzG@nI?3qxq?@HEl_t4&P{k93%Qc`iQ}uG%_ zn55PWYkY{ve_b`m>#?jPgxiyu8ObUTbKw&=`?@B87I8Vb>%Q^13LBP)=lys@OW^hV z5t)t4EJR>x`iF1p0vWO>oKPGYH~5mGzUch;*k~e=kjLrveg*AF-vWWT7}eu8fbCiU z5jXjY_Xcran3RfI=Dus~e)2ax``UUSt3#gdR2-P?Jgb0rWpp>4>q=ae7Rkb2E^a|O zdN!aT&-vOp=I6@dSk!5}js-O^&)8?VfBWM~+iSv5wiTzSNisTu;4PIA!=yhFber!6 zy&n>nn&n$Ilf|MSp0MHUTkzD6h~O7TClkbItCV31KLpZpq8jT*`{}ckBz-kOSE4i0 zR)&QpfpA_}p5yfVH2%W{@SEmOOzkIV31osUfSPs?jAi$jg~NDTjME{r>bZUfWeDn} zk9N^5PJmZrh|}wwCSE>2hP2q*f?50cxU(nEGcNJsbzN2`BqNg81PVz=gwpZ0G`f2T zBE$a0eUbY{IakAL?%|qq2ls6LZNaWBf_blssQEKZWj)l$b};QTKBHT$g7vU7)kPsO z^r!u*twM_RrjfkPDPr!zL8L}X*7t(r^opd*H2_HwZSEg>BMYLT_=<7gr}IAv13v5Z z8dYyZTH3i3OFh^?ws@0!dx6NWen2yl@AvNMq=jaK%`Lgsh|(n(gBFP_C#0WWx^Wxj z?Dq$fN8Z$A(@LWaMy;+6C41ot(ha*7n8l1#&xaq6|F1-mgs&%pS;SvQtTslK@o6!* z!hhJ$o}y3=5YF%{D|VyT=mhtdR1)|fDN|Xh=Yib%84kHffgFw!VfLSG zX-9z+vU66b^KoK^v@MS^gvxwYDjet*ATI52Dz<-iG{g)MgSlwk59{Tm8FC-cMtE7z{kJb+Be$3j2+(z znBeCU`#nbejW6o&($i{~yc`|8gFfTUhK}DQ_CU07^kXMIJ&DNP)y*T_E$w))pP7X? zS~&_`+nTI zHTuaQ@=CV2-D$&ln(OlO#oBm8yr8z5-<=neh4O;V?F_VHDnlpf@^tv!S?yP-^Y6dH z?eO(KsgaSFBwM$ip1OgKVm}Jc{aa?}M^bhDJljr7+9^%B<-MD^8@Sk8YR&%vTBGEk z2U8ZSv~2LT^kwuCk;mGqQ|mcZ8P~@Ge;!v$<(NW>za&a@O8?far-xr5gk3N@bVXoy^?a-w1OQ292vZTEj-p8b5A6e^k80DDx(V zwF%QFSUHx)NQhL>N_$cka0E1}?dj{&aZssJM3iqgHK${|sVoS7{u(GqlM$9WBwLoD zz>4AI;FycaA~rF4KcCH`MJTWjjhnxg^?Y|trOIt-JFolnb(AY$IGri;1ZS6|%gO5qNv&M`Rh2sp&DN{>1|& z*!(odv9m<*?-_}Hp|$z3!MMsz-R~>HfZyZ9!f3@#TdKFjZQgzHV>Jdl4|QXaTP^P# zd+B4hL2K&F^J`&Qu_R-%rT4;^DMjVvHt|@wk#)`A#u>7_+`e5b5Ut<4+i^5}t#Bzc zDo&S#;kKxrVovvxz(Gjji%CxXnW|Ci&cC7M3tJih1{tpu~WKOg0vkCUK-c%AcJ9 zd5{jEZyKgOEYNLQmoot;7MALJXTVsw3~0w!8VaMbaH8IrVma=+b)On+T<2N$RbmV# zP4c*}Zw-h*>};m-vDq3#5Lu&!&}G#1t9ge!kjzG^#9oeW&hS66sc0TdBr#HXuT#aS zJvEGs9|9Kd7otvIj9+CAUKf)AEr#Uf0ATk^0B#I>9|<~BB_iJhOQ+Hypa6;@yWu7296%T?ZFU0jr1p6<#ABq zhwau0xnW)t?5FR}B_U2rY&QBT_WLzL3t(o6*R%XRQZ3+fYGqTk-n)x^=POz=hvMHo zC|Fz=py$ENiA^`#|M?q^H^3qk@=a{MN}GON6W=UC;3=f%1x7C;2_)9l-DA+;ht)_u z2;Gw;e}49u!Q7HFSp}r<@Om%=&NUw^`->*R6*h;iFvP3jm~j79Tbze@)PCG5=vzM{ zr`R12chA9aS8`}@oSfAQBv%^bIxGIqZ^$PD61N@pD3K3y8>+ zfi;N}eTE$wIUoEOmu&ih4pKd(D~Mk8^5vtcRx+BvNB(A2(l|VFB?EI6Xz<~zgH*OL zuko=CPUN~@9H=VSTpZ0;UL|m>kGJ%sKnBzT%D~X+e+{Tq5b_Cv2^D9BzU{J`oTLzz z*J1M9Cfl`VrJHK4{%SkaUxlEe3OLi4 z!0wVII!cIT8BA(xM4Q6qvM} zEf`tfR9tb=in$6&ArI`K1D7<0@S?6PhrT8TiYN<<1E$rL^T?(<<*-szPl{iN@ zYzL77mN01aUe6m(8a5k8U1ZK*$hIxqLt=&ELb<62${Dh}V&TcxY$X!*ZZN_(OZxSD z(k@42iRePY@TFaxk)U#)dUn$4_s+qrS%~SmC#fof@VMlus9S+im51y(7Wl(iXZ?Rap_5_bf}dU2q}p8l3pM5R zXo}y&dF_pVjfT8naC|^?o6x~~{fdm`*dN*zT#NLjZm}JogJ!&( zs}g^0KOOrvXE6_v9ks4#c}e)Q4;Z`+kmdHEmGK@uYT~=BOYVsr^(G;L65PWDGEZY z+nks5NvbEh#FAMM+06|0oIL){_XRs2>CSZ-)D4mLeW|8eeO0>u7|>PG;x0&I9t$jl zvyS2#4VVu5c=$ZP=0GRzM~3ELi z*;C46dL-C{{O`w=P#gyUNX!D{f>3XRgoE%WiRa6Z6_*v3Ja8q>p~9HiAJv6>jM7cz z&-VzqX%q07eYkUCT8w$=>I7{31nwIPrg#4oU+hj<nC>X>|X8Q#qhc5M_RsBCZ9> zUo=oG`u~D4h-|qE6SR_m@zUMlx06gMY^=pBle_&t=47NS4EMDx zz?wgI3wX_#e}F;wWArGXtq5(O!ETdcKm)mnr<@i~Yi1@Pe6!c~zuHw5)skcd!sb|M z>*_cKGG4TO5qVx+D!uY|96hejpeWrsNBu>GT4`!Hm>wRk(p@JBP{+?K#z9v7=XC*A`~^2}VASX44@O@vh)=$LZqiuzM6UyrZx@RubZ)V@d>7joNw-|DHxn0) zgNc>A0c)1fAZ(0icqFk^4^ZBw@qhi;o~Pap=Q$2p`)Hf!|5xkJQH1_D;{0JxnZB{)yu&ZtF9TRw^L@YZ)uCONkQt#Ao5nc5^DyL^BKscF(Ck+?L z7|6%&jVtKRCHP%m<={A~Xz{lYyk?{))4Y1w_|N5gj{7aK z8dG?e?EeZl6uqqYMP?7^LDx^wpyaboUQ%5oMB|JK*=Rq|-ZaPZm6~GEUYFJWhf0yw zOj->a69u&FJLq_8Z}#adc!j2ZB@gx9gS%kB-{tyAW2^smt_duo=s)rAb{y`=vdeBJ zr740;Jl#cMe&=D0-j<(a(-VfV@;B+pk&)4r{}Ww~J3&a3z6V==C>ZTv*LdyEL=*rY zVGl6M#L1bBR^gLee z#IKa(k0g^;qB?5+h-huv|3xJ(5d(FNbs*wz0lQm%sX3r~DHiB+n@Jhs3$Ht2maB6A zH#Qk~hs8s+TC3HO*S51JVlj7Wk_~~A(momh?CaE#|9|G<=H|=cca+6CkSS z1yTcN7m+xya!yS;XQ~Qz@vx=XChN~>_hpQzAZq3yc~b*;x4;Z)6yBl^vr$K6esj{t z!4@m7La&1*B%K zO!J-&R;ZIx1eG>Ao_U+vz97yJCLK=H54Dj0rhhposfhaj9wSff2}!se^rJ~#QUpb{ zM8)7OL3k5Hu%?x`sMKX<4nydoo+Djl$xmK%XOdKkn+6Vpnl@dE;R4Bqx`|Q4%*EsLD2u(DbC>>(4RW^#i8l)Vf zIW zk*fAC>y7qAa=o{A=2k4U4dUj~gtS3N)r6aDwk1gDt4tZCKVM2?R6ZI%J;C@z%!mM8 zk#lXHLop(wW4FqISE|qg4z+Cp6q(uGz-vA#E2nYEsX|X{wEB*xE(LPjL!3=Bo68ERav*T~K zNVcD(q2LP` z&46N{QGihFa=Y$A?P`6oD^{F6u1*xb$edEezwXWZyQEj>Yv!PvI+GDRJ0^Si>Q3_O z=LRE6(G^)pyJE@mt4Yu9kYHM(^1?En+*;`ar{F~J(XZUdsP9 zfqtpg4)SkPWh3&fpUI9JmyjH>ZL29hhv|Hv$*6G3+7aSU%C-A*VkL4*Sg+$oyt&o* zqCsHq%OcNe4iyH}E<5A0lgxQqtLrzl4)ZnhmX{6uJeM_hm(APAJzifbD;jF!J1F5) z3$3|d#C|q^qeGfR6QJftHq8wysaWw0>rTfnfG*R&w!o;?z=kNRyusYg$``6E|8 zeK~}Z|{a?tiyH#3`MvM2cM0sZ_l#pI)wL6>7w^7fYjgJN1 zc=}dW2>(#5`skhlrhD`{DO!LR(LtbG$kt?ePlM1*P68=oLWdxC(fr+3`XBi;stp=s z;&J8ihUf!%I)Gu#Oa0hyCZj*A+;(N5xPk&xPG3`1aC8PLLo|`zMS_Zafhcz310Q@p zr|Scr6SqVR-R4dGt2g-je;<(6lBfuX0?@ZhjZH*!9#JRBcABX7h9@J9ASd*wWl$DR zsRj;Q8b*Jf(%xsf%;z1($95b!5MiJv%F*z!O|K`gRLC+VyToc0PkFXkuTiHr4Cis(B+Esm)=yRpq6ZYDrP93E;@YVDu4 zTS#OY-uju91`(oiJLUKCqf}MA)VU-8H2)HQ6lsz8*^j)-Q82H(19Za-9G5N0PXdc{ zFcL%+bBB?K-%7h++--F(D|YotA>nUhYpixKDScT ziHi*ricB(?*ZDVk@$|Sf56DwO)@(tKwFh$!Z_l_W&__|6BHAma#YR>B(Cr(&Z&ePYO=#^jT5p#t z{R<-9+M2uE{oKk{1F!}v!F$8Rv8)gRNldO_&;!gQ&c*050V%xVT}wZMGfgKC2|N!q zBiBS~j!j?4t009_?E8XV2|?TGsZf?dMJtd2;+Nos^NDa$w=aC9I@$(^DcHt?5v8Vrl}2o$@|Wx?u1I>XN@?jTwP_>S zY}yaQOb@VTHr;f_IxG*?h=e`5HZ=Lsn&M z1u;~#0|b?qNpF>?jWW9bTx`R#l%Gt0n1ZCjF@I9ILcwv2854L3n8(y}BKH<%olD(L z>*JkX>n2TW%}{$ap1(zV6W1E_R?N*e$bnQ^I;d-zOF!NTwJz2BiovyvwqjzIjz~#) zoa{g@RZdbb?Mc*Rsi`66G(z+Q>x*dqXpU1CE7W*wNZUp)R&w8r8|^ya6U$e7I~W1IITuc) zsg4f{&V1RrA0l2FT9<-EMoIgFkY$`%`nv2jlH}t z7;m2M@~VkexS85hFzQ@N>B@)WlQtiEdSVDcjl-dw$Jv77?%pPA$cFOyq(i-d*B%i` zoCQ`X=Ug@Q#l>;=Ge!^Dg87xGjGcBM_XKNLHR%kOgCn)R>97=Qfdob@pO7~^5f#I^n=)nYhNDI$JCE15P!m?-nmaJ;8XKaJdEs!PYN2N3<77A*o z-26grjt7$qPqUe39pe_@Qqfnf;sVIBvAY;2$@o)*_O2%aoy6Gerc-2T!rV%1&br^9 zom4*4EBnO8dRiGysCAD5jC(F2pQWmb^K&$C-TjGqM;T$-6nl!DAP9qxZINJ>SMi)> zce6gL4Uv20R|SZ$u5>weqW2W(@xuk%jOEf9B>PQfrgW`-bCkS+`5YKb_+C5Q>eO*H zuu?4cdxurJR zc;6_%IB-y0EyY^Xn(F`2-HtCV7kCZ0=T!g${c^uwI$Q9z^W0JllBn!?KD4mwU5l=D zkY=dk>Wj>+t)D?tsdde&7ksV?Zy5gNu5}HSZ*L7czRDpzz4+|Cc{OXL-J`+7Oab|N zM;#rn%l;d;7+vl*nL<2g?uh*#v#n(g%O!ada9zj~;_n8WTnm%S*yBQEpyo%@xL%8* zmVGrbmrX4zpRojWeMtDIqGMki4%c8jL~l`NbKI1A_N`V# z*5K|EI*)&`->h3taRYzVrv4}jgMNImP-ADw)PXPQJ<2^&>{uSIyT;L+L*IQT;>a{k?G%^r)AFpVL|jKNMj z^E50OMDDpIld-Z!&Y!05uXR?Tb5JuUJt zfXl{n#PTr_}|R?jelm_KO6>mBJdGzss42n1gH$Bv(t+I(?`_D96e4({oSaL`#uR@cSh; zOtV6DLi6tnplnm94b*i}44=;#zI^^7Ksm`mS{X$++XshN^Y33wekR-Bg6j(7Q09&< zI;$yId0ANPG%e)oLjIdUe*wbqkq9x)y>O>>g8%`+eJ>czV~LAXNy<9IpS&67Cs^^5 z;zoL%lp;cFUN?G)Px816rgm+~UJV%5S&gLOnzqTH`^+Wc{X!5^xX3(z1AkZw5kqXY z|7+u^y~bZzXw@I}I|sRng!(rzCOFCh{ao6_Qi8MY?Dwi5^w`WW%g7%KuRsH#Tw&84 z>C8PHwFD&s1CP=6slV(rjhL%$>j6wtSC=Mq#M_){G39gkil9>f3RtHoUG;9^V z#}%a`n4+G^$)<6lKmE+Vo(ZQEeT~ zQf76Fp>#05K6Q`L0iwcFZ77_Yy|DK$md`K%UMw zp%M})+!{g&k2<|x!noG+#g^45{{W>WUv#1*4wkB*7#4Uk;h@%Iw_PLFaU-=LZKL2W zPKyVc*??pRcQSecE*A8Ip?aoJoE)wI6$pToNsuK~btMwqiY{O%2IB_!8Oobq3s#mLCQDIu7QI4QZ6K$M$(4aDPeyb8b>l<&3Ipl`13rl5A3SjZ#XWQjNP zgkg{_GI|op1`AHQ+lttHZJpf@C4w$QS}*L2^m#?=%pgr~L*a18*PP{Qs^A8z(Q*}-AW&{9 zH>TTS(KT}rTV=`nNgCjt*`zd$|CIVGgr|vz9_Q6&w}QBCKBejuf<2&wRby|o$hvUV zXt*y4L%}qAZIyx)6@NX*2%Mj}jSIksy7)9M>r{REsnj{vXdx;Qo~qb@&Ms~8akJ6k zq_;(yML56VkuoWCj22*jG@irIFh>I5d6+zIE&(cjUZ?Al>_-%o?Oi&bOvc%k}!X|G0i` Z9DJ*}J{Xd}H4W|kxOz2s;s3k({{iTXx>*1K literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_top_icon2.webp b/entry/src/main/resources/base/media/ic_home_top_icon2.webp new file mode 100644 index 0000000000000000000000000000000000000000..44ee4ea52a897fab969966a1c3e1ea801e5c17ca GIT binary patch literal 5946 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_top_icon3.webp b/entry/src/main/resources/base/media/ic_home_top_icon3.webp new file mode 100644 index 0000000000000000000000000000000000000000..779339a0cd1cecc4e16f3a37e9840869cafa2e3b GIT binary patch literal 5998 zcmV-!7m?^vNk&Fy7XScPMM6+kP&il$0000G00029007GX06|PpNW2ID009{VZQC&F z{^L)$0};{x30N?hECh051OWGBk~@bW+h+C0e(n$v6Hrhkt!#&&A1CBHK@+cw^6?cKfR+Gi^)L`;A~+g73qwUodPG``^rBwO2N*iLW6$u#$n z8_LjjW=_VoZQItiZQE93cU6s|-Bo`$hzJLcFZ}3Ne_+r-`VKhfkR6sZ6$+~mD^~pJ8*h5kJKpq$_z*$Hz-3Q3Y^;W0 z6!wQ-eIsjo>#xG3AT>*FdDdN)3ic*H~%*9TX=EsP1nRP1usHHWnk&#Y*e55$9k z>(W$c*5TSCf&s!(va|ic)I&-W&lxQ=(~}9=iey{ffh)%hKXD$UTlB$vk|>z@s0M10}oSm(Vw5?a3ttS^%YiZ zvsH3$Cj|4Y$o+?HB^!l3hSGcyB&l-`bCO~-?AMg)8}~ST_dx1MzTc+@4b%{ zVhtnZBAz@{BudaRU?g3nk9+i3iK53yyJ+XlRVhGUosoD^&zhy3JhQ5dw(TO<3i@KY#w~2C6Tf6ERUg6yiZ)ZYQs{Uw(2V7@yjs-2t zv2c4yjvr?qYI3~r_T^a8Bi=sKWkqr=zMcy#E49>=W0P`Cmc_`iR13a7@8?BoRaq8q z-{C?t-thJg{M#ohSdNAL$yZ8&DgNN={T>)r>3#C=i3!W{MNR%*-HCsjH>3giKB<4belSK!;l2GI+(cP^&tcxw zAS1%kL40+3OhXhaS|E1}Wr)??4#dTv2C?@Tra%GvdfOXCWq{|9#~~gPkhhe2TaX}o zb4-T;F1XQs46g}Co>v$SYZM$s)UP6lkfbW#oS{uV0H_qa zUw8ibCW(210Z5YzF0-CcC$+MJELbN$uU9dD9NkvUVMPb>W4NS@oUZub>qS!SxM`=m#~u@{`c9>$t#8>eR~$B@ zCR#zS3bdY3#mFuf9Jkd-R~?B@u=5Sgj}B>Dw%Jbm?6TfOA+o;ZF7>Zzp{;Mp^Uj(W zsEDY&f5^r+v8G|@m>Z6o)zcEgeT;M;S{NEd*34ULll`{YZdpqqtO$ljQ&}7RHnfdw za?mly%?cMTPM&P3*$k=*BYRwP&KiAfHQu8}o#Z`>is6vEVqn=OTkLY!Mjc)iqt{Qr zwqUudWn!yS&f06l+w-n+ysd&_O0{K;El$~OJ=QYP(^T%*;nuT@Dh?7UG<2+J*<`!J zPTQ`=StA$qU*^E{C&!jKSKa4?Hm55-b}7lvR&iiS-F^=^Z(d(rMTPt)3ldtPyD<(r zshYLXHjCyQFiq0mtEhoAlKH`7$yfA-?^m|+-(<;T`z zVcGc?K}KDP2Eeqlkod?BOScgXgkdn|CowFk2DcHPry)z(l>h}k)Xd?i8is0~>=6gH zqJvismAU(-c$pE{NI9_~yreJsismC=Cb)?(hj5t#NU6NBST_-SB=u6=(n0mm;>ZS<9u2NwUx!*6#`LPmIwgLx4A`t=@WF&;)kQl-9Y77bj z6I3XDOwr06kbq(@r4U03v||!e^%WgQJ7zOE08N9E0}@<>9*EGFb0UDi2GB8>U=Rd0 z48ik;Q4$*-cMMB!69FL(9fbijbraN!#(+p=u$7%5ITFc)1+5oX24`9!lg31FD3ov&@S`X!1|^jab}r|q($Q963L>G2gd)MJL9{#w z7&|7YS5XOoFTERP$N|Df0S2rB0%8!E5dj1t0h(%|zC9CQAVr44V)kW^0-iyxD%k=*b1?Z${g>2=qwH$7b=E#gB8pG z74k%}N$CM1m%KQqw4?!p)8T2OQn=6%=j@Pa+(g@pZVuXX2{7VSsP0PM+_{MJlnmLU zmYyq`i5Wx#VgxT3S*^;NCG#ad!3gL5ASrZYcKoET#LZST23xYOI%>&| zBVXEiBRDn0wPxk#D&o%Lnx8zmG6j#>3@o2NZMsa8Z&xEru1p;Z`~O}G2UbuxAcPJ8 z08mE&odGJe0L%bBkwThDrK6%Is1v*h&=Lt`ZrxsOE|7@3jyL^>oUO6_FXTV$e7zi} zk^A8Pz4dwepV$NSQ>Mq6AKOpdKY0)MAGRL$f6Drbe|746^cVfS>vH|r^vrQ{;q22c zY36%2U&UExJZFCWL%L0R0DiC?z>ufo<@XXA;O)R=SsPn3SeboVSJo?o678S;g#+xx z&)U-|?*U(u{%j*5&b5A+Ld0F-^p+4D_ps(2yG}$OGoRwhw3CRMJh0D-Qu3uv59St? z>#^h2Acqw`UrQqcsbuZGh}%81xLqh1#sXeIc^D_24|^Hvxf)cLC>=dy*m+Ws9;TK` zS8(#|lJpD5dHKGi2pYo6`8X=lJOPN}isOJ5lt=FNsURbOEuKY$*2g?+o}xX8aPed| z;X#5+2Ud0MR=?{U4h`LucqL>1t;}?Sk}KnJy(Pi_O6`n|zu&2O{2Dav;JI2M?P>-HFTm_;tj{<-ymM;K;R6;i0SH^ zlj_^WY=v=y{duu+kriI@78*xBENpMuCjO1m8~*!JRZbK1KPRT~A9Y)2@lC~Um=+XS*To^8McGNA9;X6BO!rPL{tzC24-Pl^uc>S=I6tC& z8{lk;UNCMT0RH>^XaD1L)co8LY`MVC=!zMWGmZIL1WTisz-j5qZG~SuzhB-y#fAMi z=;pJ%6fARK&`V6nZM({+=97`bLNE?KPi?eLAidGqSwSCf0+L#OylZP!Y73^p5-3`B zF`udlXGkHWYhGrrW%TWT$=n`HWNR0<1k1QT(KWQkAS=%dFRDYM2Xz61W2a%DW05}^ zso+4I4dOQ786geQEEUB@Xkxdz)8ygAKkZt*ojt)?@y9+$2jV3%MrX-8ar{=hborE& zD!Z;-$sy;+K5{1F-%ak8h-{q-9VovmSc+`~T~uSc@|EaAUPaVmqrK%NVvg!H?L zhlQ)DK}921l7viWy7T7Kg7&m}C6JlgMpDryg=ri_qu%r z1!?QR=?cdC+irSGF@-~EJ(pwl=T|oh&G@z&pU+-OoZs{fJ_1*BKjU*| z2pJ52q+^Ig{@m2q5qA8o>O3vPEAR-tZ0_C4SK5=LE7sq&s*MTiNo+y~Wx6GmVwz{L zT%J{C*`{oB7!a|y*|d|q_EY9>Oh5h19A`EYEq=kD_KBCjVBSer!Bgv3bl_w(AMWxe zD9s_~^}$*>YR8mR=&*B7{V!MgtWUQ)o@_@gzOVB}e6AE8FdtTPE&db0ccToAP684? zRO^Cv3Gy5@jq$xge~4?;k;`_({v?!w32Dh|dn28U9#%X*Ek!6=I*wXwnhGI$1#|4e zw^XsV$YThnAtVzr0qSyVPS?6S!yZFq$4J69=OtuQE)K?{)hU++ zL<~$yL2Bt|IyLD$|6?OI&#I}uQY+bg`Er3@Jxoa~iwT+nlN?yFZ4oWjkx@0LO%3MX z`c7ZB3cGdVt&kksNwzOO!a1+%>j`;nvQYw4!lZJ}QM*N6C`!)SGJ$y*4%AKg|2}gJ?E}2{#Ptd{4Dv9H(>#g^A3JvYOG;g{#0Mz%x^i)gJ8-4|L#7up?SZYjsjTeeYIi3sdH9doK6X_`T2ZQbdg z)>NZpV+4s_)zOz~_3M1hLXB%dB?2h*!fuYq=Z}Wh{6+i8@y-azd6fMMc^V0a0*6+* zTq>zeeRHC-1`MJp5`q4r@b)B~6w#xZD#d{6)$V{>5*q0=O2oSbq(dw3>;%F;VOBWx ztlB}F2pNl85~xeXls|)R^lQL)Jj(wdzbo7ESFB!9`7QdrBk-Dix#bpXkq*JsAE8s@E+`ffXAdsp~4f>NZUE&q4P+-Bw0yRzN_RBBX58&Y`&q#G; zXoYx9O4|fVO^~b+APSr@GDk%;0K6-z;srK+!S}F56ggEq_1y zR&uiwlvL%AYbXEwpxtwr9!ccZ%ND4#N0mORPx@t)W?sUF9Ld}NTmzWY%(WRdSSUz5 zNYk(By0iKd?&c%EOZBT_rU0!>S4x&$6J&yhVmv3w)d%c)3nhdpUIIoz@$<4nMMeJ~@pzxEx|( z{DOpTrvn}Ck2Is$e}Sm7@%*ey2%}xlO<4c%cF2f9CjwmIxmsjwx^^8R-0&NWz5C)l zKB=Q7F!dm|?x1!S6j=cEPt%GkbUJ6{4%jvHr_j^`w zLRjJFtx*E~taVe+T1rYW@;i_Q!hbF)7lu5nYqPRO2F<=)`YgBP4Q7I!bg5*cFinxX zpbY*W=XppjpWh_DQ^UvR*vG4H7B!=6>&P~yqRA7(MeZ9OIEK5?b4>Um<#PptuhP~T zD~JCLi0K@ho!=cH$~FvMh2uZZ(gqB-7@g28h2Q`JtMP&Y{8;QLzh*ZL((XT1Rz?jU zKR^DJZ&^?Tk&s4a4YATXHsIW+D1UKsBK%Cl9v5z^iUss_S5g$0&Kp7qSjK!Lcymmg z41nGyX~)_+(e9BEg*It z=)X2SHk7o4rA@y#YPItfmctVqr92Kg9N2}8l&FoiAH|;X`FGHswq{JIRMF^?(9aBu zB5SlbIOjQHvXEE#)=~7)yX-5ouNS5awB@)bxy1Ah_yVL?3GU1lYj9&=UynxL42BdL zko8o=5Ks^O=cdq6GU&&v-Z)U^_AlKu`T7o1b(zKyErACb2`qSR-O`Jd&A62}UNv?+ zEHfcm#J{btNNRcHNa0MnS6Un% z&szg{UUz!ZC!PUeiPt;?iG|EbSYToNqlnK!{`FyMSjae1Se@U&Igv}&7g|4VzJDa0 z`%~bu0LneA*a-Z$+#MuG=yLK+6Q&*-?W%+3mS_o6Jo*aA%#{ZX0UviyYxjd-pqxEk#(qQBkrU0Nk&FW0RRA3MM6+kP&il$0000G0000Z001KZ06|PpNVfn000DrqZQJ?h z`P*hv`zLE=vpxc{?YOqcPqDtVWi=+-_C0UUpEV*TfYN@UQOqXFU&djRhRM4Q;BMN@ z({Kv_&nr1B%}-x|^F~!1;A-3v2Y6k`5%2+f^~yNF?U*|b@I3E{1K^}g90%CWjfa<> zczAA)hmBAiY{W$W(DD4c#~C~Q=Lmj%+;1hel~M_DJ zczAA)hmBAiY{W$W(DD4c#~C~Q=Lmj%+;1hel~M_DJS^APN!E`ibf|V{@BJ3|sO7~yTTb{3_@wL zczAA)hmBAiY{W$W(DD4c#~C~Q=Lmj%+;1hel~M_DJs=9Y>tLC#xUu~IxOpg4mH+_KADdhN literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_top_menu_bg1.webp b/entry/src/main/resources/base/media/ic_home_top_menu_bg1.webp new file mode 100644 index 0000000000000000000000000000000000000000..af649e56485f2cb5ac8421b447804d821919ef19 GIT binary patch literal 6582 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 C{IZJx literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_home_top_menu_bg2.webp b/entry/src/main/resources/base/media/ic_home_top_menu_bg2.webp new file mode 100644 index 0000000000000000000000000000000000000000..0ccc2383dd1ba1c0f38efd2949fccb4580bb4e1d GIT binary patch literal 4324 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 H)dT+l!)O=6 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_image_water_marker.webp b/entry/src/main/resources/base/media/ic_image_water_marker.webp new file mode 100644 index 0000000000000000000000000000000000000000..a43c4a2c2992623d5a9e695bb161c54bd4301f7c GIT binary patch literal 2868 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 Cv{v^3 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_loading.png b/entry/src/main/resources/base/media/ic_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..b8deebb1377c7849efc554325244af68ee0ca613 GIT binary patch literal 4005 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 LNkvXXu0mjfWvq0X literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_login_code.webp b/entry/src/main/resources/base/media/ic_login_code.webp new file mode 100644 index 0000000000000000000000000000000000000000..94a90b6f370972e7de9d1fdfa072f81c0de5a565 GIT binary patch literal 1240 zcmV;}1Sk7aNk&G{1ONb6MM6+kP&il$0000G0000%002P%06|PpNT34%00E$eZQI#M zdx}g4>F(HTe70@dwr$O^w$abFZQEYkb~{Wvo8xtiyKQz^YAThp$?3%uYUG6UgiSU6w$cE|KEG>WxGK&ZGt&gfzPi^z zZ)UMBd+Lm`&_s6`H#==&&GjjkNbxN#7R>aV=g%(1wYiA}3`4)FX| zntH=04arTbB4xmUO-fDWfUh?tb+`d&SGamAWECj`$n=TXRm}s21hm_AJG)a;IY8@E zAog7s26wuSc4fkaI@|!X(TX^Bw=@LvDUiM?;ZTt>fJ`4noOfFa+#Jj^0O>33)Km`8 z`V@%EJ(mF&_*7z7ImrO@D-$B34mSX8v?6YgSqq%v?NMNUot^CPtpTKON=QY@05W|P zaeY|}(8Jq7?8tBB|PdBE#QKh#%%?7^-gJ3RTzRR!Yx5)-tW zBYwzvjld5{H-0Do2A1q8z7~HEG+!SJDspin@M7E_IYI|!b`7fRa})F(#qUQA;QeGU zk*jntpAz4@{sk~z4dj4Tz}%hui(ZfhTJFmWp#D!_;{e4!iB8mk%(*e&Iy|8R|JF&6 z>WezC;f6w=l+mrg+QTK-+D}a&^FYFv!c-2>E{OyryZjH(KBnA<>POpw_A!ML_#Qu) z0G}Nh_Ygh!(~STxR7nWCePROUihg;n3LjjG^_gM`WzD-;tW(aah}y)ePW}t4mQp38 z$%f??+P-Z#zE`(B&Kml24(sasizT$m(bFxUuUouuS=zvA{(Ep-!dx_QwSjwm)g$E+ za^>(RmbqFm;gG0=zi`Kg=GnFXbbZ$X*;MzudFa@N(`saUIaW|OAPNBh05AvuodGIB z073vhjXst~r6ZytEY@ydpb?2_ZKzDIAzg;vQy1jFWp{-&0W%OuBP?6PI;Z_~;#t(* zq=3gt28T%h7U^a5$nXFF{`iM|R67mmc%Y|f7LE%k(qHWxJMR5bxa%gx(nO)eQ@e2R z*WPh=J_|20HAI8i3u?W>i6x(hEbERd2AVkn2QOqpv(=1v3hMU8_YjK1IBXhAtdZay zRDY=euowDRXv6EEi(oWiFJDTeFTWcCY-`$UfY<|BnvPeC2AK3Ok8jizH(4AFCx&&B z&di>uoZAwcG}_95@JIzg0q(T1O9_w1F%gSGEcIvLFA5fPk^nemrSn2zBVjTG0000I C-Bl?7 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_login_logo.webp b/entry/src/main/resources/base/media/ic_login_logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..e7f8891543f50c8bee9a26b77cd5e82e0767eec8 GIT binary patch literal 2620 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_login_phone.webp b/entry/src/main/resources/base/media/ic_login_phone.webp new file mode 100644 index 0000000000000000000000000000000000000000..c4f06cf67d4dc8569b79678851dba71f755d2211 GIT binary patch literal 612 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_material_select.webp b/entry/src/main/resources/base/media/ic_material_select.webp new file mode 100644 index 0000000000000000000000000000000000000000..0cff546eab250cd4db6bf5f1390bc1afb46d8eaf GIT binary patch literal 774 zcmV+h1NrVoOcYhXm)PO=iKeJx?$cqURoAd`25 z=j*QaW+wk?tgFmn65;&t*uj6@yJ}*UBP*-hyr}Wlhf^%rWV{#b_v^{3EPB=hAfNi^ z&?$~0AiwrerBay&gS=0a1-WD_3p`vF{|l&J zmk~mlx~vAq0V71MvlN5qg&20K0WnjFPHAu>h?k|BH0s&c2;T#&@P}L1C~v;SoVFPJ z8ybTD1aOruMTZ(Fc#;Z5%xfq$oe-t=MJP}GX;4=v%T%Z|F2VTbg6L!4L#XS87^)BW zE?&bTeHKV-ta#fj5#w&pn?=GO=cpsr$}#iaic`C-SPgO1@)~faNr<~sBMcP~ZxzoF z?moJx1u6hmP&go70RR9n3;>-0Do6lG06v8f(I5~y0092|QXTp_Tg?<*!dtHs8*>N-g-B}oUyZsdwtieA^UcZ& zS0idUY-&Hzavq$#j_#CwwrXO1vp}`FW3#u65)Em2&grDA6!i#U5W|Wl0+Xo~bo+e& zm0nXx@>YNU?61%TkQ|<+^d}_p&vK5$C;KyfrzScRCDWeZoQjLaMR)rckNgC5!pMzX z&r?vTUT^eH=4rp;HRJU#U$c@?i>=SzK>m*du<(lb?=7(J57in-KjCu$F E03c>_5&!@I literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_default.webp b/entry/src/main/resources/base/media/ic_mine_default.webp new file mode 100644 index 0000000000000000000000000000000000000000..cfc2dde288a97832e72ebb8138f971ae639615c9 GIT binary patch literal 1410 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 k`HU45T(AEF|07@0_y#N3J literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_icon3.webp b/entry/src/main/resources/base/media/ic_mine_icon3.webp new file mode 100644 index 0000000000000000000000000000000000000000..2be894927c35c56f3e3e7a6a3a6d6a180033fe96 GIT binary patch literal 892 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 W|HlzQ{{n(CS(~Fg{!ZM%u zvFJG+E-HAH7jHwIVUwShQKI55c z9El7pgjdeAy!4lyC-Y`n?jB(+xW{X3+pztMFZ+ zz}FJ9ac#8ERDwq}(=p9#sgFB}lHxAI`XG~4a3NMw2%kxx8 zNe^I^GVR|0Co77?RvhrtGSV#e3gYi3nyJi}(%$DOt8rUCbU=HRz*g{l+LNTLYYDgE zQklSm@HSafwlBhAC2$=)Qw|2;f_u)-(+r|UPERrj?J+N3laW`&lX!#4?cPmcy2={= zr8pTq;8&@^N;n^*8{fvuR2jXYs?1;&T!__8Xya92;S5}su+^cB@HX1LklS$9i2)v3 zCI!2t^{a;|PNY16pF`a0_Ri0j94EA?t-#CuyDvf8>D~Hg@b$p%-Me?+_E3Lh_rCi+ z=v)%)go;|zfk4mB1m$e_u+Q#QO^8&E$BaLG)78^clU3jr09H^qAW{GT08j-0odGI5 z06YLbfijavr6VDsHRu4K5D94j7TiXhwt4riiE7(a=D%uD;zc@LVY+%?0R1ul|IiuV a`IXQA(ng4!|Ns2~ARnM7|NQ)b0001`0U_uB literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_icon7.webp b/entry/src/main/resources/base/media/ic_mine_icon7.webp new file mode 100644 index 0000000000000000000000000000000000000000..243d33cec115fff4f9ee349474e87f077bbbd041 GIT binary patch literal 808 zcmV+@1K0dgNk&E>0{{S5MM6+kP&il$0000G0000x0027x06|PpNS*=!00EF~+qNM| zQB`f*wr$(CZQHi3C)+MF6_Jtavm(zuH?#E^5e@{nO`Fpg)qtuuIREv^s#MveO65~V z`?))gpEPRU@2FkC|O`ft;c|OeQ*o2 zI&CQgLOpEATpWYY;!K^Vt{;HMRV`@p8r&6XQ$30yJUdg*HXk0=(Ysm>JgKYyMHfPo z9X)lQ086w~zXRN^W-|+O!cfpg$+R$dZ5$g_djec9uN#U-;BR*9)HentV=^=>@ZeP= z$5ID@TQw9kD1zvsOaqnc)i%-M6S$Mils^Z&6#t@J%hhi@64}RlR~18Hl?U18yP-wk z4ihJP?Y9H~M9#F8>@?>#biz^8@nI-wS?2;t>&*Ehwkk{A1NEd!K6Kqu283#(f zzW;x|Xt%c#<0cNpS3D@f^(4aM@^BH(Ki(?MOX zA3XFKQTQo&s<6k0o8nwP1?EdW>iCe`Ey+aHa|xI%#^^8b>j^ab0fm(%#sD{k37Zmz zV-guxfe8ZL^WcFau>{y8xagG+4@FnYfOP`h(t+iZ8`6`I>B$vfg5^hYx+Z_*tmz{i z0w1yYp=-e9dfFe_ZTcan+I#Ren%CsWz?zJJx2vK+mux8MtJn)Iq=VXJ+6&Fidm)v3 zu(fdy_EYWsq4M7UuG{-fUIY8f=`yFbB6D(%_mnedbs%%nm31G%outm#hAGL|nrX`R zK8kFY*Sy=#it530N;=PFZMCM_dk~sreGdJd&fTWecUS5=Ly=`?$XpVGu(qpo3w9Oz zj&#GSBU!2Q2itCDsScK%(7uZv(RR_oCp}Wrf#+yDa5}s9f4v-5P&go50001x1^}G_ zDm(x@06uXlk4L1Up&>iqkPZoH2yg%_ZTbQ901mBg7q4U{>%DT2c8J~{#fJN?Kp9$1 ml6(Uo0RF!|ulRKa-NmkxYT8lj{}AjCx0R3lL!k@47ytm5277k^ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_select.webp b/entry/src/main/resources/base/media/ic_mine_select.webp new file mode 100644 index 0000000000000000000000000000000000000000..4477eb3c1928628e2b7bd9855415d9917cc0057c GIT binary patch literal 1192 zcmV;Z1Xue~Nk&GX1ONb6MM6+kP&il$0000G0000-002h-06|PpNOb}L00EGL?Y~+l z=h{=rP2Js_7I$}tsqVURCv1f$8#+}sJh0ZAryK6>4s~}A{EddisFE_n6Z6g#nP0dpYhYm|EqY!wU-2+PkAzm!o&rnn2(Ry0C7$3OE45N+&UZ zlciz0@u^TSh)RWz-e(O4vr^w9tO5gC5vBusxdMq&O205u!6XKCGT%hY+Aa)i#~RwZ z=Pm~Kt{2_C>==b-)M2I}=pJU^y#N}D6c#8&H0|7b%*6LjWKuCBQ^-@xtdNNl3yrL3 z6iB2Guwo#c^j%b0p^AjB{B_JsiPy&e7CUbEX%qgD9UsHAiRorXcMM@!IPItI_FV05sBTvYol-+m&ck22+jEpg zq%YrQ+1IMglL&-Xw-QO#-`~BrBV=)CGPVUFBpK+eprDP{V!6cgwB?fwMoM*_= zlYN+^Qo_OJ?Vbk}mo8Vo9D&W-2>H}vFspnFQ;!&?J~BqV){)P_)Q{`**N+2%=`no6py6AUGlN-tPexsb?#Af^-0Do6lG06vX8m`9}}qMk&-yazq8;sGJ_JmA=p<&Vvvl(d!MA?3Ov7~#h;Ac zk(0>;H_j8N1^e&bJk|VS0FXaaH|94ifB&pFE!tR;yZ@IJ*3vIUyVm5zK1|ZQ3zj_x z%*4=M>EM}7uzi}x->~*shuGc$yVRM#Rqp6z7bhLhrAV>VWt!QRqcc`Nz4KCdnjIpA zI0I>yb}x()fB)CgFaU)Te{D4~1IeiVU}C#<>56BdpG{Xnf!e7L^?4Y@k#afCp*$){ z1+ack;Xr$oK_ugHyr>>S^J5+NYc4>FA9yF(n2&JINI$@>i|v+4?^)sFZHxn*^KaV# zX<2EHU5|N)Peq*9`i+V_hkqYks zO-SVDd$q66uZ%vSM@Vx98uUdVY)y(&hY0Mvuo5f)mtM0omit-$DpT6&58v?M>uh3s zK$9=P7ZnX{b+XMAN~aJ24pbjdL-ah3URXp_>@k`(m6#B4s0{r%W$b>gEAvvWr*#V; G0002O)j%Hr literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_top_bg.webp b/entry/src/main/resources/base/media/ic_mine_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..d00bee7feebc13895d6016ae5c5e915128dce6b5 GIT binary patch literal 41722 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

    f=r*4D-eY=TEcV2M{4kv1|t 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_mine_vip_bg.webp b/entry/src/main/resources/base/media/ic_mine_vip_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..346c32dc42b2816f1f1e6d5ca9a1ce74887dbc4b GIT binary patch literal 2320 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 k#~X5YzwOjlLAHbd)MehIr0Guf~KL7v# literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_notice.webp b/entry/src/main/resources/base/media/ic_notice.webp new file mode 100644 index 0000000000000000000000000000000000000000..b52953b74d22705cfd955d1ea7dc6712fdf304b5 GIT binary patch literal 5102 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 Qbj%)4i~s-t000000KfdRTL1t6 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_notify_icon.webp b/entry/src/main/resources/base/media/ic_notify_icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..94f365dcbe1e9ca4d1039aeecbb98dc47105c2ca GIT binary patch literal 7926 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_onekey_login.webp b/entry/src/main/resources/base/media/ic_onekey_login.webp new file mode 100644 index 0000000000000000000000000000000000000000..a23110cec21945cee6da19554dd0fd5929d37f92 GIT binary patch literal 1738 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_pay_false.webp b/entry/src/main/resources/base/media/ic_pay_false.webp new file mode 100644 index 0000000000000000000000000000000000000000..b1d783279b1db9032708be406ed0d11d7932c4f7 GIT binary patch literal 594 zcmV-Y0oc?z-=Q%=`q7V z-yjJz8vIzlh~k%S_a%-l)_(+}l3rf0bb0m0K)qdEE(KmnCbz23B+zqpYcdVF)f!+Q zD%FMhN@Z8et^zxeYV+P8;`1sSNq;^A!@-hUSTM3_ zb)Zo)3CQj@v3Ca-9ZFcS5X~4#EHe{U^z{-FAajXsDIeTXbSbG@v- zb2sC;!JE0`eYH2{Yj9x1k<0Cf_g@rDN~0nPb8?)-V}%0Y*P(HmY%r{T@v2% zyd{xQJlRHFFTf z@Yyw=A%203YclZC1>ZG3bhXf0(KCC8%Vj+C63lIzoPm^yCu|8UMqE?odtP&go30002c1OS}@DmDN% z06uXnk4L1Up&>cokPZoH006<~Rug37C)Q`Pbg9bc?f>M>HUI$r`y;Ne|NWqXkw5?a grJO(i{h)vaPyg`guK)fWCaM4b?I{5NYhC~V05Fsl3;+NC literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_pay_false2.webp b/entry/src/main/resources/base/media/ic_pay_false2.webp new file mode 100644 index 0000000000000000000000000000000000000000..2ab34e7a32a0ee2d12ebff7a4814bdf7e0c70b17 GIT binary patch literal 842 zcmV-Q1GW58Nk&FO0{{S5MM6+kP&il$0000G0000u001}u06|PpNbmsw00EFAZU3T3 zf20|A_lV*EL|mc!1{4_~5#fZMQH1Nh8*>25NST@3-6Q{3b^qU0O1vWkrMTX8Fp{Oy;V*=?->IceZio(^~#rBir2( zp&@S@F!x9GLOMAW3&p0A=|cVJ-T>R)P^f)UKc0ZySD8ffhv_6TuXcf_AE|b6au)%d z=9hX@YxOMUPa(L-Ic+go)R^0k3#wf$e7rU2;%FPpf6@3gFRa>E*sJ;IFY~Q?HGubX zq0U~}+KJzg3d+6;uu_7w0BI=gKvIAt?A*YV08?|o6&;)Oa5+>#RE zsc=?h|63vthkH$C@Z06JbpQbVBuh7&;|~7#@;|MJ#2P$R`g-qFFdQ}L*T^y)mMaX6 zOyhB4UVhUBv`hc;T1lh9+-2yI>;MO!Io0WWhfnQXgwN{AVjTq?u=uU{&AkVoq{7%* z^iOhyV*y`Tp-=z(m(ZKi4}oIH+GkcL)vQEKX7C~IEI)7+naf_Q43Ud`A+1$vK+ U95!cu!An6`2>wUoXaE2J00MTKQUCw| literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_pay_true.webp b/entry/src/main/resources/base/media/ic_pay_true.webp new file mode 100644 index 0000000000000000000000000000000000000000..34f6d83115a94d8757267405f30fa6063ff7a4e5 GIT binary patch literal 836 zcmV-K1H1fENk&FI0{{S5MM6+kP&il$0000G0000r001=r06|PpNHGBb00D4YYul6j zB(+N&VFp%U4yu0u7NBMYL+1+2Kub#v6$_ZN|7X_!dmSJm9Jy^HNmB3KGp8iwH;5nX zxuF~v_2PP6)WukaZcpfI`0=b<(?{3kEcOje`f0UN^i{R0(!LHO+0f56a`Y>9ly6AG zO&-}l(MeiGTB&fx1C`g8Cy=b)hO5)itONMNI?H_h| zDmDN%06vjCnMtLiA|Wgiya2Eg31)2ir~$Hx0b%@zLk+y#`x;;y%t+8e0jwqL#5icX zJU49d-r^)Eb@71e*VpR}JE~2Ona=hJlD_AFI#_KoRxCd$wHLtgX=x;RH@w4Y=;3~>L@oyaoLX%-_|R#VE#r~qqb8O`8Uqe(wOGJ!5Qfzo62FdHbd?X>E@)LSzf_l`qq zxV9}flpMBi_3w7x6nLcvN>xds!O5v z#Tg*dq{Mkbe`G)Z!A%8l+?Jb_?eIowmiKLr9{?uBv&r*m_{`ruPnWPF3QXvnJ^L#~ OzoSJz|2~S5KmY(5*Nr^@ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_pay_true2.webp b/entry/src/main/resources/base/media/ic_pay_true2.webp new file mode 100644 index 0000000000000000000000000000000000000000..f2d78f058fe909b8589a6134ba956461bf949334 GIT binary patch literal 938 zcmV;b16BM|Nk&GZ0{{S5MM6+kP&il$0000G0000r001=r06|PpNHGBb00D4YYul6j zB(+N&VFp%U4yu0u7NBMYL+1+2Kub#v6$_ZN|7X_!dmSJm9Jy^HNmB3KGp8iwH;5nX zxuF~v_2PP6)WukaZcpfI`0=b<(?{3kEcOje`f0UN^i{R0(!LHO+0f56a`Y>9ly6AG zO&-}l(MeiGTB&fx1C`g8Cy=b)hO5)itONMNI?H5dH7+1DYq6{0;bf*N9q0k&Yx|+_OZ$oYURy6_!1Lv7ZnypKLnzVp9`~-%=f6KMBA}vI z@OXkEGb@W1okegI`2GdbwN1X@0RFCyM~v%3hTE#Msq#oS(VLhyf^lKRh7r+2ExGI= z%-*s+_aIZw>_S;ehnE|6MBdaMQk0{=(+l(8KL@45}s|-Q;@$AMn^7YkK+6Sv@7N z#wqr_hB7kYF1>og^fsQ+n47)nF!kttyV!;`bh{SHMZRaY4&_kYgI-=q$n*qG*uz^W zSrw^SRohvIRPCEibCMxJR5CEua@V6f)PYJ;1K8lwXN!$D4O}i0cF;59P5fukO_sJp z!2}y$mwLWI_nD;Df`|(1@&;rh!J;dr{8DsHVZR^kcZuEqj$~6(<;d>bk0}!bs&hyh z%fUTgI=5n9*Y@Jea;cqeHu-4}ndOU6dv;rkMQ6~%$VGpoow@RYO+>v~%nE1fvyiD% zmt29TWcKa;I@-cz4VQo8Y-R&g2517$?*nz&i6vG->;LtCAJ6`Q)p87SqZ`>RHc(Hi z=%O6f0`i_}`)97EzE5qLKpeuzvI%u`&^p!!ysPv72FkEo(ISf^BQ_i8D=|K5zpPFk M|D5mX$fIZg05y)sZvX%Q literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_placeholder.webp b/entry/src/main/resources/base/media/ic_placeholder.webp new file mode 100644 index 0000000000000000000000000000000000000000..7af9197b72a8535aaa451300116ad2e6d6253e48 GIT binary patch literal 3178 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 QQg*~n=)Qy8`~Uy|0AYR{>Hq)$ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_placeholder_black.webp b/entry/src/main/resources/base/media/ic_placeholder_black.webp new file mode 100644 index 0000000000000000000000000000000000000000..94f195de45ee5c7a954ea60dc5349f0ed7b39a68 GIT binary patch literal 3056 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_play_video.webp b/entry/src/main/resources/base/media/ic_play_video.webp new file mode 100644 index 0000000000000000000000000000000000000000..68cc15101b2d91dadb03b659ecbe1749f4b6fad1 GIT binary patch literal 3786 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 z zNEI@&U2MEmlWQM2ly%lU?j1!mXnX9(n?Ekts|D@+J;xKA9+e>=5oXjUdZQQ}qB5nA zro+|ATk#u44Dsy~TgcX@D zX|gXXonY2Wj3%k$bp|PGv<`}V-~0gp{x14dO`zA}t}cT3bzL7yy?_+djg2@>ApQVj z_bjLJiWc}H8DbN^woHb-kWJLwh}4ljU*qqf&qAVuR3Ws({bfZMKh$$x6ypDceJ2;) zf|)Qj6v$dtrUsCS8cN*uvv;S@Z`O0LfB7c(TXm@lYri*D|4D>;FSi2@r zBM#I{d}1c=pk#(9*1&?^e0+v0cf1IiF|ORane8?^M**SVbnCrLVz;Hm!GrF#ZKOxB z2^z?cUZ(AXdLKjzscAEvJ$-J1>9thY&dm2scz}H-g_@os+HcmPoUtx@IS=` z{{LS@OaP=R$*SS{x7VJ${rvguleOEvYpAjWe2SXwjlL+;2Fou-JzEnwFb9gIm?j#R ziUTHNinTyfUa%B)6lW@=sfSaJ!iYW>P$q*podMzGO+uNC@);qm-sPAwOeQ+hY3ln% z*{*!biYdr`M41nB&53pNN0h^$(3()k!*}dc?jya9<69KLIi-eh`8NiEQ{(t5MR7{0 zc9Gx^TGbv=Bp0e&plF%^&~z7%0TJN*8$5~{z@-3>k_|_$Q9NT$>X<`>j>_l0V)8;Y z2qtC2rKq|-F8+O7Ztdf;^bVK#LtIuOTsE*d#AW3jE{prPEZxWDmXC|?;^G=*Ov;A( z0+Sc2Jc`MvEO{{=u_u9D!lPsZXhl4V8h|)}$AAa`CLSjIzktO8RJB4JLaUlGg~OCm z4V(ajz=4{|90qerEzl$WA|2|@6W&N3>ds75_^M1~>JvIY@%5=ws1G0;@)TyFVKEo* z6Xe9kpt(SJA%$j0vUP;;K}K33+15h9Lr`diq?>agdtt5_k{7d|Dr{9gWkpD}bAqr$ zCORQyA(M~TiSijCEdbEx0ycs<9oSTysW828%29w>#ac*f!BT*2bD&s?lZi{k0Tb94 zHQO6~QEsICV$`!W5%`p3)o}fLI|t8Sy?TDIbI*4TRhA%C09H^qAaVl$0Pqq3odGIN z08Riti8z%2Zf)le<^lR~(sRrQ zL$C6lpdBOI#oye2?)p14X`6};P6EKP7(Si!WT|$W%SzJ1!&bFAZ^r`Muy-bg?US6K zYN8CG-niw#?{*gTS=CP520Uil9J#g8LxU`r-T2aTfuWQrG>LPNXx>RUOk#h{fB^pP z`ak~e@BiJzfB(cnA#jX8j-=5VB`-GZT46kL*u$p>lGcA~$%l`1BRA>;I?BNxiEBQ? z82Z>j1Xp*T|9vbRGvp!`&gF!Qd*YMCK)@P@%;17;b+G-ZzA-IKs)WW19-ai zoMG}qCgcUv@zIQf!dge>Bye_tsP8A>Z4VDV%D*pKjrzi^L{FI5h4w>GwCqn$94bLY z!z%<9>vuW=Oi*NBE|zVBiJiQQ1GWd^$5@Av;wz`RU;x084)xM}KlE!5I3Ni)<3=nm zWaF$+b#->o8(+N`V0e_v_Svt`>Pj;i&mVF~z$JPzl0}yTywh~s^ebDdrZ`S<3Z9(c zvm658Up(Km0o~UE$3oN*Izt;xd9MEWb8aLJM+pe|v&Tez1tzP+hl`-nKoJ*7G$KK^ zcWV=wm|a62PT3g+`8r0gbAVfqzrom&V1owySH3EamYzg$q}_EQ>C(8rp{R4+(#70zn!1lD4dB*l$l$zYpLnt`GffpCsl2>nq>c3{meMe46AJ)%)r2(44ec%$Le%&c;;{aI^8KDy>Kf{i;*A38!T^am7CEyTm!Sz)ul^p zsMrrVkE!d^y@p3j+qff;B& uPvZ9LG(EON?zWbv*YyAOzOg(QrfYxecCuSWM8ZsQwd_i?{7}kT0000FcPx$kV!;ARA@u(noCZ^Knz5mxdDP5V#yugEUW;D&x!a*d=_vOIK(UwJKzYIiNvrN zl61P|jv`XMoE~+h%I&ff*_hd~nej!0|9iw0VMTaN0e9a3c7YS%5ZD3UfJfkN`TMJx zeMJaY11tMVyZavS0PF(|`PFJjJ_E;Qwg@8JhxGy+qOq+?{B-O^!@UrX|ygZ|LRHa%s8ruL3GdsgDz>GPJ&5;|)fpCDW2= z$+U)gkzO8BO39^L6v}M|RF+hhRF+hhQf9l_S6NCarLv^51ggWSJn7i4kv=l5R4{6& zuGUhmrCQ5TTg!J~t0&hZ2h+l_N?iI1IPDodyfL%$l=%(WclU6t62i^E=RI&R(r{@g zRte#*@!_ZCSn=&hPx&d`Uz>RA@u(o6D;XVI0Rl-|R$oC~MYs{t(GZM9Jo$ z0VV?Df#1M8;De;3DLW-t;Ur1M0`q~nz%<|+a241E^h)~K1n3~(BuPAP4zLrLFa*rX zzDgC}0&JJ`D|YBmU_%}RX0`x22do78V+Iceo(!A;X0!md+V_DSz!6DbV^lj7cnV+z zrw2fM1}*{1Bs~q7U+I)GfOCL*=?T6RxDu1vWda-g6R;Q9Bk6IaQvT!5$_Dn|+FadE zZFY~O>vcm{0h}{_2i5=wfWf+)l`4S^{sXuOY?5@j4z;TWHlxkg>&$#@tNK8z12`Af z@Ak=b0oDPJB-uAFebfn@!`;o)J|XF2*~Bpbo6*k7>C9PqQzmpQz&Yb1U?I>a=}Q^l zu>qTL5ZLFiQ_?`Ep<@I#qiuG78hS30bgh%nu>$9eez!L`G?nze6X3A}o6(t-3t5uk z+W(rbCIIKczOaYpU__D^q0nd&umSCy9L;?4=S4CrO#{wVb*yc*kGE^SnhI=idu3-+ zGqyyMOIPt|+6&B*BPU~3TVW)UpYj%p~Mu@oy zof9LlQ#nrJ?UeK~6eM(BY`{+3EdXw{8|O9+*zc;#E-NIx4So0`^I}lgPQ+H=lq6>< zOC5CryO?$?b0QvBRWGgs*xr)kR`+(fx==U+S!63z4Qz9B-X2q3?GIG~+hcOe!=Y|( zdGNb>(=AMr`igABPF_>C!cL#=&)Sxrbn?NA-m6StSN40dT5qKXQ`Nq-ZK)5Y<&vHi zRidoxLKO~eF14yosJXc`8dZlbUMO%#`>@L%ZXbU5zcFiB>iWK+z@FEtLEMdI+sb^< zPTe~Q*nc+U6M%WZ)T~hLb_DlF`xAiZyWxWs&Q~}4$YWBPF&vlGY8|`Q);C#1^MuB5grIXL}2O8UkOscu&@_ zw#L8K9~w07we~S+Y6>Ld; z(0~MDfg7y$!-x7Y_yj)Tppo|hK%x%?Z&%Eff<`knFXa5f@f+ba zPq0m9o{J*4)l-1maz0v_*>t&_*doxr=iWGZh**(KfY>$H z6d6A%$C+j0w`KbvEW+`%5l->zyPlPe5xfZLC&te1aE-5y0NLO7ogLU1{b0k@0+4M2 z#9);%=411ddGUexhVGylJFs<}y^HUFPvEnOeD>$ml%GjG>~||1!lL#cODOKC*L~l~ zRG$)Zw7b_8=EM)s`>h9j3%G3rPL7MlaJWV@5-<`l5-<`l5-<`l5-<{YD}j*v(!GB5 z68P5n>b~_ydJ9$N^m|n9ldlWf2K+^txJkCa(jsZP&@rRHbUTx_R-(PV;EcZU2Y0#@ zJ+b_yrIDD;b>D|6UwKQFxfx~1>lY_|D`w%6g zI}~lGbG+TYI3z70Z&%(|k@cuJdTCZ)YF~cjFdfIJo*EIxaVX5xA^qv}L!9$^Y0mr* z+jaqSlc-w%h5nY&zFdg|3BKC zr-KS3nvWKLD?`_DgmV4mOzwE`C~q-Z+^Raq6v*sb`gwPK<H?u^aSkyH^^;xOq)^em%_ zW%Ky8Kh1PeP!)YG&(o8at$fut!=4CNZ22@<=YI_r8^qt5*F3K|XSK z`R^s#3($*M3)w#E(~F)qh$c^deOV2ci$Em?CdP1Ck&Q+;cL+n5i5S{`k>4+PeE6v9yO2n_h~Q3I z@swyEJIxfJ)}Au`wD=*~L@ly0P}E8JnIKxc-NNfCmaDEKc*AYZ4^6*ML^mf zM5crv1xc>))-aJvqZ*NZTJ!m)%C_k|E83W&c94czZYI+u8r13w@311KP04eZzQ?^CLOKSE6`I8!pII;Rx}4;3slA1RWOx)MR+hCf#@D(8xlv7O z?;{zXj?)Q9tw4}VZI04iZ5}&IsQsT^hIEf^b|%$RuKCfws#^8|^Uiz3O{I29tjI^R zy~>O`&vfL-T{7x*^iQuuDtj(I9#Hs_n1yC<{UI2WMgm3xMgm3xMgm3xMgsSKpg%VO F{|3^9f=K`X literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_reupload_video.png b/entry/src/main/resources/base/media/ic_reupload_video.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf33984dd453cfacfaff502a9b69057ffee18c3 GIT binary patch literal 1433 zcmV;K1!nq*P) z>@yTR=nbA_3y+PBO@>+U5qu7FVV8+CR+fShwl7=(d%^B7ALb!?3Ta=yD@9)9@fH27i1GX=0OWLx$(-><`&FrC}M%#?a|5e?)VJM>3+PmCOy6n-Yo7vLB84W5CX-I!yAWht0e^j3KnDn{XQxCvj;jk(50 z;21a*Tr8kU+p-jF=m^{hZ^N4qign4yKjR_lJps+7~Y3} z3L4Sno#Y<=gZQ>7TfT;!cYen&`S|q?=^HRmRu=p+>SlwRQKLMC_^e5>(cm#_8k`8n zf%DatKew+)FakHj7qAYBg*yaJL)bF72VBK;x4pdLz@hXl5?mK9V)w*05!-FquzM)>5h^~+HSRJl*`#bb(YVD+(lWdA zYpq=8t0EY&y}GeoV>#z7Lu`5T8Ta-xVs65*MBuKc*D%?Zeb0AvYmEeRl7rHXR4R94 zM{HaCz68Z8&<*+(#C-^K%`xT`3eGD?+7=1Mbq<^cVK=7Onu5BkxSBs@Z9@3!(gy_S zSaSerXkSryk_L*lQOklaqEel?rEwGoyhc*Oy)a*EAhgK7q2w;aXQYvp1(*M&sB$KS zPl(f5;#;H@D+~U#QX_qbBk=~p^jdw4bT-}CHx$TLtt|L{s(3OZPQ~fWYOj3ce(+{>ITrFemwD+wJ(D zg;2B`Qs?8l0Y<2|DG|1M@)HS0Oamc`_Fn8}lzH7^UEge5%57;s9XXYqnSSb|&V-g;lenr(jhe+Adw!y?qs^-1451JbeWl zeMhvTvt9fTd_RJ>uPhh%#ubb>2eJ(aUjc`~(Xa-RdP&VVC&GjTPvnPksk6fg-U0vs n|NkKPhphkr00v1!K~w_(NnO;Jza_`U00000NkvXXu0mjf&vB^_ literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_right_bottom_rect.webp b/entry/src/main/resources/base/media/ic_right_bottom_rect.webp new file mode 100644 index 0000000000000000000000000000000000000000..144e72e7491b3983fab899c14fb30936ed6260ff GIT binary patch literal 696 zcmV;p0!RH)Nk&Gn0ssJ4MM6+kP&il$0000G0000x0027x06|PpNK^p;00Dqo+qTo_ z%X=x8#=9E4Z-6eyh^d4W3XmxPQbIbA3rQjTX1($Ad3Oqk2uE()NRrfh_sl6(<$OU{ zS)Uv~dSSXRjVbqO=sg}!>VnDMy+2dJ!COcRqjJN@(RRYr_vSGC`n zt~4ilHU0e@NMcn6znvN`vFkQ|a=qned;N0&M1~&|jlT0%5WwQ?`-n{lV$%J>(HOKN zgy_WtGVTd+pQFg{MctPuq+g%R3FdrqyvDIUepEQrqeno!5J{LKN%u(hC6dx0F<7uS z*iW#3gsn;JSip`!?AXW7IoP=lI>%z?cIcXdUCW?rD0c0JW(I6lfo3FVHp6B@WEO>H zU~KkAW`1a|f$VXRz19Ef>7c!&09H^qAT|L20I&%FodGI506YLbkv^J8rK2LDBo08Z z5(#Ml72q8)t17htGiNy|=dX2DMO)iU)Yx{S(~=-ciYE+`xlavxBM)GpA$$}{_+`r{#qaZ%Mbtmm55s?w#Up+j*A@0{c@A^4~fW9MlXZ6#=j>2 zAb=t5k=qmL|5v^a2)^_0doSnC#SP!{`~F-Gy}kF#8v|}+8C$pAHxb{XFGs5yQwbV_GSw2dUj$B zGJ9)r9}C~bxIDg(c>OdgS}8BAQ{a0%vVb3a?H@12pv4PYz05wX+Hd!-YvZ4h0UEbU ebBvLd`2<5A)%8Jekq`amNMHYtK{x-$o&W%z$4+Vh literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_scan.webp b/entry/src/main/resources/base/media/ic_scan.webp new file mode 100644 index 0000000000000000000000000000000000000000..a7b460ce6dd4e9ec9b02e69f3e34b5e51a87ac3c GIT binary patch literal 838 zcmV-M1G)TCNk&FK0{{S5MM6+kP&il$0000G0000-002h-06|PpNSOiv00EG-ZF?a} zNmq}J_Ik&*ZR2Qd+qP}nwr$%Qw5IC&BdJch)9a&%m;m&5-aUT6%I!Plw@+6wsm5*J zX>;@3`i}NfY6m|Of%=-BA?Sbv)W#$EzSu7AJ#I?CXdIxRD>MUZ%l2f29fUbQfY~~h zp;}}D@o_4f#{#h9i!?;9zaudLd`ZR(%05kUt&i{AmcOy1LSPVbHs8E$^X}_58MqzF zpt}X6c~_=EXH)Bg5i9oA>TGxJ_E5$;%av}VM11P0L>vdKwEzG-?@Z>el^h)K(m>6XyC6=0ssi1*-6~g@|WI9Br@G_ zf`}#}^?!i1#K}PZx_&1jX)?Y87)J~I1sxGVJf)<;HQNr1QX&3v+_J-qLl8Cg_7jj( zdIY$mKW`yn(Yf;uJvmm7`G~kLfrHyN`SQ_U0*8N$;G+)*A0qh(xg$Bsy2ghOA#%yd zQw}{cScUocv&3#5*eMi#Iv-4zy>LwrPbUxxcHh~NP8Ih~gzx?)}~Vlm<}hMX=;cb#3&Ru*`gGe zd(e5U6M_9m5MnQWDl);bKsvtzz--*DMs`%hE&s?OF7u#sUm`MCuM7%C_VtLKbhVZ0 zdK9KZkymNNcl#Q33gkdlL~^Rl1UJO&mXK;Qv6CnITMqzMP&god0001R2LPP`Do6lG z06u{-lt-l_A|W-X0H6>FX$X;w0I&f10R8{~Q9fF+iR4$ME^N#XDzS;zTM~goY&c}F z2|N>GxOe~n{{5U6{lz)|(1I{e|M~*3YsbT;U;pNNXm`4Mf{EX20XN_O^YWnxD?j*H Q1P}lJpdvOeyHNlD03U~aZvX%Q literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_share_material.webp b/entry/src/main/resources/base/media/ic_share_material.webp new file mode 100644 index 0000000000000000000000000000000000000000..b3ae20956be33030fc56daa65dcc64c4cf5e9565 GIT binary patch literal 736 zcmV<60w4WSNk&H40ssJ4MM6+kP&il$0000G0000r001=r06|PpNMQm100EGNZQI#M zUy_-OXR@|!+qP|QkJcQWt!>-3ZH;YX?QI9eyJ-LB&+0THCV>8>MX!?O?JX`b2?fi# zt02@{a5^}}-p9Q~mO5u**DH3(x+Ei1JmSeR--J9rd*r$KP}97_jb&OMVCpF{3A$VW zhQNzw?cCCUSWDjq5Z{QYP7;8m-X#ktcDfRK<=24uWB~@z+X$qVChk2y1LnDsE#(ZL z?@Rn$mgNFp2iqzY1_YGg=UHu7Hh_eNHp-^}=L>LfEK;S{qMI3JShXDVU^%O(R-oU~ z+b=C(jV_}Bw;7=y&9L*77dMXq5wL18yiJb_y{89|)|z|fprl$Z;Q$7c zs>)d)rMy~=vVd2v+8g~9*h`ud{LR2*?a3PeQ#0+k?g2hm)t=;&Z+TuqdsND2V<+i1 zAjwIf-+|-*)5QYXC~%&oR0t4ILK`Imfv{56yiNo9-rDGE08V>Z6TOWynIG zFed3_Vi)RopAAdl9D2sPoV S%ulz8IrxbH8(+tZ0000?Mo5PM literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/ic_splash_bg.webp b/entry/src/main/resources/base/media/ic_splash_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..7295f886b3918b1f660bef7cf32fa5ea51f2f137 GIT binary patch literal 139144 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