From efbcd71dd7f34df45c2c1409f65a0e667dd373d8 Mon Sep 17 00:00:00 2001 From: yuyl <765782212@qq.com> Date: Tue, 29 Apr 2025 18:15:37 +0800 Subject: [PATCH] the second phase commit --- Android_Mireo/app/build.gradle | 58 +- Android_Mireo/app/google-services.json | 29 + Android_Mireo/app/proguard-app.pro | 236 ++++- Android_Mireo/app/proguard-sdk.pro | 189 +++- .../app/src/main/AndroidManifest.xml | 110 ++- .../localee/mireo/app/action/StatusAction.kt | 26 +- .../com/localee/mireo/app/aop/CheckNet.kt | 7 - .../localee/mireo/app/aop/CheckNetAspect.kt | 36 - .../java/com/localee/mireo/app/aop/Log.kt | 8 - .../com/localee/mireo/app/aop/LogAspect.kt | 96 -- .../com/localee/mireo/app/aop/Permissions.kt | 9 - .../mireo/app/aop/PermissionsAspect.kt | 62 -- .../com/localee/mireo/app/aop/SingleClick.kt | 9 - .../mireo/app/aop/SingleClickAspect.kt | 51 -- .../com/localee/mireo/app/app/AppActivity.kt | 6 +- .../com/localee/mireo/app/app/AppAdapter.kt | 2 +- .../localee/mireo/app/app/AppApplication.kt | 146 ++- .../com/localee/mireo/app/app/AppFragment.kt | 7 +- .../localee/mireo/app/app/TitleBarFragment.kt | 2 +- .../localee/mireo/app}/base/BaseActivity.kt | 18 +- .../localee/mireo/app}/base/BaseAdapter.kt | 4 +- .../com/localee/mireo/app}/base/BaseDialog.kt | 32 +- .../localee/mireo/app}/base/BaseFragment.kt | 12 +- .../mireo/app}/base/FragmentPagerAdapter.kt | 2 +- .../mireo/app}/base/action/ActivityAction.kt | 2 +- .../mireo/app}/base/action/AnimAction.kt | 5 +- .../mireo/app}/base/action/BundleAction.kt | 2 +- .../mireo/app}/base/action/ClickAction.kt | 2 +- .../mireo/app}/base/action/HandlerAction.kt | 2 +- .../mireo/app}/base/action/KeyboardAction.kt | 2 +- .../mireo/app}/base/action/ResourcesAction.kt | 2 +- .../mireo/app/http/api/ActionPushApi.kt | 14 + .../http/api/ActiveAfterWatchingVideoApi.kt | 11 + .../mireo/app/http/api/CreateOrderApi.kt | 15 + .../app/http/api/CustomerBuyRecordsApi.kt | 40 + .../mireo/app/http/api/CustomerOrderApi.kt | 37 + .../mireo/app/http/api/DetailsRecommandApi.kt | 38 + .../mireo/app/http/api/DoBuyVideoApi.kt | 22 + .../localee/mireo/app/http/api/DoLoginApi.kt | 24 + .../localee/mireo/app/http/api/DoLogoffApi.kt | 16 + .../localee/mireo/app/http/api/DoLogoutApi.kt | 16 + .../mireo/app/http/api/EnterTheAppApi.kt | 11 + .../mireo/app/http/api/FirebaseTokenApi.kt | 10 + .../mireo/app/http/api/GooglePaidApi.kt | 10 + .../api/HomeDayMaxRechargeShortPlayRankApi.kt | 2 +- .../mireo/app/http/api/HomeModuleApi.kt | 2 + .../mireo/app/http/api/HomeVideoListApi.kt | 2 +- .../localee/mireo/app/http/api/LanguageApi.kt | 26 + .../localee/mireo/app/http/api/LeaveAppApi.kt | 14 + .../app/http/api/MessageSendReportApi.kt | 10 + .../mireo/app/http/api/NoticeNumApi.kt | 16 + .../localee/mireo/app/http/api/OnLineApi.kt | 14 + .../mireo/app/http/api/OpenNotifyApi.kt | 10 + .../mireo/app/http/api/PaySettingsApi.kt | 15 + .../mireo/app/http/api/SendCoinListApi.kt | 39 + .../app/http/api/TranslatesLanguageApi.kt | 12 + .../app/http/api/UploadHistorySecondsApi.kt | 10 + .../localee/mireo/app/http/api/UserInfoRes.kt | 2 +- .../mireo/app/http/api/VideoDetailsApi.kt | 13 +- .../com/localee/mireo/app/http/api/W2aApi.kt | 12 + .../mireo/app/http/bean/CreateOrderReqBean.kt | 8 + .../app/http/{api => bean}/HistoryBean.kt | 4 +- .../app/http/bean/HomeDataHistoryBean.kt | 8 + .../mireo/app/http/bean/IncidentBean.kt | 3 + .../com/localee/mireo/app/http/bean/JsBean.kt | 9 + .../mireo/app/http/bean/JsDetailsBean.kt | 10 + .../mireo/app/http/bean/JsonInfoBean.kt | 14 + .../mireo/app/http/bean/JsonInfoUrlBean.kt | 12 + .../localee/mireo/app/http/bean/LoginBean.kt | 10 + .../localee/mireo/app/http/bean/PayBean.kt | 11 + .../localee/mireo/app/http/bean/PayResBean.kt | 8 + .../mireo/app/http/bean/PaySettingsBean.kt | 68 ++ .../app/http/{api => bean}/RecommendBean.kt | 2 +- .../bean/TranslatesBean.kt} | 4 +- .../mireo/app/http/bean/UploadHistoryBean.kt | 7 + .../app/http/exception/HttpBodyInterceptor.kt | 39 +- .../app/http/exception/Token402Exception.java | 15 + .../localee/mireo/app/http/model/HttpData.kt | 8 +- .../mireo/app/http/model/RequestHandler.kt | 77 +- .../mireo/app/manager/ActivityManager.kt | 13 +- .../com/localee/mireo/app/other/AppConfig.kt | 2 +- .../mireo/app/other/DebugLoggerTree.kt | 19 - .../com/localee/mireo/app/other/Logger.kt | 21 + .../localee/mireo/app/other/MaterialHeader.kt | 2 +- .../localee/mireo/app/other/MsConstants.kt | 65 +- .../app/other/MyFirebaseMessagingService.kt | 231 +++++ .../mireo/app/other/PermissionCallback.kt | 188 ---- .../mireo/app/other/SmartBallPulseFooter.kt | 2 +- .../localee/mireo/app/other/TitleBarStyle.kt | 4 +- .../com/localee/mireo/app/other/ToastStyle.kt | 2 +- .../mireo/app/ui/activity/AboutActivity.kt | 28 +- .../app/ui/activity/AccountDeleteActivity.kt | 132 +++ .../mireo/app/ui/activity/BrowserActivity.kt | 23 +- .../mireo/app/ui/activity/FeedBackActivity.kt | 321 +++++++ .../ui/activity/FeedBackDetailsActivity.kt | 236 +++++ .../app/ui/activity/FeedBackListActivity.kt | 108 +++ .../mireo/app/ui/activity/HomeActivity.kt | 845 +++++++++++++++++- .../app/ui/activity/LanguageSwitchActivity.kt | 214 +++++ .../mireo/app/ui/activity/MyVipActivity.kt | 462 ++++++++++ .../mireo/app/ui/activity/MyWalletActivity.kt | 321 +++++++ .../mireo/app/ui/activity/SearchActivity.kt | 163 +++- .../mireo/app/ui/activity/SettingActivity.kt | 25 +- .../mireo/app/ui/activity/SplashActivity.kt | 72 +- .../mireo/app/ui/activity/StoreActivity.kt | 591 ++++++++++++ .../app/ui/activity/VideoPlayActivity.kt | 761 +++++++++++++--- .../ui/adapter/CustomerBuyRecordAdapter.kt | 40 + .../ui/adapter/CustomerOrderRecordAdapter.kt | 44 + .../mireo/app/ui/adapter/HomeBannerAdapter.kt | 6 +- .../ui/adapter/HomeCategoriesTabAdapter.kt | 7 +- .../app/ui/adapter/HomeCriticallyAdapter.kt | 14 +- .../mireo/app/ui/adapter/HomeGenresAdapter.kt | 2 +- .../mireo/app/ui/adapter/HomeShortAdapter.kt | 7 +- .../mireo/app/ui/adapter/HomeTopAdapter.kt | 6 +- .../app/ui/adapter/LanguageSwitchAdapter.kt | 38 + .../mireo/app/ui/adapter/LostTabAdapter.kt | 19 +- .../mireo/app/ui/adapter/MeHistoryAdapter.kt | 7 +- .../mireo/app/ui/adapter/MyCoinBuyAdapter.kt | 76 ++ .../mireo/app/ui/adapter/MyVipBuyAdapter.kt | 69 ++ .../mireo/app/ui/adapter/NavigationAdapter.kt | 4 +- .../app/ui/adapter/RecommendBannerAdapter.kt | 54 ++ .../mireo/app/ui/adapter/SearchGridAdapter.kt | 40 + .../mireo/app/ui/adapter/SearchHotAdapter.kt | 5 +- .../app/ui/adapter/SearchSearchAdapter.kt | 37 +- .../app/ui/adapter/SendCoinRecordAdapter.kt | 42 + .../mireo/app/ui/adapter/TabAdapter.kt | 4 +- .../mireo/app/ui/dialog/CommonDialog.kt | 6 +- .../app/ui/dialog/GooglePlayRatingDialog.kt | 31 + .../mireo/app/ui/dialog/InputDialog.kt | 28 +- .../mireo/app/ui/dialog/MessageDialog.kt | 26 +- .../ui/dialog/NotificationPermissionDialog.kt | 31 + .../localee/mireo/app/ui/dialog/TipsDialog.kt | 13 +- .../localee/mireo/app/ui/dialog/WaitDialog.kt | 26 +- .../mireo/app/ui/fragment/BrowserFragment.kt | 15 +- .../mireo/app/ui/fragment/ExploreFragment.kt | 42 +- .../ui/fragment/HomeCategoriesTabFragment.kt | 4 +- .../mireo/app/ui/fragment/HomeFragment.kt | 153 ++-- .../mireo/app/ui/fragment/ListTabFragment.kt | 78 +- .../mireo/app/ui/fragment/MessageFragment.kt | 33 +- .../mireo/app/ui/fragment/MineFragment.kt | 245 ++++- .../app/ui/fragment/RechargeDialogFragment.kt | 624 +++++++++++++ .../mireo/app/ui/fragment/RewardFragment.kt | 366 ++++++++ .../mireo/app/ui/fragment/SharedViewModel.kt | 7 + .../app/ui/popup/CustomBottomLoginPopup.kt | 79 ++ .../app/ui/popup/CustomBubbleAttachPopup.kt | 2 +- .../videoPaly/ExamplePlayerDetailDataRes.kt | 150 ---- .../ui/videoPaly/ExampleRecommendAdapter.kt | 2 +- .../videoPaly/ExampleRecommendPlayerView.kt | 4 +- .../ui/videoPaly/ExampleSeriesDataAdapter.kt | 9 +- .../videoPaly/ExampleSeriesDialogFragment.kt | 48 +- .../ui/videoPaly/ExampleSeriesNumAdapter.kt | 2 +- .../ui/videoPaly/ExampleUnFavoriteDialog.kt | 2 +- .../mireo/app/ui/videoPaly/LoadingLine.kt | 2 +- .../app/ui/videoPaly/VideoPlayAdapter.kt | 2 +- .../mireo/app/ui/videoPaly/VideoPlayerView.kt | 21 +- .../localee/mireo/app/utils/ExampleStand.kt | 15 +- .../com/localee/mireo/app/utils/JsBridge.kt | 224 +++++ .../localee/mireo/app/utils/JsBridgeDetail.kt | 80 ++ .../localee/mireo/app/utils/MsMMKVUtils.kt | 50 ++ .../mireo/app/utils/NotificationUtils.kt | 45 + .../mireo/app/utils/TranslatesUtils.kt | 8 +- .../localee/mireo/app/widget/BrowserView.kt | 197 ++-- .../mireo/app/widget/CustomClickableSpan.kt | 18 + .../localee/mireo/app/widget/MenuDialog.kt | 191 ++++ .../localee/mireo/app/widget/PasswordView.kt | 2 +- .../localee/mireo/app/widget/StatusLayout.kt | 15 +- .../app}/widget/layout/CustomViewStub.kt | 4 +- .../app}/widget/layout/NestedLinearLayout.kt | 2 +- .../app}/widget/layout/NestedScrollWebView.kt | 2 +- .../app}/widget/layout/NestedViewPager.kt | 2 +- .../app}/widget/layout/NoScrollViewPager.kt | 2 +- .../mireo/app}/widget/layout/SettingBar.kt | 4 +- .../app}/widget/layout/WrapRecyclerView.kt | 2 +- .../mireo/app}/widget/view/ClearEditText.kt | 4 +- .../mireo/app}/widget/view/CountdownView.kt | 2 +- .../app}/widget/view/PasswordEditText.kt | 4 +- .../mireo/app}/widget/view/PlayButton.kt | 4 +- .../app}/widget/view/PressAlphaTextView.kt | 2 +- .../mireo/app}/widget/view/RegexEditText.kt | 4 +- .../mireo/app}/widget/view/ScaleImageView.kt | 4 +- .../mireo/app/widget/view/SimpleRatingBar.kt | 212 +++++ .../mireo/app}/widget/view/SmartTextView.kt | 2 +- .../main/res-sw/values-sw1024dp/dimens_dp.xml | 0 .../main/res-sw/values-sw1024dp/dimens_sp.xml | 0 .../main/res-sw/values-sw1280dp/dimens_dp.xml | 0 .../main/res-sw/values-sw1280dp/dimens_sp.xml | 0 .../main/res-sw/values-sw1365dp/dimens_dp.xml | 0 .../main/res-sw/values-sw1365dp/dimens_sp.xml | 0 .../main/res-sw/values-sw240dp/dimens_dp.xml | 0 .../main/res-sw/values-sw240dp/dimens_sp.xml | 0 .../main/res-sw/values-sw320dp/dimens_dp.xml | 0 .../main/res-sw/values-sw320dp/dimens_sp.xml | 0 .../main/res-sw/values-sw360dp/dimens_dp.xml | 0 .../main/res-sw/values-sw360dp/dimens_sp.xml | 0 .../main/res-sw/values-sw362dp/dimens_dp.xml | 0 .../main/res-sw/values-sw362dp/dimens_sp.xml | 0 .../main/res-sw/values-sw384dp/dimens_dp.xml | 0 .../main/res-sw/values-sw384dp/dimens_sp.xml | 0 .../main/res-sw/values-sw392dp/dimens_dp.xml | 0 .../main/res-sw/values-sw392dp/dimens_sp.xml | 0 .../main/res-sw/values-sw400dp/dimens_dp.xml | 0 .../main/res-sw/values-sw400dp/dimens_sp.xml | 0 .../main/res-sw/values-sw410dp/dimens_dp.xml | 0 .../main/res-sw/values-sw410dp/dimens_sp.xml | 0 .../main/res-sw/values-sw411dp/dimens_dp.xml | 0 .../main/res-sw/values-sw411dp/dimens_sp.xml | 0 .../main/res-sw/values-sw432dp/dimens_dp.xml | 0 .../main/res-sw/values-sw432dp/dimens_sp.xml | 0 .../main/res-sw/values-sw480dp/dimens_dp.xml | 0 .../main/res-sw/values-sw480dp/dimens_sp.xml | 0 .../main/res-sw/values-sw533dp/dimens_dp.xml | 0 .../main/res-sw/values-sw533dp/dimens_sp.xml | 0 .../main/res-sw/values-sw540dp/dimens_dp.xml | 0 .../main/res-sw/values-sw540dp/dimens_sp.xml | 0 .../main/res-sw/values-sw592dp/dimens_dp.xml | 0 .../main/res-sw/values-sw592dp/dimens_sp.xml | 0 .../main/res-sw/values-sw600dp/dimens_dp.xml | 0 .../main/res-sw/values-sw600dp/dimens_sp.xml | 0 .../main/res-sw/values-sw640dp/dimens_dp.xml | 0 .../main/res-sw/values-sw640dp/dimens_sp.xml | 0 .../main/res-sw/values-sw662dp/dimens_dp.xml | 0 .../main/res-sw/values-sw662dp/dimens_sp.xml | 0 .../main/res-sw/values-sw720dp/dimens_dp.xml | 0 .../main/res-sw/values-sw720dp/dimens_sp.xml | 0 .../main/res-sw/values-sw768dp/dimens_dp.xml | 0 .../main/res-sw/values-sw768dp/dimens_sp.xml | 0 .../main/res-sw/values-sw800dp/dimens_dp.xml | 0 .../main/res-sw/values-sw800dp/dimens_sp.xml | 0 .../main/res-sw/values-sw811dp/dimens_dp.xml | 0 .../main/res-sw/values-sw811dp/dimens_sp.xml | 0 .../main/res-sw/values-sw820dp/dimens_dp.xml | 0 .../main/res-sw/values-sw820dp/dimens_sp.xml | 0 .../main/res-sw/values-sw960dp/dimens_dp.xml | 0 .../main/res-sw/values-sw960dp/dimens_sp.xml | 0 .../main/res-sw/values-sw961dp/dimens_dp.xml | 0 .../main/res-sw/values-sw961dp/dimens_sp.xml | 0 .../src/main/res-sw/values/dimens_dp.xml | 0 .../src/main/res-sw/values/dimens_sp.xml | 0 .../src/main/res/anim/layout_fall_down.xml | 0 .../main/res/anim/layout_fall_down_item.xml | 0 .../src/main/res/anim/layout_from_bottom.xml | 0 .../main/res/anim/layout_from_bottom_item.xml | 0 .../src/main/res/anim/layout_from_right.xml | 0 .../main/res/anim/layout_from_right_item.xml | 0 .../src/main/res/anim/window_bottom_in.xml | 0 .../src/main/res/anim/window_bottom_out.xml | 0 .../src/main/res/anim/window_ios_in.xml | 0 .../src/main/res/anim/window_ios_out.xml | 0 .../src/main/res/anim/window_left_in.xml | 0 .../src/main/res/anim/window_left_out.xml | 0 .../src/main/res/anim/window_right_in.xml | 0 .../src/main/res/anim/window_right_out.xml | 0 .../src/main/res/anim/window_scale_in.xml | 0 .../src/main/res/anim/window_scale_out.xml | 0 .../src/main/res/anim/window_top_in.xml | 0 .../src/main/res/anim/window_top_out.xml | 0 .../drawable/bg_example_text_think_again.xml | 2 +- .../src/main/res/drawable/input_delete_ic.xml | 0 .../src/main/res/drawable/password_off_ic.xml | 0 .../src/main/res/drawable/password_on_ic.xml | 0 .../src/main/res/drawable/progress_vip_bg.xml | 22 + .../main/res/drawable/rating_star_fill_ic.xml | 0 .../main/res/drawable/rating_star_half_ic.xml | 0 .../main/res/drawable/rating_star_off_ic.xml | 0 .../src/main/res/layout/about_activity.xml | 11 +- .../res/layout/activity_account_delete.xml | 267 ++++++ .../src/main/res/layout/activity_feedback.xml | 51 ++ .../res/layout/activity_feedback_details.xml | 34 + .../res/layout/activity_feedback_list.xml | 35 + .../res/layout/activity_language_switch.xml | 110 +++ .../src/main/res/layout/activity_my_vip.xml | 277 ++++++ .../main/res/layout/activity_my_wallet.xml | 237 +++++ .../src/main/res/layout/activity_store.xml | 250 ++++++ .../src/main/res/layout/browser_activity.xml | 3 +- .../src/main/res/layout/browser_fragment.xml | 3 +- .../res/layout/custom_bottom_login_popup.xml | 125 +++ .../res/layout/dialog_google_play_rating.xml | 105 +++ .../main/res/layout/dialog_home_history.xml | 89 ++ .../layout/dialog_notification_permission.xml | 128 +++ .../res/layout/dialog_recharge_fragment.xml | 147 +++ .../src/main/res/layout/example_emptyview.xml | 2 + .../main/res/layout/example_item_num_data.xml | 10 + .../main/res/layout/example_network_error.xml | 20 +- .../src/main/res/layout/fragment_reward.xml | 23 + .../app/src/main/res/layout/home_activity.xml | 29 +- .../app/src/main/res/layout/home_fragment.xml | 133 +-- .../main/res/layout/home_navigation_item.xml | 3 +- .../main/res/layout/image_preview_item.xml | 7 - .../app/src/main/res/layout/input_dialog.xml | 5 +- .../app/src/main/res/layout/item_coin_buy.xml | 88 ++ .../app/src/main/res/layout/item_home_top.xml | 2 +- .../main/res/layout/item_hot_banner_view.xml | 32 + .../main/res/layout/item_language_switch.xml | 50 ++ .../app/src/main/res/layout/item_list_tab.xml | 1 - .../src/main/res/layout/item_search_girl.xml | 41 + .../app/src/main/res/layout/item_vip_buy.xml | 60 ++ .../main/res/layout/item_wallet_record.xml | 76 ++ .../layout/layout_close_episode_recommend.xml | 110 +++ .../layout_detail_player_view_controller.xml | 12 + .../main/res/layout/layout_lock_episode.xml | 56 ++ .../app/src/main/res/layout/menu_dialog.xml | 50 ++ .../app/src/main/res/layout/menu_item.xml | 28 + .../src/main/res/layout/message_dialog.xml | 4 +- .../src/main/res/layout/message_fragment.xml | 3 +- .../app/src/main/res/layout/mine_fragment.xml | 435 ++++++--- .../src/main/res/layout/setting_activity.xml | 16 +- .../src/main/res/layout/splash_activity.xml | 2 +- .../src/main/res/layout/status_activity.xml | 20 +- .../src/main/res/layout/tab_item_design.xml | 3 +- .../src/main/res/layout/tab_item_sliding.xml | 3 +- .../app/src/main/res/layout/tips_dialog.xml | 3 +- .../app/src/main/res/layout/ui_dialog.xml | 6 +- .../main/res/layout/video_play_activity.xml | 19 + .../app/src/main/res/layout/wait_dialog.xml | 49 +- .../main/res/layout/widget_player_view.xml | 166 ---- .../main/res/layout/widget_status_layout.xml | 16 +- .../res/mipmap-xxhdpi/ic_account_delete.webp | Bin 0 -> 4922 bytes .../mipmap-xxhdpi/ic_account_delete_bg.webp | Bin 0 -> 401364 bytes .../res/mipmap-xxhdpi/ic_ads_episode.webp | Bin 0 -> 1510 bytes .../res/mipmap-xxhdpi/ic_dialog_close.webp | Bin 0 -> 4510 bytes .../mipmap-xxhdpi/ic_dialog_history_play.webp | Bin 0 -> 2906 bytes .../res/mipmap-xxhdpi/ic_feedback_list.webp | Bin 0 -> 468 bytes .../main/res/mipmap-xxhdpi/ic_loading_h.webp | Bin 0 -> 80238 bytes .../main/res/mipmap-xxhdpi/ic_loading_v.webp | Bin 0 -> 18560 bytes .../res/mipmap-xxhdpi/ic_lock_episode.webp | Bin 0 -> 1330 bytes .../res/mipmap-xxhdpi/ic_login_conins.webp | Bin 0 -> 1668 bytes .../res/mipmap-xxhdpi/ic_login_facebook.webp | Bin 0 -> 1206 bytes .../res/mipmap-xxhdpi/ic_login_google.webp | Bin 0 -> 2976 bytes .../res/mipmap-xxhdpi/ic_login_icon_de.webp | Bin 0 -> 10616 bytes .../res/mipmap-xxhdpi/ic_login_tiktok.webp | Bin 0 -> 3076 bytes .../res/mipmap-xxhdpi/ic_me_about_us.webp | Bin 0 -> 1640 bytes .../main/res/mipmap-xxhdpi/ic_me_conins.webp | Bin 0 -> 4114 bytes .../res/mipmap-xxhdpi/ic_me_language.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_me_wallet_bg.webp | Bin 0 -> 113370 bytes .../res/mipmap-xxhdpi/ic_my_vip_top_bg.webp | Bin 0 -> 73204 bytes .../res/mipmap-xxhdpi/ic_my_wallet_down.webp | Bin 0 -> 798 bytes .../mipmap-xxhdpi/ic_my_wallet_feedback.webp | Bin 0 -> 1254 bytes .../res/mipmap-xxhdpi/ic_my_wallet_right.webp | Bin 0 -> 704 bytes .../mipmap-xxhdpi/ic_my_wallet_top_bg.webp | Bin 0 -> 87996 bytes .../mipmap-xxhdpi/ic_my_wallet_top_up.webp | Bin 0 -> 2378 bytes .../main/res/mipmap-xxhdpi/ic_network.webp | Bin 0 -> 68304 bytes .../mipmap-xxhdpi/ic_store_right_coin.webp | Bin 0 -> 21840 bytes .../res/mipmap-xxhdpi/ic_store_top_bg.webp | Bin 0 -> 144364 bytes .../main/res/mipmap-xxhdpi/ic_store_v.webp | Bin 0 -> 9388 bytes .../ic_undraw_push_notifications.webp | Bin 0 -> 30682 bytes .../main/res/mipmap-xxhdpi/ic_video_lock.webp | Bin 0 -> 1574 bytes .../res/mipmap-xxhdpi/ic_vip_exclusive.webp | Bin 0 -> 16100 bytes .../main/res/mipmap-xxhdpi/ic_vip_free.webp | Bin 0 -> 13660 bytes .../main/res/mipmap-xxhdpi/ic_vip_item_bg.png | Bin 0 -> 13114 bytes .../res/mipmap-xxhdpi/ic_vip_item_yes.png | Bin 0 -> 3141 bytes .../main/res/mipmap-xxhdpi/ic_vip_member.webp | Bin 0 -> 916 bytes .../res/mipmap-xxhdpi/ic_vip_month_bg.webp | Bin 0 -> 18054 bytes .../main/res/mipmap-xxhdpi/ic_vip_no_ads.webp | Bin 0 -> 14430 bytes .../mipmap-xxhdpi/ic_vip_only_coupons.webp | Bin 0 -> 12358 bytes .../res/mipmap-xxhdpi/ic_vip_quarter_bg.webp | Bin 0 -> 19686 bytes .../main/res/mipmap-xxhdpi/ic_vip_top.webp | Bin 0 -> 45638 bytes .../main/res/mipmap-xxhdpi/ic_vip_vip.webp | Bin 0 -> 10252 bytes .../res/mipmap-xxhdpi/ic_vip_week_bg.webp | Bin 0 -> 23650 bytes .../res/mipmap-xxhdpi/ic_vip_year_bg.webp | Bin 0 -> 20482 bytes .../mipmap-xxhdpi/iv_dialog_history_bg.webp | Bin 0 -> 7964 bytes .../res/mipmap-xxhdpi/iv_home_play_n.webp | Bin 0 -> 1178 bytes .../src/main/res/mipmap-xxhdpi/iv_loading.gif | Bin 0 -> 91357 bytes .../main/res/mipmap-xxhdpi/iv_me_store.webp | Bin 0 -> 1660 bytes .../app/src/main/res/values/attrs.xml | 77 ++ .../app/src/main/res/values/colors.xml | 59 ++ .../app/src/main/res/values/integers.xml | 1 + .../app/src/main/res/values/strings.xml | 23 +- .../app/src/main/res/values/styles.xml | 46 + Android_Mireo/build.gradle | 32 +- Android_Mireo/common.gradle | 23 +- Android_Mireo/gradle.properties | 8 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- Android_Mireo/library/base/build.gradle | 18 - Android_Mireo/library/base/proguard-base.pro | 61 -- .../library/base/src/main/AndroidManifest.xml | 1 - .../base/src/main/res/values/colors.xml | 60 -- .../base/src/main/res/values/integers.xml | 4 - .../base/src/main/res/values/styles.xml | 50 -- Android_Mireo/library/widget/build.gradle | 6 - .../widget/src/main/AndroidManifest.xml | 1 - .../com/hjq/widget/view/SlantedTextView.kt | 308 ------- .../widget/src/main/res/values/attrs.xml | 67 -- Android_Mireo/settings.gradle | 2 - 382 files changed, 12374 insertions(+), 2432 deletions(-) create mode 100644 Android_Mireo/app/google-services.json delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNet.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNetAspect.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Log.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/LogAspect.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Permissions.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/PermissionsAspect.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClick.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClickAspect.kt rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/BaseActivity.kt (87%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/BaseAdapter.kt (98%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/BaseDialog.kt (97%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/BaseFragment.kt (92%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/FragmentPagerAdapter.kt (98%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/ActivityAction.kt (95%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/AnimAction.kt (86%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/BundleAction.kt (98%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/ClickAction.kt (94%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/HandlerAction.kt (95%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/KeyboardAction.kt (96%) rename Android_Mireo/{library/base/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/base/action/ResourcesAction.kt (96%) create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActionPushApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActiveAfterWatchingVideoApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CreateOrderApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerBuyRecordsApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerOrderApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DetailsRecommandApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoBuyVideoApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLoginApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoffApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoutApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/EnterTheAppApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/FirebaseTokenApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/GooglePaidApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LanguageApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LeaveAppApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/MessageSendReportApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/NoticeNumApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OnLineApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OpenNotifyApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/PaySettingsApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/SendCoinListApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/TranslatesLanguageApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UploadHistorySecondsApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/W2aApi.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/CreateOrderReqBean.kt rename Android_Mireo/app/src/main/java/com/localee/mireo/app/http/{api => bean}/HistoryBean.kt (88%) create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HomeDataHistoryBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/IncidentBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsDetailsBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoUrlBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/LoginBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayResBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PaySettingsBean.kt rename Android_Mireo/app/src/main/java/com/localee/mireo/app/http/{api => bean}/RecommendBean.kt (93%) rename Android_Mireo/app/src/main/java/com/localee/mireo/app/{ui/videoPaly/TranslatesRes.kt => http/bean/TranslatesBean.kt} (99%) create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/UploadHistoryBean.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/Token402Exception.java delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/other/DebugLoggerTree.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/other/Logger.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MyFirebaseMessagingService.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/other/PermissionCallback.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AccountDeleteActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackDetailsActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackListActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/LanguageSwitchActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyWalletActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerBuyRecordAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerOrderRecordAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LanguageSwitchAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyCoinBuyAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/RecommendBannerAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchGridAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SendCoinRecordAdapter.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/GooglePlayRatingDialog.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/NotificationPermissionDialog.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBottomLoginPopup.kt delete mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExamplePlayerDetailDataRes.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridge.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridgeDetail.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/NotificationUtils.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/CustomClickableSpan.kt create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/MenuDialog.kt rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/CustomViewStub.kt (96%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/NestedLinearLayout.kt (99%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/NestedScrollWebView.kt (99%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/NestedViewPager.kt (98%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/NoScrollViewPager.kt (94%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/SettingBar.kt (99%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/layout/WrapRecyclerView.kt (99%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/ClearEditText.kt (97%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/CountdownView.kt (96%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/PasswordEditText.kt (98%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/PlayButton.kt (99%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/PressAlphaTextView.kt (91%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/RegexEditText.kt (98%) rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/ScaleImageView.kt (91%) create mode 100644 Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SimpleRatingBar.kt rename Android_Mireo/{library/widget/src/main/java/com/hjq => app/src/main/java/com/localee/mireo/app}/widget/view/SmartTextView.kt (97%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1024dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1024dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1280dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1280dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1365dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw1365dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw240dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw240dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw320dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw320dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw360dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw360dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw362dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw362dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw384dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw384dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw392dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw392dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw400dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw400dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw410dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw410dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw411dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw411dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw432dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw432dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw480dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw480dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw533dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw533dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw540dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw540dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw592dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw592dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw600dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw600dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw640dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw640dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw662dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw662dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw720dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw720dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw768dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw768dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw800dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw800dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw811dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw811dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw820dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw820dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw960dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw960dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw961dp/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values-sw961dp/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values/dimens_dp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res-sw/values/dimens_sp.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_fall_down.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_fall_down_item.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_from_bottom.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_from_bottom_item.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_from_right.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/layout_from_right_item.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_bottom_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_bottom_out.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_ios_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_ios_out.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_left_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_left_out.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_right_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_right_out.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_scale_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_scale_out.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_top_in.xml (100%) rename Android_Mireo/{library/base => app}/src/main/res/anim/window_top_out.xml (100%) rename Android_Mireo/{library/widget => app}/src/main/res/drawable/input_delete_ic.xml (100%) rename Android_Mireo/{library/widget => app}/src/main/res/drawable/password_off_ic.xml (100%) rename Android_Mireo/{library/widget => app}/src/main/res/drawable/password_on_ic.xml (100%) create mode 100644 Android_Mireo/app/src/main/res/drawable/progress_vip_bg.xml rename Android_Mireo/{library/widget => app}/src/main/res/drawable/rating_star_fill_ic.xml (100%) rename Android_Mireo/{library/widget => app}/src/main/res/drawable/rating_star_half_ic.xml (100%) rename Android_Mireo/{library/widget => app}/src/main/res/drawable/rating_star_off_ic.xml (100%) create mode 100644 Android_Mireo/app/src/main/res/layout/activity_account_delete.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_feedback.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_feedback_details.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_feedback_list.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_language_switch.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_my_vip.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_my_wallet.xml create mode 100644 Android_Mireo/app/src/main/res/layout/activity_store.xml create mode 100644 Android_Mireo/app/src/main/res/layout/custom_bottom_login_popup.xml create mode 100644 Android_Mireo/app/src/main/res/layout/dialog_google_play_rating.xml create mode 100644 Android_Mireo/app/src/main/res/layout/dialog_home_history.xml create mode 100644 Android_Mireo/app/src/main/res/layout/dialog_notification_permission.xml create mode 100644 Android_Mireo/app/src/main/res/layout/dialog_recharge_fragment.xml create mode 100644 Android_Mireo/app/src/main/res/layout/fragment_reward.xml delete mode 100644 Android_Mireo/app/src/main/res/layout/image_preview_item.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_coin_buy.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_hot_banner_view.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_language_switch.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_search_girl.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_vip_buy.xml create mode 100644 Android_Mireo/app/src/main/res/layout/item_wallet_record.xml create mode 100644 Android_Mireo/app/src/main/res/layout/layout_close_episode_recommend.xml create mode 100644 Android_Mireo/app/src/main/res/layout/layout_detail_player_view_controller.xml create mode 100644 Android_Mireo/app/src/main/res/layout/layout_lock_episode.xml create mode 100644 Android_Mireo/app/src/main/res/layout/menu_dialog.xml create mode 100644 Android_Mireo/app/src/main/res/layout/menu_item.xml delete mode 100644 Android_Mireo/app/src/main/res/layout/widget_player_view.xml create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_ads_episode.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_close.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_history_play.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_feedback_list.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_h.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_v.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_lock_episode.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_conins.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_facebook.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_google.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_icon_de.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_tiktok.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_about_us.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_conins.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_language.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_wallet_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_vip_top_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_down.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_feedback.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_right.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_up.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_network.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_store_right_coin.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_store_top_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_store_v.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_undraw_push_notifications.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_video_lock.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_exclusive.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_free.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_bg.png create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_yes.png create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_member.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_month_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_no_ads.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_only_coupons.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_quarter_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_top.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_vip.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_week_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_year_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_dialog_history_bg.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_home_play_n.webp create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_loading.gif create mode 100644 Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_me_store.webp delete mode 100644 Android_Mireo/library/base/build.gradle delete mode 100644 Android_Mireo/library/base/proguard-base.pro delete mode 100644 Android_Mireo/library/base/src/main/AndroidManifest.xml delete mode 100644 Android_Mireo/library/base/src/main/res/values/colors.xml delete mode 100644 Android_Mireo/library/base/src/main/res/values/integers.xml delete mode 100644 Android_Mireo/library/base/src/main/res/values/styles.xml delete mode 100644 Android_Mireo/library/widget/build.gradle delete mode 100644 Android_Mireo/library/widget/src/main/AndroidManifest.xml delete mode 100644 Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SlantedTextView.kt delete mode 100644 Android_Mireo/library/widget/src/main/res/values/attrs.xml diff --git a/Android_Mireo/app/build.gradle b/Android_Mireo/app/build.gradle index 9049d95..89c2cd3 100644 --- a/Android_Mireo/app/build.gradle +++ b/Android_Mireo/app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' -apply plugin: 'android-aspectjx' apply plugin: 'kotlin-kapt' +apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' +apply plugin: 'com.google.firebase.firebase-perf' apply from: '../common.gradle' android { - defaultConfig { - applicationId 'com.localee.mireo.app' - resConfigs 'zh' + applicationId 'com.localee.mireo.shortapp' resConfigs 'xxhdpi' proguardFiles 'proguard-sdk.pro', 'proguard-app.pro' buildConfigField('boolean', 'LOG_ENABLE', '' + LOG_ENABLE + '') @@ -35,7 +35,7 @@ android { debug { - applicationIdSuffix '.debug' +// applicationIdSuffix '.debug' debuggable true jniDebuggable true zipAlignEnabled false @@ -77,9 +77,7 @@ android { exclude 'META-INF/*******' } - aspectjx { - include android.defaultConfig.applicationId - } + applicationVariants.all { variant -> variant.outputs.all { output -> @@ -90,13 +88,18 @@ android { outputFileName += '.apk' } } + + sourceSets { + main { + res.srcDirs( + 'src/main/res', + 'src/main/res-sw', + ) + } + } } dependencies { - implementation project(':library:base') - implementation project(':library:widget') - - implementation 'com.github.getActivity:XXPermissions:12.3' implementation 'com.github.getActivity:TitleBar:9.2' @@ -108,26 +111,16 @@ dependencies { implementation 'com.google.code.gson:gson:2.8.8' implementation 'com.github.getActivity:GsonFactory:5.2' - implementation 'com.github.getActivity:ShapeView:9.0' - - implementation 'org.aspectj:aspectjrt:1.9.6' + implementation 'com.github.getActivity:ShapeView:9.6' implementation 'com.github.bumptech.glide:glide:4.12.0' kapt 'com.github.bumptech.glide:compiler:4.12.0' implementation 'com.gyf.immersionbar:immersionbar:3.0.0' - implementation 'com.github.Baseflow:PhotoView:2.3.0' - - implementation 'com.airbnb.android:lottie:4.1.0' - implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3' implementation 'com.scwang.smart:refresh-header-material:2.0.3' - implementation 'com.jakewharton.timber:timber:4.7.1' - - implementation 'me.relex:circleindicator:2.1.6' - implementation 'com.tencent:mmkv-static:1.2.10' // banner @@ -135,8 +128,8 @@ dependencies { implementation "io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4" - implementation "com.afollestad.material-dialogs:core:3.1.1" - implementation "com.afollestad.material-dialogs:lifecycle:3.1.1" + implementation "com.afollestad.material-dialogs:core:3.3.0" + implementation "com.afollestad.material-dialogs:lifecycle:3.3.0" implementation "androidx.media3:media3-ui:1.4.0" implementation "androidx.media3:media3-exoplayer:1.4.0" @@ -148,5 +141,20 @@ dependencies { implementation("com.blankj:utilcodex:1.31.1") implementation("com.github.li-xiaojun:XPopup:2.10.0") + implementation("com.facebook.android:facebook-android-sdk:17.0.2") + + implementation("com.adjust.sdk:adjust-android:5.2.0") + implementation("com.adjust.sdk:adjust-android-webbridge:5.2.0") + implementation("com.android.installreferrer:installreferrer:2.2") + + implementation("com.android.billingclient:billing:7.0.0") + + implementation(platform("com.google.firebase:firebase-bom:32.3.1")) + implementation("com.google.firebase:firebase-messaging-ktx:24.0.0") + implementation("androidx.work:work-runtime-ktx:2.9.1") + implementation("com.google.firebase:firebase-analytics-ktx") + implementation("com.google.firebase:firebase-crashlytics") + implementation("com.google.firebase:firebase-perf") + implementation("com.github.centerzx:ShapeBlurView:1.0.5") } \ No newline at end of file diff --git a/Android_Mireo/app/google-services.json b/Android_Mireo/app/google-services.json new file mode 100644 index 0000000..76733e9 --- /dev/null +++ b/Android_Mireo/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "905575925094", + "project_id": "mireotv", + "storage_bucket": "mireotv.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:905575925094:android:01c39ac6692cb6bda974a7", + "android_client_info": { + "package_name": "com.localee.mireo.shortapp" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyBAC_RDCSdtba_yMQ0oXjKTstaMe6WzHmc" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/Android_Mireo/app/proguard-app.pro b/Android_Mireo/app/proguard-app.pro index 692091e..67f4112 100644 --- a/Android_Mireo/app/proguard-app.pro +++ b/Android_Mireo/app/proguard-app.pro @@ -1,5 +1,175 @@ #-ignorewarning +-keep public class * extends androidx.appcompat.app.AppCompatActivity +-keep public class * extends androidx.fragment.app.Fragment +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class * extends android.view.View +-keep class android.support.** {*;} +-keep interface android.support.** {*;} +-keep public class * extends android.support.v4.** +-keep public class * extends android.support.v7.** +-keep public class * extends android.support.annotation.** +-dontwarn android.support.** +-keep class androidx.** {*;} +-keep public class * extends androidx.** +-keep interface androidx.** {*;} +-keep class com.google.android.material.** {*;} +-dontwarn androidx.** +-dontwarn com.google.android.material.** +-dontnote com.google.android.material.** + + +-keepclasseswithmembernames class * { + native ; +} + +-keep public class * extends android.view.View{ + *** get*(); + void set*(***); + public (android.content.Context); + public (android.content.Context,android.util.AttributeSet); + public (android.content.Context,android.util.AttributeSet,int); +} +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} + +-keep public class * implements java.io.Serializable {*;} +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} + +-keep class **.R$* {*;} + +-keepclassmembers class * { + void *(**On*Event); + void *(**On*Listener); +} + +-keepclassmembers class * extends android.webkit.WebViewClient { + public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); + public boolean *(android.webkit.WebView, java.lang.String); +} +-keepclassmembers class * extends android.webkit.WebViewClient { + public void *(android.webkit.WebView, java.lang.String); + } + +-keepclassmembers class * { + public (org.json.JSONObject); +} + +-keepattributes Signature + +-keepattributes InnerClasses + +-assumenosideeffects class android.util.Log { + public static *** v(...); + public static *** d(...); + public static *** i(...); + public static *** w(...); + public static *** e(...); +} + +-dontwarn kotlin.** +-keep class kotlin.** { *; } +-keep interface kotlin.** { *; } +-keepclassmembers class kotlin.Metadata { + public ; +} +-keepclasseswithmembers @kotlin.Metadata class * { *; } +-keepclassmembers class **.WhenMappings { + ; +} +-assumenosideeffects class kotlin.jvm.internal.Intrinsics { + static void checkParameterIsNotNull(java.lang.Object, java.lang.String); +} + +-keep class kotlinx.** { *; } +-keep interface kotlinx.** { *; } +-dontwarn kotlinx.** +-keep class org.jetbrains.** { *; } +-keep interface org.jetbrains.** { *; } +-dontwarn org.jetbrains.** + + +-keep public class * implements com.bumptech.glide.module.GlideModule +-keep class * extends com.bumptech.glide.module.AppGlideModule { + (...); +} +-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { + **[] $VALUES; + public *; +} +-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { + *** rewind(); +} + +-dontwarn org.bouncycastle.jsse.BCSSLParameters +-dontwarn org.bouncycastle.jsse.BCSSLSocket +-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider +-dontwarn org.conscrypt.Conscrypt$Version +-dontwarn org.conscrypt.Conscrypt +-dontwarn org.conscrypt.ConscryptHostnameVerifier +-dontwarn org.openjsse.javax.net.ssl.SSLParameters +-dontwarn org.openjsse.javax.net.ssl.SSLSocket +-dontwarn org.openjsse.net.ssl.OpenJSSE + +# ViewBinding +-keepclassmembers class * implements androidx.viewbinding.ViewBinding { + public static * inflate(android.view.LayoutInflater); +} + +-dontwarn javax.annotation.** +-dontwarn javax.inject.** + +-dontwarn okhttp3.logging.** +-keep class okhttp3.internal.**{*;} +-dontwarn okio.** + +-dontwarn retrofit2.** +-keep class retrofit2.** { *; } +-keepattributes Signature +-keepattributes Exceptions + +-keep class com.google.gson.stream.** { *; } +-keepattributes EnclosingMethod + +-keepattributes *Annotation* +-keepclassmembers class * { + @org.greenrobot.eventbus.Subscribe ; +} +-keep enum org.greenrobot.eventbus.ThreadMode { *; } + +-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { + (java.lang.Throwable); +} + +-if class androidx.credentials.CredentialManager +-keep class androidx.credentials.playservices.** { + *; +} + + -libraryjars libs/lib-decoder-ffmpeg-release.aar -keep class com.localee.mireo.app.http.api.** { @@ -15,11 +185,6 @@ ; } --keepclassmembernames class ** { - @com.localee.mireo.app.aop.Log ; -} - - -keep public class * extends android.view.View{ *** get*(); void set*(***); @@ -33,4 +198,65 @@ } -keepclassmembers class * { public void *(android.view.View); +} + +-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* +-optimizationpasses 5 +-allowaccessmodification +-dontpreverify +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-verbose + +# 不要删除无用代码 +-dontshrink + +# 不混淆泛型 +-keepattributes Signature + +# 不混淆注解类 +-keepattributes *Annotation* + +# 不混淆本地方法 +-keepclasseswithmembernames class * { + native ; +} + +# 不混淆 Activity 在 XML 布局所设置的 onClick 属性值 +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +# 不混淆枚举类 +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +# 不混淆 Parcelable 子类 +-keepclassmembers class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator CREATOR; +} + +# 不混淆 Serializable 子类 +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + !static !transient ; + !private ; + !private ; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} + +# 不混淆 R 文件中的字段 +-keepclassmembers class **.R$* { + public static ; +} + +# 不混淆 WebView 设置的 JS 接口的方法名 +-keepclassmembers class * { + @android.webkit.JavascriptInterface ; } \ No newline at end of file diff --git a/Android_Mireo/app/proguard-sdk.pro b/Android_Mireo/app/proguard-sdk.pro index af74931..d3aa0cb 100644 --- a/Android_Mireo/app/proguard-sdk.pro +++ b/Android_Mireo/app/proguard-sdk.pro @@ -14,17 +14,10 @@ # for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule -# Bugly --dontwarn com.tencent.bugly.** --keep public class com.tencent.bugly.**{*;} - # AOP -adaptclassstrings -keepattributes InnerClasses, EnclosingMethod, Signature, *Annotation* --keepnames @org.aspectj.lang.annotation.Aspect class * { - public ; -} # OkHttp3 -keepattributes Signature @@ -42,4 +35,184 @@ -keep class com.hjq.permissions.** {*;} -keep class com.hjq.bar.** {*;} -keep class com.hjq.toast.** {*;} --keep class com.hjq.shape.** {*;} \ No newline at end of file +-keep class com.hjq.shape.** {*;} + +-keep class com.adjust.sdk.** { *; } +-keep class com.google.android.gms.common.ConnectionResult { + int SUCCESS; +} +-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient { + com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context); +} +-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { + java.lang.String getId(); + boolean isLimitAdTrackingEnabled(); +} + +-keep public class com.android.installreferrer.** { *; } + +-keep class com.wang.avi.** { *; } +-keep class com.wang.avi.indicators.** { *; } + +-keep class com.bytedance.sdk.** { *; } + +-keep public class com.google.android.gms.** { public protected *; } + +-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers. +-keep public class * extends java.lang.Exception # Optional: Keep custom exceptions. + + +-keep class android.support.v8.renderscript.** { *; } +-keep class androidx.renderscript.** { *; } + + +-keepattributes Signature +-keepattributes *Annotation* +-keep class com.mbridge.** {*; } +-keep interface com.mbridge.** {*; } +-dontwarn com.mbridge.** +-keepclassmembers class **.R$* { public static final int mbridge*; } + +-keep public class com.mbridge.* extends androidx.** { *; } +-keep public class androidx.viewpager.widget.PagerAdapter{*;} +-keep public class androidx.viewpager.widget.ViewPager.OnPageChangeListener{*;} +-keep interface androidx.annotation.IntDef{*;} +-keep interface androidx.annotation.Nullable{*;} +-keep interface androidx.annotation.CheckResult{*;} +-keep interface androidx.annotation.NonNull{*;} +-keep public class androidx.fragment.app.Fragment{*;} +-keep public class androidx.core.content.FileProvider{*;} +-keep public class androidx.core.app.NotificationCompat{*;} +-keep public class androidx.appcompat.widget.AppCompatImageView {*;} +-keep public class androidx.recyclerview.*{*;} +-keep class com.mbridge.msdk.foundation.tools.FastKV{*;} +-keep class com.mbridge.msdk.foundation.tools.FastKV$Builder{*;} + + +-keepclassmembers class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} +#noinspection ShrinkerUnresolvedReference +#unity +-keep class com.google.android.gms.ads.** {public *;} +-keep class com.google.android.gms.appset.** { *; } +-keep class com.google.android.gms.tasks.** { *; } +#adapters +-keep class com.ironsource.adapters.** { *; } +#sdk +-dontwarn com.ironsource.** +-dontwarn com.ironsource.adapters.** +-keepclassmembers class com.ironsource.** { public *; } +-keep public class com.ironsource.** +-keep class com.ironsource.adapters.** { *; +} +#omid +-dontwarn com.iab.omid.** +-keep class com.iab.omid.** {*;} +#javascript +-keepattributes JavascriptInterface +-keepclassmembers class * { @android.webkit.JavascriptInterface ; } +#For AmazonAps integration +-keep class com.amazon.device.ads.DtbThreadService { + static *; +} +-keep public interface com.amazon.device.ads** {*; } +#For AppLovin integration +-keepclassmembers class com.applovin.sdk.AppLovinSdk { + static *; +} +-keep public interface com.applovin.sdk** {*; } +-keep public interface com.applovin.adview** {*; } +-keep public interface com.applovin.mediation** {*; } +-keep public interface com.applovin.communicator** {*; } +#For Bytedance integration +-keep public interface com.bytedance.sdk.openadsdk** {*; } +#For Facebook integration +-keepclassmembers class com.facebook.ads.internal.AdSdkVersion { + static *; +} +-keepclassmembers class com.facebook.ads.internal.settings.AdSdkVersion { + static *; + } +-keepclassmembers class com.facebook.ads.BuildConfig { + static *; + } +-keep public interface com.facebook.ads** {*; } +#For Fairbid +-keep public interface com.fyber.fairbid.ads.interstitial** {*; } +-keep public interface com.fyber.fairbid.ads.rewarded** {*; } +-keep class com.fyber.offerwall.* +#For Fivead +-keep public interface com.five_corp.ad** {*; } +#For Fyber(Inneractive) integration +-keep public interface com.fyber.inneractive.sdk.external** {*; } +-keep public interface com.fyber.inneractive.sdk.activities** {*; } +-keep public interface com.fyber.inneractive.sdk.ui** {*; } +#For HyprMX integration +-keepclassmembers class com.hyprmx.android.sdk.utility.HyprMXProperties { + static *; +} +-keepclassmembers class com.hyprmx.android.BuildConfig { + static *; +} +-keep public interface com.hyprmx.android.sdk.activity** {*; } +-keep public interface com.hyprmx.android.sdk.graphics** {*; } +# For Inmobi integration +-keep class com.inmobi.* +-keep public interface com.inmobi.ads.listeners** {*; } +-keep public interface com.inmobi.ads.InMobiInterstitial** {*; } +-keep public interface com.inmobi.ads.InMobiBanner** {*; } +# For ironSource integration +-keep public interface com.ironsource.mediationsdk.sdk** {*; } +-keep public interface com.ironsource.mediationsdk.impressionData.ImpressionDataListener {*; } +#For Maio integration +-keep public interface jp.maio.sdk.android.MaioAdsListenerInterface {*; } +# For Mintergral integration +-keep public interface com.mbridge.msdk.out** {*; } +-keep public interface com.mbridge.msdk.videocommon.listener** {*; } +-keep public interface com.mbridge.msdk.interstitialvideo.out** {*; } +-keep public interface com.mintegral.msdk.out** {*; } +-keep public interface com.mintegral.msdk.videocommon.listener** {*; } +-keep public interface com.mintegral.msdk.interstitialvideo.out** {*; } +#For MyTarget integration +-keep class com.my.target.** {*;} +#For Ogury integration +-keep public interface io.presage.interstitial** {*; } +-keep public interface io.presage.interstitial.PresageInterstitialCallback {*; } +#For Pubnative integration +-keep public interface net.pubnative.lite.sdk.interstitial.HyBidInterstitialAd** {*; } +-keep public interface net.pubnative.lite.sdk.rewarded.HyBidRewardedAd** {*; } +-keep public interface net.pubnative.lite.sdk.views.HyBidAdView** {*; } +#For Smaato integration +-keep public interface com.smaato.sdk.interstitial** {*; } +-keep public interface com.smaato.sdk.video.vast** {*; } +-keep public interface com.smaato.sdk.banner.widget** {*; } +-keep public interface com.smaato.sdk.core.util** {*; } +# For Tapjoy integration +-keep public interface com.tapjoy.** {*; } +# For Tencent integration +-keep public interface com.qq.e.ads.interstitial2** {*; } +-keep public interface com.qq.e.ads.interstitial3** {*; } +-keep public interface com.qq.e.ads.rewardvideo** {*; } +-keep public interface com.qq.e.ads.rewardvideo2** {*; } +-keep public interface com.qq.e.ads.banner2** {*; } +-keep public interface com.qq.e.comm.adevent** {*; } +#For Verizon integration +-keepclassmembers class com.verizon.ads.edition.BuildConfig { + static *; +} +-keep public interface com.verizon.ads.interstitialplacement** {*; } +-keep public interface com.verizon.ads.inlineplacement** {*; } +-keep public interface com.verizon.ads.vastcontroller** {*; } +-keep public interface com.verizon.ads.webcontroller** {*; } +#For Vungle integration +-keep public interface com.vungle.warren.PlayAdCallback {*; } +-keep public interface com.vungle.warren.ui.contract** {*; } +-keep public interface com.vungle.warren.ui.view** {*; } +#For AndroidX +-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;} +-keep class androidx.recyclerview.widget.RecyclerView { *;} +-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *;} +#For Android +-keep class * extends android.app.Activity + diff --git a/Android_Mireo/app/src/main/AndroidManifest.xml b/Android_Mireo/app/src/main/AndroidManifest.xml index cb255ab..79c14e6 100644 --- a/Android_Mireo/app/src/main/AndroidManifest.xml +++ b/Android_Mireo/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> @@ -14,15 +13,10 @@ - - - - - - + + tools:replace="android:allowBackup,android:supportsRtl"> + + + android:theme="@style/Theme.Splash"> @@ -66,45 +62,109 @@ + + + + + + + + + + android:name="com.localee.mireo.app.ui.activity.VideoPlayActivity" + android:launchMode="singleTask" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/action/StatusAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/action/StatusAction.kt index 4933ec8..a958467 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/action/StatusAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/action/StatusAction.kt @@ -7,7 +7,9 @@ import androidx.annotation.DrawableRes import androidx.annotation.RawRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat -import com.localee.mireo.app.R +import com.hjq.toast.ToastUtils +import com.localee.mireo.app.app.AppApplication +import com.localee.mireo.shortapp.R import com.localee.mireo.app.widget.StatusLayout import com.localee.mireo.app.widget.StatusLayout.OnRetryListener @@ -39,27 +41,37 @@ interface StatusAction { fun showEmpty() { -// showLayout(R.drawable.status_empty_ic, R.string.status_layout_no_data, null) + showLayout(R.mipmap.status_nothing, R.string.status_layout_no_data, null) } fun showError(listener: OnRetryListener?) { getStatusLayout()?.let { - val manager: ConnectivityManager? = ContextCompat.getSystemService(it.context, ConnectivityManager::class.java) + val manager: ConnectivityManager? = + ContextCompat.getSystemService(it.context, ConnectivityManager::class.java) if (manager != null) { val info: NetworkInfo? = manager.activeNetworkInfo if (info == null || !info.isConnected) { -// showLayout(R.drawable.status_network_ic, R.string.status_layout_error_network, listener) + ToastUtils.show(AppApplication.instance.getString(R.string.network_abnormality)) + showLayout(R.mipmap.ic_network, R.string.status_layout_error_network, listener) return } } -// showLayout(R.drawable.status_error_ic, R.string.status_layout_error_request, listener) + showLayout(R.mipmap.status_nothing, R.string.status_layout_no_data, null) } } - fun showLayout(@DrawableRes drawableId: Int, @StringRes stringId: Int, listener: OnRetryListener?) { + fun showLayout( + @DrawableRes drawableId: Int, + @StringRes stringId: Int, + listener: OnRetryListener? + ) { getStatusLayout()?.let { - showLayout(ContextCompat.getDrawable(it.context, drawableId), it.context.getString(stringId), listener) + showLayout( + ContextCompat.getDrawable(it.context, drawableId), + it.context.getString(stringId), + listener + ) } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNet.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNet.kt deleted file mode 100644 index 1a69774..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNet.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.localee.mireo.app.aop - -@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) -@Target(AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER) -annotation class CheckNet \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNetAspect.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNetAspect.kt deleted file mode 100644 index 6ba2961..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/CheckNetAspect.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.localee.mireo.app.aop - -import android.app.* -import android.net.ConnectivityManager -import android.net.NetworkInfo -import androidx.core.content.ContextCompat -import com.localee.mireo.app.R -import com.localee.mireo.app.manager.ActivityManager -import com.hjq.toast.ToastUtils -import org.aspectj.lang.ProceedingJoinPoint -import org.aspectj.lang.annotation.Around -import org.aspectj.lang.annotation.Aspect -import org.aspectj.lang.annotation.Pointcut - -@Suppress("unused") -@Aspect -class CheckNetAspect { - - @Pointcut("execution(@com.localee.mireo.app.aop.CheckNet * *(..))") - fun method() {} - - @Around("method() && @annotation(checkNet)") - @Throws(Throwable::class) - fun aroundJoinPoint(joinPoint: ProceedingJoinPoint, checkNet: CheckNet) { - val application: Application = ActivityManager.getInstance().getApplication() - val manager: ConnectivityManager? = ContextCompat.getSystemService(application, ConnectivityManager::class.java) - if (manager != null) { - val info: NetworkInfo? = manager.activeNetworkInfo - if (info == null || !info.isConnected) { - ToastUtils.show(R.string.common_network_hint) - return - } - } - joinPoint.proceed() - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Log.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Log.kt deleted file mode 100644 index 9bb1a46..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Log.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.localee.mireo.app.aop - -@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) -@Target(AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER, - AnnotationTarget.CONSTRUCTOR) -annotation class Log constructor(val value: String = "AppLog") \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/LogAspect.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/LogAspect.kt deleted file mode 100644 index 8420d5f..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/LogAspect.kt +++ /dev/null @@ -1,96 +0,0 @@ -package com.localee.mireo.app.aop - -import android.os.Looper -import android.os.Trace -import org.aspectj.lang.ProceedingJoinPoint -import org.aspectj.lang.Signature -import org.aspectj.lang.annotation.Around -import org.aspectj.lang.annotation.Aspect -import org.aspectj.lang.annotation.Pointcut -import org.aspectj.lang.reflect.CodeSignature -import org.aspectj.lang.reflect.MethodSignature -import timber.log.Timber -import java.util.concurrent.TimeUnit - -@Suppress("unused") -@Aspect -class LogAspect { - - @Pointcut("execution(@com.localee.mireo.app.aop.Log *.new(..))") - fun constructor() {} - - @Pointcut("execution(@com.localee.mireo.app.aop.Log * *(..))") - fun method() {} - - @Around("(method() || constructor()) && @annotation(log)") - @Throws(Throwable::class) - fun aroundJoinPoint(joinPoint: ProceedingJoinPoint, log: Log): Any? { - enterMethod(joinPoint, log) - val startNanos: Long = System.nanoTime() - val result: Any? = joinPoint.proceed() - val stopNanos: Long = System.nanoTime() - exitMethod(joinPoint, log, result, TimeUnit.NANOSECONDS.toMillis(stopNanos - startNanos)) - return result - } - - private fun enterMethod(joinPoint: ProceedingJoinPoint, log: Log) { - val codeSignature: CodeSignature = joinPoint.signature as CodeSignature - - val className: String = codeSignature.declaringType.name - val methodName: String = codeSignature.name - val parameterNames: Array = codeSignature.parameterNames - val parameterValues: Array = joinPoint.args - - val builder: StringBuilder = - getMethodLogInfo(className, methodName, parameterNames, parameterValues) - log(log.value, builder.toString()) - val section: String = builder.substring(2) - Trace.beginSection(section) - } - - private fun getMethodLogInfo(className: String, methodName: String, parameterNames: Array, parameterValues: Array): StringBuilder { - val builder: StringBuilder = StringBuilder("\u21E2 ") - builder.append(className) - .append(".") - .append(methodName) - .append('(') - for (i in parameterValues.indices) { - if (i > 0) { - builder.append(", ") - } - builder.append(parameterNames[i]).append('=') - builder.append(parameterValues[i].toString()) - } - builder.append(')') - if (Looper.myLooper() != Looper.getMainLooper()) { - builder.append(" [Thread:\"").append(Thread.currentThread().name).append("\"]") - } - return builder - } - - private fun exitMethod(joinPoint: ProceedingJoinPoint, log: Log, result: Any?, lengthMillis: Long) { - Trace.endSection() - val signature: Signature = joinPoint.signature - val className: String? = signature.declaringType.name - val methodName: String? = signature.name - val builder: StringBuilder = StringBuilder("\u21E0 ") - .append(className) - .append(".") - .append(methodName) - .append(" [") - .append(lengthMillis) - .append("ms]") - - // 判断方法是否有返回值 - if (signature is MethodSignature && signature.returnType != Void.TYPE) { - builder.append(" = ") - builder.append(result.toString()) - } - log(log.value, builder.toString()) - } - - private fun log(tag: String?, msg: String?) { - Timber.tag(tag) - Timber.d(msg) - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Permissions.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Permissions.kt deleted file mode 100644 index d4641ae..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/Permissions.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.localee.mireo.app.aop - -@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) -@Target(AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER) -annotation class Permissions constructor( - vararg val value: String -) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/PermissionsAspect.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/PermissionsAspect.kt deleted file mode 100644 index 171804f..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/PermissionsAspect.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.localee.mireo.app.aop - -import android.app.Activity -import com.hjq.permissions.XXPermissions -import com.localee.mireo.app.manager.ActivityManager -import com.localee.mireo.app.other.PermissionCallback -import org.aspectj.lang.ProceedingJoinPoint -import org.aspectj.lang.annotation.Around -import org.aspectj.lang.annotation.Aspect -import org.aspectj.lang.annotation.Pointcut -import timber.log.Timber - -@Suppress("unused") -@Aspect -class PermissionsAspect { - @Pointcut("execution(@com.localee.mireo.app.aop.Permissions * *(..))") - fun method() { - } - - @Around("method() && @annotation(permissions)") - fun aroundJoinPoint(joinPoint: ProceedingJoinPoint, permissions: Permissions) { - var activity: Activity? = null - - val parameterValues: Array = joinPoint.args - for (arg: Any? in parameterValues) { - if (arg !is Activity) { - continue - } - activity = arg - break - } - if ((activity == null) || activity.isFinishing || activity.isDestroyed) { - activity = ActivityManager.getInstance().getTopActivity() - } - if ((activity == null) || activity.isFinishing || activity.isDestroyed) { - Timber.e("The activity has been destroyed and permission requests cannot be made") - return - } - requestPermissions(joinPoint, activity, permissions.value) - } - - private fun requestPermissions( - joinPoint: ProceedingJoinPoint, - activity: Activity, - permissions: Array - ) { - XXPermissions.with(activity) - .permission(*permissions) - .request(object : PermissionCallback() { - override fun onGranted(permissions: MutableList?, all: Boolean) { - if (all) { - try { - // 获得权限,执行原方法 - joinPoint.proceed() - } catch (e: Throwable) { -// CrashReport.postCatchedException(e) - } - } - } - }) - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClick.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClick.kt deleted file mode 100644 index f776414..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClick.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.localee.mireo.app.aop - -@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) -@Target(AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.PROPERTY_SETTER) -annotation class SingleClick constructor( - val value: Long = 1000 -) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClickAspect.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClickAspect.kt deleted file mode 100644 index 0077ff1..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/aop/SingleClickAspect.kt +++ /dev/null @@ -1,51 +0,0 @@ -package com.localee.mireo.app.aop - -import org.aspectj.lang.ProceedingJoinPoint -import org.aspectj.lang.annotation.Around -import org.aspectj.lang.annotation.Aspect -import org.aspectj.lang.annotation.Pointcut -import org.aspectj.lang.reflect.CodeSignature -import timber.log.Timber - -@Suppress("unused") -@Aspect -class SingleClickAspect { - - private var lastTime: Long = 0 - - private var lastTag: String? = null - - @Pointcut("execution(@com.localee.mireo.app.aop.SingleClick * *(..))") - fun method() {} - - @Around("method() && @annotation(singleClick)") - @Throws(Throwable::class) - fun aroundJoinPoint(joinPoint: ProceedingJoinPoint, singleClick: SingleClick) { - val codeSignature: CodeSignature = joinPoint.signature as CodeSignature - val className: String = codeSignature.declaringType.name - val methodName: String = codeSignature.name - val builder: StringBuilder = StringBuilder("$className.$methodName") - builder.append("(") - val parameterValues: Array = joinPoint.args - for (i in parameterValues.indices) { - val arg: Any? = parameterValues[i] - if (i == 0) { - builder.append(arg) - } else { - builder.append(", ") - .append(arg) - } - } - builder.append(")") - val tag: String = builder.toString() - val currentTimeMillis: Long = System.currentTimeMillis() - if (currentTimeMillis - lastTime < singleClick.value && (tag == lastTag)) { - Timber.tag("SingleClick") - Timber.i("Within %s milliseconds, there was a rapid click:%s", singleClick.value, tag) - return - } - lastTime = currentTimeMillis - lastTag = tag - joinPoint.proceed() - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppActivity.kt index 4af8b67..ffacd4c 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppActivity.kt @@ -6,9 +6,9 @@ import android.view.View import androidx.annotation.StringRes import com.gyf.immersionbar.ImmersionBar import com.hjq.bar.TitleBar -import com.hjq.base.BaseActivity -import com.hjq.base.BaseDialog -import com.localee.mireo.app.R +import com.localee.mireo.app.base.BaseActivity +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.TitleBarAction import com.localee.mireo.app.action.ToastAction import com.localee.mireo.app.http.model.HttpData diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppAdapter.kt index e7ed0e2..479fc22 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.view.View import androidx.annotation.IntRange import androidx.annotation.LayoutRes -import com.hjq.base.BaseAdapter +import com.localee.mireo.app.base.BaseAdapter import java.util.* abstract class AppAdapter constructor(context: Context) : diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppApplication.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppApplication.kt index e3d9656..b017434 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppApplication.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppApplication.kt @@ -6,9 +6,22 @@ import android.content.Context import android.net.ConnectivityManager import android.net.Network import android.os.Build +import android.os.Bundle +import android.util.Log import androidx.core.content.ContextCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner +import com.adjust.sdk.Adjust +import com.adjust.sdk.AdjustConfig +import com.adjust.sdk.LogLevel +import com.adjust.sdk.OnEventTrackingFailedListener +import com.adjust.sdk.OnEventTrackingSucceededListener +import com.facebook.FacebookSdk +import com.facebook.FacebookSdk.fullyInitialize +import com.facebook.FacebookSdk.setAutoInitEnabled +import com.facebook.LoggingBehavior +import com.facebook.appevents.AppEventsLogger +import com.facebook.applinks.AppLinkData import com.google.gson.reflect.TypeToken import com.google.gson.stream.JsonToken import com.hjq.bar.TitleBar @@ -19,49 +32,143 @@ import com.hjq.http.model.HttpHeaders import com.hjq.http.model.HttpParams import com.hjq.http.request.HttpRequest import com.hjq.toast.ToastUtils -import com.localee.mireo.app.R -import com.localee.mireo.app.aop.Log import com.localee.mireo.app.http.exception.HttpBodyInterceptor import com.localee.mireo.app.http.model.RequestHandler import com.localee.mireo.app.http.model.RequestServer import com.localee.mireo.app.manager.ActivityManager import com.localee.mireo.app.other.AppConfig +import com.localee.mireo.app.other.AppConfig.getPackageName import com.localee.mireo.app.other.CrashHandler -import com.localee.mireo.app.other.DebugLoggerTree import com.localee.mireo.app.other.MaterialHeader +import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.SmartBallPulseFooter import com.localee.mireo.app.other.TitleBarStyle import com.localee.mireo.app.other.ToastStyle import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.MsSystemUtlis +import com.localee.mireo.shortapp.R +import com.lxj.xpopup.XPopup import com.scwang.smart.refresh.layout.SmartRefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout import com.tencent.mmkv.MMKV +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import okhttp3.OkHttpClient -import timber.log.Timber +import org.greenrobot.eventbus.EventBus class AppApplication : Application() { + private val LOG_TAG: String = "AppApplication" - @Log("启动耗时") override fun onCreate() { super.onCreate() instance = this; + // Initialize Adjust SDK + initAdjust() + // Register lifecycle callbacks + registerActivityLifecycleCallbacks(AdjustLifecycleCallbacks()) + initSdk(this) + GlobalScope.launch(Dispatchers.Main) { + // Initialize Facebook SDK + initFacebookSdk() + } } - override fun onLowMemory() { - super.onLowMemory() + private fun initFacebookSdk() { + + setAutoInitEnabled(true) + fullyInitialize() + if (AppConfig.isDebug()) { + FacebookSdk.setIsDebugEnabled(true) + FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS) + } + AppEventsLogger.activateApp(this) + AppLinkData.fetchDeferredAppLinkData( + this + ) { + // Process app link data + if (null != it) { + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_DDL_Url, it.targetUri.toString()) + Log.d( + "initFacebookSdk", + "fetchDeferredAppLinkData callback called!====${it.targetUri}" + ) + } + Log.d("initFacebookSdk", "fetchDeferredAppLinkData callback called!") + } } - override fun onTrimMemory(level: Int) { - super.onTrimMemory(level) + private fun initAdjust() { + val appToken = "rs3mgqcl1wjk" + val environment = AdjustConfig.ENVIRONMENT_PRODUCTION + val config = AdjustConfig(instance, appToken, environment) + config.setLogLevel(LogLevel.VERBOSE) + config.onEventTrackingSucceededListener = + OnEventTrackingSucceededListener { adjustEventSuccess -> + Log.d(LOG_TAG, "Event recorded at " + adjustEventSuccess.timestamp) + } + config.onEventTrackingFailedListener = + OnEventTrackingFailedListener { adjustEventFailure -> + Log.v( + LOG_TAG, + "Event recording failed. Response: " + adjustEventFailure.message + ) + } + config.setOnDeferredDeeplinkResponseListener { deeplink -> + Log.d(LOG_TAG, "Deferred deep link callback called!") + Log.d(LOG_TAG, "Deep link URL: $deeplink") + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_DDL_Url, deeplink.toString()) + true + } + Adjust.initSdk(config) } + inner class AdjustLifecycleCallbacks : ActivityLifecycleCallbacks { + override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {} + override fun onActivityStarted(activity: Activity) { + countActivity++ + if (countActivity == 1 && isAppInBackground) { + isAppInBackground = false + Log.d("Lifecycle", "onActivityStarted") + EventBus.getDefault().post(MsConstants.CONSTANTS_enterTheApp) + } + } + + override fun onActivityResumed(activity: Activity) { + Adjust.onResume() + } + + override fun onActivityPaused(activity: Activity) { + Adjust.onPause() + } + + override fun onActivityStopped(activity: Activity) { + countActivity-- + if (countActivity <= 0 && !isAppInBackground) { + isAppInBackground = true + Log.d("Lifecycle", "onActivityStopped") + EventBus.getDefault().post(MsConstants.CONSTANTS_leaveApp) +// EventBus.getDefault().post(ExampleAppConstants.Constants_interrupt_ad) + } + } + + override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {} + override fun onActivityDestroyed(activity: Activity) {} + } + + companion object { lateinit var instance: Application; var isCurrentPage: Boolean = true + var isAppInBackground = true + var countActivity = 0 fun initSdk(application: Application) { + + TitleBar.setDefaultStyle(TitleBarStyle()) SmartRefreshLayout.setDefaultRefreshHeaderCreator { context: Context, layout: RefreshLayout -> @@ -89,6 +196,7 @@ class AppApplication : Application() { CrashHandler.register(application) ActivityManager.getInstance().init(application) + XPopup.setPrimaryColor(ContextCompat.getColor(instance, R.color.mireo_color_2b292a)) MMKV.initialize(application) @@ -122,11 +230,21 @@ class AppApplication : Application() { ) headers.put("system-type", "android") headers.put( - "app_version", + "app-version", MsSystemUtlis.getVerNameInfo(instance) ) -// headers.put("security","true") - + headers.put( + "app-name", + getPackageName() + ) + headers.put( + "model", + Build.MODEL + ) + headers.put( + "brand", + Build.BRAND + ) } }) @@ -136,10 +254,6 @@ class AppApplication : Application() { GsonFactory.setJsonCallback { typeToken: TypeToken<*>, fieldName: String?, jsonToken: JsonToken -> } - if (AppConfig.isLogEnable()) { - Timber.plant(DebugLoggerTree()) - } - val connectivityManager: ConnectivityManager? = ContextCompat.getSystemService(application, ConnectivityManager::class.java) if (connectivityManager != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppFragment.kt index 697234b..c829afd 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/AppFragment.kt @@ -1,11 +1,12 @@ package com.localee.mireo.app.app -import com.hjq.base.BaseFragment +import com.localee.mireo.app.base.BaseFragment import com.localee.mireo.app.action.ToastAction import com.localee.mireo.app.http.model.HttpData import com.hjq.http.config.IRequestApi import com.hjq.http.listener.OnHttpListener import com.hjq.toast.ToastUtils +import com.localee.mireo.app.other.MsConstants abstract class AppFragment : BaseFragment(), ToastAction, OnHttpListener { @@ -37,7 +38,9 @@ abstract class AppFragment : BaseFragment(), } override fun onHttpFail(throwable: Throwable) { - ToastUtils.show(throwable.message) + if (!MsConstants.IsFirst){ + ToastUtils.show(throwable.message) + } } override fun onHttpEnd(api: IRequestApi) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/TitleBarFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/TitleBarFragment.kt index c246f54..010d15f 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/TitleBarFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/app/TitleBarFragment.kt @@ -4,7 +4,7 @@ import android.os.Bundle import android.view.* import com.gyf.immersionbar.ImmersionBar import com.hjq.bar.TitleBar -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.TitleBarAction diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseActivity.kt similarity index 87% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/BaseActivity.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseActivity.kt index 653b7d7..f8a789a 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseActivity.kt @@ -1,4 +1,4 @@ -package com.hjq.base +package com.localee.mireo.app.base import android.app.Activity import android.content.Context @@ -11,8 +11,12 @@ import android.view.Window import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle -import com.hjq.base.action.* -import java.util.* +import com.localee.mireo.app.base.action.ActivityAction +import com.localee.mireo.app.base.action.BundleAction +import com.localee.mireo.app.base.action.ClickAction +import com.localee.mireo.app.base.action.HandlerAction +import com.localee.mireo.app.base.action.KeyboardAction +import java.util.Random import kotlin.math.pow abstract class BaseActivity : AppCompatActivity(), ActivityAction, @@ -86,7 +90,7 @@ abstract class BaseActivity : AppCompatActivity(), ActivityAction, return super.startActivity(intent) } - override fun dispatchKeyEvent(event: KeyEvent?): Boolean { + override fun dispatchKeyEvent(event: KeyEvent): Boolean { val fragments: MutableList = supportFragmentManager.fragments for (fragment: Fragment? in fragments) { if (fragment !is BaseFragment<*> || fragment.lifecycle.currentState != Lifecycle.State.RESUMED) { @@ -117,7 +121,11 @@ abstract class BaseActivity : AppCompatActivity(), ActivityAction, } @Suppress("deprecation") - open fun startActivityForResult(intent: Intent, options: Bundle?, callback: OnActivityCallback?) { + open fun startActivityForResult( + intent: Intent, + options: Bundle?, + callback: OnActivityCallback? + ) { val requestCode: Int = Random().nextInt(2.0.pow(16.0).toInt()) activityCallbacks.put(requestCode, callback) startActivityForResult(intent, requestCode, options) diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseAdapter.kt similarity index 98% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/BaseAdapter.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseAdapter.kt index 95c6591..a26719f 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseAdapter.kt @@ -1,4 +1,4 @@ -package com.hjq.base +package com.localee.mireo.app.base import android.content.Context import android.util.SparseArray @@ -9,7 +9,7 @@ import androidx.annotation.IdRes import androidx.annotation.LayoutRes import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.hjq.base.action.ResourcesAction +import com.localee.mireo.app.base.action.ResourcesAction @Suppress("LeakingThis") abstract class BaseAdapter.BaseViewHolder>(private val context: Context) : diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseDialog.kt similarity index 97% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/BaseDialog.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseDialog.kt index fc8a40b..29a4d9d 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseDialog.kt @@ -1,4 +1,4 @@ -package com.hjq.base +package com.localee.mireo.app.base import android.app.Activity import android.app.Application.ActivityLifecycleCallbacks @@ -29,15 +29,14 @@ import androidx.annotation.StringRes import androidx.annotation.StyleRes import androidx.appcompat.app.AppCompatDialog import androidx.core.content.ContextCompat -import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.LifecycleRegistry -import com.hjq.base.action.ActivityAction -import com.hjq.base.action.AnimAction -import com.hjq.base.action.ClickAction -import com.hjq.base.action.HandlerAction -import com.hjq.base.action.KeyboardAction -import com.hjq.base.action.ResourcesAction +import com.localee.mireo.app.base.action.ActivityAction +import com.localee.mireo.app.base.action.AnimAction +import com.localee.mireo.app.base.action.ClickAction +import com.localee.mireo.app.base.action.HandlerAction +import com.localee.mireo.app.base.action.KeyboardAction +import com.localee.mireo.app.base.action.ResourcesAction +import com.localee.mireo.shortapp.R import java.lang.ref.SoftReference @Suppress("LeakingThis") @@ -49,8 +48,10 @@ open class BaseDialog constructor( HandlerAction, ClickAction, AnimAction, KeyboardAction, DialogInterface.OnShowListener, DialogInterface.OnCancelListener, DialogInterface.OnDismissListener { + private val listeners: ListenersWrapper = ListenersWrapper(this) - override val lifecycle: LifecycleRegistry = LifecycleRegistry(this) +// override val lifecycle: LifecycleRegistry = LifecycleRegistry(this) + private var showListeners: MutableList? = null private var cancelListeners: MutableList? = null private var dismissListeners: MutableList? = null @@ -117,6 +118,7 @@ open class BaseDialog constructor( window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) } } + open fun setBackgroundDimAmount(@FloatRange(from = 0.0, to = 1.0) dimAmount: Float) { window?.setDimAmount(dimAmount) } @@ -226,7 +228,7 @@ open class BaseDialog constructor( * [DialogInterface.OnShowListener] */ override fun onShow(dialog: DialogInterface?) { - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) +// lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) showListeners?.let { for (i in it.indices) { it[i]?.onShow(this) @@ -249,7 +251,7 @@ open class BaseDialog constructor( * [DialogInterface.OnDismissListener] */ override fun onDismiss(dialog: DialogInterface?) { - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) +// lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) dismissListeners?.let { for (i in it.indices) { it[i]?.onDismiss(this) @@ -259,17 +261,17 @@ open class BaseDialog constructor( override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) +// lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) } override fun onStart() { super.onStart() - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_START) +// lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_START) } override fun onStop() { super.onStop() - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_STOP) +// lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_STOP) } @Suppress("UNCHECKED_CAST") diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseFragment.kt similarity index 92% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/BaseFragment.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseFragment.kt index 46c9c1d..f6c0d0f 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/BaseFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/BaseFragment.kt @@ -1,4 +1,4 @@ -package com.hjq.base +package com.localee.mireo.app.base import android.app.Activity import android.app.Application @@ -12,11 +12,11 @@ import android.view.ViewGroup import androidx.annotation.IdRes import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle -import com.hjq.base.BaseActivity.OnActivityCallback -import com.hjq.base.action.BundleAction -import com.hjq.base.action.ClickAction -import com.hjq.base.action.HandlerAction -import com.hjq.base.action.KeyboardAction +import com.localee.mireo.app.base.BaseActivity.OnActivityCallback +import com.localee.mireo.app.base.action.BundleAction +import com.localee.mireo.app.base.action.ClickAction +import com.localee.mireo.app.base.action.HandlerAction +import com.localee.mireo.app.base.action.KeyboardAction abstract class BaseFragment : Fragment(), HandlerAction, ClickAction, BundleAction, KeyboardAction { diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/FragmentPagerAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/FragmentPagerAdapter.kt similarity index 98% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/FragmentPagerAdapter.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/FragmentPagerAdapter.kt index 9d64bfc..c290e12 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/FragmentPagerAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/FragmentPagerAdapter.kt @@ -1,4 +1,4 @@ -package com.hjq.base +package com.localee.mireo.app.base import android.view.ViewGroup import androidx.fragment.app.Fragment diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ActivityAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ActivityAction.kt similarity index 95% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/ActivityAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ActivityAction.kt index db8ed88..166a4d5 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ActivityAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ActivityAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.app.Activity import android.content.Context diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/AnimAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/AnimAction.kt similarity index 86% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/AnimAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/AnimAction.kt index 5710167..f408b8a 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/AnimAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/AnimAction.kt @@ -1,6 +1,7 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action + +import com.localee.mireo.shortapp.R -import com.hjq.base.R interface AnimAction { diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/BundleAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/BundleAction.kt similarity index 98% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/BundleAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/BundleAction.kt index 1bd63ce..ded571a 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/BundleAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/BundleAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.os.Bundle import android.os.Parcelable diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ClickAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ClickAction.kt similarity index 94% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/ClickAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ClickAction.kt index 4b759ad..5d0a1c1 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ClickAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ClickAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.view.View import androidx.annotation.IdRes diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/HandlerAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/HandlerAction.kt similarity index 95% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/HandlerAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/HandlerAction.kt index eeb417f..06ed98b 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/HandlerAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/HandlerAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.os.Handler import android.os.Looper diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/KeyboardAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/KeyboardAction.kt similarity index 96% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/KeyboardAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/KeyboardAction.kt index 30757be..64c1148 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/KeyboardAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/KeyboardAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.content.Context import android.view.View diff --git a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ResourcesAction.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ResourcesAction.kt similarity index 96% rename from Android_Mireo/library/base/src/main/java/com/hjq/base/action/ResourcesAction.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ResourcesAction.kt index a83e700..e961217 100644 --- a/Android_Mireo/library/base/src/main/java/com/hjq/base/action/ResourcesAction.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/base/action/ResourcesAction.kt @@ -1,4 +1,4 @@ -package com.hjq.base.action +package com.localee.mireo.app.base.action import android.content.Context import android.content.res.Resources diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActionPushApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActionPushApi.kt new file mode 100644 index 0000000..6d4ca98 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActionPushApi.kt @@ -0,0 +1,14 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class ActionPushApi : IRequestApi { + + override fun getApi(): String { + return "action/push" + } + + var action: String? = null + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActiveAfterWatchingVideoApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActiveAfterWatchingVideoApi.kt new file mode 100644 index 0000000..70ae817 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/ActiveAfterWatchingVideoApi.kt @@ -0,0 +1,11 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class ActiveAfterWatchingVideoApi : IRequestApi { + + override fun getApi(): String { + return "activeAfterWatchingVideo" + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CreateOrderApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CreateOrderApi.kt new file mode 100644 index 0000000..52cafa3 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CreateOrderApi.kt @@ -0,0 +1,15 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class CreateOrderApi : IRequestApi { + + override fun getApi(): String { + return "createOrder" + } + + data class Bean( + val order_code: String + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerBuyRecordsApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerBuyRecordsApi.kt new file mode 100644 index 0000000..4300060 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerBuyRecordsApi.kt @@ -0,0 +1,40 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class CustomerBuyRecordsApi : IRequestApi { + + override fun getApi(): String { + return "getCustomerBuyRecords" + } + + var current_page: Int? = null + + var page_size: Int? = null + + class Bean ( + val list: List, + val pagination: Pagination + ) { + + data class Data( + val short_play_id: Int, + val coins: String, + var short_play_video_id: Int, + val coin_type: Int, + val created_at: String, + val episode: Int, + val image_url: String, + var name: String, + ) + + data class Pagination( + val current_page: Int, + val page_size: Int, + val page_total: Int, + val total_size: Int + ) + + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerOrderApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerOrderApi.kt new file mode 100644 index 0000000..0f09665 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/CustomerOrderApi.kt @@ -0,0 +1,37 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + + +class CustomerOrderApi : IRequestApi { + + override fun getApi(): String { + return "getCustomerOrder" + } + + var buy_type: String? = null + + var current_page: Int? = null + + var page_size: Int? = null + + class Bean ( + val list: List, + val pagination: Pagination + ) { + + data class Data( + val created_at: String, + var type: String, + var value: String + ) + + data class Pagination( + val current_page: Int, + val page_size: Int, + val page_total: Int, + val total_size: Int + ) + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DetailsRecommandApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DetailsRecommandApi.kt new file mode 100644 index 0000000..f288496 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DetailsRecommandApi.kt @@ -0,0 +1,38 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi +import java.io.Serializable + +class DetailsRecommandApi : IRequestApi { + + override fun getApi(): String { + return "getDetailsRecommand" + } + + data class Bean( + val brief: String, + val description: String, + val list: List, + val tag: String, + val title: String + ) { + + data class Item( + val all_coins: Int, + val buy_type: Int, + val collect_total: Int, + val description: String, + val episode_total: Int, + val horizontally_img: String, + val video_url: String, + val id: Int, + val image_url: String, + val name: String, + val process: Int, + val short_id: Int, + val short_play_id: Int?, + val tag_type: String, + val watch_total: Int + ) + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoBuyVideoApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoBuyVideoApi.kt new file mode 100644 index 0000000..df1b33f --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoBuyVideoApi.kt @@ -0,0 +1,22 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + + +class DoBuyVideoApi : IRequestApi { + + override fun getApi(): String { + return "buy_video" + } + + var short_play_id: Int? = null + + var video_id: Int? = null + + data class Bean( + val status: String, + val coin_left_total: Int, + val send_coin_left_total: Int + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLoginApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLoginApi.kt new file mode 100644 index 0000000..426c1a5 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLoginApi.kt @@ -0,0 +1,24 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi +import com.localee.mireo.app.http.bean.LoginBean + +class DoLoginApi : IRequestApi { + + override fun getApi(): String { + return "customer/login" + } + + /** 登录密码 */ + private var loginBean: LoginBean? = null + + fun setLoginBean(loginBean: LoginBean?): DoLoginApi = apply { + this.loginBean = loginBean + } + + data class Bean( + val customer_id: String, + val token: String + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoffApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoffApi.kt new file mode 100644 index 0000000..b8f6639 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoffApi.kt @@ -0,0 +1,16 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class DoLogoffApi : IRequestApi { + + override fun getApi(): String { + return "customer/logoff" + } + + data class Bean( + val customer_id: String, + val token: String + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoutApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoutApi.kt new file mode 100644 index 0000000..cbea227 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/DoLogoutApi.kt @@ -0,0 +1,16 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + + +class DoLogoutApi : IRequestApi { + + override fun getApi(): String { + return "customer/signout" + } + + data class Bean( + val customer_id: String, + val token: String + ) +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/EnterTheAppApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/EnterTheAppApi.kt new file mode 100644 index 0000000..2f298d8 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/EnterTheAppApi.kt @@ -0,0 +1,11 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class EnterTheAppApi : IRequestApi { + + override fun getApi(): String { + return "customer/enterTheApp" + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/FirebaseTokenApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/FirebaseTokenApi.kt new file mode 100644 index 0000000..df9b967 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/FirebaseTokenApi.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class FirebaseTokenApi : IRequestApi { + + override fun getApi(): String { + return "customer/firebaseToken" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/GooglePaidApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/GooglePaidApi.kt new file mode 100644 index 0000000..ecd3555 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/GooglePaidApi.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class GooglePaidApi : IRequestApi { + + override fun getApi(): String { + return "googlePaid" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeDayMaxRechargeShortPlayRankApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeDayMaxRechargeShortPlayRankApi.kt index 9e2e176..e107db3 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeDayMaxRechargeShortPlayRankApi.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeDayMaxRechargeShortPlayRankApi.kt @@ -1,7 +1,7 @@ package com.localee.mireo.app.http.api import com.hjq.http.config.IRequestApi -import java.io.Serializable +import com.localee.mireo.app.http.bean.RecommendBean class HomeDayMaxRechargeShortPlayRankApi : IRequestApi { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeModuleApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeModuleApi.kt index 2af6f08..7b6da45 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeModuleApi.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeModuleApi.kt @@ -1,6 +1,7 @@ package com.localee.mireo.app.http.api import com.hjq.http.config.IRequestApi +import com.localee.mireo.app.http.bean.RecommendBean import java.io.Serializable @@ -18,6 +19,7 @@ class HomeModuleApi : IRequestApi { var newTopThree: List? = null var highestPayment: List? = null var hottestPist: List? = null + var nineSquare: RecommandDataBean? = null } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeVideoListApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeVideoListApi.kt index fd76e34..6f0098c 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeVideoListApi.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HomeVideoListApi.kt @@ -1,7 +1,7 @@ package com.localee.mireo.app.http.api import com.hjq.http.config.IRequestApi -import java.io.Serializable +import com.localee.mireo.app.http.bean.RecommendBean class HomeVideoListApi : IRequestApi { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LanguageApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LanguageApi.kt new file mode 100644 index 0000000..5705179 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LanguageApi.kt @@ -0,0 +1,26 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class LanguageApi : IRequestApi { + + override fun getApi(): String { + return "languges" + } + + class Bean( + val list: List, + ) { + + data class Data( + val cn_name: String, + val show_name: String, + var id: Int, + val lang_key: String, + val description: String, + val is_default: Int + ) + + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LeaveAppApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LeaveAppApi.kt new file mode 100644 index 0000000..88fccc9 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/LeaveAppApi.kt @@ -0,0 +1,14 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class LeaveAppApi : IRequestApi { + + override fun getApi(): String { + return "customer/leaveApp" + } + + var action: String? = null + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/MessageSendReportApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/MessageSendReportApi.kt new file mode 100644 index 0000000..2b8053b --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/MessageSendReportApi.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class MessageSendReportApi : IRequestApi { + + override fun getApi(): String { + return "message/sendReport" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/NoticeNumApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/NoticeNumApi.kt new file mode 100644 index 0000000..2263594 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/NoticeNumApi.kt @@ -0,0 +1,16 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + + +class NoticeNumApi : IRequestApi { + + override fun getApi(): String { + return "noticeNum" + } + + class Bean( + val feedback_notice_num: Int + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OnLineApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OnLineApi.kt new file mode 100644 index 0000000..ec4724f --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OnLineApi.kt @@ -0,0 +1,14 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class OnLineApi : IRequestApi { + + override fun getApi(): String { + return "customer/onLine" + } + + var action: String? = null + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OpenNotifyApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OpenNotifyApi.kt new file mode 100644 index 0000000..1ab66a7 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/OpenNotifyApi.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class OpenNotifyApi : IRequestApi { + + override fun getApi(): String { + return "openNotify" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/PaySettingsApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/PaySettingsApi.kt new file mode 100644 index 0000000..c059c65 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/PaySettingsApi.kt @@ -0,0 +1,15 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class PaySettingsApi : IRequestApi { + + override fun getApi(): String { + return "paySettingsV3" + } + + var short_play_id: Int? = null + + var short_play_video_id: Int? = null + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/SendCoinListApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/SendCoinListApi.kt new file mode 100644 index 0000000..bf35ba6 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/SendCoinListApi.kt @@ -0,0 +1,39 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class SendCoinListApi : IRequestApi { + + override fun getApi(): String { + return "sendCoinList" + } + + var current_page: Int? = null + + var page_size: Int? = null + + class Bean ( + val list: List, + val pagination: Pagination + ) { + + data class Data( + val id: Int, + val created_at: String, + var type: String, + val left_coins: String, + val expired_time: String, + val is_effective: Int, + val coins: String, + var diff_datetime: String, + ) + + data class Pagination( + val current_page: Int, + val page_size: Int, + val page_total: Int, + val total_size: Int + ) + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/TranslatesLanguageApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/TranslatesLanguageApi.kt new file mode 100644 index 0000000..bdc6141 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/TranslatesLanguageApi.kt @@ -0,0 +1,12 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class TranslatesLanguageApi : IRequestApi { + + override fun getApi(): String { + return "translates" + } + + var language_key : String? = null +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UploadHistorySecondsApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UploadHistorySecondsApi.kt new file mode 100644 index 0000000..c9030b5 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UploadHistorySecondsApi.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class UploadHistorySecondsApi : IRequestApi { + + override fun getApi(): String { + return "uploadHistorySeconds" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UserInfoRes.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UserInfoRes.kt index 0f0a64b..558ac0d 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UserInfoRes.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/UserInfoRes.kt @@ -19,7 +19,7 @@ class UserInfoRes ( val registered_days: Int = 0, val send_coin_left_total: Int = 0, val third_access_platform: String = "", - val vip_end_time: Int = 0, + val vip_end_time: String = "", val vip_type: String = "" ) { companion object { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/VideoDetailsApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/VideoDetailsApi.kt index 76e5fc6..9b23481 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/VideoDetailsApi.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/VideoDetailsApi.kt @@ -3,7 +3,7 @@ package com.localee.mireo.app.http.api import android.os.Parcel import android.os.Parcelable import com.hjq.http.config.IRequestApi -import java.io.Serializable +import java.util.ArrayList class VideoDetailsApi : IRequestApi { @@ -16,6 +16,9 @@ class VideoDetailsApi : IRequestApi { var video_id: Int? = null + var activity_id: Int? = null + + data class Bean( val episodeList: List, @@ -100,7 +103,8 @@ class VideoDetailsApi : IRequestApi { val name: String, val process: Int, val short_id: Int, - val watch_total: Int + val watch_total: Int, + val category: ArrayList? ): Parcelable { constructor(parcel: Parcel) : this( parcel.readInt(), @@ -114,7 +118,8 @@ class VideoDetailsApi : IRequestApi { parcel.readString().toString(), parcel.readInt(), parcel.readInt(), - parcel.readInt() + parcel.readInt(), + parcel.createStringArrayList() ) { } @@ -131,6 +136,7 @@ class VideoDetailsApi : IRequestApi { parcel.writeInt(process) parcel.writeInt(short_id) parcel.writeInt(watch_total) + parcel.writeStringList(category) } override fun describeContents(): Int { @@ -146,6 +152,7 @@ class VideoDetailsApi : IRequestApi { return arrayOfNulls(size) } } + } data class VideoInfo( diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/W2aApi.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/W2aApi.kt new file mode 100644 index 0000000..7629015 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/W2aApi.kt @@ -0,0 +1,12 @@ +package com.localee.mireo.app.http.api + +import com.hjq.http.config.IRequestApi + +class W2aApi : IRequestApi { + + override fun getApi(): String { + return "w2aSelfAttribution" + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/CreateOrderReqBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/CreateOrderReqBean.kt new file mode 100644 index 0000000..dc63ce6 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/CreateOrderReqBean.kt @@ -0,0 +1,8 @@ +package com.localee.mireo.app.http.bean + +class CreateOrderReqBean ( + val pay_setting_id: String, + val payment_channel: String, + val short_play_id: Int, + val video_id: Int +) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HistoryBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HistoryBean.kt similarity index 88% rename from Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HistoryBean.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HistoryBean.kt index 6c53c46..7f59af5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/HistoryBean.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HistoryBean.kt @@ -1,4 +1,4 @@ -package com.localee.mireo.app.http.api +package com.localee.mireo.app.http.bean class HistoryBean ( val list: List, @@ -15,7 +15,7 @@ class HistoryBean ( val current_episode: String, var is_collect: Boolean, var is_check: Boolean, - val categoryList: List + val category: List ) data class Pagination( diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HomeDataHistoryBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HomeDataHistoryBean.kt new file mode 100644 index 0000000..d834168 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/HomeDataHistoryBean.kt @@ -0,0 +1,8 @@ +package com.localee.mireo.app.http.bean + +class HomeDataHistoryBean ( + val video_name: String, + val video_id: Int, + val video_last: String, + val video_img: String +) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/IncidentBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/IncidentBean.kt new file mode 100644 index 0000000..4a50603 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/IncidentBean.kt @@ -0,0 +1,3 @@ +package com.localee.mireo.app.http.bean + +class IncidentBean(val incident: String?, val res: String?, val time: Long) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsBean.kt new file mode 100644 index 0000000..2b9f699 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsBean.kt @@ -0,0 +1,9 @@ +package com.localee.mireo.app.http.bean + +class JsBean( + val token: String, + val time_zone: String, + val lang: String, + val type: String, + val theme: String +) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsDetailsBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsDetailsBean.kt new file mode 100644 index 0000000..ce18c98 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsDetailsBean.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.bean + +class JsDetailsBean( + val token: String, + val time_zone: String, + val lang: String, + val type: String, + val id: String, + val theme: String +) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoBean.kt new file mode 100644 index 0000000..ad8fa08 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoBean.kt @@ -0,0 +1,14 @@ +package com.localee.mireo.app.http.bean +class JsonInfoBean( + val data: Data?, + val is_complete: Boolean, + val is_show: Int, + val type: String +) { + + data class Data( + val activity_id: Int, + val short_play_id: Int? + ) +} + diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoUrlBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoUrlBean.kt new file mode 100644 index 0000000..c304091 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/JsonInfoUrlBean.kt @@ -0,0 +1,12 @@ +package com.localee.mireo.app.http.bean +class JsonInfoUrlBean( + val `data`: Data, + val is_complete: Int, + val is_show: Int, + val type: String +) { + + data class Data( + val link: String + ) +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/LoginBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/LoginBean.kt new file mode 100644 index 0000000..459c43a --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/LoginBean.kt @@ -0,0 +1,10 @@ +package com.localee.mireo.app.http.bean + +class LoginBean ( + val avator: String, + val email: String, + val family_name: String, + val giving_name: String, + val platform: String, + val third_id: String +) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayBean.kt new file mode 100644 index 0000000..38e9a5d --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayBean.kt @@ -0,0 +1,11 @@ +package com.localee.mireo.app.http.bean + +class PayBean ( + val order_code: String, + val pay_setting_id: String,//id + val pkg_name: String, + val product_id: String,//template id + val purchases_token: String, + val transaction_id: String, + val show_money: String, +) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayResBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayResBean.kt new file mode 100644 index 0000000..041c342 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PayResBean.kt @@ -0,0 +1,8 @@ +package com.localee.mireo.app.http.bean + +class PayResBean ( + val is_backhaul: Int,//1可以上传 + val money: String,//回传价格 + val order_code: String, + val status: String +) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PaySettingsBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PaySettingsBean.kt new file mode 100644 index 0000000..c69efcd --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/PaySettingsBean.kt @@ -0,0 +1,68 @@ +package com.localee.mireo.app.http.bean + +class PaySettingsBean( + val list_coins: List, + val list_vip: List, + val list_sub_vip: List, + val list_retrieve: List +) { + + data class Coins( + val android_template_id: String, + val backhaul_price: String, + val brief: String, + val buy_type: String, + val coins: Int, + val created_at: String, + val currency: String, + var currency_goolge: String?, + val description: String, + val id: Int, + val ios_template_id: String, + val corner_marker: String, + val lang_id: Int, + val origin_price: String, + val platform: String, + val price: String, + var price_google: String?, + val send_coins: Int, + val sort: Int, + val status: String, + val title: String, + val size: String, + val translate_key: String, + val updated_at: String, + val vip_type: String + ) + + data class Vip( + val android_template_id: String, + val backhaul_price: String, + val brief: String, + val short_type: String, + val buy_type: String, + val coins: Int, + val created_at: String, + val currency: String, + var currency_goolge: String?, + val description: String, + val id: Int, + val ios_template_id: String, + val lang_id: Int, + val origin_price: String, + val platform: String, + val price: String, + var price_google: String?, + val send_coins: Int, + val send_coin_ttl: Int, + val sort: Int, + var show: Int, + val status: String, + val title: String, + val translate_key: String, + val updated_at: String, + val auto_sub: String, + var vip_type: String, + var vip_type_key: String, + ) +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/RecommendBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/RecommendBean.kt similarity index 93% rename from Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/RecommendBean.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/RecommendBean.kt index 4f235fa..434d6c5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/api/RecommendBean.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/RecommendBean.kt @@ -1,4 +1,4 @@ -package com.localee.mireo.app.http.api +package com.localee.mireo.app.http.bean class RecommendBean( var id: Int, diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/TranslatesRes.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/TranslatesBean.kt similarity index 99% rename from Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/TranslatesRes.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/TranslatesBean.kt index 85216ff..8f4fc51 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/TranslatesRes.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/TranslatesBean.kt @@ -1,6 +1,6 @@ -package com.localee.mireo.app.ui.videoPaly +package com.localee.mireo.app.http.bean -class TranslatesRes( +class TranslatesBean( val languages: List, val last_update_time: String, val translates: Translates diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/UploadHistoryBean.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/UploadHistoryBean.kt new file mode 100644 index 0000000..cd440ab --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/bean/UploadHistoryBean.kt @@ -0,0 +1,7 @@ +package com.localee.mireo.app.http.bean + +class UploadHistoryBean ( + val play_seconds: Long?, + val short_play_id: Int, + val video_id: Int? +) \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/HttpBodyInterceptor.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/HttpBodyInterceptor.kt index 8aeef45..98cd33b 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/HttpBodyInterceptor.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/HttpBodyInterceptor.kt @@ -1,8 +1,12 @@ package com.localee.mireo.app.http.exception +import com.localee.mireo.app.other.MsConstants +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import okhttp3.Interceptor import okhttp3.Response import okhttp3.ResponseBody +import org.greenrobot.eventbus.EventBus import java.io.IOException @@ -12,7 +16,9 @@ class HttpBodyInterceptor : Interceptor { @kotlin.jvm.Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { val k_center = chain.proceed(chain.request()) - + if (k_center.code() != 200) { + return k_center + } return if (k_center.body() != null && k_center.body()!!.contentType() != null) { val actiity = k_center.body()!!.contentType() val circle = k_center.body()!!.string() @@ -82,4 +88,35 @@ class HttpBodyInterceptor : Interceptor { } } + private var lastPostTime: Long = 0L + private val lock = Any() + private val lock1 = Any() + + suspend fun handle401Response() = withContext(Dispatchers.Main) { + synchronized(lock1) { + val currentTime = System.currentTimeMillis() + if (currentTime - lastPostTime >= DELAY_TIME_MILLIS) { + EventBus.getDefault() + .post(MsConstants.CONSTANTS_auth_refresh) + lastPostTime = currentTime + } + } + } + + suspend fun handle402Response() = withContext(Dispatchers.Main) { + synchronized(lock) { + val currentTime = System.currentTimeMillis() + if (currentTime - lastPostTime >= DELAY_TIME_MILLIS) { + EventBus.getDefault() + .post(MsConstants.CONSTANTS_out_login) + lastPostTime = currentTime + } + } + } + + companion object { + private const val DELAY_TIME_MILLIS = 2000L // 延迟时间,单位毫秒 + } + + } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/Token402Exception.java b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/Token402Exception.java new file mode 100644 index 0000000..d528051 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/exception/Token402Exception.java @@ -0,0 +1,15 @@ +package com.localee.mireo.app.http.exception; + +import com.hjq.http.exception.HttpException; + + +public final class Token402Exception extends HttpException { + + public Token402Exception(String message) { + super(message); + } + + public Token402Exception(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/HttpData.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/HttpData.kt index 2a11f49..e163c05 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/HttpData.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/HttpData.kt @@ -24,7 +24,11 @@ open class HttpData { return code == 200 } - fun isTokenFailure(): Boolean { - return code == 1001 + fun is401Failure(): Boolean { + return code == 401 + } + + fun is402Failure(): Boolean { + return code == 402 } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/RequestHandler.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/RequestHandler.kt index 318b0d6..04439f1 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/RequestHandler.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/http/model/RequestHandler.kt @@ -19,12 +19,20 @@ import com.hjq.http.exception.ServerException import com.hjq.http.exception.TimeoutException import com.hjq.http.request.HttpRequest import com.localee.mireo.app.http.exception.ResultException -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.http.exception.Token402Exception import com.localee.mireo.app.http.exception.TokenException +import com.localee.mireo.app.other.MsConstants import com.tencent.mmkv.MMKV +import kotlinx.coroutines.DelicateCoroutinesApi +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import okhttp3.Headers import okhttp3.Response import okhttp3.ResponseBody +import org.greenrobot.eventbus.EventBus import java.io.IOException import java.io.InputStream import java.lang.reflect.GenericArrayType @@ -41,14 +49,23 @@ class RequestHandler constructor(private val mApplication: Application) : IReque return response } - if (!response.isSuccessful) { - throw ResponseException( - String.format( - mApplication.getString(R.string.http_response_error), - response.code(), response.message() - ), response - ) + if (response.code() == 401) { + throw TokenException( + mApplication.getString(R.string.http_token_error) + ) + }else if (response.code() == 402) { + throw Token402Exception( + mApplication.getString(R.string.http_token_error) + ) + }else { + throw ResponseException( + String.format( + mApplication.getString(R.string.http_response_error), + response.code(), response.message() + ), response + ) + } } if (Headers::class.java == type) { return response.headers() @@ -113,20 +130,33 @@ class RequestHandler constructor(private val mApplication: Application) : IReque return result } - if (model.isTokenFailure()) { + if (model.is401Failure()) { throw TokenException( mApplication.getString(R.string.http_token_error) ) } + if (model.is402Failure()) { + throw Token402Exception( + mApplication.getString(R.string.http_token_error) + ) + } throw ResultException(model.getMessage(), model) } return result } + @OptIn(DelicateCoroutinesApi::class) override fun requestFail(httpRequest: HttpRequest<*>, throwable: Throwable): Throwable { if (throwable is HttpException) { if (throwable is TokenException) { + GlobalScope.launch(Dispatchers.Main) { + handle401Response() + } + }else if (throwable is Token402Exception) { + GlobalScope.launch(Dispatchers.Main) { + handle402Response() + } } return throwable } @@ -234,5 +264,34 @@ class RequestHandler constructor(private val mApplication: Application) : IReque HttpCacheManager.clearCache() } + private var lastPostTime: Long = 0L + private val lock = Any() + private val lock1 = Any() + + private suspend fun handle401Response() = withContext(Dispatchers.Main) { + synchronized(lock1) { + val currentTime = System.currentTimeMillis() + if (currentTime - lastPostTime >= DELAY_TIME_MILLIS) { + EventBus.getDefault() + .post(MsConstants.CONSTANTS_auth_refresh) + lastPostTime = currentTime + } + } + } + + private suspend fun handle402Response() = withContext(Dispatchers.Main) { + synchronized(lock) { + val currentTime = System.currentTimeMillis() + if (currentTime - lastPostTime >= DELAY_TIME_MILLIS) { + EventBus.getDefault() + .post(MsConstants.CONSTANTS_out_login) + lastPostTime = currentTime + } + } + } + + companion object { + private const val DELAY_TIME_MILLIS = 2000L // 延迟时间,单位毫秒 + } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/manager/ActivityManager.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/manager/ActivityManager.kt index 24c8937..fbed3a6 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/manager/ActivityManager.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/manager/ActivityManager.kt @@ -5,7 +5,6 @@ import android.app.Application import android.app.Application.ActivityLifecycleCallbacks import android.os.Bundle import androidx.collection.ArrayMap -import timber.log.Timber import java.util.* class ActivityManager private constructor() : ActivityLifecycleCallbacks { @@ -58,6 +57,7 @@ class ActivityManager private constructor() : ActivityLifecycleCallbacks { fun registerApplicationLifecycleCallback(callback: ApplicationLifecycleCallback) { lifecycleCallbacks.add(callback) } + fun unregisterApplicationLifecycleCallback(callback: ApplicationLifecycleCallback) { lifecycleCallbacks.remove(callback) } @@ -108,39 +108,32 @@ class ActivityManager private constructor() : ActivityLifecycleCallbacks { } override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { - Timber.i("%s - onCreate", activity.javaClass.simpleName) if (activitySet.size == 0) { for (callback: ApplicationLifecycleCallback? in lifecycleCallbacks) { callback?.onApplicationCreate(activity) } - Timber.i("%s - onApplicationCreate", activity.javaClass.simpleName) } activitySet[getObjectTag(activity)] = activity topActivity = activity } override fun onActivityStarted(activity: Activity) { - Timber.i("%s - onStart", activity.javaClass.simpleName) } override fun onActivityResumed(activity: Activity) { - Timber.i("%s - onResume", activity.javaClass.simpleName) if (topActivity === activity && resumedActivity == null) { for (callback: ApplicationLifecycleCallback in lifecycleCallbacks) { callback.onApplicationForeground(activity) } - Timber.i("%s - onApplicationForeground", activity.javaClass.simpleName) } topActivity = activity resumedActivity = activity } override fun onActivityPaused(activity: Activity) { - Timber.i("%s - onPause", activity.javaClass.simpleName) } override fun onActivityStopped(activity: Activity) { - Timber.i("%s - onStop", activity.javaClass.simpleName) if (resumedActivity === activity) { resumedActivity = null } @@ -148,16 +141,13 @@ class ActivityManager private constructor() : ActivityLifecycleCallbacks { for (callback: ApplicationLifecycleCallback in lifecycleCallbacks) { callback.onApplicationBackground(activity) } - Timber.i("%s - onApplicationBackground", activity.javaClass.simpleName) } } override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { - Timber.i("%s - onSaveInstanceState", activity.javaClass.simpleName) } override fun onActivityDestroyed(activity: Activity) { - Timber.i("%s - onDestroy", activity.javaClass.simpleName) activitySet.remove(getObjectTag(activity)) if (topActivity === activity) { topActivity = null @@ -166,7 +156,6 @@ class ActivityManager private constructor() : ActivityLifecycleCallbacks { for (callback: ApplicationLifecycleCallback in lifecycleCallbacks) { callback.onApplicationDestroy(activity) } - Timber.i("%s - onApplicationDestroy", activity.javaClass.simpleName) } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/AppConfig.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/AppConfig.kt index 276f853..facb814 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/AppConfig.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/AppConfig.kt @@ -1,6 +1,6 @@ package com.localee.mireo.app.other -import com.localee.mireo.app.BuildConfig +import com.localee.mireo.shortapp.BuildConfig object AppConfig { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/DebugLoggerTree.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/DebugLoggerTree.kt deleted file mode 100644 index b3b03a7..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/DebugLoggerTree.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.localee.mireo.app.other - -import android.os.Build -import timber.log.Timber.DebugTree - -class DebugLoggerTree : DebugTree() { - - companion object { - private const val MAX_TAG_LENGTH: Int = 23 - } - - override fun createStackElementTag(element: StackTraceElement): String { - val tag: String = "(" + element.fileName + ":" + element.lineNumber + ")" - if (tag.length <= MAX_TAG_LENGTH || Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - return tag - } - return tag.substring(0, MAX_TAG_LENGTH) - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/Logger.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/Logger.kt new file mode 100644 index 0000000..0baf148 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/Logger.kt @@ -0,0 +1,21 @@ +package com.localee.mireo.app.other + +import android.util.Log + +object Logger { + private const val GLOBAL_TAG = "AppLogger" + + fun d(message: String, tag: String = GLOBAL_TAG) { + if (AppConfig.isDebug()) Log.d(tag, buildLogMessage(message)) + } + + fun e(throwable: Throwable, message: String = "", tag: String = GLOBAL_TAG) { + if (AppConfig.isDebug()) { + Log.e(tag, buildLogMessage(message), throwable) + } + } + + private fun buildLogMessage(message: String): String { + return "[${Thread.currentThread().name}] $message" + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MaterialHeader.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MaterialHeader.kt index bf8c1c2..cb93e31 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MaterialHeader.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MaterialHeader.kt @@ -11,7 +11,7 @@ import android.widget.ImageView import androidx.annotation.ColorInt import androidx.annotation.ColorRes import androidx.core.content.ContextCompat -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.scwang.smart.refresh.header.material.CircleImageView import com.scwang.smart.refresh.header.material.MaterialProgressDrawable import com.scwang.smart.refresh.layout.api.RefreshHeader diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MsConstants.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MsConstants.kt index c81a7d8..60cd1d7 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MsConstants.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MsConstants.kt @@ -11,27 +11,16 @@ object MsConstants { const val Constants_user_agreement = "https://www.mireotv.com/user_policy" const val Constants_privacy_policy = "https://www.mireotv.com/private" - const val EVENT_VIDEO_CLOSE = "event_video_close" - const val EVENT_VIDEO_NEXT = "event_video_next" - const val EVENT_VIDEO_HOME_NEXT = "event_video_home_next" - const val EVENT_VIDEO_PLAY = "event_video_play" - const val EVENT_VIDEO_UPDATE = "event_video_update" - const val EVENT_SELECT_COLLECT = "event_select_collect" - const val EVENT_SELECT_HOME_COLLECT = "event_select_home_collect" - const val EVENT_CLICK_COLLECTION = "event_click_Collection" - const val EVENT_TO_LOGIN = "event_to_login" - const val EVENT_SHOW_AD = "event_show_ad" - const val EVENT_ADD_IN = "event_add_in" - const val EVENT_TO_HOME = "event_to_home" - const val EVENT_DELE_ACC = "event_dele_acc" - const val EVENT_UPDATE_MAIN = "event_update_main" - const val EVENT_UPDATE_USER = "event_update_user_info" - const val EVENT_MAIN_UPDATE_USER_INFO = "event_update_user_info" - const val CLOSE_VIDEO = "close_video" - const val EVENT_SHOW_ADS = "event_show_ads" - const val EVENT_UPDATE_COLLECTION = "event_update_Collection" + const val feedback_URL_res: String = "https://campaign.mireotv.com/pages/leave/index" + const val feedback_list_URL_res: String = "https://campaign.mireotv.com/pages/leave/list" + const val feedback_detail_URL_res: String = "https://campaign.mireotv.com/pages/leave/detail" + const val REWARD_URL_RES: String = "https://campaign.mireotv.com/" + const val CONSTANTS_lang_key = "lang-key" + const val CONSTANTS_Detail_id = "CONSTANTS_Detail_id" + var IsRegister: Boolean = true + var IsFirst: Boolean = true var ExampleIsCurrentPage: Boolean = true var Exampleplaying: Boolean = false var ExampleDetailPlaying: Boolean = false @@ -40,6 +29,7 @@ object MsConstants { var CanNotification: Boolean = false var WebRefresh: Boolean = false var isBannerScrolling: Boolean = true + var ExampleLock: Boolean = false var seek = true const val Constants_RecommendPlayerView_PLAYER_STATUS_FINISHExample = "Constants_RecommendPlayerView_PLAYER_STATUS_FINISHExample" @@ -62,4 +52,41 @@ object MsConstants { const val CONSTANTS_activity_id = "CONSTANTS_activity_id" const val CONSTANTS_stop_play = "CONSTANTS_stop_play" + const val Constants_requestPermissions_photo = "Constants_requestPermissions_photo" + const val CONSTANTS_auth_refresh = "CONSTANTS_auth_refresh" + const val CONSTANTS_refresh_translate = "CONSTANTS_refresh_translate" + const val CONSTANTS_out_login = "CONSTANTS_out_login" + const val CONSTANTS_refresh_home = "CONSTANTS_refresh_home" + const val CONSTANTS_refresh_me = "CONSTANTS_refresh_me" + const val CONSTANTS_user_refresh = "CONSTANTS_user_refresh" + const val Constants_language_set = "Constants_language_set" + const val Constants_language_refresh = "Constants_language_refresh" + const val Constants_Main_Video_info = "Constants_Main_Video_info" + const val Constants_openFeedback = "Constants_openFeedback" + const val Constants_openFeedbackDetail = "Constants_openFeedbackDetail" + const val Constants_requestPermissions_photo_detail = + "Constants_requestPermissions_photo_detail" + const val CONSTANTS_rating = "CONSTANTS_rating" + const val CONSTANTS_web_refresh = "CONSTANTS_web_refresh" + const val CONSTANTS_Episode = "CONSTANTS_Episode" + const val CONSTANTS_Login = "CONSTANTS_Login" + + const val CONSTANTS_enterTheApp = "CONSTANTS_enterTheApp" + const val CONSTANTS_onLine = "CONSTANTS_onLine" + const val CONSTANTS_leaveApp = "CONSTANTS_leaveApp" + + const val Constants_DDL_Url = "Constants_DDL_Url" + const val Constants_Main_Video_status = "Constants_Main_Video_status" + + const val CONSTANTS_examplePayReq = "CONSTANTS_examplePayReq" + const val CONSTANTS_pay_refresh = "CONSTANTS_pay_refresh" + + const val Constants_onTokenRefresh = "Constants_onTokenRefresh" + const val CONSTANTS_PREF_LAST_POPUP_TIME_Notification = + "CONSTANTS_PREF_LAST_POPUP_TIME_Notification" + const val ONE_DAY_IN_MILLIS = 24 * 60 * 60 * 1000L + const val ONE_DAY_IN_MILLIS_VIP = 60 * 60 * 1000L + const val CONSTANTS_web_notification = "CONSTANTS_web_notification" + + } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MyFirebaseMessagingService.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MyFirebaseMessagingService.kt new file mode 100644 index 0000000..d2f2060 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/MyFirebaseMessagingService.kt @@ -0,0 +1,231 @@ +package com.localee.mireo.app.other + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Context +import android.content.Intent +import android.graphics.Bitmap +import android.graphics.drawable.Drawable +import android.media.RingtoneManager +import android.os.Build +import android.util.Log +import androidx.core.app.NotificationCompat +import androidx.work.OneTimeWorkRequest +import androidx.work.WorkManager +import androidx.work.Worker +import androidx.work.WorkerParameters +import com.bumptech.glide.Glide +import com.bumptech.glide.request.target.CustomTarget +import com.bumptech.glide.request.transition.Transition +import com.google.firebase.messaging.FirebaseMessagingService +import com.google.firebase.messaging.RemoteMessage +import com.localee.mireo.app.ui.activity.HomeActivity +import com.localee.mireo.shortapp.R +import org.greenrobot.eventbus.EventBus + +class MyFirebaseMessagingService : FirebaseMessagingService() { + + private var notificationId: Int = 0 + + // [START receive_message] + override fun onMessageReceived(remoteMessage: RemoteMessage) { + // Not getting messages here? See why this may be: https://goo.gl/39bRNJ + Log.d(TAG, "From: ${remoteMessage.from}") + + // Check if message contains a data payload. +// if (remoteMessage.data.isNotEmpty()) { + // Check if data needs to be processed by long running job +// if (needsToBeScheduled()) { +// // For long-running tasks (10 seconds or more) use WorkManager. +// scheduleJob() +// } else { +// // Handle message within 10 seconds +// handleNow() +// } +// } + Log.d(TAG, "Message data payload: ${remoteMessage.data}") + // Check if message contains a notification payload. +// remoteMessage.notification?.let { +// Log.d(TAG, "Message Notification Body: ${it.body}") +// +// } +// if (ExampleApplication.isAppInBackground) { + sendNotification(remoteMessage.data) +// } + // Also if you intend on generating your own notifications as a result of a received FCM + // message, here is where that should be initiated. See sendNotification method below. + } + + private fun needsToBeScheduled() = true + + // [START on_new_token] + /** + * Called if the FCM registration token is updated. This may occur if the security of + * the previous token had been compromised. Note that this is called when the + * FCM registration token is initially generated so this is where you would retrieve the token. + */ + override fun onNewToken(token: String) { + Log.d(TAG, "Refreshed token: $token") + + // If you want to send messages to this application instance or + // manage this apps subscriptions on the server side, send the + // FCM registration token to your app server. + sendRegistrationToServer(token) + } + // [END on_new_token] + + private fun scheduleJob() { + // [START dispatch_job] + val work = OneTimeWorkRequest.Builder(MyWorker::class.java) + .build() + WorkManager.getInstance(this) + .beginWith(work) + .enqueue() + // [END dispatch_job] + } + + private fun handleNow() { + Log.d(TAG, "Short lived task is done.") + } + + private fun sendRegistrationToServer(token: String?) { + Log.d(TAG, "sendRegistrationTokenToServer($token)") + EventBus.getDefault() + .post(MsConstants.Constants_onTokenRefresh) + } + + private fun sendNotification( + data: MutableMap + ) { + val intent = Intent(this, HomeActivity::class.java) + var title = "" + var messageBody = "" + var poster = "" + if (data.isNotEmpty()) { + if (data.containsKey("message_title")) { + title = data["message_title"].toString() + intent.putExtra("title", title) + } + if (data.containsKey("message_body")) { + messageBody = data["message_body"].toString() + } + if (data.containsKey("message_id")) { + val message_id = data["message_id"] + intent.putExtra("message_id", message_id) + } + if (data.containsKey("path")) { + when (data["path"]) { + "detail" -> { + if (data.containsKey("short_play_id")) { + val short_play_id = data["short_play_id"] + intent.putExtra("short_play_id", short_play_id) + } + intent.putExtra("path", "detail") + } + + "promotion" -> { + intent.putExtra("path", "promotion") + } + + "orderDetail" -> { + intent.putExtra("path", "orderDetail") + } + + "feedback" -> { + intent.putExtra("path", "feedback") + } + } + } + if (data.containsKey("poster")) { + poster = data["poster"].toString() + Glide.with(this) + .asBitmap() + .load(poster) + .into(object : CustomTarget() { + override fun onResourceReady( + resource: Bitmap, + transition: Transition? + ) { + setNotification(intent, title, messageBody, resource) + } + + override fun onLoadFailed(errorDrawable: Drawable?) { + super.onLoadFailed(errorDrawable) + + } + + override fun onLoadCleared(placeholder: Drawable?) { + + } + }) + } else { + setNotification(intent, title, messageBody, null) + } + } + } + + private fun setNotification( + intent: Intent, + title: String, + messageBody: String, + resource: Bitmap? + ) { + val pendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + PendingIntent.getActivity( + this, + 0, + intent, + PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT + ) + } else { + PendingIntent.getActivity( + this, + 0, + intent, + PendingIntent.FLAG_UPDATE_CURRENT + ) + } + val channelId = getString(R.string.default_notification_channel_id) + val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) + val notificationBuilder = if (resource != null) NotificationCompat.Builder(this, channelId) + .setSmallIcon(R.mipmap.ic_launcher) + .setContentTitle(title) + .setContentText(messageBody) + .setAutoCancel(true) + .setSound(defaultSoundUri) + .setLargeIcon(resource) + .setContentIntent(pendingIntent) else NotificationCompat.Builder(this, channelId) + .setSmallIcon(R.mipmap.ic_launcher) + .setContentTitle(title) + .setContentText(messageBody) + .setAutoCancel(true) + .setSound(defaultSoundUri) + .setContentIntent(pendingIntent) + + val notificationManager = + getSystemService(NOTIFICATION_SERVICE) as NotificationManager + + // Since android Oreo notification channel is needed. + val channel = NotificationChannel( + channelId, + getString(R.string.default_notification_channel_id), + NotificationManager.IMPORTANCE_DEFAULT + ) + notificationManager.createNotificationChannel(channel) + + notificationId++ + notificationManager.notify(notificationId, notificationBuilder.build()) + } + + companion object { + private const val TAG = "MyFirebaseMsgService" + } + + internal class MyWorker(appContext: Context, workerParams: WorkerParameters) : + Worker(appContext, workerParams) { + override fun doWork(): Result { + return Result.success() + } + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/PermissionCallback.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/PermissionCallback.kt deleted file mode 100644 index f3483f0..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/PermissionCallback.kt +++ /dev/null @@ -1,188 +0,0 @@ -package com.localee.mireo.app.other - -import android.app.Activity -import android.content.* -import android.os.* -import com.hjq.base.BaseDialog -import com.localee.mireo.app.manager.* -import com.localee.mireo.app.ui.dialog.MessageDialog -import com.hjq.permissions.OnPermissionCallback -import com.hjq.permissions.Permission -import com.hjq.permissions.XXPermissions -import com.hjq.toast.ToastUtils -import com.localee.mireo.app.manager.ActivityManager -import java.util.* -import com.localee.mireo.app.R - -abstract class PermissionCallback : OnPermissionCallback { - - override fun onDenied(permissions: MutableList, never: Boolean) { - if (never) { - showPermissionDialog(permissions) - return - } - if (permissions.size == 1 && (Permission.ACCESS_BACKGROUND_LOCATION == permissions[0])) { - ToastUtils.show(R.string.common_permission_fail_4) - return - } - ToastUtils.show(R.string.common_permission_fail_1) - } - - protected fun showPermissionDialog(permissions: MutableList) { - val activity: Activity? = ActivityManager.getInstance().getTopActivity() - if ((activity == null) || activity.isFinishing || activity.isDestroyed) { - return - } - MessageDialog.Builder(activity) - .setTitle(R.string.common_permission_alert) - .setMessage(getPermissionHint(activity, permissions)) - .setConfirm(R.string.common_permission_goto) - .setCancel(null) - .setCancelable(false) - .setListener(object : MessageDialog.OnListener { - - override fun onConfirm(dialog: BaseDialog?) { - XXPermissions.startPermissionActivity(activity, permissions) - } - }) - .show() - } - - protected fun getPermissionHint(context: Context, permissions: MutableList): String { - if (permissions.isEmpty()) { - return context.getString(R.string.common_permission_fail_2) - } - val hints: MutableList = ArrayList() - for (permission: String? in permissions) { - when (permission) { - Permission.READ_EXTERNAL_STORAGE, - Permission.WRITE_EXTERNAL_STORAGE, - Permission.MANAGE_EXTERNAL_STORAGE -> { - val hint: String = context.getString(R.string.common_permission_storage) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.CAMERA -> { - val hint: String = context.getString(R.string.common_permission_camera) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.RECORD_AUDIO -> { - val hint: String = context.getString(R.string.common_permission_microphone) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.ACCESS_FINE_LOCATION, - Permission.ACCESS_COARSE_LOCATION, - Permission.ACCESS_BACKGROUND_LOCATION -> { - val hint: String = if (!permissions.contains(Permission.ACCESS_FINE_LOCATION) && - !permissions.contains(Permission.ACCESS_COARSE_LOCATION)) { - context.getString(R.string.common_permission_location_background) - } else { - context.getString(R.string.common_permission_location) - } - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.READ_PHONE_STATE, - Permission.CALL_PHONE, - Permission.ADD_VOICEMAIL, - Permission.USE_SIP, - Permission.READ_PHONE_NUMBERS, - Permission.ANSWER_PHONE_CALLS -> { - val hint: String = context.getString(R.string.common_permission_phone) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.GET_ACCOUNTS, - Permission.READ_CONTACTS, - Permission.WRITE_CONTACTS -> { - val hint: String = context.getString(R.string.common_permission_contacts) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.READ_CALENDAR, - Permission.WRITE_CALENDAR -> { - val hint: String = context.getString(R.string.common_permission_calendar) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.READ_CALL_LOG, - Permission.WRITE_CALL_LOG, - Permission.PROCESS_OUTGOING_CALLS -> { - val hint: String = context.getString(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) R.string.common_permission_call_log else R.string.common_permission_phone) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.BODY_SENSORS -> { - val hint: String = context.getString(R.string.common_permission_sensors) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.ACTIVITY_RECOGNITION -> { - val hint: String = context.getString(R.string.common_permission_activity_recognition) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.SEND_SMS, - Permission.RECEIVE_SMS, - Permission.READ_SMS, - Permission.RECEIVE_WAP_PUSH, - Permission.RECEIVE_MMS -> { - val hint: String = context.getString(R.string.common_permission_sms) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.REQUEST_INSTALL_PACKAGES -> { - val hint: String = context.getString(R.string.common_permission_install) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.NOTIFICATION_SERVICE -> { - val hint: String = context.getString(R.string.common_permission_notification) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.SYSTEM_ALERT_WINDOW -> { - val hint: String = context.getString(R.string.common_permission_window) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - Permission.WRITE_SETTINGS -> { - val hint: String = context.getString(R.string.common_permission_setting) - if (!hints.contains(hint)) { - hints.add(hint) - } - } - } - } - if (hints.isNotEmpty()) { - val builder: StringBuilder = StringBuilder() - for (text: String? in hints) { - if (builder.isEmpty()) { - builder.append(text) - } else { - builder.append("、") - .append(text) - } - } - builder.append(" ") - return context.getString(R.string.common_permission_fail_3, builder.toString()) - } - return context.getString(R.string.common_permission_fail_2) - } -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/SmartBallPulseFooter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/SmartBallPulseFooter.kt index 9fa1174..833e475 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/SmartBallPulseFooter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/SmartBallPulseFooter.kt @@ -9,7 +9,7 @@ import android.util.AttributeSet import android.view.animation.AccelerateDecelerateInterpolator import androidx.annotation.ColorInt import androidx.core.graphics.ColorUtils -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.scwang.smart.refresh.layout.api.RefreshFooter import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.constant.SpinnerStyle diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/TitleBarStyle.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/TitleBarStyle.kt index c49ed16..0a92074 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/TitleBarStyle.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/TitleBarStyle.kt @@ -7,8 +7,8 @@ import android.widget.TextView import androidx.appcompat.widget.AppCompatTextView import androidx.core.content.ContextCompat import com.hjq.bar.style.LightBarStyle -import com.localee.mireo.app.R -import com.hjq.widget.view.PressAlphaTextView +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.widget.view.PressAlphaTextView class TitleBarStyle : LightBarStyle() { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/ToastStyle.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/ToastStyle.kt index 606bb4a..548905e 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/ToastStyle.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/other/ToastStyle.kt @@ -3,7 +3,7 @@ package com.localee.mireo.app.other import android.content.Context import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.hjq.toast.style.BlackToastStyle class ToastStyle : BlackToastStyle() { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AboutActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AboutActivity.kt index 705ff62..f909365 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AboutActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AboutActivity.kt @@ -3,10 +3,10 @@ package com.localee.mireo.app.ui.activity import android.content.Intent import android.net.Uri import android.view.View -import com.localee.mireo.app.R -import com.localee.mireo.app.aop.SingleClick +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.utils.singleClick class AboutActivity : AppActivity() { @@ -23,20 +23,22 @@ class AboutActivity : AppActivity() { override fun initData() { } - @SingleClick override fun onClick(view: View) { - when (view.id) { - R.id.sb_about_web -> { - val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(MsConstants.Constants_web)) - startActivity(webIntent) - } + singleClick { + when (view.id) { + R.id.sb_about_web -> { + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(MsConstants.Constants_web)) + startActivity(webIntent) + } - R.id.sb_about_privacy -> { - BrowserActivity.start(this, MsConstants.Constants_privacy_policy) - } + R.id.sb_about_privacy -> { + BrowserActivity.start(this, MsConstants.Constants_privacy_policy) + } + + R.id.sb_about_agreement -> { + BrowserActivity.start(this, MsConstants.Constants_user_agreement) + } - R.id.sb_about_agreement -> { - BrowserActivity.start(this, MsConstants.Constants_user_agreement) } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AccountDeleteActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AccountDeleteActivity.kt new file mode 100644 index 0000000..76c6649 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/AccountDeleteActivity.kt @@ -0,0 +1,132 @@ +package com.localee.mireo.app.ui.activity + +import android.graphics.Color +import android.widget.ImageView +import androidx.appcompat.widget.AppCompatTextView +import com.facebook.login.LoginManager +import com.hjq.http.EasyHttp +import com.hjq.http.listener.HttpCallbackProxy +import com.hjq.shape.view.ShapeTextView +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.CustomerRegisterApi +import com.localee.mireo.app.http.api.DoLogoffApi +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.other.MsConstants.CONSTANTS_user_refresh +import com.localee.mireo.app.ui.videoPaly.ExampleUnFavoriteDialog +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.shortapp.R +import org.greenrobot.eventbus.EventBus + +class AccountDeleteActivity : AppActivity() { + + private val ivSelect: ImageView? by lazy { findViewById(R.id.iv_select) } + private val tvEight: ShapeTextView? by lazy { findViewById(R.id.tv_eight) } + + private var isSelect = false + + override fun getLayoutId(): Int { + return R.layout.activity_account_delete + } + + override fun initView() { + ivSelect?.setOnClickListener { + singleClick { + if (isSelect) { + isSelect = false + ivSelect?.setImageResource(R.mipmap.compound_normal_ic_1) + tvEight?.setTextColor(Color.parseColor("#8B8B8B")) + tvEight?.shapeDrawableBuilder?.setSolidGradientColors( + 0xff272a30.toInt(), 0xff272a30.toInt() + ) + ?.intoBackground() + } else { + isSelect = true + ivSelect?.setImageResource(R.mipmap.checkbox_checked_ic) + tvEight?.setTextColor(getColor(R.color.white)) + tvEight?.shapeDrawableBuilder?.setSolidGradientColors( + 0XffF8726D.toInt(), 0XFFF24C92.toInt() + ) + ?.intoBackground() + } + } + } + tvEight?.setOnClickListener { + singleClick { + if (!isSelect) { + return@singleClick + } + val exampleUnFavoriteDialog = ExampleUnFavoriteDialog(this) + val tvThinkAgain = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_think_again) + val tvUnfavorite = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_unfavorite) + val tvTitle = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_title) + val tvContent = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_content) + tvThinkAgain.text = "Cancel" + tvUnfavorite.text = "Confirm" + tvTitle.text = "Tips" + tvContent.text = "Are you sure you want to cancel you account?" + tvThinkAgain.setOnClickListener { exampleUnFavoriteDialog.dismiss() } + tvUnfavorite.setOnClickListener { + doLogoff() + exampleUnFavoriteDialog.dismiss() + } + exampleUnFavoriteDialog.show() + } + } + + } + + override fun initData() { + + + } + + fun doLogoff() { + EasyHttp.post(this) + .api(DoLogoffApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + toast("Logout successfully") + LoginManager.getInstance().logOut() + getCustomerRegister() + } ?: run { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + }) + } + + + private fun getCustomerRegister() { + EasyHttp.post(this).api(CustomerRegisterApi()) + .request(object : HttpCallbackProxy>(this) { + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + MsMMKVUtils.getMMKV() + .putString(MsConstants.ACCESS_TOKEN, it.token) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_leaveApp) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_enterTheApp) + EventBus.getDefault().post(MsConstants.CONSTANTS_quality_refresh) + EventBus.getDefault() + .post(CONSTANTS_user_refresh) + MsConstants.WebRefresh = true + HomeActivity.start(this@AccountDeleteActivity) + finish() + } ?: run { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + }) + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/BrowserActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/BrowserActivity.kt index b4900cf..386585d 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/BrowserActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/BrowserActivity.kt @@ -1,17 +1,17 @@ package com.localee.mireo.app.ui.activity import android.app.Activity -import android.content.* +import android.content.Context +import android.content.Intent import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable import android.text.TextUtils -import android.view.* +import android.view.KeyEvent +import android.view.View import android.webkit.WebView import android.widget.ProgressBar -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.StatusAction -import com.localee.mireo.app.aop.CheckNet -import com.localee.mireo.app.aop.Log import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.widget.BrowserView import com.localee.mireo.app.widget.BrowserView.BrowserChromeClient @@ -28,8 +28,6 @@ class BrowserActivity : AppActivity(), StatusAction, OnRefreshListener { const val INTENT_KEY_IN_URL: String = "url" - @CheckNet - @Log fun start(context: Context, url: String) { if (TextUtils.isEmpty(url)) { return @@ -85,7 +83,6 @@ class BrowserActivity : AppActivity(), StatusAction, OnRefreshListener { return super.onKeyDown(keyCode, event) } - @CheckNet private fun reload() { browserView?.reload() } @@ -99,7 +96,12 @@ class BrowserActivity : AppActivity(), StatusAction, OnRefreshListener { private inner class AppBrowserViewClient : BrowserViewClient() { - override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) { + override fun onReceivedError( + view: WebView, + errorCode: Int, + description: String, + failingUrl: String + ) { post { showError(object : OnRetryListener { override fun onRetry(layout: StatusLayout) { @@ -120,7 +122,8 @@ class BrowserActivity : AppActivity(), StatusAction, OnRefreshListener { } } - private inner class AppBrowserChromeClient constructor(view: BrowserView) : BrowserChromeClient(view) { + private inner class AppBrowserChromeClient constructor(view: BrowserView) : + BrowserChromeClient(view) { override fun onReceivedTitle(view: WebView, title: String?) { if (title == null) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackActivity.kt new file mode 100644 index 0000000..36a7db4 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackActivity.kt @@ -0,0 +1,321 @@ +package com.localee.mireo.app.ui.activity + +import android.Manifest +import android.annotation.SuppressLint +import android.content.ContentResolver +import android.content.Intent +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.Color +import android.net.Uri +import android.os.Build +import android.util.Base64 +import android.util.Log +import android.view.View +import android.webkit.JsPromptResult +import android.webkit.JsResult +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient +import android.widget.ImageView +import android.widget.TextView +import androidx.annotation.RequiresApi +import androidx.core.app.ActivityCompat +import androidx.lifecycle.lifecycleScope +import com.blankj.utilcode.util.PermissionUtils +import com.hjq.bar.TitleBar +import com.hjq.http.EasyHttp +import com.hjq.http.listener.HttpCallbackProxy +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.NoticeNumApi +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.utils.JsBridge +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode +import java.io.ByteArrayOutputStream +import java.io.InputStream + +class FeedBackActivity : AppActivity() { + + private val title: TitleBar? by lazy { findViewById(R.id.title) } + private val ivRight: ImageView? by lazy { findViewById(R.id.iv_right) } + private val tvBackNum: TextView? by lazy { findViewById(R.id.tv_back_num) } + private val webView: WebView? by lazy { findViewById(R.id.webView) } + + override fun getLayoutId(): Int { + return R.layout.activity_feedback + } + + override fun initView() { + EventBus.getDefault().register(this) + if (TranslatesUtils.translates() != null) { + title?.setTitle(TranslatesUtils.translates()?.feedback) + } + ivRight?.setOnClickListener { + singleClick { + startActivity( + Intent( + this, + FeedBackListActivity::class.java + ) + ) + } + } + } + + override fun initData() { + setWebView() + showDialog() + loadPageUrl(MsConstants.feedback_URL_res) + } + + override fun onResume() { + super.onResume() + getNoticeNum() + } + + private fun getNoticeNum() { + EasyHttp.post(this) + .api(NoticeNumApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (it.feedback_notice_num != 0) { + tvBackNum?.visibility = View.VISIBLE + tvBackNum?.text = it.feedback_notice_num.toString() + } else { + tvBackNum?.visibility = View.INVISIBLE + } + } + } + }) + } + + @SuppressLint("SetJavaScriptEnabled") + private fun setWebView() { + val webSettings: WebSettings = webView!!.settings + webSettings.javaScriptEnabled = true +// webView?.webChromeClient = WebChromeClient() + webView?.webChromeClient = object : WebChromeClient() { + override fun onJsAlert( + view: WebView, + url: String, + message: String, + result: JsResult + ): Boolean { + result.confirm() + return true + } + + override fun onJsConfirm( + view: WebView, + url: String, + message: String, + result: JsResult + ): Boolean { + + return true + } + + override fun onJsPrompt( + view: WebView, + url: String, + message: String, + defaultValue: String, + result: JsPromptResult + ): Boolean { + + return true + } + } + webView?.setBackgroundColor(Color.TRANSPARENT) + webView?.webViewClient = object : WebViewClient() { + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { + super.onPageStarted(view, url, favicon) + + } + + override fun onPageFinished(view: WebView?, url: String?) { + super.onPageFinished(view, url) + hideDialog() + } + + override fun onReceivedError( + view: WebView?, + request: WebResourceRequest?, + error: WebResourceError? + ) { + super.onReceivedError(view, request, error) + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + hideDialog() + } + } + webSettings.domStorageEnabled = true + webSettings.loadsImagesAutomatically = true + webSettings.useWideViewPort = true + webSettings.loadWithOverviewMode = true + webSettings.builtInZoomControls = true + webSettings.displayZoomControls = false + webView?.addJavascriptInterface( + JsBridge(this), + "AndroidInterface" + ) + } + + private fun loadPageUrl(url: String) { + webView?.loadUrl(url) + } + + private val REQUEST_PICK_FILE: Int = 1002 + private val REQUEST_PERMISSIONS = 1001 + + @RequiresApi(Build.VERSION_CODES.M) + private fun requestPermissions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_MEDIA_IMAGES, + ), + REQUEST_PERMISSIONS + ) + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + ), + REQUEST_PERMISSIONS + ) + } else { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + ), + REQUEST_PERMISSIONS + ) + } + } + + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + if (requestCode == REQUEST_PERMISSIONS) { + if (grantResults.all { it == PackageManager.PERMISSION_GRANTED }) { + openFilePicker() + } else { +// toast(TranslatesUtils.translates()?.open_photo_tips.toString()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + PermissionUtils.launchAppDetailsSettings() + } + } + } + } + + private fun openFilePicker() { + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + startActivityForResult(intent, REQUEST_PICK_FILE) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (requestCode == REQUEST_PICK_FILE && resultCode == RESULT_OK) { + data?.data?.let { uri -> + compressAndConvertImage(uri) + } + } + } + + private fun compressAndConvertImage(uri: Uri) { + lifecycleScope.launch { + val compressedImageBytes = withContext(Dispatchers.IO) { + compressImage(uri, contentResolver) + } + if (compressedImageBytes.isNotEmpty()) { + val base64String = Base64.encodeToString(compressedImageBytes, Base64.DEFAULT) + webView?.loadUrl( + "javascript:uploadConvertImage(" + "'" + base64String + "'" + ")" + ) + } + } + } + + private fun compressImage(uri: Uri, contentResolver: ContentResolver): ByteArray { + try { + val inputStream: InputStream? = contentResolver.openInputStream(uri) + val bitmap = BitmapFactory.decodeStream(inputStream) + inputStream?.close() + + val outputStream = ByteArrayOutputStream() + var quality = 100 + bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream) + + while (outputStream.toByteArray().size > 100 * 1024 && quality > 10) { + quality -= 10 + outputStream.reset() + bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream) + } + + val compressedImageBytes = outputStream.toByteArray() + Log.d( + "compressedImageBytes", + "Compressed image size: ${compressedImageBytes.size} bytes" + ) + return compressedImageBytes + } catch (e: Exception) { + e.printStackTrace() + toast( + TranslatesUtils.translates()?.picture_error ?: "Please select the correct picture~" + ) + } + return byteArrayOf() + } + + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.Constants_requestPermissions_photo == event) { + requestPermissions() + } + if (MsConstants.Constants_openFeedback == event) { + singleClick { + startActivity( + Intent( + this, + FeedBackListActivity::class.java + ) + ) + } + } + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this) + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackDetailsActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackDetailsActivity.kt new file mode 100644 index 0000000..e158428 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackDetailsActivity.kt @@ -0,0 +1,236 @@ +package com.localee.mireo.app.ui.activity + +import android.Manifest +import android.annotation.SuppressLint +import android.content.ContentResolver +import android.content.Intent +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.Color +import android.net.Uri +import android.os.Build +import android.util.Base64 +import android.util.Log +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient +import androidx.annotation.RequiresApi +import androidx.core.app.ActivityCompat +import androidx.lifecycle.lifecycleScope +import com.blankj.utilcode.util.PermissionUtils +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.app.BaseEventBus +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.utils.JsBridge +import com.localee.mireo.app.utils.JsBridgeDetail +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode +import java.io.ByteArrayOutputStream +import java.io.InputStream + +class FeedBackDetailsActivity : AppActivity() { + + private val webView: WebView? by lazy { findViewById(R.id.webView) } + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } + + override fun getLayoutId(): Int { + return R.layout.activity_feedback_details + } + + override fun initView() { + EventBus.getDefault().register(this) + showDialog() + rlStatusRefresh?.setOnRefreshListener { + loadPageUrl(MsConstants.feedback_detail_URL_res) + } + } + + override fun initData() { + setWebView() + loadPageUrl(MsConstants.feedback_detail_URL_res) + } + + @SuppressLint("SetJavaScriptEnabled") + private fun setWebView() { + val webSettings: WebSettings = webView!!.settings + webSettings.javaScriptEnabled = true + webView?.webChromeClient = WebChromeClient() + webView?.setBackgroundColor(Color.TRANSPARENT) + webView?.webViewClient = object : WebViewClient() { + + override fun onPageFinished(view: WebView?, url: String?) { + super.onPageFinished(view, url) + rlStatusRefresh?.finishRefresh() + hideDialog() + } + + override fun onReceivedError( + view: WebView?, + request: WebResourceRequest?, + error: WebResourceError? + ) { + super.onReceivedError(view, request, error) + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + rlStatusRefresh?.finishRefresh() + hideDialog() + } + } + webSettings.domStorageEnabled = true + webSettings.loadsImagesAutomatically = true + webSettings.useWideViewPort = true + webSettings.loadWithOverviewMode = true + webSettings.builtInZoomControls = true + webSettings.displayZoomControls = false + webView?.addJavascriptInterface( + JsBridgeDetail(this), + "AndroidInterface" + ) + + } + + private fun loadPageUrl(url: String) { + webView?.loadUrl(url) + } + + + private val REQUEST_PICK_FILE: Int = 1003 + private val REQUEST_PERMISSIONS = 1004 + + @RequiresApi(Build.VERSION_CODES.M) + private fun requestPermissions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_MEDIA_IMAGES, + ), + REQUEST_PERMISSIONS + ) + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + ), + REQUEST_PERMISSIONS + ) + } else { + ActivityCompat.requestPermissions( + this, + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + ), + REQUEST_PERMISSIONS + ) + } + } + + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + if (requestCode == REQUEST_PERMISSIONS) { + if (grantResults.all { it == PackageManager.PERMISSION_GRANTED }) { + openFilePicker() + } else { + toast(TranslatesUtils.translates()?.open_photo_tips.toString()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + PermissionUtils.launchAppDetailsSettings() + } + } + } + } + + private fun openFilePicker() { + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + startActivityForResult(intent, REQUEST_PICK_FILE) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (requestCode == REQUEST_PICK_FILE && resultCode == RESULT_OK) { + data?.data?.let { uri -> + compressAndConvertImage(uri) + } + } + } + + private fun compressAndConvertImage(uri: Uri) { + lifecycleScope.launch { + val compressedImageBytes = withContext(Dispatchers.IO) { + compressImage(uri, contentResolver) + } + if (compressedImageBytes.isNotEmpty()) { + val base64String = Base64.encodeToString(compressedImageBytes, Base64.DEFAULT) + webView?.loadUrl( + "javascript:uploadConvertImage(" + "'" + base64String + "'" + ")" + ) + } + } + } + + private fun compressImage(uri: Uri, contentResolver: ContentResolver): ByteArray { + try { + val inputStream: InputStream? = contentResolver.openInputStream(uri) + val bitmap = BitmapFactory.decodeStream(inputStream) + inputStream?.close() + + val outputStream = ByteArrayOutputStream() + var quality = 100 + bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream) + + while (outputStream.toByteArray().size > 100 * 1024 && quality > 10) { + quality -= 10 + outputStream.reset() + bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream) + } + + val compressedImageBytes = outputStream.toByteArray() + Log.d( + "compressedImageBytes", + "Compressed image size: ${compressedImageBytes.size} bytes" + ) + return compressedImageBytes + } catch (e: Exception) { + e.printStackTrace() + toast( + TranslatesUtils.translates()?.picture_error ?: "Please select the correct picture~" + ) + } + return byteArrayOf() + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.Constants_requestPermissions_photo_detail == event) { + requestPermissions() + } + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this) + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackListActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackListActivity.kt new file mode 100644 index 0000000..dc83f8a --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/FeedBackListActivity.kt @@ -0,0 +1,108 @@ +package com.localee.mireo.app.ui.activity + +import android.annotation.SuppressLint +import android.content.Intent +import android.graphics.Color +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.app.BaseEventBus +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.utils.JsBridge +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode + +class FeedBackListActivity : AppActivity() { + + private val webView: WebView? by lazy { findViewById(R.id.webView) } + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } + + override fun getLayoutId(): Int { + return R.layout.activity_feedback_list + } + + override fun initView() { + EventBus.getDefault().register(this) + showDialog() + rlStatusRefresh?.setOnRefreshListener { + loadPageUrl(MsConstants.feedback_list_URL_res) + } + } + + override fun initData() { + setWebView() + loadPageUrl(MsConstants.feedback_list_URL_res) + } + + @SuppressLint("SetJavaScriptEnabled") + private fun setWebView() { + val webSettings: WebSettings = webView!!.settings + webSettings.javaScriptEnabled = true + webView?.webChromeClient = WebChromeClient() + webView?.setBackgroundColor(Color.TRANSPARENT) + webView?.webViewClient = object : WebViewClient() { + + override fun onPageFinished(view: WebView?, url: String?) { + super.onPageFinished(view, url) + rlStatusRefresh?.finishRefresh() + hideDialog() + } + + override fun onReceivedError( + view: WebView?, request: WebResourceRequest?, error: WebResourceError? + ) { + super.onReceivedError(view, request, error) + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + rlStatusRefresh?.finishRefresh() + hideDialog() + } + } + webSettings.domStorageEnabled = true + webSettings.loadsImagesAutomatically = true + webSettings.useWideViewPort = true + webSettings.loadWithOverviewMode = true + webSettings.builtInZoomControls = true + webSettings.displayZoomControls = false + webView?.addJavascriptInterface( + JsBridge(this), "AndroidInterface" + ) + + } + + private fun loadPageUrl(url: String) { + webView?.loadUrl(url) + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: BaseEventBus) { + if (MsConstants.Constants_openFeedbackDetail == event.code) { + MsMMKVUtils.getMMKV() + .putString(MsConstants.CONSTANTS_Detail_id, event.data) + startActivity( + Intent( + this, FeedBackDetailsActivity::class.java + ) + ) + } + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this) + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/HomeActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/HomeActivity.kt index cb01473..28d84ed 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/HomeActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/HomeActivity.kt @@ -1,32 +1,95 @@ package com.localee.mireo.app.ui.activity +import android.Manifest import android.app.Activity +import android.content.ClipData +import android.content.ClipboardManager import android.content.Context import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build import android.os.Bundle +import android.text.TextUtils +import android.util.Log +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.ViewPager -import com.localee.mireo.app.utils.MsMMKVUtils +import com.blankj.utilcode.util.NetworkUtils +import com.bumptech.glide.Glide +import com.facebook.AccessToken +import com.facebook.CallbackManager +import com.facebook.CallbackManager.Factory.create +import com.facebook.FacebookCallback +import com.facebook.FacebookException +import com.facebook.GraphRequest +import com.facebook.login.LoginManager +import com.facebook.login.LoginResult +import com.google.android.gms.common.GoogleApiAvailability +import com.google.android.gms.tasks.OnCompleteListener +import com.google.firebase.messaging.FirebaseMessaging +import com.google.gson.Gson import com.gyf.immersionbar.ImmersionBar -import com.hjq.base.FragmentPagerAdapter import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy -import com.localee.mireo.app.R import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.app.AppFragment -import com.localee.mireo.app.http.api.UserInfoApi -import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.app.BaseEventBus +import com.localee.mireo.app.base.FragmentPagerAdapter +import com.localee.mireo.app.http.api.ActionPushApi +import com.localee.mireo.app.http.api.CustomerRegisterApi +import com.localee.mireo.app.http.api.DoLoginApi +import com.localee.mireo.app.http.api.EnterTheAppApi +import com.localee.mireo.app.http.api.FirebaseTokenApi +import com.localee.mireo.app.http.api.LeaveAppApi +import com.localee.mireo.app.http.api.MessageSendReportApi +import com.localee.mireo.app.http.api.OnLineApi +import com.localee.mireo.app.http.api.OpenNotifyApi +import com.localee.mireo.app.http.api.W2aApi +import com.localee.mireo.app.http.bean.HomeDataHistoryBean +import com.localee.mireo.app.http.bean.IncidentBean +import com.localee.mireo.app.http.bean.LoginBean import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.Logger +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.other.MsConstants.CONSTANTS_user_refresh import com.localee.mireo.app.ui.adapter.NavigationAdapter +import com.localee.mireo.app.ui.dialog.NotificationPermissionDialog import com.localee.mireo.app.ui.fragment.ExploreFragment import com.localee.mireo.app.ui.fragment.HomeFragment import com.localee.mireo.app.ui.fragment.MessageFragment import com.localee.mireo.app.ui.fragment.MineFragment +import com.localee.mireo.app.ui.fragment.RewardFragment import com.localee.mireo.app.ui.fragment.SharedViewModel +import com.localee.mireo.app.ui.popup.CustomBottomLoginPopup +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.NotificationUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.shortapp.R +import com.lxj.xpopup.XPopup +import kotlinx.coroutines.launch +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode +import org.json.JSONObject +import java.util.concurrent.Executors +import java.util.concurrent.ScheduledExecutorService +import java.util.concurrent.TimeUnit -class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { +class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener, + CustomBottomLoginPopup.CustomPopupOnclick { companion object { @@ -47,10 +110,29 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { } } + private var notificationPermissionDialog: NotificationPermissionDialog? = null + private var callbackManager: CallbackManager? = null + private var scheduler: ScheduledExecutorService? = Executors.newSingleThreadScheduledExecutor() + private val dialogHistory: ViewGroup? by lazy { findViewById(R.id.dialog_history) } + private val ivCloseHistory: ImageView? by lazy { dialogHistory?.findViewById(R.id.iv_close_history) } + private val ivVideo: ImageView? by lazy { dialogHistory?.findViewById(R.id.iv_video) } + private val tvVideoName: TextView? by lazy { dialogHistory?.findViewById(R.id.tv_video_name) } + private val tvVideoLast: TextView? by lazy { dialogHistory?.findViewById(R.id.tv_video_last) } + + + private val llMain: ConstraintLayout? by lazy { findViewById(R.id.ll_main) } private val viewPager: ViewPager? by lazy { findViewById(R.id.vp_home_pager) } private val navigationView: RecyclerView? by lazy { findViewById(R.id.rv_home_navigation) } private var navigationAdapter: NavigationAdapter? = null private var pagerAdapter: FragmentPagerAdapter>? = null + private var shortVideoId: Int = 0 + private var videoId: Int = 0 + private var needSave = false + + private var path = "" + private var short_play_id = "" + private var message_id = "" + private var title = "" private val viewModel: SharedViewModel by viewModels() @@ -59,6 +141,11 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { } override fun initView() { + EventBus.getDefault().register(this) + path = intent?.getStringExtra("path").toString() + short_play_id = intent?.getStringExtra("short_play_id").toString() + message_id = intent?.getStringExtra("message_id").toString() + title = intent?.getStringExtra("title").toString() navigationAdapter = NavigationAdapter(this).apply { addItem( @@ -73,6 +160,12 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { ContextCompat.getDrawable(this@HomeActivity, R.drawable.home_explore_selector) ) ) + addItem( + NavigationAdapter.MenuItem( + getString(R.string.home_nav_rewards), + ContextCompat.getDrawable(this@HomeActivity, R.drawable.home_rewards_selector) + ) + ) addItem( NavigationAdapter.MenuItem( getString(R.string.home_nav_my_list), @@ -88,14 +181,15 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { setOnNavigationListener(this@HomeActivity) navigationView?.adapter = this } + } override fun initData() { -// getCustomerUser() pagerAdapter = FragmentPagerAdapter>(this).apply { addFragment(HomeFragment.newInstance()) addFragment(ExploreFragment.newInstance()) + addFragment(RewardFragment.newInstance()) addFragment(MessageFragment.newInstance()) addFragment(MineFragment.newInstance()) viewPager?.adapter = this @@ -103,12 +197,91 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { onNewIntent(intent) viewModel.action.observe(this) { data -> - switchFragment(data); + switchFragment(data) } + viewModel.loginAction.observe(this) { + setLoginDialog() + } + + if (MsMMKVUtils.getMMKV() + .getString(MsConstants.ACCESS_TOKEN, "").toString() + .isNotEmpty() + ) { + enterTheApp() + val intervalMillis = 10 * 60 * 1000 + scheduler?.scheduleAtFixedRate({ + try { + lifecycleScope.launch { + onLine() + } + } catch (e: Exception) { + e.printStackTrace() + } + }, 0, intervalMillis.toLong(), TimeUnit.MILLISECONDS) + } + + + callbackManager = create() + LoginManager.getInstance().registerCallback(callbackManager, + object : FacebookCallback { + override fun onSuccess(loginResult: LoginResult) { + val enableButtons = AccessToken.getCurrentAccessToken() != null + if (enableButtons) { + val mGraphRequest = GraphRequest.newMeRequest( + loginResult.accessToken + ) { jsonObject, response -> + if (response!!.error != null) { + toast("Facebook login exception.${response.error?.exception.toString()}") + } else { + val id = jsonObject?.optString("id") + val name = jsonObject?.optString("name") + val object_pic: JSONObject? = jsonObject!!.optJSONObject("picture") + val object_data = object_pic?.optJSONObject("data") + val photo = object_data?.optString("url") + leaveApp() + doLogin( + LoginBean( + photo.toString(), + "", + name.toString(), + "", + "facebook", + id.toString() + ) + ) + } + } + val parameters = Bundle() + parameters.putString("fields", "id,name,email,picture") + mGraphRequest.parameters = parameters + mGraphRequest.executeAsync() + } + } + + override fun onCancel() { + toast("Facebook login Cancel") + } + + override fun onError(exception: FacebookException) { + toast("Facebook login exception.$exception") + } + }) + GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this) + .addOnCompleteListener { + if (it.isSuccessful) { + askNotificationPermission() + } + } + llMain?.postDelayed({ notificationGo() }, 700) } override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) + path = intent?.getStringExtra("path").toString() + short_play_id = intent?.getStringExtra("short_play_id").toString() + message_id = intent?.getStringExtra("message_id").toString() + title = intent?.getStringExtra("title").toString() + notificationGo() pagerAdapter?.let { switchFragment(it.getFragmentIndex(getSerializable(INTENT_KEY_IN_FRAGMENT_CLASS))) } @@ -130,10 +303,24 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { if (fragmentIndex == -1) { return } + viewPager?.currentItem = fragmentIndex + navigationAdapter?.setSelectedPosition(fragmentIndex) when (fragmentIndex) { - 0, 1, 2, 3 -> { - viewPager?.currentItem = fragmentIndex - navigationAdapter?.setSelectedPosition(fragmentIndex) + 0 -> { + dialogHistory?.postDelayed( + { + val string = MsMMKVUtils.getMMKV() + .getString(MsConstants.Constants_Main_Video_info, "") + if (string?.isNotEmpty() == true && NetworkUtils.isConnected()) { + val fromJson = Gson().fromJson(string, HomeDataHistoryBean::class.java) + showHistoryDialog(fromJson) + } + }, 500 + ) + } + + 1, 2, 3, 4 -> { + dialogHistory?.visibility = View.INVISIBLE } } } @@ -143,14 +330,199 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { */ override fun onNavigationItemSelected(position: Int): Boolean { return when (position) { - 0, 1, 2, 3 -> { + 0 -> { + dialogHistory?.postDelayed( + { + val string = MsMMKVUtils.getMMKV() + .getString(MsConstants.Constants_Main_Video_info, "") + if (string?.isNotEmpty() == true && NetworkUtils.isConnected()) { + val fromJson = Gson().fromJson(string, HomeDataHistoryBean::class.java) + showHistoryDialog(fromJson) + } + }, 500 + ) viewPager?.currentItem = position true } + + 1, 2, 3, 4 -> { + dialogHistory?.visibility = View.INVISIBLE + viewPager?.currentItem = position + true + } + else -> false } } + fun getCustomerRegister() { + EasyHttp.post(this) + .api(CustomerRegisterApi().apply { + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.token?.let { + MsConstants.IsFirst = false + MsMMKVUtils.saveToken(it) + EventBus.getDefault().post(MsConstants.CONSTANTS_refresh_me) + EventBus.getDefault().post(MsConstants.CONSTANTS_refresh_home) + } + } + }) + } + + fun getActionPush() { + val sMap: MutableMap = LinkedHashMap() + // StringMap = getSortMap(StringMap); + sMap.put("action", String::class.simpleName) + EasyHttp.post(this) + .api(ActionPushApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.token?.let { + + + } + } + }) + } + + fun enterTheApp() { + EasyHttp.post(this) + .api(EnterTheAppApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + fun onLine() { + EasyHttp.post(this) + .api(OnLineApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + fun leaveApp() { + EasyHttp.post(this) + .api(LeaveAppApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + fun doLogin(data: LoginBean) { + val sMap: MutableMap = LinkedHashMap() + // StringMap = getSortMap(StringMap); + sMap.put("avator", data.avator) + sMap.put("email", data.email) + sMap.put("family_name", data.family_name) + sMap.put("giving_name", data.giving_name) + sMap.put("platform", data.platform) + sMap.put("third_id", data.third_id) + EasyHttp.post(this) + .api(DoLoginApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.success.toString()) + } + Logger.d( + "CompleteRegistration", + "login_".plus(it.customer_id) + ) + MsMMKVUtils.getMMKV() + .putString(MsConstants.ACCESS_TOKEN, it.token) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_enterTheApp) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_onLine) + EventBus.getDefault() + .post(CONSTANTS_user_refresh) +// if (activityId.isNotEmpty()) { +// EventBus.getDefault() +// .post(CONSTANTS_web_refresh) +// } else { +// WebRefresh = true +// } + + } ?: run { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + + } + }) + } + + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.CONSTANTS_auth_refresh == event) { + getCustomerRegister() + } + if (MsConstants.CONSTANTS_out_login == event) { + getCustomerRegister() + if (TranslatesUtils.translates() != null) { + toast( + TranslatesUtils.translates()?.kick_out_login + ?: getString(R.string.your_account_is_already_logged_in_on_another_device) + ) + } + } + if (MsConstants.CONSTANTS_refresh_translate == event) { +// exampleHomeViewModel.gettranslates( +// MsMMKVUtils.getMMKV().getString(MsConstants.CONSTANTS_lang_key, "en") +// .toString() +// ) + } + if (MsConstants.Constants_language_refresh == event) { + HomeActivity.start(this) + } + if (MsConstants.CONSTANTS_Login == event) { + setLoginDialog() + } + if (MsConstants.CONSTANTS_enterTheApp == event) { + enterTheApp() + } + if (MsConstants.CONSTANTS_leaveApp == event) { + leaveApp() + } + if (MsConstants.CONSTANTS_onLine == event) { + onLine() + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: BaseEventBus) { + if (MsConstants.Constants_onTokenRefresh == event.code) { + firebase() + } + } override fun createStatusBarConfig(): ImmersionBar { return super.createStatusBarConfig() @@ -161,11 +533,458 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener { moveTaskToBack(false) } - override fun onDestroy() { super.onDestroy() viewPager?.adapter = null navigationView?.adapter = null navigationAdapter?.setOnNavigationListener(null) } + + fun setLoginDialog() { + XPopup.Builder(this) + .hasShadowBg(true) + .isTouchThrough(false) + .isLightStatusBar(false) + .asCustom(CustomBottomLoginPopup(this, this)) + .show() + } + + override fun onFacebook() { + singleClick { + LoginManager.getInstance() + .logInWithReadPermissions(this, arrayListOf("public_profile")) + } + } + + override fun onGoogle() { + toast("google") + } + + override fun onTikTok() { + toast("tiktok") + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (requestCode == NotificationUtils.NOTIFICATION_SETTINGS_REQUEST_CODE) { + MsConstants.CanNotification = NotificationUtils.isNotificationEnabled(this) + if (MsConstants.CanNotification) { + firebase() + openNotify() + notificationPermissionDialog?.dismiss() + } +// exampleHomeViewModel.uploadNoticeStatus( +// FbNotificationReq( +// if (MsConstants.CanNotification) "1" else "0" +// ) +// ) + } else { + callbackManager?.onActivityResult( + requestCode, + resultCode, data + ) + + } + } + + private fun adjustToDetail() { + llMain?.postDelayed({ + startActivity(Intent( + this, VideoPlayActivity::class.java + ).apply { + putExtra( + MsConstants.CONSTANTS_short_play_id, shortVideoId + ) + }) + clearClipboardContent(this) + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_DDL_Url, "") + }, 1000) + needSave = false + } + + private fun getClipContent(): String { + val manager: ClipboardManager = getSystemService( + CLIPBOARD_SERVICE + ) as ClipboardManager + val primaryClip = manager.primaryClip + val itemCount = primaryClip?.itemCount + if (itemCount != null) { + if (manager.hasPrimaryClip() && itemCount > 0) { + val itemAt = manager.primaryClip?.getItemAt(0) + val addedText: CharSequence = itemAt?.text.toString() + val addedTextString = addedText.toString() + if (!TextUtils.isEmpty(addedTextString)) { + return addedTextString + } + } + } + return "" + } + + + override fun onResume() { + super.onResume() + this.window.decorView.post { + val clipContent = getClipContent() + if (clipContent.isNotEmpty()) { + if (clipContent.startsWith("[QJ]")) { + val urlString = clipContent.removePrefix("[QJ]").trim() + val extractVideoInfo = parseVideoAndShortPlayIds(urlString) + shortVideoId = extractVideoInfo.second?.toInt() ?: 0 + videoId = extractVideoInfo.first?.toInt() ?: 0 + if (shortVideoId != 0) { + MsMMKVUtils.getMMKV().putString( + MsConstants.CONSTANTS_short_play_id, extractVideoInfo.second + ) + needSave = true + w2aSelfAttribution(clipContent) + } + } + } + } + + llMain?.postDelayed({ + val ddl = + MsMMKVUtils.getMMKV().getString(MsConstants.Constants_DDL_Url, "") + if (ddl?.isNotEmpty() == true) { + w2aSelfAttribution(ddl) + // 定义正则表达式 + val regex = """short_play_id=(\d+).*""".toRegex() + // 匹配 URL + val matchResult = regex.find(ddl) + if (matchResult != null) { + // 获取匹配的组 + val shortPlayId = matchResult.groupValues[1] + val toInt = shortPlayId.toInt() + if (toInt != 0) { + llMain?.postDelayed({ + startActivity(Intent( + this, VideoPlayActivity::class.java + ).apply { + putExtra( + MsConstants.CONSTANTS_short_play_id, toInt + ) + }) + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_DDL_Url, "") + }, 200) + } + } else { + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_DDL_Url, "") + } + } + }, 1500) + + if (viewPager?.currentItem == 0) { + dialogHistory?.postDelayed( + { + val string = MsMMKVUtils.getMMKV() + .getString(MsConstants.Constants_Main_Video_info, "") + if (string?.isNotEmpty() == true && NetworkUtils.isConnected()) { + val fromJson = Gson().fromJson(string, HomeDataHistoryBean::class.java) + showHistoryDialog(fromJson) + } + }, 500 + ) + } + } + + private fun clearClipboardContent(context: Context) { + // 获取ClipboardManager的实例 + val clipboardManager = + context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + + // 创建一个空的ClipData对象 + val emptyClip = ClipData.newPlainText("", "") + + // 将空的ClipData对象设置到剪切板上,从而清除之前的内容 + clipboardManager.setPrimaryClip(emptyClip) + } + + private fun parseVideoAndShortPlayIds(clipboardContent: String): Pair { + + // 提取查询字符串 + val queryStartIndex = clipboardContent.indexOf('?') + val queryString = + if (queryStartIndex != -1) clipboardContent.substring(queryStartIndex + 1) else "" + + // 使用正则表达式匹配 video_id 和 short_play_id + val videoIdRegex = Regex("video_id=(\\d+)") + val shortPlayIdRegex = Regex("short_play_id=(\\d+)") + + // 匹配 video_id 和 short_play_id + val videoIdMatch = videoIdRegex.find(queryString)?.groupValues?.get(1) + val shortPlayIdMatch = shortPlayIdRegex.find(queryString)?.groupValues?.get(1) + + return Pair(videoIdMatch, shortPlayIdMatch) + } + + + private fun w2aSelfAttribution(data: String?) { + if (data?.contains("follow") == true) { + val regex = """facebook_id=(\d+).*""".toRegex() + // 匹配 URL + val matchResult = regex.find(data) + if (matchResult != null) { + val facebook_id = matchResult.groupValues[1] +// exampleHomeViewModel.deepFb(FbDeepReq(facebook_id)) + } + } + data?.let { w2aSelfAttributionLoad(it) } + } + + fun w2aSelfAttributionLoad(data: String?) { + val sMap: MutableMap = LinkedHashMap() + // StringMap = getSortMap(StringMap); + sMap.put("data", data) + EasyHttp.post(this) + .api(W2aApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + if (needSave) { + adjustToDetail() + } + } + }) + } + + private fun showHistoryDialog(data: HomeDataHistoryBean) { + ivCloseHistory?.setOnClickListener { + MsMMKVUtils.getMMKV() + .putBoolean(MsConstants.Constants_Main_Video_status, false) + dialogHistory?.visibility = View.INVISIBLE + } + if (MsMMKVUtils.getMMKV() + .getBoolean(MsConstants.Constants_Main_Video_status, false) + ) { + ivVideo?.let { + if (!isFinishing && !isDestroyed) { + Glide.with(this).load( + data.video_img + ).placeholder(R.mipmap.ic_loading_h).into(it) + } + } + dialogHistory?.setOnClickListener { + singleClick { + startActivity(Intent( + this, VideoPlayActivity::class.java + ).apply { + putExtra( + MsConstants.CONSTANTS_short_play_id, data.video_id + ) + }) + } + } + dialogHistory?.post { + tvVideoName?.text = data.video_name + tvVideoLast?.text = "Episode " + data.video_last + } + dialogHistory?.visibility = View.VISIBLE + } + } + + private fun firebase() { + FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> + if (!task.isSuccessful) { + Log.d( + "LOG_TAG", "Fetching FCM registration token failed", task.exception + ) + return@OnCompleteListener + } + // Get new FCM registration token + val token = task.result + // Log and toast + Log.d("LOG_TAG", token) + firebaseToken(token) + }) + } + + fun firebaseToken(data: String?) { + val sMap: MutableMap = LinkedHashMap() + sMap.put("fcm_token", data) + EasyHttp.post(this) + .api(FirebaseTokenApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + private fun notificationGo() { + if (message_id.isNotBlank() && !message_id.contentEquals("null")) { + if ("0" != message_id) { + messageSendReport(message_id, title) + } + } + when (path) { + "detail" -> { + if (short_play_id.isNotEmpty() && "null" != short_play_id) { + try { + val toInt = short_play_id.toInt() + llMain?.postDelayed({ + startActivity(Intent( + this, VideoPlayActivity::class.java + ).apply { + putExtra( + MsConstants.CONSTANTS_short_play_id, toInt + ) + }) + }, 700) + } catch (e: Exception) { + e.printStackTrace() + } + } + } + + "promotion" -> { + switchFragment(2) + } + + "orderDetail" -> { + llMain?.postDelayed({ + startActivity( + Intent( + this, StoreActivity::class.java + ) + ) + }, 700) + } + + "feedback" -> { + llMain?.postDelayed({ + if (message_id.isNotBlank() && message_id != "null") { + MsMMKVUtils.getMMKV() + .putString(MsConstants.CONSTANTS_Detail_id, message_id) + startActivity( + Intent( + this, FeedBackDetailsActivity::class.java + ) + ) + } else { + startActivity( + Intent( + this, FeedBackDetailsActivity::class.java + ) + ) + } + }, 700) + } + } + } + + private val requestPermissionLauncher = registerForActivityResult( + ActivityResultContracts.RequestPermission(), + ) { isGranted: Boolean -> + MsConstants.CanNotification = isGranted + if (isGranted) { + firebase() + openNotify() + } else { + NotificationUtils.openNotificationSettings(this) + } + notificationPermissionDialog?.dismiss() + } + + private fun askNotificationPermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission( + this, Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + firebase() + openNotify() + } else { +// if (shouldShowNotification()) { + openNotification() +// } + } + } else { + if (NotificationUtils.isNotificationEnabled(this)) { + firebase() + openNotify() + } else { +// if (shouldShowNotification()) { + openNotification() +// } + } + } + } + + private fun openNotification() { + notificationPermissionDialog = NotificationPermissionDialog(this) + val example_tv_content = + notificationPermissionDialog?.findViewById(R.id.example_tv_content) + val example_tv_content_info = + notificationPermissionDialog?.findViewById(R.id.example_tv_content_info) + val example_tv_later = + notificationPermissionDialog?.findViewById(R.id.example_tv_later) + val iv_close_notification = + notificationPermissionDialog?.findViewById(R.id.iv_close_notification) + val example_open = + notificationPermissionDialog?.findViewById(R.id.example_open) + example_tv_content?.text = + TranslatesUtils.translates()?.open_notification ?: "Enable Notifications" + example_tv_content_info?.text = TranslatesUtils.translates()?.open_notification_info + ?: "Stay informed with popular recommendations and latest updates!" + example_tv_later?.text = TranslatesUtils.translates()?.open_notification_later ?: "Later" + example_open?.text = TranslatesUtils.translates()?.open_notification_open ?: "Open" + notificationPermissionDialog?.setOnDismissListener { + MsMMKVUtils.getMMKV().putLong( + MsConstants.CONSTANTS_PREF_LAST_POPUP_TIME_Notification, + System.currentTimeMillis() + ) + } + example_tv_later?.setOnClickListener { notificationPermissionDialog?.dismiss() } + iv_close_notification?.setOnClickListener { notificationPermissionDialog?.dismiss() } + example_open?.setOnClickListener { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + } else { + notificationPermissionDialog?.dismiss() + NotificationUtils.openNotificationSettings(this) + } + } + notificationPermissionDialog?.show() + } + + fun openNotify() { + EasyHttp.post(this) + .api(OpenNotifyApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + override fun onHttpFail(throwable: Throwable) { + } + }) + } + + fun messageSendReport(message_id: String, title: String) { + val sMap: MutableMap = LinkedHashMap() + sMap.put("message_id", message_id) + sMap.put("title", title) + EasyHttp.post(this) + .api(MessageSendReportApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/LanguageSwitchActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/LanguageSwitchActivity.kt new file mode 100644 index 0000000..12b07bd --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/LanguageSwitchActivity.kt @@ -0,0 +1,214 @@ +package com.localee.mireo.app.ui.activity + +import android.graphics.Rect +import android.view.View +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AppCompatDelegate +import androidx.core.os.LocaleListCompat +import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.hjq.bar.TitleBar +import com.hjq.http.EasyHttp +import com.hjq.http.listener.HttpCallbackProxy +import com.hjq.shape.layout.ShapeConstraintLayout +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.action.StatusAction +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.LanguageApi +import com.localee.mireo.app.http.api.TranslatesLanguageApi +import com.localee.mireo.app.http.bean.TranslatesBean +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.ui.adapter.LanguageSwitchAdapter +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.widget.StatusLayout +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.greenrobot.eventbus.EventBus +import java.util.Locale + +class LanguageSwitchActivity : AppActivity(), StatusAction { + + private val title: TitleBar? by lazy { findViewById(R.id.title) } + private val hintLayout: StatusLayout? by lazy { findViewById(R.id.hl_status_hint) } + private val clSystem: ShapeConstraintLayout? by lazy { findViewById(R.id.cl_system) } + private val tvSystem: TextView? by lazy { findViewById(R.id.tv_system) } + private val tvDescription: TextView? by lazy { findViewById(R.id.tv_description) } + private val cbSystem: CheckBox? by lazy { findViewById(R.id.cb_system) } + private val recyclerView: RecyclerView? by lazy { findViewById(R.id.recyclerView) } + private val tvOk: TextView? by lazy { findViewById(R.id.tv_ok) } + + private var mAdapter: LanguageSwitchAdapter? = null + + private var langKey = "" + private var isSystem = false + + override fun getLayoutId(): Int { + return R.layout.activity_language_switch + } + + override fun initView() { + val layoutManager = GridLayoutManager(this, 2) + // 设置给 RecyclerView + recyclerView!!.layoutManager = layoutManager + mAdapter = LanguageSwitchAdapter() + recyclerView?.adapter = mAdapter + recyclerView?.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + outRect.right = 8 + outRect.left = 8 + outRect.top = 8 + outRect.bottom = 8 + } + }) + + mAdapter?.setOnItemClickListener { adapter, view, position -> + isSystem = false + updateUIForSystemLanguage(false) + val language = mAdapter?.getItem(position) as LanguageApi.Bean.Data + langKey = language.lang_key + mAdapter?.currentPosition = position + mAdapter?.notifyDataSetChanged() + + } + + clSystem?.setOnClickListener { + isSystem = true + updateUIForSystemLanguage(true) + mAdapter?.currentPosition = -1 + mAdapter?.notifyDataSetChanged() + } + + tvOk?.setOnClickListener { + singleClick { + if (isSystem) { + val locale = when (Locale.getDefault().language) { + "zh" -> when (Locale.getDefault().country) { + "HK", "TW" -> "zh_hk" + "CN" -> "zh" + else -> Locale.getDefault().language + } + + else -> Locale.getDefault().language + } + langKey = locale + getTranslatesLanguageApi(langKey) + } else { + if (langKey.isEmpty()) return@singleClick + getTranslatesLanguageApi(langKey) + } + } + } + } + + override fun initData() { + TranslatesUtils.translates()?.let { translates -> + title?.setTitle(translates.change_language) + tvDescription?.text = translates.lang_option_notice + tvSystem?.text = "${translates.system}${translates.language}" + tvOk?.text = translates.ok + } + + getLanguage() + + } + + fun getLanguage() { + EasyHttp.get(this) + .api(LanguageApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (it.list.isEmpty()) { + hintLayout?.show() + } else { + hintLayout?.hide() + } + mAdapter?.submitList(it.list) + + if (MsMMKVUtils.getMMKV() + .getString(MsConstants.Constants_language_set, "") == "system" + ) { + updateUIForSystemLanguage(true) + isSystem = true + } else { + updateUIForSystemLanguage(false) + isSystem = false + val string = MsMMKVUtils.getMMKV() + .getString(MsConstants.CONSTANTS_lang_key, "en") + it.list.find { item -> item.lang_key == string }?.let { foundItem -> + mAdapter?.currentPosition = it.list.indexOf(foundItem) + } + langKey = string.toString() + mAdapter?.notifyDataSetChanged() + } + + } + } + }) + } + + fun getTranslatesLanguageApi(languageKey: String) { + EasyHttp.get(this) + .api(TranslatesLanguageApi().apply { + language_key = languageKey + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_Main_Video_info, "") + lifecycleScope.launch { + withContext(Dispatchers.IO) { + TranslatesUtils.saveTranslates(it.translates) + } + } + MsMMKVUtils.getMMKV().putString( + MsConstants.Constants_language_set, + if (isSystem) "system" else "custom" + ) + if (langKey.isNotEmpty()) { + MsMMKVUtils.getMMKV() + .putString(MsConstants.CONSTANTS_lang_key, langKey) + EventBus.getDefault().post(MsConstants.Constants_language_refresh) + AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(langKey)) + } + finish() + } ?: run { + toast( + TranslatesUtils.translates()?.network_error?.toString() + ?: getString(R.string.example_service_exception_please_try_again) + ) + } + } + }) + } + + private fun updateUIForSystemLanguage(isSystem: Boolean) { + if (isSystem) { + cbSystem?.isChecked = true + clSystem?.shapeDrawableBuilder?.setSolidColor(0x33ff0049)?.setStrokeSize(1) + ?.intoBackground() + } else { + cbSystem?.isChecked = false + clSystem?.shapeDrawableBuilder?.setSolidColor(0xff272a30.toInt())?.setStrokeSize(0) + ?.intoBackground() + } + } + + + override fun getStatusLayout(): StatusLayout? { + return hintLayout + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt new file mode 100644 index 0000000..77624bf --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt @@ -0,0 +1,462 @@ +package com.localee.mireo.app.ui.activity + +import android.view.View +import android.widget.ImageView +import android.widget.ProgressBar +import android.widget.TextView +import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.android.billingclient.api.AcknowledgePurchaseParams +import com.android.billingclient.api.BillingClient +import com.android.billingclient.api.BillingClientStateListener +import com.android.billingclient.api.BillingFlowParams +import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.ProductDetails +import com.android.billingclient.api.ProductDetailsResponseListener +import com.android.billingclient.api.Purchase +import com.android.billingclient.api.PurchasesUpdatedListener +import com.android.billingclient.api.QueryProductDetailsParams +import com.bumptech.glide.Glide +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.load.resource.bitmap.CircleCrop +import com.bumptech.glide.request.RequestOptions +import com.google.common.reflect.TypeToken +import com.google.gson.Gson +import com.hjq.bar.TitleBar +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.CreateOrderApi +import com.localee.mireo.app.http.api.GooglePaidApi +import com.localee.mireo.app.http.api.PaySettingsApi +import com.localee.mireo.app.http.api.UserInfoApi +import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.http.bean.CreateOrderReqBean +import com.localee.mireo.app.http.bean.PayBean +import com.localee.mireo.app.http.bean.PayResBean +import com.localee.mireo.app.http.bean.PaySettingsBean +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.AppConfig +import com.localee.mireo.app.other.Logger +import com.localee.mireo.app.ui.adapter.MyVipBuyAdapter +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.utils.transToString +import com.localee.mireo.shortapp.R +import kotlinx.coroutines.launch + +class MyVipActivity : AppActivity() { + + private val title: TitleBar? by lazy { findViewById(R.id.title) } + private val tvName: TextView? by lazy { findViewById(R.id.tv_name) } + private val ivPortrait: ImageView? by lazy { findViewById(R.id.iv_portrait) } + private val tvVipExpires: TextView? by lazy { findViewById(R.id.tv_vip_expires) } + private val tvVipLeave: TextView? by lazy { findViewById(R.id.tv_vip_leave) } + private val progressVip: ProgressBar? by lazy { findViewById(R.id.progress_vip) } + private val tvNextVip: TextView? by lazy { findViewById(R.id.tv_next_vip) } + private val recyclerView: RecyclerView? by lazy { findViewById(R.id.recyclerView) } + private val tvBuy: TextView? by lazy { findViewById(R.id.tv_buy) } + private val ivVip: ImageView? by lazy { findViewById(R.id.iv_vip) } + + private var billingClient: BillingClient? = null + private var isConnect = false + private var connectNum = 0 + private var order_code = "" + private var vipData: PaySettingsBean.Vip? = null + private var payReq: PayBean? = null + + private var mAdapter: MyVipBuyAdapter? = null + + override fun getLayoutId(): Int { + return R.layout.activity_my_vip + } + + override fun initView() { + recyclerView?.layoutManager = + LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) + + mAdapter = MyVipBuyAdapter() + recyclerView?.adapter = mAdapter + + mAdapter?.setOnItemClickListener { adapter, view, position -> + mAdapter?.currentPosition = position + mAdapter?.notifyDataSetChanged() + } + + setUI() + + initPay() + tvBuy?.setOnClickListener { + + if (mAdapter?.currentPosition == -1) { + toast(getString(R.string.select_a_payment_item)) + return@setOnClickListener + } + singleClick { + if (!isConnect) { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + toast(getString(R.string.google_pay_error)) + } + return@singleClick + } + showDialog() + vipData = mAdapter!!.getItem(mAdapter!!.currentPosition) as PaySettingsBean.Vip + getCreateOrder( + CreateOrderReqBean( + vipData?.id.toString(), + "google", + 0, + 0 + ) + ) + } + } + + } + + private fun setUI() { + if (MsMMKVUtils.isTourist()) { + tvName?.text = getString(R.string.example_visitor) + } else { + tvName?.text = + MsMMKVUtils.getUserInfo()?.family_name.plus(MsMMKVUtils.getUserInfo()?.giving_name) + ivPortrait?.let { + Glide.with(this).load(MsMMKVUtils.getUserInfo()?.avator).skipMemoryCache(true) + .diskCacheStrategy( + DiskCacheStrategy.NONE + ) + .apply(RequestOptions.bitmapTransform(CircleCrop())) + .placeholder(R.mipmap.iv_login_icon) + .error(R.mipmap.iv_login_icon).into(it) + } + } + if (MsMMKVUtils.isVip()) { + ivVip?.visibility = View.VISIBLE + tvVipExpires?.text = + "Vip Expires:".plus(MsMMKVUtils.getUserInfo()?.vip_end_time?.let { + transToString( + it.toLong() + ) + }) + } else { + ivVip?.visibility = View.GONE + tvVipExpires?.text = "Enjoy all dramas for free" + } + } + + override fun initData() { + getPaySettings(null, null) + } + + private fun getPaySettings(shortPlayId: Int?, videoId: Int?) { + EasyHttp.get(this) + .api(PaySettingsApi().apply { + short_play_id = shortPlayId + short_play_video_id = videoId + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + mAdapter?.submitList(it.list_sub_vip) + it.list_sub_vip?.let { it1 -> querySubProductDetails(it1) } + } + } + }) + } + + + private fun initPay() { + val purchasesUpdatedListener = + PurchasesUpdatedListener { billingResult, purchases -> + when (billingResult.responseCode) { + BillingClient.BillingResponseCode.OK -> { + for (purchase in purchases!!) { + if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) { + consumePurchaseSub(purchase) + } + } + } + + BillingClient.BillingResponseCode.USER_CANCELED -> { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_cancel.toString()) + } else { + toast(getString(R.string.google_pay_canceled)) + } + Logger.d( + "", order_code + ) + hideDialog() + } + + else -> { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + toast(getString(R.string.google_pay_error)) + } + hideDialog() + } + } + } + + + billingClient = BillingClient.newBuilder(this) + .setListener(purchasesUpdatedListener) + .enablePendingPurchases() + .build() + + + val stateListener: BillingClientStateListener = object : BillingClientStateListener { + override fun onBillingSetupFinished(billingResult: BillingResult) { + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + isConnect = true + } + } + + override fun onBillingServiceDisconnected() { + if (connectNum < 5) { + connectNum++ + isConnect = false + billingClient?.startConnection(this) + } + } + } + billingClient?.startConnection(stateListener) + } + + private fun consumePurchaseSub( + purchase: Purchase + ) { + if (billingClient?.isReady == true) { + if (!purchase.isAcknowledged) { + val acknowledgePurchaseParams = + AcknowledgePurchaseParams.newBuilder() + .setPurchaseToken(purchase.purchaseToken) + .build() + billingClient?.acknowledgePurchase( + acknowledgePurchaseParams + ) { + val examplePayReq = PayBean( + order_code, + vipData?.id.toString(), + AppConfig.getPackageName(), + vipData?.android_template_id.toString(), + purchase.purchaseToken, + purchase.orderId.toString(), + vipData?.price.toString() + ) + if (it.responseCode == BillingClient.BillingResponseCode.OK) { + lifecycleScope.launch { + googlePaid(examplePayReq) + payReq = examplePayReq + MsMMKVUtils.saveOrder(examplePayReq) + } + } else { + MsMMKVUtils.saveOrder(examplePayReq) + lifecycleScope.launch { + toast(it.toString()) + hideDialog() + } + } + } + } + } + } + + private fun querySubProductDetails(listSubVip: List) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + val priceInfo = productDetailsList.mapNotNull { productDetails -> + productDetails.subscriptionOfferDetails?.get(0)?.pricingPhases?.pricingPhaseList?.get( + 0 + )?.let { + productDetails.productId to (it.formattedPrice to it.priceCurrencyCode) + } + }.toMap() + + // 更新VIP列表的价格和货币代码 + val updatedVipList = listSubVip.map { vip -> + priceInfo[vip.android_template_id]?.let { (price, currency) -> + vip.copy(price_google = price, currency_goolge = currency) + } ?: vip + } + + mAdapter?.recyclerView?.postDelayed({ + mAdapter?.submitList(updatedVipList) + hideDialog() + }, 500) + } else { + hideDialog() + } + } + + val productType: String = BillingClient.ProductType.SUBS + + val inAppProductInfo = listSubVip.map { + QueryProductDetailsParams.Product.newBuilder() + .setProductId(it.android_template_id) + .setProductType(productType) + .build() + } + if (inAppProductInfo.isNotEmpty()) { + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } else { + hideDialog() + } + } + + private fun getProduct(productId: String) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (productDetailsList.isNotEmpty()) { + pay(productDetailsList[0]) + } else { + lifecycleScope.launch { + toast(billingResult.toString()) + hideDialog() + } + } + } + + val inAppProductInfo = ArrayList() + inAppProductInfo.add( + QueryProductDetailsParams.Product.newBuilder() + .setProductId(productId) + .setProductType(BillingClient.ProductType.SUBS) + .build() + ) + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } + + private fun pay(productDetailInfo: ProductDetails) { + if (productDetailInfo.subscriptionOfferDetails?.isNotEmpty() == true) { + val params = ArrayList() + productDetailInfo.subscriptionOfferDetails?.get(0)?.offerToken?.let { + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(productDetailInfo) + .setOfferToken(it) + .build() + }?.let { + params.add( + it + ) + } + val billingFlowParams = BillingFlowParams.newBuilder() + .setObfuscatedProfileId(order_code) + .setObfuscatedAccountId(MsMMKVUtils.getCustomId()) + .setProductDetailsParamsList(params) + .build() + + billingClient?.launchBillingFlow(this, billingFlowParams) + } + } + + fun Any.toMapViaGson(): MutableMap { + val json = Gson().toJson(this) + return Gson().fromJson(json, object : TypeToken>() {}.type) + } + + fun getCreateOrder(data: CreateOrderReqBean) { + EasyHttp.post(this) + .api(CreateOrderApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + order_code = it.order_code.toString() + vipData?.android_template_id?.let { it1 -> getProduct(it1) } + + } ?: run { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + + } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + } + }) + } + + fun googlePaid(data: PayBean) { + EasyHttp.post(this) + .api(GooglePaidApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_success.toString()) + } else { + toast(getString(R.string.google_pay_success)) + } + if (null != payReq) { + MsMMKVUtils.removeOrder(payReq) + } + getCustomerUser() + + } ?: run { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + + } + }) + } + + + private fun getCustomerUser() { + EasyHttp.get(this) + .api(UserInfoApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + MsMMKVUtils.saveUserInfo(it) + setUI() + } + } + }) + } + + override fun onDestroy() { + super.onDestroy() + payReq = null + billingClient?.endConnection() + billingClient = null + System.gc() + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyWalletActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyWalletActivity.kt new file mode 100644 index 0000000..53b0cdd --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/MyWalletActivity.kt @@ -0,0 +1,321 @@ +package com.localee.mireo.app.ui.activity + +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.load.resource.bitmap.CircleCrop +import com.bumptech.glide.request.RequestOptions +import com.hjq.bar.TitleBar +import com.hjq.demo.ui.dialog.MenuDialog +import com.hjq.http.EasyHttp +import com.hjq.http.listener.HttpCallbackProxy +import com.localee.mireo.app.action.StatusAction +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.http.api.CustomerBuyRecordsApi +import com.localee.mireo.app.http.api.CustomerOrderApi +import com.localee.mireo.app.http.api.SendCoinListApi +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.ui.adapter.CustomerBuyRecordAdapter +import com.localee.mireo.app.ui.adapter.CustomerOrderRecordAdapter +import com.localee.mireo.app.ui.adapter.SendCoinRecordAdapter +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.utils.transToString +import com.localee.mireo.app.widget.StatusLayout +import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.localee.mireo.app.widget.layout.SettingBar +import com.localee.mireo.shortapp.R +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import com.scwang.smart.refresh.layout.api.RefreshLayout +import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener + +class MyWalletActivity : AppActivity(), OnRefreshLoadMoreListener, + StatusAction { + + private val title: TitleBar? by lazy { findViewById(R.id.title) } + private val tvName: TextView? by lazy { findViewById(R.id.tv_name) } + private val ivPortrait: ImageView? by lazy { findViewById(R.id.iv_portrait) } + private val tvVipExpires: TextView? by lazy { findViewById(R.id.tv_vip_expires) } + private val ivVip: ImageView? by lazy { findViewById(R.id.iv_vip) } + private val tvTopUp: TextView? by lazy { findViewById(R.id.tv_top_up) } + private val tvConinsText: TextView? by lazy { findViewById(R.id.tv_conins_text) } + private val tvConins: TextView? by lazy { findViewById(R.id.tv_conins) } + private val tvDonateText: TextView? by lazy { findViewById(R.id.tv_donate_text) } + private val tvDonate: TextView? by lazy { findViewById(R.id.tv_donate) } + private val sbDetailTitle: SettingBar? by lazy { findViewById(R.id.sb_detail_title) } + private val hintLayout: StatusLayout? by lazy { findViewById(R.id.hl_status_hint) } + private val recyclerView: RecyclerView? by lazy { findViewById(R.id.recyclerView) } + private val tvFeedback: TextView? by lazy { findViewById(R.id.tv_feedback) } + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } + private var selectPosition = 0 + + private var mBuyRecordAdapter: CustomerBuyRecordAdapter? = null + private var mSendCoinRecordAdapter: SendCoinRecordAdapter? = null + private var mCustomerOrderRecordAdapter: CustomerOrderRecordAdapter? = null + private var pageIndex = 1 + private var pageTotal = 1 + private var pageSize = 10 + + override fun getLayoutId(): Int { + return R.layout.activity_my_wallet + } + + override fun initView() { + recyclerView?.layoutManager = + LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) + mBuyRecordAdapter = CustomerBuyRecordAdapter() + mSendCoinRecordAdapter = SendCoinRecordAdapter() + mCustomerOrderRecordAdapter = CustomerOrderRecordAdapter() + + rlStatusRefresh?.setOnRefreshLoadMoreListener(this) + rlStatusRefresh?.setEnableRefresh(false) + setUI() + + } + + private fun setUI() { + if (MsMMKVUtils.isTourist()) { + tvName?.text = getString(R.string.example_visitor) + } else { + tvName?.text = + MsMMKVUtils.getUserInfo()?.family_name.plus(MsMMKVUtils.getUserInfo()?.giving_name) + ivPortrait?.let { + Glide.with(this).load(MsMMKVUtils.getUserInfo()?.avator).skipMemoryCache(true) + .diskCacheStrategy( + DiskCacheStrategy.NONE + ) + .apply(RequestOptions.bitmapTransform(CircleCrop())) + .placeholder(R.mipmap.iv_login_icon) + .error(R.mipmap.iv_login_icon).into(it) + } + } + if (MsMMKVUtils.isVip()) { + ivVip?.visibility = View.VISIBLE + tvVipExpires?.text = + "Vip Expires:".plus(MsMMKVUtils.getUserInfo()?.vip_end_time?.let { + transToString( + it.toLong() + ) + }) + } else { + ivVip?.visibility = View.GONE + tvVipExpires?.text = "Enjoy all dramas for free" + } + tvConins?.text = + MsMMKVUtils.getUserInfo()?.coin_left_total.toString() + tvDonate?.text = + MsMMKVUtils.getUserInfo()?.send_coin_left_total.toString() + } + + override fun initData() { + sbDetailTitle?.setOnClickListener { + + val data = ArrayList() + data.add("Consumption Records") + data.add("Recharge Coins") + data.add("Purchase VIP") + data.add("Reward Coins") + MenuDialog.Builder(this) + .setList(data) + .setSelectPosition(selectPosition) + .setListener(object : MenuDialog.OnListener { + override fun onSelected(dialog: BaseDialog?, position: Int, data: String) { + if (selectPosition != position) { + pageIndex = 1 + selectPosition = position + sbDetailTitle?.setRightText(data) + loadData() + + } + } + + override fun onCancel(dialog: BaseDialog?) { + + } + }) + .show() + + } + tvTopUp?.setOnClickListener { + startActivity(StoreActivity::class.java) + } + + loadData() + + } + + fun loadData() { + when (selectPosition) { + 0 -> { + recyclerView?.adapter = mBuyRecordAdapter + rlStatusRefresh?.setEnableLoadMore(false) + setCustomerBuyRecords() + } + + 1 -> { + recyclerView?.adapter = mCustomerOrderRecordAdapter + rlStatusRefresh?.setEnableLoadMore(true) + getCustomerOrder("coins") + } + + 2 -> { + recyclerView?.adapter = mCustomerOrderRecordAdapter + rlStatusRefresh?.setEnableLoadMore(true) + getCustomerOrder("vip") + } + + 3 -> { + recyclerView?.adapter = mSendCoinRecordAdapter + rlStatusRefresh?.setEnableLoadMore(true) + setSendCoinList() + } + } + + } + + + fun setSendCoinList() { + val sMap: MutableMap = LinkedHashMap() + sMap["current_page"] = pageIndex.toString() + sMap["page_size"] = pageSize.toString() + + EasyHttp.post(this) + .api(SendCoinListApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (pageIndex == 1) { + if (it.list.isEmpty()) { + showEmpty() + } else { + showComplete() + } + mSendCoinRecordAdapter?.submitList(it.list) + it.pagination?.let { it1 -> + pageTotal = it1.page_total + } + } else { + mSendCoinRecordAdapter?.addAll(it.list) + } + } ?: run { + showEmpty() + } + } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + if (pageIndex == 1) { + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + loadData() + } + } + }) + } + } + }) + } + + fun setCustomerBuyRecords() { + EasyHttp.get(this) + .api(CustomerBuyRecordsApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (it.list.isEmpty()) { + showEmpty() + } else { + showComplete() + } + mBuyRecordAdapter?.submitList(it.list) + } ?: run { + showEmpty() + } + } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + if (pageIndex == 1) { + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + loadData() + } + } + + }) + } + } + }) + } + + fun getCustomerOrder(buyType: String) { + EasyHttp.get(this) + .api(CustomerOrderApi().apply { + buy_type = buyType + current_page = pageIndex + page_size = pageSize + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (pageIndex == 1) { + if (it.list.isEmpty()) { + showEmpty() + } else { + showComplete() + } + mCustomerOrderRecordAdapter?.submitList(it.list) + it.pagination?.let { it1 -> + pageTotal = it1.page_total + } + } else { + mCustomerOrderRecordAdapter?.addAll(it.list) + } + } ?: run { + showEmpty() + } + } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + if (pageIndex == 1) { + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + loadData() + } + } + + }) + } + } + }) + } + + override fun onRefresh(refreshLayout: RefreshLayout) { + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + if (pageIndex == pageTotal) { + rlStatusRefresh?.finishLoadMore(1000) + } else { + pageIndex++ + loadData() + } + } + + override fun getStatusLayout(): StatusLayout? { + return hintLayout + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SearchActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SearchActivity.kt index 523b488..46da013 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SearchActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SearchActivity.kt @@ -1,28 +1,39 @@ package com.localee.mireo.app.ui.activity import android.content.Intent +import android.graphics.Rect import android.text.Editable -import android.text.TextUtils import android.text.TextWatcher -import android.view.KeyEvent +import android.view.View import android.view.inputmethod.EditorInfo import android.widget.EditText import android.widget.ImageView +import android.widget.TextView +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.layoutmanager.QuickGridLayoutManager import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy -import com.localee.mireo.app.R import com.localee.mireo.app.action.StatusAction import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.http.api.SearchHotApi import com.localee.mireo.app.http.api.SearchSearchApi import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id +import com.localee.mireo.app.ui.adapter.SearchGridAdapter import com.localee.mireo.app.ui.adapter.SearchHotAdapter import com.localee.mireo.app.ui.adapter.SearchSearchAdapter +import com.localee.mireo.app.utils.singleClick import com.localee.mireo.app.widget.StatusLayout +import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.localee.mireo.shortapp.R +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.debounce +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.launch class SearchActivity : AppActivity(), StatusAction { @@ -31,9 +42,11 @@ class SearchActivity : AppActivity(), StatusAction { private val ivClose: ImageView? by lazy { findViewById(R.id.iv_close) } private val etSearch: EditText? by lazy { findViewById(R.id.et_search) } private val recycler: RecyclerView? by lazy { findViewById(R.id.recycler) } + private val tvSearchTitle: TextView? by lazy { findViewById(R.id.tv_search_title) } private var mAdapter: SearchHotAdapter? = null private var mKeyAdapter: SearchSearchAdapter? = null + private var mKeyGridAdapter: SearchGridAdapter? = null override fun getLayoutId(): Int { return R.layout.status_activity @@ -41,15 +54,25 @@ class SearchActivity : AppActivity(), StatusAction { override fun initView() { - recycler?.layoutManager = - LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) - + setGridNeed(false) mAdapter = SearchHotAdapter() mKeyAdapter = SearchSearchAdapter() + mKeyGridAdapter = SearchGridAdapter() recycler?.adapter = mAdapter + recycler?.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + outRect.right = 10 + outRect.left = 10 + } + }) -// getSearchHot() + getSearchHot() } @@ -58,33 +81,54 @@ class SearchActivity : AppActivity(), StatusAction { finish() } - etSearch?.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) { - } + etSearch?.setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + // 执行搜索逻辑 + if (etSearch?.text?.trim().toString().isEmpty()) { + toast(getString(R.string.example_please_enter_keywords_for_search)) + return@setOnEditorActionListener true + } + setGridNeed(true) - override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) { - if (!TextUtils.isEmpty(charSequence.toString())) { - recycler?.adapter = mKeyAdapter - getSearchSearch(charSequence.toString()) - } else { - recycler?.adapter = mAdapter + recycler?.adapter = mKeyGridAdapter + getSearchSearch(etSearch?.text?.trim().toString()) + hideKeyboard(v) + return@setOnEditorActionListener true + } + false + } + + val textChanges = callbackFlow { + val textWatcher = object : TextWatcher { + override fun beforeTextChanged( + s: CharSequence?, start: Int, count: Int, after: Int + ) { + } + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(s: Editable?) { + trySend(s) } } - override fun afterTextChanged(editable: Editable) { - } - }) - - - etSearch?.setOnEditorActionListener { v, actionId, event -> - if (actionId == EditorInfo.IME_ACTION_DONE || - (event != null && event.action == KeyEvent.ACTION_DOWN && - event.keyCode == KeyEvent.KEYCODE_ENTER) - ) { - hideKeyboard(v) - true - } else { - false + etSearch?.addTextChangedListener(textWatcher) + awaitClose { etSearch?.removeTextChangedListener(textWatcher) } + } + lifecycleScope.launch { + textChanges.debounce(500).filterNotNull().collect { query -> + // 在这里执行搜索操作 + if (etSearch?.text?.trim().toString().isNotEmpty()) { + tvSearchTitle?.visibility = View.GONE + setGridNeed(false) + recycler?.adapter = mKeyAdapter + getSearchSearch(query.toString()) + } else { + tvSearchTitle?.visibility = View.VISIBLE + setGridNeed(false) + recycler?.adapter = mAdapter + getSearchHot() + } } } @@ -114,10 +158,34 @@ class SearchActivity : AppActivity(), StatusAction { } }) } + mKeyGridAdapter?.setOnItemClickListener { adapter, view, position -> + val search: SearchSearchApi.Bean.Data = + adapter.items.get(position) + startActivity( + Intent( + this, + VideoPlayActivity::class.java + ).apply { + search.short_play_id.let { + putExtra(CONSTANTS_short_play_id, it) + } + }) + } } + fun setGridNeed(isGridNeed: Boolean) { + if (isGridNeed) { + recycler?.layoutManager = + QuickGridLayoutManager(this, 3) + } else { + recycler?.layoutManager = + LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) + + } + } + fun getSearchHot() { EasyHttp.get(this) .api(SearchHotApi().apply { @@ -125,10 +193,11 @@ class SearchActivity : AppActivity(), StatusAction { .request(object : HttpCallbackProxy>(this) { override fun onHttpSuccess(result: HttpData) { result.getData()?.let { + recycler?.visibility = View.VISIBLE if (it.list.isEmpty()) { - hintLayout?.show() + showEmpty() } else { - hintLayout?.hide() + showComplete() } mAdapter?.submitList(it.list) } @@ -137,7 +206,15 @@ class SearchActivity : AppActivity(), StatusAction { override fun onHttpFail(throwable: Throwable) { super.onHttpFail(throwable) - hintLayout?.show() + recycler?.visibility = View.GONE + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + getSearchHot() + } + } + + }) } }) } @@ -155,20 +232,34 @@ class SearchActivity : AppActivity(), StatusAction { override fun onHttpSuccess(result: HttpData) { result.getData()?.let { + recycler?.visibility = View.VISIBLE if (it.list.isEmpty()) { - hintLayout?.show() + showEmpty() } else { - hintLayout?.hide() + showComplete() } + + mKeyAdapter?.keyword = etSearch?.text.toString() mKeyAdapter?.submitList(it.list) + mKeyGridAdapter?.submitList(it.list) } } + override fun onHttpFail(throwable: Throwable) { super.onHttpFail(throwable) - hintLayout?.show() + recycler?.visibility = View.GONE + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + getSearchSearch(etSearch?.text.toString().trim()) + } + } + + }) } + }) } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SettingActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SettingActivity.kt index 7f20143..7d80996 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SettingActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SettingActivity.kt @@ -1,20 +1,23 @@ package com.localee.mireo.app.ui.activity +import android.content.Intent import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.hjq.widget.layout.SettingBar -import com.localee.mireo.app.R import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.manager.CacheDataManager +import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.widget.layout.SettingBar +import com.localee.mireo.shortapp.R import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -class SettingActivity : AppActivity(){ +class SettingActivity : AppActivity() { private val cleanCacheView: SettingBar? by lazy { findViewById(R.id.sb_setting_cache) } + private val sbDeleteAccount: SettingBar? by lazy { findViewById(R.id.sb_delete_account) } override fun getLayoutId(): Int { return R.layout.setting_activity @@ -37,8 +40,24 @@ class SettingActivity : AppActivity(){ } } } + + sbDeleteAccount?.setOnClickListener { + if (!MsMMKVUtils.isTourist()) { + singleClick { + startActivity( + Intent( + this, + AccountDeleteActivity::class.java + ) + ) + } + } else { + toast(getString(R.string.example_please_log_in_first)) + } + } } + override fun initData() { // 获取应用缓存大小 cleanCacheView?.setRightText(CacheDataManager.getTotalCacheSize(this)) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SplashActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SplashActivity.kt index 336c6d5..8ea7432 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SplashActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/SplashActivity.kt @@ -1,12 +1,24 @@ package com.localee.mireo.app.ui.activity +import android.content.Intent +import android.util.Log +import android.widget.FrameLayout import com.gyf.immersionbar.BarHide import com.gyf.immersionbar.ImmersionBar -import com.localee.mireo.app.R +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.CustomerRegisterApi +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.other.MsConstants.Constants_DDL_Url +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.shortapp.R class SplashActivity : AppActivity() { + private val frameLayout: FrameLayout? by lazy { findViewById(R.id.frameLayout) } override fun getLayoutId(): Int { @@ -14,18 +26,64 @@ class SplashActivity : AppActivity() { } override fun initView() { - postDelayed(Runnable { - HomeActivity.start(this@SplashActivity) - finish() - }, 300) + val webpageURL = intent.data + Log.d("webpageURL", webpageURL.toString()) + if (null != webpageURL) { + MsMMKVUtils.getMMKV().putString(Constants_DDL_Url, webpageURL.toString()) + } + + if (MsMMKVUtils.getMMKV().getString(MsConstants.ACCESS_TOKEN, "").toString() + .isEmpty() + ) { + getCustomerRegister() + } else { + goToMain() + } } override fun initData() { + + } + + private fun getCustomerRegister() { + EasyHttp.post(this).api(CustomerRegisterApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.token?.let { + MsConstants.IsFirst = false + MsMMKVUtils.saveToken(it) + } + } + + override fun onHttpEnd(api: IRequestApi) { + super.onHttpEnd(api) + goToMain() + } + }) + } + + fun goToMain() { + frameLayout?.postDelayed({ + HomeActivity.start(this@SplashActivity) + finish() + }, 300) + + } override fun createStatusBarConfig(): ImmersionBar { - return super.createStatusBarConfig() - .hideBar(BarHide.FLAG_HIDE_BAR) + return super.createStatusBarConfig().hideBar(BarHide.FLAG_HIDE_BAR) } + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + val webpageURL = intent?.data + Log.d("webpageURL", webpageURL.toString()) + if (null != webpageURL) { + MsMMKVUtils.getMMKV().putString(Constants_DDL_Url, webpageURL.toString()) + } + } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt new file mode 100644 index 0000000..4b88190 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt @@ -0,0 +1,591 @@ +package com.localee.mireo.app.ui.activity + +import android.widget.TextView +import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.android.billingclient.api.AcknowledgePurchaseParams +import com.android.billingclient.api.BillingClient +import com.android.billingclient.api.BillingClientStateListener +import com.android.billingclient.api.BillingFlowParams +import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.ConsumeParams +import com.android.billingclient.api.ConsumeResponseListener +import com.android.billingclient.api.ProductDetails +import com.android.billingclient.api.ProductDetailsResponseListener +import com.android.billingclient.api.Purchase +import com.android.billingclient.api.PurchasesUpdatedListener +import com.android.billingclient.api.QueryProductDetailsParams +import com.google.common.reflect.TypeToken +import com.google.gson.Gson +import com.hjq.bar.TitleBar +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy +import com.localee.mireo.app.app.AppActivity +import com.localee.mireo.app.http.api.CreateOrderApi +import com.localee.mireo.app.http.api.GooglePaidApi +import com.localee.mireo.app.http.api.PaySettingsApi +import com.localee.mireo.app.http.api.UserInfoApi +import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.http.bean.CreateOrderReqBean +import com.localee.mireo.app.http.bean.PayBean +import com.localee.mireo.app.http.bean.PayResBean +import com.localee.mireo.app.http.bean.PaySettingsBean +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.AppConfig +import com.localee.mireo.app.other.Logger +import com.localee.mireo.app.ui.adapter.MyCoinBuyAdapter +import com.localee.mireo.app.ui.adapter.MyVipBuyAdapter +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.shortapp.R +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch + +class StoreActivity : AppActivity() { + + private val title: TitleBar? by lazy { findViewById(R.id.title) } + private val tvCoins: TextView? by lazy { findViewById(R.id.tv_coins) } + private val recyclerCoin: RecyclerView? by lazy { findViewById(R.id.recycler_coin) } + private val recyclerView: RecyclerView? by lazy { findViewById(R.id.recyclerView) } + private val tvBuy: TextView? by lazy { findViewById(R.id.tv_buy) } + + private var mAdapter: MyVipBuyAdapter? = null + private var mCoinAdapter: MyCoinBuyAdapter? = null + private var type = 0 + + private var billingClient: BillingClient? = null + private var isConnect = false + private var connectNum = 0 + private var order_code = "" + private var vipData: PaySettingsBean.Vip? = null + private var coinsData: PaySettingsBean.Coins? = null + private var payReq: PayBean? = null + + private var isBuy = false + private var purchaseData: Purchase? = null + + override fun getLayoutId(): Int { + return R.layout.activity_store + } + + override fun initView() { + recyclerCoin?.layoutManager = + LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) + recyclerView?.layoutManager = + LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) + + mCoinAdapter = MyCoinBuyAdapter() + recyclerCoin?.adapter = mCoinAdapter + + mAdapter = MyVipBuyAdapter() + recyclerView?.adapter = mAdapter + + mCoinAdapter?.setOnItemClickListener { adapter, view, position -> + if (type == 1) { + mAdapter?.currentPosition = -1 + mAdapter?.notifyDataSetChanged() + } + type = 0 + mCoinAdapter?.currentPosition = position + mCoinAdapter?.notifyDataSetChanged() + } + mAdapter?.setOnItemClickListener { adapter, view, position -> + if (type == 0) { + mCoinAdapter?.currentPosition = -1 + mCoinAdapter?.notifyDataSetChanged() + } + type = 1 + mAdapter?.currentPosition = position + mAdapter?.notifyDataSetChanged() + + } + + setUI() + initPay() + } + + private fun setUI() { + tvCoins?.text = MsMMKVUtils.getAllCoin().toString() + + } + + override fun initData() { + getPaySettings(null, null) + + tvBuy?.setOnClickListener { + + if (mAdapter?.currentPosition == -1 && mCoinAdapter?.currentPosition == -1) { + toast(getString(R.string.select_a_payment_item)) + return@setOnClickListener + } + singleClick { + if (!isConnect) { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + toast(getString(R.string.google_pay_error)) + } + return@singleClick + } + showDialog() + if (type == 0) { + coinsData = mCoinAdapter!!.getItem(mCoinAdapter!!.currentPosition) as PaySettingsBean.Coins + } else { + vipData = mAdapter!!.getItem(mAdapter!!.currentPosition) as PaySettingsBean.Vip + } + getCreateOrder( + CreateOrderReqBean( + if (type == 0) coinsData?.id.toString() else vipData?.id.toString(), + "google", + 0, + 0 + ) + ) + } + } + + } + + private fun getPaySettings(shortPlayId: Int?, videoId: Int?) { + EasyHttp.get(this) + .api(PaySettingsApi().apply { + short_play_id = shortPlayId + short_play_video_id = videoId + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + mCoinAdapter?.submitList(it.list_coins) + mAdapter?.submitList(it.list_sub_vip) + + it.list_sub_vip?.let { it1 -> querySubProductDetails(it1) } + it.list_coins?.let { it1 -> queryInAppProductDetails(it1) } + } + } + }) + } + + + private fun initPay() { + val purchasesUpdatedListener = + PurchasesUpdatedListener { billingResult, purchases -> + when (billingResult.responseCode) { + BillingClient.BillingResponseCode.OK -> { + for (purchase in purchases!!) { + if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) { + if (type == 0) { + consumePurchase(purchase) + } else { + consumePurchaseSub(purchase) + } + } + } + } + + BillingClient.BillingResponseCode.USER_CANCELED -> { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_cancel.toString()) + } else { + toast(getString(R.string.google_pay_canceled)) + } + Logger.d( + "", order_code + ) + hideDialog() + } + + else -> { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + toast(getString(R.string.google_pay_error)) + } + hideDialog() + } + } + } + + + billingClient = BillingClient.newBuilder(this) + .setListener(purchasesUpdatedListener) + .enablePendingPurchases() + .build() + + + val stateListener: BillingClientStateListener = object : BillingClientStateListener { + override fun onBillingSetupFinished(billingResult: BillingResult) { + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + isConnect = true + } + } + + override fun onBillingServiceDisconnected() { + if (connectNum < 5) { + connectNum++ + isConnect = false + billingClient?.startConnection(this) + } + } + } + billingClient?.startConnection(stateListener) + } + + private fun consumePurchaseSub( + purchase: Purchase + ) { + if (billingClient?.isReady == true) { + if (!purchase.isAcknowledged) { + val acknowledgePurchaseParams = + AcknowledgePurchaseParams.newBuilder() + .setPurchaseToken(purchase.purchaseToken) + .build() + billingClient?.acknowledgePurchase( + acknowledgePurchaseParams + ) { + val examplePayReq = PayBean( + order_code, + vipData?.id.toString(), + AppConfig.getPackageName(), + vipData?.android_template_id.toString(), + purchase.purchaseToken, + purchase.orderId.toString(), + vipData?.price.toString() + ) + if (it.responseCode == BillingClient.BillingResponseCode.OK) { + lifecycleScope.launch { + googlePaid(examplePayReq) + payReq = examplePayReq + MsMMKVUtils.saveOrder(examplePayReq) + } + } else { + MsMMKVUtils.saveOrder(examplePayReq) + lifecycleScope.launch { + toast(it.toString()) + hideDialog() + } + } + } + } + } + } + + private fun querySubProductDetails(listSubVip: List) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + val priceInfo = productDetailsList.mapNotNull { productDetails -> + productDetails.subscriptionOfferDetails?.get(0)?.pricingPhases?.pricingPhaseList?.get( + 0 + )?.let { + productDetails.productId to (it.formattedPrice to it.priceCurrencyCode) + } + }.toMap() + + // 更新VIP列表的价格和货币代码 + val updatedVipList = listSubVip.map { vip -> + priceInfo[vip.android_template_id]?.let { (price, currency) -> + vip.copy(price_google = price, currency_goolge = currency) + } ?: vip + } + + mAdapter?.recyclerView?.postDelayed({ + mAdapter?.submitList(updatedVipList) + hideDialog() + }, 500) + } else { + hideDialog() + } + } + + val productType: String = BillingClient.ProductType.SUBS + + val inAppProductInfo = listSubVip.map { + QueryProductDetailsParams.Product.newBuilder() + .setProductId(it.android_template_id) + .setProductType(productType) + .build() + } + if (inAppProductInfo.isNotEmpty()) { + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } else { + hideDialog() + } + } + + private fun queryInAppProductDetails( + coinsList: List + ) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + val priceInfo = productDetailsList.mapNotNull { productDetails -> + productDetails.oneTimePurchaseOfferDetails?.let { + productDetails.productId to (it.formattedPrice to it.priceCurrencyCode) + } + }.toMap() + + // 更新Coins列表的价格和货币代码 + val updatedCoinsList = coinsList.map { coin -> + priceInfo[coin.android_template_id]?.let { (price, currency) -> + coin.copy(price_google = price, currency_goolge = currency) + } ?: coin + } + + mCoinAdapter?.recyclerView?.postDelayed({ + mCoinAdapter?.submitList(updatedCoinsList) + }, 500) + } else { + hideDialog() + } + } + + val productType = BillingClient.ProductType.INAPP + + val inAppProductInfo = coinsList.map { + QueryProductDetailsParams.Product.newBuilder() + .setProductId(it.android_template_id) + .setProductType(productType) + .build() + } + + if (inAppProductInfo.isNotEmpty()) { + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } else { + hideDialog() + } + } + + private fun getProduct(productId: String) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (productDetailsList.isNotEmpty()) { + pay(productDetailsList[0]) + } else { + lifecycleScope.launch { + toast(billingResult.toString()) + hideDialog() + } + } + } + val productType: String = if (type == 0) { + BillingClient.ProductType.INAPP + } else { + BillingClient.ProductType.SUBS + } + + val inAppProductInfo = ArrayList() + inAppProductInfo.add( + QueryProductDetailsParams.Product.newBuilder() + .setProductId(productId) + .setProductType(productType) + .build() + ) + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } + + private fun pay(productDetailInfo: ProductDetails) { + if (productDetailInfo.subscriptionOfferDetails?.isNotEmpty() == true) { + val params = ArrayList() + productDetailInfo.subscriptionOfferDetails?.get(0)?.offerToken?.let { + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(productDetailInfo) + .setOfferToken(it) + .build() + }?.let { + params.add( + it + ) + } + val billingFlowParams = BillingFlowParams.newBuilder() + .setObfuscatedProfileId(order_code) + .setObfuscatedAccountId(MsMMKVUtils.getCustomId()) + .setProductDetailsParamsList(params) + .build() + + billingClient?.launchBillingFlow(this, billingFlowParams) + } else { + val params = ArrayList() + params.add( + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(productDetailInfo) + .build() + ) + + val billingFlowParams = BillingFlowParams.newBuilder() + .setObfuscatedProfileId(order_code) + .setObfuscatedAccountId(MsMMKVUtils.getCustomId()) + .setProductDetailsParamsList(params) + .build() + + billingClient?.launchBillingFlow(this, billingFlowParams) + } + } + + fun Any.toMapViaGson(): MutableMap { + val json = Gson().toJson(this) + return Gson().fromJson(json, object : TypeToken>() {}.type) + } + + fun getCreateOrder(data: CreateOrderReqBean) { + EasyHttp.post(this) + .api(CreateOrderApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + order_code = it.order_code.toString() + if (type == 0){ + coinsData?.android_template_id?.let { it1 -> getProduct(it1) } + }else { + vipData?.android_template_id?.let { it1 -> getProduct(it1) } + } + + } ?: run { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + + } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + } + + override fun onHttpEnd(api: IRequestApi) { + } + }) + } + + fun googlePaid(data: PayBean) { + EasyHttp.post(this) + .api(GooglePaidApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_success.toString()) + } else { + toast(getString(R.string.google_pay_success)) + } + if (null != payReq) { + MsMMKVUtils.removeOrder(payReq) + } + if (it.is_backhaul == 1) { +// LogEventUtils.logEvent( +// ExampleAppConstants.LogEvent_af_app_recharge, +// it.data.money.toDouble(), "USD", "", order_code +// ) + } + getCustomerUser() + + } ?: run { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + hideDialog() + } + } + + }) + } + + + private fun consumePurchase(purchase: Purchase?) { + if (billingClient?.isReady == true) { + purchaseData = purchase + val consumeParams = ConsumeParams.newBuilder() + .setPurchaseToken(purchase?.purchaseToken!!) + .build() + billingClient?.consumeAsync(consumeParams, consumeResponseListener) + } else { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + toast(getString(R.string.google_pay_error)) + } + hideDialog() + } + } + + private var consumeResponseListener = + ConsumeResponseListener { billingResult, purchaseToken -> + val examplePayReq = PayBean( + order_code, + if (type == 0) coinsData?.id.toString() else vipData?.id.toString(), + AppConfig.getPackageName(), + if (type == 0) coinsData?.android_template_id.toString() else vipData?.android_template_id.toString(), + purchaseToken, + purchaseData?.orderId.toString(), + if (type == 0) coinsData?.price.toString() else vipData?.price.toString() + ) + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + lifecycleScope.launch { + googlePaid(examplePayReq) + payReq = examplePayReq + MsMMKVUtils.saveOrder(examplePayReq) + } + } else { + MsMMKVUtils.saveOrder(examplePayReq) + lifecycleScope.launch { + toast(billingResult.toString()) + hideDialog() + } + } + } + + private fun getCustomerUser() { + EasyHttp.get(this) + .api(UserInfoApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + MsMMKVUtils.saveUserInfo(it) + setUI() + } + } + }) + } + + override fun onDestroy() { + super.onDestroy() + payReq = null + billingClient?.endConnection() + billingClient = null + System.gc() + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt index cd55994..dcc7b04 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt @@ -1,26 +1,56 @@ package com.localee.mireo.app.ui.activity import android.annotation.SuppressLint +import android.net.Uri import android.os.Bundle import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.widget.FrameLayout +import android.widget.ImageView import android.widget.TextView +import androidx.activity.OnBackPressedCallback +import androidx.annotation.OptIn import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView +import androidx.fragment.app.DialogFragment.STYLE_NO_FRAME +import androidx.lifecycle.lifecycleScope +import androidx.media3.common.MediaItem +import androidx.media3.common.PlaybackException +import androidx.media3.common.Player +import androidx.media3.common.util.UnstableApi +import androidx.media3.datasource.DataSource +import androidx.media3.datasource.DefaultDataSourceFactory +import androidx.media3.exoplayer.DefaultRenderersFactory +import androidx.media3.exoplayer.ExoPlayer +import androidx.media3.exoplayer.hls.HlsMediaSource +import androidx.media3.exoplayer.source.MediaSource +import androidx.media3.exoplayer.source.ProgressiveMediaSource +import androidx.media3.ui.PlayerView import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.blankj.utilcode.util.NetworkUtils -import com.localee.mireo.app.utils.MsMMKVUtils +import com.bumptech.glide.Glide +import com.google.common.reflect.TypeToken +import com.google.gson.Gson import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy import com.hjq.toast.ToastUtils -import com.localee.mireo.app.R import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.app.BaseEventBus +import com.localee.mireo.app.http.api.ActiveAfterWatchingVideoApi import com.localee.mireo.app.http.api.CreateHistoryApi +import com.localee.mireo.app.http.api.DetailsRecommandApi +import com.localee.mireo.app.http.api.DoBuyVideoApi +import com.localee.mireo.app.http.api.ExampleRecommendDataRes +import com.localee.mireo.app.http.api.UploadHistorySecondsApi +import com.localee.mireo.app.http.api.UserInfoApi +import com.localee.mireo.app.http.api.UserInfoRes import com.localee.mireo.app.http.api.VideoDetailsApi +import com.localee.mireo.app.http.bean.HomeDataHistoryBean +import com.localee.mireo.app.http.bean.PaySettingsBean +import com.localee.mireo.app.http.bean.UploadHistoryBean import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_activity_id @@ -28,22 +58,30 @@ import com.localee.mireo.app.other.MsConstants.CONSTANTS_quality import com.localee.mireo.app.other.MsConstants.CONSTANTS_quality_refresh import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id import com.localee.mireo.app.other.MsConstants.Constants_Episodes_Series_Data_currentPositionExample -import com.localee.mireo.app.ui.videoPaly.ExamplePlayerDetailDataRes +import com.localee.mireo.app.other.MsConstants.ExampleDetailCanPlay +import com.localee.mireo.app.ui.adapter.RecommendBannerAdapter +import com.localee.mireo.app.ui.fragment.RechargeDialogFragment import com.localee.mireo.app.ui.videoPaly.ExampleSeriesDialogFragment import com.localee.mireo.app.ui.videoPaly.ExampleUnFavoriteDialog +import com.localee.mireo.app.ui.videoPaly.FfmpegRenderersFactory import com.localee.mireo.app.ui.videoPaly.VideoPlayAdapter import com.localee.mireo.app.ui.videoPaly.VideoPlayerView import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.TranslatesUtils import com.localee.mireo.app.utils.formatNumber import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.shortapp.R import com.scwang.smart.refresh.layout.SmartRefreshLayout +import com.youth.banner.Banner +import com.youth.banner.listener.OnPageChangeListener +import kotlinx.coroutines.launch import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailCollection, - ExampleSeriesDialogFragment.SeriesCallBack { + ExampleSeriesDialogFragment.SeriesCallBack, RechargeDialogFragment.OnDataPass { companion object { const val INTENT_KEY_PARAMETERS: String = "parameters" @@ -52,13 +90,17 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle private var first: Boolean = true private var play: Boolean = true private var qualityRefresh: Boolean = false + private var needRefresh: Boolean = false + private var needRestart: Boolean = false + private var isComplete: Boolean = false // private val exampleRecommendViewModel by lazy { ViewModelProvider(this)[ExampleRecommendViewModel::class.java] } private var currentPage = 1 private val currentSize = 10 private var currentPosition = 0 - private var exampleRecommendAdapter: VideoPlayAdapter? = null - private var data: com.localee.mireo.app.http.api.ExampleRecommendDataRes.Data? = null + private var bannerPosition = 0 + private var recommendAdapter: VideoPlayAdapter? = null + private var data: ExampleRecommendDataRes.Data? = null private var revolution = MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 0).toString() @@ -73,16 +115,39 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle private val exampleEmpty: ViewGroup? by lazy { findViewById(R.id.example_empty) } private val exampleTvEmpty: TextView? by lazy { exampleEmpty?.findViewById(R.id.example_tv_empty) } - private var shortVideoId: Int? = null + private val viewLock: ViewGroup? by lazy { findViewById(R.id.view_lock) } + private val tvLockEpisode: TextView? by lazy { viewLock?.findViewById(R.id.tv_lock_episode) } + + private val cover: ImageView? by lazy { findViewById(R.id.cover) } + + private val viewVideoRecommend: ViewGroup? by lazy { findViewById(R.id.view_video_recommend) } + private val exampleBannerRecommend: Banner? by lazy { + viewVideoRecommend?.findViewById(R.id.example_banner_recommend) + } + private val recommendPlayerView: PlayerView? by lazy { viewVideoRecommend?.findViewById(R.id.recommend_player_view) } + private val tvPlayNowRecommend: TextView? by lazy { viewVideoRecommend?.findViewById(R.id.tv_play_now_recommend) } + private val ivCloseRecommend: ImageView? by lazy { viewVideoRecommend?.findViewById(R.id.iv_close_recommend) } + private val frameLayout: FrameLayout? by lazy { viewVideoRecommend?.findViewById(R.id.frameLayout) } + private val ivCoverRecommendDetail: ImageView? by lazy { recommendPlayerView?.findViewById(R.id.iv_cover_recommend_detail) } + + private var shortPlayId: Int? = null private var activityId: Int? = null private var shortVideo: VideoDetailsApi.Bean.ShortPlayInfo? = null + private var episode: VideoDetailsApi.Bean.Episode? = null + + private var startTime: Long = 0 + + @SuppressLint("UnsafeOptInUsageError") + private var builder: ExoPlayer.Builder? = null + private var player: ExoPlayer? = null override fun getLayoutId(): Int { return R.layout.video_play_activity } + @SuppressLint("UnsafeOptInUsageError") override fun initView() { - shortVideoId = intent.getIntExtra(CONSTANTS_short_play_id, 0) + shortPlayId = intent.getIntExtra(CONSTANTS_short_play_id, 0) activityId = intent.getIntExtra(CONSTANTS_activity_id, 0) EventBus.getDefault().register(this) this.window?.setFlags( @@ -91,10 +156,54 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle ) this.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + startTime = System.currentTimeMillis() + exampleTvNoNetwork?.text = TranslatesUtils.translates()?.no_network tvExampleRetry?.text = TranslatesUtils.translates()?.retry exampleTvEmpty?.text = TranslatesUtils.translates()?.s_no_content + + + onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (handleCustomLogic()) { + return + } + } + }) + builder = ExoPlayer.Builder(this, FfmpegRenderersFactory(this)) + .setRenderersFactory(DefaultRenderersFactory(this).setEnableDecoderFallback(true)) + player = builder?.build() + recommendPlayerView?.player = player + player?.addListener(object : Player.Listener { + override fun onPlaybackStateChanged(playbackState: Int) { + super.onPlaybackStateChanged(playbackState) + when (playbackState) { + Player.STATE_BUFFERING -> { + + } + + Player.STATE_READY -> { + player?.play() + ivCoverRecommendDetail?.visibility = View.INVISIBLE + } + + Player.STATE_ENDED -> { + ivCoverRecommendDetail?.visibility = View.VISIBLE + } + + Player.STATE_IDLE -> { + } + } + } + + override fun onPlayerError(error: PlaybackException) { + super.onPlayerError(error) + ivCoverRecommendDetail?.visibility = View.VISIBLE + } + + }) + ivCloseRecommend?.setOnClickListener { finish() } } override fun initData() { @@ -110,8 +219,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle fun initialization() { if (NetworkUtils.isConnected()) { -// avi?.start() - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) } else { if (TranslatesUtils.translates() != null) { @@ -123,13 +231,12 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } srRecommend?.setOnRefreshListener { if (NetworkUtils.isConnected()) { -// avi?.start() currentPage = 1 viewPagerExampleRecommend?.post { detailPlayerView()?.stop() detailPlayerView()?.release() } - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) } else { if (TranslatesUtils.translates() != null) { ToastUtils.show(TranslatesUtils.translates()?.no_network.toString()) @@ -144,32 +251,79 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle override fun onPageSelected(position: Int) { super.onPageSelected(position) currentPosition = position - val previousPosition = exampleRecommendAdapter?.currentPlayingPosition + val previousPosition = recommendAdapter?.currentPlayingPosition if (previousPosition != position) { - exampleRecommendAdapter?.recyclerView?.post { exampleRecommendAdapter?.notifyDataSetChanged() } - } - exampleRecommendAdapter?.currentPlayingPosition = position - - previousPosition?.let { - val recyclerView = - viewPagerExampleRecommend?.getChildAt(0) as RecyclerView - val exampleDetailPlayerView = - recyclerView.layoutManager?.findViewByPosition(it) as VideoPlayerView? - if (null != exampleDetailPlayerView) { - val episode1 = - exampleRecommendAdapter?.items?.get(it) - episode1?.short_play_id?.let { it1 -> - episode1?.short_play_video_id?.let { it2 -> - createHistory( - it1, - it2 - ) + previousPosition?.let { + try { + val recyclerView = + viewPagerExampleRecommend?.getChildAt(0) as RecyclerView + val exampleDetailPlayerView = + recyclerView.layoutManager?.findViewByPosition(it) as VideoPlayerView? + if (null != exampleDetailPlayerView) { + val episode1 = + recommendAdapter?.items?.get(previousPosition) + episode1?.play_seconds = + if (needRestart) "0" else exampleDetailPlayerView.lastProgress() + .toString() + if (episode1?.is_lock == false) { + setUploadHistorySeconds( + UploadHistoryBean( + if (needRestart) 0 else exampleDetailPlayerView.lastProgress(), + shortPlayId!!, + episode?.short_play_video_id + ) + ) + needRestart = false + } } + } catch (e: Exception) { + e.printStackTrace() } - } + recommendAdapter?.recyclerView?.post { recommendAdapter?.notifyDataSetChanged() } } + recommendAdapter?.currentPlayingPosition = position + recommendAdapter?.items?.get(currentPosition)?.let { + episode = it + if (it.is_lock && !MsMMKVUtils.isVip()) { + MsConstants.ExampleLock = true + viewLock?.visibility = View.VISIBLE + tvLockEpisode?.text = + "Unlocking costs ".plus(it.coins.toString()).plus(" coins") + + + tvLockEpisode?.setOnClickListener { it1 -> + if (currentPosition > 0) { + recommendAdapter?.items?.get(currentPosition - 1) + ?.let { it2 -> + if (it2.is_lock) { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.jump_unlock_error.toString()) + } else { + toast("The prequel to this series is not unlocked. Please unlock the prequel before unlocking this series") + } + return@setOnClickListener + } + } + } + showGoldShortageDialog(it) + } + viewLock?.postDelayed({ + detailPlayerView()?.pause() + }, 500) + } else { + MsConstants.ExampleLock = false + viewLock?.visibility = View.INVISIBLE + createHistory( + it.short_play_id, + it.short_play_video_id + ) + } + + } + + } override fun onPageScrollStateChanged(state: Int) { @@ -181,7 +335,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle ) ) { if (!first) { - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) } else { first = false } @@ -208,9 +362,8 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } return@singleClick } -// avi?.start() currentPage = 1 - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) } } tvExampleRetry?.setOnClickListener { @@ -223,25 +376,12 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } return@singleClick } -// avi?.start() currentPage = 1 - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) } } } -// override fun onHiddenChanged(hidden: Boolean) { -// super.onHiddenChanged(hidden) -// if (!hidden) { -// activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) -// MsConstants.ExampleIsCurrentPage = true -// qualityLogic() -// } else { -// activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) -// MsConstants.ExampleIsCurrentPage = false -// srRecommend?.postDelayed({ detailPlayerView()?.pause() }, 300) -// } -// } override fun onResume() { super.onResume() @@ -258,7 +398,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle detailPlayerView()?.stop() detailPlayerView()?.release() } - getVideoDetails() + getVideoDetails(shortPlayId, 0, activityId) qualityRefresh = false } else { detailPlayerView()?.play() @@ -271,13 +411,16 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle srRecommend?.postDelayed({ detailPlayerView()?.pause() }, 300) } - fun getVideoDetails() { + fun getVideoDetails( + shortPlayId: Int?, + videoId: Int?, + activityId: Int? + ) { EasyHttp.get(this) .api(VideoDetailsApi().apply { - if (activityId!! != 0) { - video_id = activityId; - } - short_play_id = shortVideoId; + activity_id = activityId; + video_id = videoId; + short_play_id = shortPlayId; }) .request(object : HttpCallbackProxy>(this) { @@ -285,11 +428,13 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle result.getData()?.let { if (it.episodeList.isNotEmpty()) { shortVideo = it.shortPlayInfo - exampleRecommendAdapter = VideoPlayAdapter() - exampleRecommendAdapter?.shortVideo = it.shortPlayInfo - viewPagerExampleRecommend?.adapter = exampleRecommendAdapter - exampleRecommendAdapter?.submitList(it.episodeList) - exampleRecommendAdapter?.playerDetailCollection = + cover?.visibility = View.INVISIBLE + viewPagerExampleRecommend?.visibility = View.VISIBLE + recommendAdapter = VideoPlayAdapter() + recommendAdapter?.shortVideo = it.shortPlayInfo + viewPagerExampleRecommend?.adapter = recommendAdapter + recommendAdapter?.submitList(it.episodeList) + recommendAdapter?.playerDetailCollection = this@VideoPlayActivity createHistory( it.episodeList[0].short_play_id, @@ -297,6 +442,19 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle ); exampleNetwork?.visibility = View.INVISIBLE exampleEmpty?.visibility = View.INVISIBLE + cover?.let { it1 -> + Glide.with(this@VideoPlayActivity).load(shortVideo?.image_url) + .into(it1) + } + if (it.video_info.episode > 1) { + it.video_info.episode.minus(1) + .let { it1 -> + viewPagerExampleRecommend?.setCurrentItem( + it1, + false + ) + } + } } else { if (TranslatesUtils.translates() != null) { ToastUtils.show(TranslatesUtils.translates()?.no_more_data.toString()) @@ -359,7 +517,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle shortVideo?.is_collect = true textview?.text = formatNumber(shortVideo?.collect_total!!) textview?.setTextColor(resources.getColor(R.color.example_color_F56490)) - exampleRecommendAdapter?.shortVideo = shortVideo + recommendAdapter?.shortVideo = shortVideo EventBus.getDefault().post( BaseEventBus( MsConstants.Constants_Episodes_Series_DataExample, @@ -403,7 +561,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle shortVideo?.is_collect = false textview?.text = formatNumber(shortVideo?.collect_total!!) textview?.setTextColor(resources.getColor(R.color.white)) - exampleRecommendAdapter?.shortVideo = shortVideo + recommendAdapter?.shortVideo = shortVideo EventBus.getDefault().post( BaseEventBus( MsConstants.Constants_Episodes_Series_DataExample, @@ -437,18 +595,26 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } override fun onDestroy() { + ExampleDetailCanPlay = false viewPagerExampleRecommend?.post { + player?.stop() + player?.release() + player = null detailPlayerView()?.stop() detailPlayerView()?.release() } + recommendAdapter?.shortVideo = null + recommendAdapter?.playerDetailCollection = null + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); super.onDestroy() EventBus.getDefault().unregister(this) + System.gc() } @Subscribe(threadMode = ThreadMode.MAIN) fun onEvent(event: String) { if (MsConstants.Constants_RecommendPlayerView_DramaSeriesExample == event) { - if (exampleRecommendAdapter?.items?.isNotEmpty() == true) { + if (recommendAdapter?.items?.isNotEmpty() == true) { val exampleSeriesDialogFragment = ExampleSeriesDialogFragment() val bundle = Bundle() bundle.putInt( @@ -461,7 +627,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle ) bundle.putParcelableArrayList( MsConstants.Constants_Episodes_Series_Data_ListExample, - exampleRecommendAdapter?.items?.let { ArrayList(it) } + recommendAdapter?.items?.let { ArrayList(it) } ) exampleSeriesDialogFragment.seriesCallBack = this exampleSeriesDialogFragment.arguments = bundle @@ -472,14 +638,39 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } } if (MsConstants.Constants_DetailPlayerView_PLAYER_STATUS_FINISHExample == event) { + if (viewPagerExampleRecommend?.currentItem == recommendAdapter?.items?.size?.minus( + 1 + ) + ) { + getDetailsRecommand() + viewPagerExampleRecommend?.post { + detailPlayerView()?.pause() + detailPlayerView()?.release() + viewPagerExampleRecommend?.visibility = View.GONE + cover?.visibility = View.VISIBLE + } + } + needRestart = true + recommendAdapter?.items?.get(currentPosition)?.let { it1 -> + if (activityId != 0) { + setActiveAfterWatchingVideo( + it1.short_play_id, + it1.short_play_video_id, + activityId!! + ) + isComplete = true + } + it1.play_seconds = "0" + } currentPosition.plus(1) .let { - exampleRecommendAdapter?.items?.get(it)?.let { it1 -> + recommendAdapter?.items?.get(it)?.let { it1 -> + MsConstants.ExampleLock = it1.is_lock if (it1.coins > 0) { if (MsMMKVUtils.getMMKV().getString( CONSTANTS_short_play_id, "" - ) == shortVideoId.toString() + ) == shortPlayId.toString() ) { } } @@ -487,6 +678,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle detailPlayerView()?.stop() viewPagerExampleRecommend?.currentItem = it } + } if (CONSTANTS_quality_refresh == event) { @@ -497,26 +689,29 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } if (MsConstants.Constants_RecommendPlayerView_CLOSEExample == event) { - finish() + handleCustomLogic() } if (CONSTANTS_quality == event) { startActivity(SearchActivity::class.java) } - + if (MsConstants.CONSTANTS_pay_refresh == event) { + needRefresh = true + getCustomerUser() + } } @Subscribe(threadMode = ThreadMode.MAIN) - fun onEvent(event: BaseEventBus) { + fun onEvent(event: BaseEventBus) { // if (MsConstants.Constants_Episodes_Series_DataExample == event.code) { -// if (exampleRecommendAdapter?.items?.get(currentPosition)?.name == event.data.name) { +// if (recommendAdapter?.items?.get(currentPosition)?.name == event.data.name) { // val imageView = // detailPlayerView()?.findViewById(R.id.example_iv_collection_controller) // val textview = // detailPlayerView()?.findViewById(R.id.example_tv_collection_num_controller) // imageView?.setImageResource(if (event.data.is_collect) R.mipmap.iv_example_collection_h else R.mipmap.iv_example_collection_n) -// exampleRecommendAdapter?.items?.get(currentPosition)?.collect_total = +// recommendAdapter?.items?.get(currentPosition)?.collect_total = // event.data.collect_total -// exampleRecommendAdapter?.items?.get(currentPosition)?.is_collect = +// recommendAdapter?.items?.get(currentPosition)?.is_collect = // event.data.is_collect // textview?.text = formatNumber(event.data.collect_total) // } @@ -568,47 +763,48 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle override fun collection(episode: VideoDetailsApi.Bean.Episode) { singleClick { - if (shortVideo?.is_collect == true) { - val exampleUnFavoriteDialog = ExampleUnFavoriteDialog(this) - val tvThinkAgain = - exampleUnFavoriteDialog.findViewById(R.id.example_tv_think_again) - val tvUnfavorite = - exampleUnFavoriteDialog.findViewById(R.id.example_tv_unfavorite) - val tvTitle = - exampleUnFavoriteDialog.findViewById(R.id.example_tv_title) - val tvContent = - exampleUnFavoriteDialog.findViewById(R.id.example_tv_content) - if (TranslatesUtils.translates() != null) { - tvThinkAgain.text = TranslatesUtils.translates()?.try_again - tvUnfavorite.text = TranslatesUtils.translates()?.collection - tvTitle.text = TranslatesUtils.translates()?.collection - tvContent.text = TranslatesUtils.translates()?.not_collect_warning - } - tvThinkAgain.setOnClickListener { exampleUnFavoriteDialog.dismiss() } - tvUnfavorite.setOnClickListener { - episode.short_play_id.let { - episode.short_play_video_id.let { it1 -> - doCancelCollect( - it, it1 - ) - } - } - exampleUnFavoriteDialog.dismiss() - } - exampleUnFavoriteDialog.show() - } else { + if (shortVideo?.is_collect == true) { + val exampleUnFavoriteDialog = ExampleUnFavoriteDialog(this) + val tvThinkAgain = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_think_again) + val tvUnfavorite = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_unfavorite) + val tvTitle = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_title) + val tvContent = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_content) + if (TranslatesUtils.translates() != null) { + tvThinkAgain.text = TranslatesUtils.translates()?.try_again + tvUnfavorite.text = TranslatesUtils.translates()?.collection + tvTitle.text = TranslatesUtils.translates()?.collection + tvContent.text = TranslatesUtils.translates()?.not_collect_warning + } + tvThinkAgain.setOnClickListener { exampleUnFavoriteDialog.dismiss() } + tvUnfavorite.setOnClickListener { episode.short_play_id.let { episode.short_play_video_id.let { it1 -> - doCollect( + doCancelCollect( it, it1 ) } } + exampleUnFavoriteDialog.dismiss() + } + exampleUnFavoriteDialog.show() + } else { + episode.short_play_id.let { + episode.short_play_video_id.let { it1 -> + doCollect( + it, it1 + ) + } + } } } } override fun chooseSeries(episode: VideoDetailsApi.Bean.Episode) { + MsConstants.ExampleLock = episode.is_lock postDelayed({ detailPlayerView()?.pause() }, 300) episode.episode.minus(1) .let { @@ -617,5 +813,366 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle } + private fun showGoldShortageDialog(episode1: VideoDetailsApi.Bean.Episode) { + val allCoin = MsMMKVUtils.getAllCoin() + if (allCoin >= episode1.coins) { + if (currentPosition > 0) { + recommendAdapter?.items?.get(currentPosition - 1) + ?.let { it2 -> + if (it2.is_lock) { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.jump_unlock_error.toString()) + } else { + toast("The prequel to this series is not unlocked. Please unlock the prequel before unlocking this series") + } + return + } + } + } + doBuyVideo( + episode1.short_play_id, + episode1.short_play_video_id + ) + } else { + try { + rechargeDialog(episode1) + } catch (e: Exception) { + e.printStackTrace() + } + } + } + + fun doBuyVideo(shortPlayId: Int, videoId: Int) { + val sMap: MutableMap = LinkedHashMap() + // StringMap = getSortMap(StringMap); + sMap.put("short_play_id", shortPlayId.toString()) + sMap.put("video_id", videoId.toString()) + + EasyHttp.post(this) + .api(DoBuyVideoApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + if (result.getData() != null) { + when (result.getData()?.status) { + "no_play" -> { + toast(getString(R.string.example_service_exception_please_try_again)) +// exampleHomeViewModel.getHomeCategories() + } + + "not_enough" -> { + val get = recommendAdapter?.items?.get(currentPosition) + get?.let { it1 -> rechargeDialog(it1) } + } + + "success" -> { + needRefresh = false + getCustomerUser() + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.success.toString()) + } + MsConstants.ExampleLock = false + viewLock?.visibility = View.INVISIBLE + val get = recommendAdapter?.items?.get(currentPosition) + get?.is_lock = false + recommendAdapter?.notifyDataSetChanged() + get?.short_play_id?.let { it1 -> + get.short_play_video_id.let { it2 -> + createHistory( + it1, + it2 + ) + } + } + } + } + } else { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + } + } + }) + } + + fun getCustomerUser() { + EasyHttp.get(this) + .api(UserInfoApi().apply { + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + + MsMMKVUtils.saveUserInfo(it) + if (needRefresh) { + if (MsMMKVUtils.isVip()) { + revolution = "1080" + MsMMKVUtils.getMMKV() + .putInt(CONSTANTS_quality, 1080) + detailRefresh() + EventBus.getDefault().post(CONSTANTS_quality_refresh) + } + } + } + } + }) + } + + private fun detailRefresh() { + detailPlayerView()?.pause() + detailPlayerView()?.stop() + detailPlayerView()?.release() + recommendAdapter?.items?.get(currentPosition)?.let { it1 -> + getVideoDetails( + it1.short_play_id, + it1.short_play_video_id, + activityId, + ) + } + } + + private fun rechargeDialog( + it: VideoDetailsApi.Bean.Episode + ) { + try { + val exampleRechargeDialogFragment = + RechargeDialogFragment() + exampleRechargeDialogFragment.dataPasser = this + val bundle = Bundle() + bundle.putParcelable(MsConstants.CONSTANTS_Episode, it) + exampleRechargeDialogFragment.setStyle(STYLE_NO_FRAME, 0) + exampleRechargeDialogFragment.arguments = bundle + exampleRechargeDialogFragment.show( + supportFragmentManager, + "ExampleRechargeDialogFragment" + ) + play = true + } catch (e: Exception) { + e.printStackTrace() + } + } + + private var detainmentData: PaySettingsBean.Coins? = null + override fun onDataPass(data: PaySettingsBean.Coins?) { + detainmentData = data + } + + private fun handleCustomLogic(): Boolean { + if (viewVideoRecommend?.visibility == View.INVISIBLE) { + val currentTime = System.currentTimeMillis() + val duration = currentTime - startTime + if (duration > 3000) { + getDetailsRecommand() + viewPagerExampleRecommend?.post { + detailPlayerView()?.stop() + viewPagerExampleRecommend?.visibility = View.GONE + cover?.visibility = View.VISIBLE + } + } else { + finish() + } + } + return false + } + + + fun getDetailsRecommand() { + EasyHttp.get(this) + .api(DetailsRecommandApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + setDetailsRecommendation(it) + } ?: finish() + } + }) + } + + + @SuppressLint("UnsafeOptInUsageError") + private fun setDetailsRecommendation(data: DetailsRecommandApi.Bean) { + if (data.list.isNotEmpty()) { + ExampleDetailCanPlay = false + viewVideoRecommend?.visibility = View.VISIBLE + val recommendBannerAdapter = + RecommendBannerAdapter(data.list) + exampleBannerRecommend?.setBannerGalleryEffect( + 52, + 20 + ) + exampleBannerRecommend?.addOnPageChangeListener( + object : + OnPageChangeListener { + override fun onPageScrolled( + position: Int, + positionOffset: Float, + positionOffsetPixels: Int + ) { + } + + @SuppressLint("UnsafeOptInUsageError") + override fun onPageSelected(position: Int) { + bannerPosition = position + recommendBannerAdapter.currentPlayingPosition = position + recommendBannerAdapter.notifyDataSetChanged() + val data = recommendBannerAdapter.getData(position) + ivCoverRecommendDetail?.let { it1 -> + Glide.with(this@VideoPlayActivity) + .load(data?.image_url) + .error(R.mipmap.ic_loading_v) + .placeholder(R.mipmap.ic_loading_v) + .into(it1) + } + frameLayout?.visibility = View.VISIBLE + ivCoverRecommendDetail?.visibility = View.VISIBLE + player?.stop() + player?.setMediaSource(buildMediaSource(data?.video_url.toString())) + player?.prepare() + } + + override fun onPageScrollStateChanged(state: Int) { + if (1 == state) { + player?.pause() + frameLayout?.visibility = + View.INVISIBLE + recommendBannerAdapter.currentPlayingPosition = -1 + recommendBannerAdapter.notifyDataSetChanged() + } else { + if (2 == state) { + if (player?.isPlaying == false) { + player?.play() + frameLayout?.visibility = + View.VISIBLE + recommendBannerAdapter.currentPlayingPosition = + bannerPosition + recommendBannerAdapter.notifyDataSetChanged() + } + } + } + } + }) + exampleBannerRecommend?.setAdapter( + recommendBannerAdapter + ) + tvPlayNowRecommend?.setOnClickListener { + val data = recommendBannerAdapter.getData(bannerPosition) + watchNow(data, data?.short_play_id) + } + val data = recommendBannerAdapter.getData(0) + ivCoverRecommendDetail?.let { it1 -> + Glide.with(this@VideoPlayActivity).load(data?.image_url) + .into(it1) + } + lifecycleScope.launch { + player?.setMediaSource(buildMediaSource(data?.video_url.toString())) + player?.prepare() + } + } else { + finish() + } + } + + @SuppressLint("UnsafeOptInUsageError") + private fun buildMediaSource(videoPath: String): MediaSource { + val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(this, "guyantv") + + return if (videoPath.endsWith(".m3u8")) { + HlsMediaSource.Factory(dataSourceFactory) + .createMediaSource(MediaItem.fromUri(Uri.parse(videoPath))) + } else { + ProgressiveMediaSource.Factory(dataSourceFactory) + .createMediaSource(MediaItem.fromUri(Uri.parse(videoPath))) + } + } + + private fun watchNow( + data: DetailsRecommandApi.Bean.Item?, + short_play_id: Int? + ) { + exampleBannerRecommend?.postDelayed({ + if (data?.short_play_id != null) { + player?.stop() + if (short_play_id != null) { + shortPlayId = short_play_id + } + getVideoDetails(shortPlayId, 0, activityId) + } + }, 300) + viewVideoRecommend?.visibility = View.INVISIBLE + } + + override fun onStop() { + super.onStop() + val size = recommendAdapter?.items?.size ?: 0 + if (size > 1) { + recommendAdapter?.items?.get(currentPosition)?.let { + if (!it.is_lock) { + setUploadHistorySeconds( + UploadHistoryBean( + detailPlayerView()?.lastProgress(), + shortPlayId!!, + it.short_play_video_id + ) + ) + } + val toJson = Gson().toJson( + shortPlayId?.let { it1 -> + HomeDataHistoryBean( + shortVideo?.name.toString(), + it1, + it.episode.toString(), + shortVideo?.image_url.toString() + ) + } + ) + MsMMKVUtils.getMMKV() + .putString(MsConstants.Constants_Main_Video_info, toJson) + MsMMKVUtils.getMMKV() + .putBoolean(MsConstants.Constants_Main_Video_status, true) + } + } + } + + fun Any.toMapViaGson(): MutableMap { + val json = Gson().toJson(this) + return Gson().fromJson(json, object : TypeToken>() {}.type) + } + + fun setUploadHistorySeconds(data: UploadHistoryBean) { + EasyHttp.post(this) + .api(UploadHistorySecondsApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + fun setActiveAfterWatchingVideo( + short_play_id: Int, + video_id: Int, + activity_id: Int + ) { + val sMap: MutableMap = LinkedHashMap() + sMap.put("short_play_id", short_play_id.toString()) + sMap.put("short_play_video_id", video_id.toString()) + sMap.put("activity_id", activity_id.toString()) + EasyHttp.post(this) + .api(ActiveAfterWatchingVideoApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerBuyRecordAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerBuyRecordAdapter.kt new file mode 100644 index 0000000..ce9de38 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerBuyRecordAdapter.kt @@ -0,0 +1,40 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.app.http.api.CustomerBuyRecordsApi +import com.localee.mireo.shortapp.databinding.ItemWalletRecordBinding + +class CustomerBuyRecordAdapter : + BaseQuickAdapter() { + + class VH( + parent: ViewGroup, + val binding: ItemWalletRecordBinding = ItemWalletRecordBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder( + holder: VH, + position: Int, + item: CustomerBuyRecordsApi.Bean.Data? + ) { + if (null != item) { + holder.binding.tvName.text = "Purchase Single Episode" + holder.binding.tvTime.text = item.created_at + holder.binding.tvConins.text = "-" + item.coins + holder.binding.ivConins.visibility = View.VISIBLE + holder.binding.tvBalance.text = "EP." + item.episode + " Romantic Flash Marri..." + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerOrderRecordAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerOrderRecordAdapter.kt new file mode 100644 index 0000000..4a34779 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/CustomerOrderRecordAdapter.kt @@ -0,0 +1,44 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.databinding.ItemWalletRecordBinding +import com.localee.mireo.app.http.api.CustomerOrderApi + +class CustomerOrderRecordAdapter : + BaseQuickAdapter() { + + class VH( + parent: ViewGroup, + val binding: ItemWalletRecordBinding = ItemWalletRecordBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder( + holder: VH, + position: Int, + item: CustomerOrderApi.Bean.Data? + ) { + if (null != item) { + holder.binding.tvBalance.visibility = View.GONE + holder.binding.tvTime.text = item.created_at + holder.binding.tvName.text = item.type + holder.binding.tvConins.text = "+" + item.value + + if (item.value.isNotEmpty() && item.value.contains("day")){ + holder.binding.ivConins.visibility = View.GONE + } + + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeBannerAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeBannerAdapter.kt index 72e1213..49ca378 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeBannerAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeBannerAdapter.kt @@ -7,9 +7,9 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.http.api.RecommendBean +import com.localee.mireo.app.http.bean.RecommendBean import com.youth.banner.adapter.BannerAdapter class HomeBannerAdapter(mDatas: List) : @@ -30,6 +30,8 @@ class HomeBannerAdapter(mDatas: List) : ) { Glide.with(AppApplication.instance) .load(data.image_url) + .placeholder(R.mipmap.ic_loading_h) + .error(R.mipmap.ic_loading_h) .into(holder.imageView) holder.tvName.setText(data.name) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeCategoriesTabAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeCategoriesTabAdapter.kt index 7dff21d..d24c909 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeCategoriesTabAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeCategoriesTabAdapter.kt @@ -6,9 +6,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.databinding.ItemListTabBinding -import com.localee.mireo.app.http.api.RecommendBean +import com.localee.mireo.shortapp.databinding.ItemListTabBinding +import com.localee.mireo.app.http.bean.RecommendBean class HomeCategoriesTabAdapter : BaseQuickAdapter() { @@ -28,6 +29,8 @@ class HomeCategoriesTabAdapter : BaseQuickAdapter() { @@ -44,8 +45,17 @@ class HomeCriticallyAdapter : } Glide.with(AppApplication.instance) .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.binding.ivContent) + if (position < 6) { + holder.binding.tvScore.visibility = View.VISIBLE + holder.binding.tvScore.text = (position + 1).toString() + } else { + holder.binding.tvScore.visibility = View.GONE + } + } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeGenresAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeGenresAdapter.kt index fda849c..7e4ebb5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeGenresAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeGenresAdapter.kt @@ -6,7 +6,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter4.BaseQuickAdapter import com.hjq.shape.view.ShapeTextView -import com.localee.mireo.app.databinding.ItemHomeGenresBinding +import com.localee.mireo.shortapp.databinding.ItemHomeGenresBinding class HomeGenresAdapter(var id: Int) : BaseQuickAdapter() { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeShortAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeShortAdapter.kt index 70abf67..6eba508 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeShortAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeShortAdapter.kt @@ -6,9 +6,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.databinding.ItemHomeShortBinding -import com.localee.mireo.app.http.api.RecommendBean +import com.localee.mireo.shortapp.databinding.ItemHomeShortBinding +import com.localee.mireo.app.http.bean.RecommendBean class HomeShortAdapter : BaseQuickAdapter() { @@ -29,6 +30,8 @@ class HomeShortAdapter : BaseQuickAdapter() holder.binding.tvDescription.text = item.description Glide.with(AppApplication.instance) .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.binding.ivContent) } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeTopAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeTopAdapter.kt index f800d1a..a75aab0 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeTopAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/HomeTopAdapter.kt @@ -6,9 +6,9 @@ import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder import com.hjq.shape.view.ShapeTextView -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.http.api.RecommendBean +import com.localee.mireo.app.http.bean.RecommendBean class HomeTopAdapter(var type: Int) : BaseQuickAdapter() { @@ -28,6 +28,8 @@ class HomeTopAdapter(var type: Int) : ) { Glide.with(AppApplication.instance) .load(item?.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.getView(R.id.iv_content)) val text: ShapeTextView = holder.getView(R.id.tv_hot) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LanguageSwitchAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LanguageSwitchAdapter.kt new file mode 100644 index 0000000..75118ad --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LanguageSwitchAdapter.kt @@ -0,0 +1,38 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.databinding.ItemLanguageSwitchBinding +import com.localee.mireo.app.http.api.LanguageApi + +class LanguageSwitchAdapter : + BaseQuickAdapter() { + var currentPosition = -1 + + class VH( + parent: ViewGroup, + val binding: ItemLanguageSwitchBinding = ItemLanguageSwitchBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder(holder: VH, position: Int, item: LanguageApi.Bean.Data?) { + if (null != item) { + holder.binding.tvName.text = item.show_name + holder.binding.tvDescription.text = item.description + if (currentPosition == position) { + holder.binding.cbSelectCheck.isChecked = true + } else { + holder.binding.cbSelectCheck.isChecked = false + } + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LostTabAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LostTabAdapter.kt index 7524e70..3147414 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LostTabAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/LostTabAdapter.kt @@ -8,8 +8,9 @@ import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.databinding.ItemListTabBinding -import com.localee.mireo.app.http.api.HistoryBean +import com.localee.mireo.app.http.bean.HistoryBean +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ItemListTabBinding class LostTabAdapter(var tabPosition: Int) : BaseQuickAdapter() { @@ -33,10 +34,14 @@ class LostTabAdapter(var tabPosition: Int) : holder.binding.tvName.text = item.name Glide.with(AppApplication.instance) .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.binding.ivContent) holder.binding.tvName2.text = item.name Glide.with(AppApplication.instance) .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.binding.ivContent2) if (type == 0) { @@ -66,11 +71,11 @@ class LostTabAdapter(var tabPosition: Int) : when (tabPosition) { 0 -> { - if (item.categoryList?.isNotEmpty() == true) { - holder.binding.tvFavor.text = item.categoryList.get(0).name + if (item.category != null && !item.category.isEmpty()) { + holder.binding.tvFavor.text = item.category.get(0) holder.binding.tvFavor.visibility = View.VISIBLE - if (item.categoryList.size > 1) { - holder.binding.tvLove.text = item.categoryList.get(1).name + if (item.category.size > 1) { + holder.binding.tvLove.text = item.category.get(1) holder.binding.tvLove.visibility = View.VISIBLE } else { holder.binding.tvLove.visibility = View.GONE @@ -82,7 +87,7 @@ class LostTabAdapter(var tabPosition: Int) : 1 -> { holder.binding.tvFavor.text = - "EP" + item.current_episode + " / EP" + item.episode_total + "EP." + item.current_episode + " / EP." + item.episode_total holder.binding.tvFavor.visibility = View.VISIBLE holder.binding.tvLove.visibility = View.GONE } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MeHistoryAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MeHistoryAdapter.kt index de6a8dc..31ed903 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MeHistoryAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MeHistoryAdapter.kt @@ -6,9 +6,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.databinding.ItemMeHistoryBinding -import com.localee.mireo.app.http.api.HistoryBean +import com.localee.mireo.shortapp.databinding.ItemMeHistoryBinding +import com.localee.mireo.app.http.bean.HistoryBean class MeHistoryAdapter() : BaseQuickAdapter() { @@ -31,6 +32,8 @@ class MeHistoryAdapter() : if (null != item) { Glide.with(AppApplication.instance) .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) .into(holder.binding.ivContent) } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyCoinBuyAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyCoinBuyAdapter.kt new file mode 100644 index 0000000..d406d6d --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyCoinBuyAdapter.kt @@ -0,0 +1,76 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.shortapp.databinding.ItemCoinBuyBinding +import com.localee.mireo.app.http.bean.PaySettingsBean +import kotlin.math.floor + +class MyCoinBuyAdapter : BaseQuickAdapter() { + + var currentPosition = -1 + + class VH( + parent: ViewGroup, + val binding: ItemCoinBuyBinding = ItemCoinBuyBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder(holder: VH, position: Int, item: PaySettingsBean.Coins?) { + if (null != item) { + holder.binding.tvCoins.text = "+" + item.coins.toString() + holder.binding.tvPrice.text = item.price_google + if (item.corner_marker.isNotEmpty()) { + holder.binding.tvHot.text = item.corner_marker + holder.binding.tvHot.visibility = View.VISIBLE + } else { + holder.binding.tvHot.visibility = View.INVISIBLE + } + if (currentPosition == position) { + holder.binding.tvPrice.shapeDrawableBuilder?.setSolidGradientColors( + 0xFFF8726D.toInt(), + 0xFFF24C92.toInt() + ) + ?.intoBackground() + + holder.binding.root.shapeDrawableBuilder?.setSolidColor(0xFF3E4155.toInt()) + ?.setStrokeSize(1) + ?.intoBackground() + } else { + holder.binding.tvPrice.shapeDrawableBuilder?.setSolidGradientColors( + 0xFF353739.toInt(), + 0xFF353739.toInt() + ) + ?.intoBackground() + + holder.binding.root.shapeDrawableBuilder?.setSolidColor(0xFF1A191C.toInt()) + ?.setStrokeSize(0) + ?.intoBackground() + } + val sendCoins = item?.send_coins?.toDouble() + if (sendCoins != null) { + if (sendCoins > 0) { + val coins = item?.coins?.toDouble() + val let = coins?.let { sendCoins?.div(it) } + val times = let?.times(100) + if (times != null) { + val floor = floor(times).toInt() + holder.binding.tvCorner.text = "+".plus(floor).plus("%") + holder.binding.tvCorner.visibility = View.VISIBLE + } + } else { + holder.binding.tvCorner.visibility = View.INVISIBLE + } + } + } + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt new file mode 100644 index 0000000..f649890 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt @@ -0,0 +1,69 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.app.http.bean.PaySettingsBean +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ItemVipBuyBinding + +class MyVipBuyAdapter : BaseQuickAdapter() { + + var currentPosition = -1 + + class VH( + parent: ViewGroup, + val binding: ItemVipBuyBinding = ItemVipBuyBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder(holder: VH, position: Int, item: PaySettingsBean.Vip?) { + if (null != item) { + holder.binding.tvDay.text = item.brief + holder.binding.tvMoney.text = item.price_google + + when (item.vip_type_key) { + "week" -> { + holder.binding.llContent.setBackgroundResource(R.mipmap.ic_vip_week_bg) + holder.binding.tvDay.setTextColor(Color.parseColor("#71412B")) + holder.binding.tvMoney.setTextColor(Color.parseColor("#71412B")) + + } + + "month" -> { + holder.binding.llContent.setBackgroundResource(R.mipmap.ic_vip_month_bg) + holder.binding.tvDay.setTextColor(Color.parseColor("#7E0026")) + holder.binding.tvMoney.setTextColor(Color.parseColor("#7E0026")) + } + + "quarter" -> { + holder.binding.llContent.setBackgroundResource(R.mipmap.ic_vip_quarter_bg) + holder.binding.tvDay.setTextColor(Color.parseColor("#0E008A")) + holder.binding.tvMoney.setTextColor(Color.parseColor("#0E008A")) + } + + "year" -> { + holder.binding.llContent.setBackgroundResource(R.mipmap.ic_vip_year_bg) + holder.binding.tvDay.setTextColor(Color.parseColor("#00516A")) + holder.binding.tvMoney.setTextColor(Color.parseColor("#00516A")) + } + } + + if (currentPosition == position) { + holder.binding.flSelect.visibility = View.VISIBLE + } else { + holder.binding.flSelect.visibility = View.GONE + } + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/NavigationAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/NavigationAdapter.kt index 8bc9f84..2068cdb 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/NavigationAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/NavigationAdapter.kt @@ -6,8 +6,8 @@ import android.view.* import android.widget.* import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.hjq.base.BaseAdapter -import com.localee.mireo.app.R +import com.localee.mireo.app.base.BaseAdapter +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppAdapter class NavigationAdapter constructor(context: Context) : diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/RecommendBannerAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/RecommendBannerAdapter.kt new file mode 100644 index 0000000..bb115d6 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/RecommendBannerAdapter.kt @@ -0,0 +1,54 @@ +package com.localee.mireo.app.ui.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.appcompat.widget.AppCompatImageView +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.http.api.DetailsRecommandApi +import com.youth.banner.adapter.BannerAdapter + +class RecommendBannerAdapter (items: List?) : + BannerAdapter(items) { + var currentPlayingPosition = 0 + + override fun onCreateHolder(parent: ViewGroup, viewType: Int): BannerViewHolder { + val view: View = LayoutInflater.from(parent.context) + .inflate(R.layout.item_hot_banner_view, parent, false) + view.layoutParams = ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT + ) + return BannerViewHolder(view) + } + + + override fun onBindView( + holder: BannerViewHolder?, + data: DetailsRecommandApi.Bean.Item?, + position: Int, + size: Int + ) { + val imageView = + holder?.view?.findViewById(R.id.ic_icon_banner) + if (imageView != null) { + Glide.with(holder.view.context!!) + .load(data?.image_url) + .placeholder(R.mipmap.ic_loading_v) + .into(imageView) + } + if (position == currentPlayingPosition) { + holder?.itemView?.visibility = View.INVISIBLE + } else { + holder?.itemView?.visibility = View.VISIBLE + } + + } + + inner class BannerViewHolder(var view: View) : RecyclerView.ViewHolder( + view + ) + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchGridAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchGridAdapter.kt new file mode 100644 index 0000000..13a5d56 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchGridAdapter.kt @@ -0,0 +1,40 @@ +package com.localee.mireo.app.ui.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.chad.library.adapter4.BaseQuickAdapter +import com.localee.mireo.app.app.AppApplication +import com.localee.mireo.app.http.api.SearchSearchApi +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ItemMeHistoryBinding +import com.localee.mireo.shortapp.databinding.ItemSearchGirlBinding + +class SearchGridAdapter() : + BaseQuickAdapter() { + + class VH( + parent: ViewGroup, + val binding: ItemSearchGirlBinding = ItemSearchGirlBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder(holder: VH, position: Int, item: SearchSearchApi.Bean.Data?) { + if (null != item) { + Glide.with(AppApplication.instance) + .load(item.image_url) + .placeholder(R.mipmap.ic_loading_v) + .error(R.mipmap.ic_loading_v) + .into(holder.binding.ivContent) + holder.binding.tvName.text = item.name + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchHotAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchHotAdapter.kt index a4fcb7f..c8f4316 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchHotAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/SearchHotAdapter.kt @@ -8,8 +8,9 @@ import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.chad.library.adapter4.BaseQuickAdapter import com.localee.mireo.app.app.AppApplication -import com.localee.mireo.app.databinding.ItemSearchHotBinding import com.localee.mireo.app.http.api.SearchHotApi +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ItemSearchHotBinding class SearchHotAdapter : BaseQuickAdapter() { @@ -31,6 +32,8 @@ class SearchHotAdapter : BaseQuickAdapter() { + var keyword = "" class VH( parent: ViewGroup, @@ -23,9 +28,37 @@ class SearchSearchAdapter : BaseQuickAdapter() { + + class VH( + parent: ViewGroup, + val binding: ItemWalletRecordBinding = ItemWalletRecordBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ), + ) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + return VH(parent) + } + + override fun onBindViewHolder( + holder: VH, + position: Int, + item: SendCoinListApi.Bean.Data? + ) { + if (null != item) { + holder.binding.tvName.text = item.type + holder.binding.tvTime.text = item.created_at + holder.binding.tvConins.text = "+" + item.coins + holder.binding.ivConins.visibility = View.VISIBLE + if (!"Expired".equals(item.diff_datetime)) { + holder.binding.tvBalance.text = "Expires in: " + item.diff_datetime + } + } + + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/TabAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/TabAdapter.kt index af05b81..3388dfc 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/TabAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/adapter/TabAdapter.kt @@ -11,9 +11,9 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver -import com.hjq.base.BaseAdapter +import com.localee.mireo.app.base.BaseAdapter import com.hjq.shape.view.ShapeTextView -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppAdapter class TabAdapter @JvmOverloads constructor( diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/CommonDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/CommonDialog.kt index 384f128..91c12a5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/CommonDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/CommonDialog.kt @@ -5,9 +5,9 @@ import android.view.* import android.widget.TextView import androidx.annotation.LayoutRes import androidx.annotation.StringRes -import com.hjq.base.BaseDialog -import com.hjq.base.action.AnimAction -import com.localee.mireo.app.R +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.base.action.AnimAction +import com.localee.mireo.shortapp.R class CommonDialog { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/GooglePlayRatingDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/GooglePlayRatingDialog.kt new file mode 100644 index 0000000..ead98bc --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/GooglePlayRatingDialog.kt @@ -0,0 +1,31 @@ +package com.localee.mireo.app.ui.dialog + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.view.Gravity +import android.view.Window +import android.view.WindowManager +import com.localee.mireo.shortapp.R + +class GooglePlayRatingDialog(context: Context) : Dialog(context) { + + init { + init() + } + + private fun init() { + requestWindowFeature(Window.FEATURE_NO_TITLE) + setContentView(R.layout.dialog_google_play_rating) + + window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window?.setLayout( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT + ) + window?.setGravity(Gravity.CENTER) + setCancelable(true) + } + +} diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/InputDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/InputDialog.kt index d798477..bb3e1d1 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/InputDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/InputDialog.kt @@ -7,10 +7,10 @@ import android.view.inputmethod.EditorInfo import android.widget.TextView import android.widget.TextView.OnEditorActionListener import androidx.annotation.StringRes -import com.hjq.base.BaseDialog -import com.localee.mireo.app.R -import com.localee.mireo.app.aop.SingleClick -import com.hjq.widget.view.RegexEditText +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.widget.view.RegexEditText +import com.localee.mireo.app.utils.singleClick class InputDialog { @@ -65,17 +65,19 @@ class InputDialog { postDelayed({ showKeyboard(inputView) }, 500) } - @SingleClick override fun onClick(view: View) { - when (view.id) { - R.id.tv_ui_confirm -> { - autoDismiss() - listener?.onConfirm(getDialog(), inputView?.text?.toString() ?: "") - } - R.id.tv_ui_cancel -> { - autoDismiss() - listener?.onCancel(getDialog()) + singleClick { + when (view.id) { + R.id.tv_ui_confirm -> { + autoDismiss() + listener?.onConfirm(getDialog(), inputView?.text?.toString() ?: "") + } + R.id.tv_ui_cancel -> { + autoDismiss() + listener?.onCancel(getDialog()) + } } + } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/MessageDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/MessageDialog.kt index 58d1ac4..6c5daac 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/MessageDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/MessageDialog.kt @@ -4,9 +4,9 @@ import android.content.Context import android.view.View import android.widget.TextView import androidx.annotation.StringRes -import com.hjq.base.BaseDialog -import com.localee.mireo.app.R -import com.localee.mireo.app.aop.SingleClick +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.utils.singleClick class MessageDialog { @@ -39,17 +39,19 @@ class MessageDialog { return super.create() } - @SingleClick override fun onClick(view: View) { - when (view.id) { - R.id.tv_ui_confirm -> { - autoDismiss() - listener?.onConfirm(getDialog()) - } - R.id.tv_ui_cancel -> { - autoDismiss() - listener?.onCancel(getDialog()) + singleClick { + when (view.id) { + R.id.tv_ui_confirm -> { + autoDismiss() + listener?.onConfirm(getDialog()) + } + R.id.tv_ui_cancel -> { + autoDismiss() + listener?.onCancel(getDialog()) + } } + } } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/NotificationPermissionDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/NotificationPermissionDialog.kt new file mode 100644 index 0000000..4be956d --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/NotificationPermissionDialog.kt @@ -0,0 +1,31 @@ +package com.localee.mireo.app.ui.dialog + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.view.Gravity +import android.view.Window +import android.view.WindowManager +import com.localee.mireo.shortapp.R + +class NotificationPermissionDialog (context: Context) : Dialog(context) { + + init { + init() + } + + private fun init() { + requestWindowFeature(Window.FEATURE_NO_TITLE) + setContentView(R.layout.dialog_notification_permission) + + window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window?.setLayout( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT + ) + window?.setGravity(Gravity.CENTER) + setCancelable(false) + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/TipsDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/TipsDialog.kt index d23640f..2ab678e 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/TipsDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/TipsDialog.kt @@ -6,16 +6,17 @@ import android.widget.ImageView import android.widget.TextView import androidx.annotation.DrawableRes import androidx.annotation.StringRes -import com.hjq.base.BaseDialog -import com.hjq.base.action.AnimAction -import com.localee.mireo.app.R +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.base.action.AnimAction +import com.localee.mireo.shortapp.R class TipsDialog { companion object { - const val ICON_FINISH: Int = R.drawable.tips_finish_ic - const val ICON_ERROR: Int = R.drawable.tips_error_ic - const val ICON_WARNING: Int = R.drawable.tips_warning_ic +// const val ICON_FINISH: Int = R.drawable.tips_finish_ic +// const val ICON_ERROR: Int = R.drawable.tips_error_ic +// const val ICON_WARNING: Int = R.drawable.tips_warning_ic + const val ICON_WARNING: Int = 0 } class Builder(context: Context) : BaseDialog.Builder(context), diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/WaitDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/WaitDialog.kt index 7d8069d..fc63eb4 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/WaitDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/dialog/WaitDialog.kt @@ -1,24 +1,32 @@ package com.localee.mireo.app.ui.dialog -import android.content.* -import android.view.* -import android.widget.TextView +import android.content.Context +import android.widget.ImageView import androidx.annotation.StringRes -import com.hjq.base.BaseDialog -import com.hjq.base.action.AnimAction -import com.localee.mireo.app.R +import com.bumptech.glide.Glide +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.base.action.AnimAction +import com.localee.mireo.shortapp.R class WaitDialog { class Builder(context: Context) : BaseDialog.Builder(context) { - private val messageView: TextView? by lazy { findViewById(R.id.tv_wait_message) } + private val ivLoading: ImageView? by lazy { findViewById(R.id.iv_loading) } init { setContentView(R.layout.wait_dialog) setAnimStyle(AnimAction.ANIM_TOAST) setBackgroundDimEnabled(false) setCancelable(false) + + ivLoading?.let { + Glide.with(context) + .asGif() + .load(R.mipmap.iv_loading) + .into(it) + } + } fun setMessage(@StringRes id: Int): Builder = apply { @@ -26,8 +34,8 @@ class WaitDialog { } fun setMessage(text: CharSequence?): Builder = apply { - messageView?.text = text - messageView?.visibility = if (text == null) View.GONE else View.VISIBLE +// messageView?.text = text +// messageView?.visibility = if (text == null) View.GONE else View.VISIBLE } } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/BrowserFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/BrowserFragment.kt index a2ed487..c58e893 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/BrowserFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/BrowserFragment.kt @@ -4,10 +4,8 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Bundle import android.webkit.WebView -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.StatusAction -import com.localee.mireo.app.aop.CheckNet -import com.localee.mireo.app.aop.Log import com.localee.mireo.app.app.AppActivity import com.localee.mireo.app.app.AppFragment import com.localee.mireo.app.ui.activity.BrowserActivity @@ -19,7 +17,7 @@ import com.localee.mireo.app.widget.StatusLayout.OnRetryListener import com.scwang.smart.refresh.layout.SmartRefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshListener -import java.util.* +import java.util.Locale class BrowserFragment : AppFragment(), StatusAction, OnRefreshListener { @@ -27,7 +25,6 @@ class BrowserFragment : AppFragment(), StatusAction, OnRefreshListe private const val INTENT_KEY_IN_URL: String = "url" - @Log fun newInstance(url: String): BrowserFragment { val fragment = BrowserFragment() val bundle = Bundle() @@ -63,7 +60,6 @@ class BrowserFragment : AppFragment(), StatusAction, OnRefreshListe return hintLayout!! } - @CheckNet private fun reload() { browserView?.reload() } @@ -76,7 +72,12 @@ class BrowserFragment : AppFragment(), StatusAction, OnRefreshListe } private inner class AppBrowserViewClient : BrowserViewClient() { - override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) { + override fun onReceivedError( + view: WebView, + errorCode: Int, + description: String, + failingUrl: String + ) { post { showError(object : OnRetryListener { override fun onRetry(layout: StatusLayout) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt index fb2db90..65c41ec 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt @@ -10,27 +10,28 @@ import androidx.appcompat.widget.AppCompatTextView import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.blankj.utilcode.util.NetworkUtils -import com.localee.mireo.app.utils.MsMMKVUtils -import com.localee.mireo.app.R +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy +import com.hjq.toast.ToastUtils +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.BaseEventBus import com.localee.mireo.app.app.TitleBarFragment import com.localee.mireo.app.http.api.ExampleRecommendDataRes import com.localee.mireo.app.http.api.HomeRecommendApi +import com.localee.mireo.app.http.api.VideoDetailsApi import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_quality_refresh import com.localee.mireo.app.ui.activity.HomeActivity -import com.localee.mireo.app.ui.videoPaly.ExamplePlayerDetailDataRes import com.localee.mireo.app.ui.videoPaly.ExampleRecommendAdapter import com.localee.mireo.app.ui.videoPaly.ExampleRecommendPlayerView import com.localee.mireo.app.ui.videoPaly.ExampleUnFavoriteDialog import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.TranslatesUtils import com.localee.mireo.app.utils.formatNumber import com.localee.mireo.app.utils.singleClick -import com.hjq.http.EasyHttp -import com.hjq.http.listener.HttpCallbackProxy -import com.hjq.toast.ToastUtils import com.scwang.smart.refresh.layout.SmartRefreshLayout import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -84,10 +85,10 @@ class ExploreFragment : TitleBarFragment(), ) activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) - exampleTvNoNetwork?.text = - TranslatesUtils.translates()?.no_network - tvExampleRetry?.text = TranslatesUtils.translates()?.retry - exampleTvEmpty?.text = TranslatesUtils.translates()?.s_no_content +// exampleTvNoNetwork?.text = +// TranslatesUtils.translates()?.no_network +// tvExampleRetry?.text = TranslatesUtils.translates()?.retry +// exampleTvEmpty?.text = TranslatesUtils.translates()?.s_no_content } override fun initData() { @@ -97,7 +98,6 @@ class ExploreFragment : TitleBarFragment(), fun initialization() { if (NetworkUtils.isConnected()) { -// avi?.start() getRecommands(currentPage, currentSize, revolution) } else { if (TranslatesUtils.translates() != null) { @@ -109,7 +109,6 @@ class ExploreFragment : TitleBarFragment(), } srRecommend?.setOnRefreshListener { if (NetworkUtils.isConnected()) { -// avi?.start() currentPage = 1 viewPagerExampleRecommend?.post { recommendPlayerView()?.stop() @@ -125,6 +124,7 @@ class ExploreFragment : TitleBarFragment(), } else { ToastUtils.show(getString(R.string.example_no_network)) } + srRecommend?.finishRefresh() } } viewPagerExampleRecommend?.registerOnPageChangeCallback(object : @@ -312,12 +312,14 @@ class ExploreFragment : TitleBarFragment(), srRecommend?.finishRefresh() } } + + override fun onHttpEnd(api: IRequestApi) { + super.onHttpEnd(api) + srRecommend?.finishRefresh() + } }) -// ExampleRecommendRequest.getRecommands(current_page, page_size, revolution) -// .observeForever { result -> -// recommendLiveData.value = result.getOrNull() -// } + } fun doCollect(videoId: Int, shortPlayId: Int) { @@ -437,7 +439,7 @@ class ExploreFragment : TitleBarFragment(), } @Subscribe(threadMode = ThreadMode.MAIN) - fun onEvent(event: BaseEventBus) { + fun onEvent(event: BaseEventBus) { if (MsConstants.Constants_Episodes_Series_DataExample == event.code) { if (exampleRecommendAdapter?.items?.get(currentPosition)?.name == event.data.name) { val imageView = @@ -450,7 +452,11 @@ class ExploreFragment : TitleBarFragment(), exampleRecommendAdapter?.items?.get(currentPosition)?.is_collect = event.data.is_collect textview?.text = formatNumber(event.data.collect_total) - textview?.setTextColor(if (event.data.is_collect) resources.getColor(R.color.example_color_F56490) else resources.getColor(R.color.white)) + textview?.setTextColor( + if (event.data.is_collect) resources.getColor(R.color.example_color_F56490) else resources.getColor( + R.color.white + ) + ) } } } diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeCategoriesTabFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeCategoriesTabFragment.kt index 5994961..9d26bf5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeCategoriesTabFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeCategoriesTabFragment.kt @@ -10,11 +10,11 @@ import androidx.recyclerview.widget.RecyclerView import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.StatusAction import com.localee.mireo.app.app.TitleBarFragment import com.localee.mireo.app.http.api.HomeVideoListApi -import com.localee.mireo.app.http.api.RecommendBean +import com.localee.mireo.app.http.bean.RecommendBean import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id import com.localee.mireo.app.ui.activity.HomeActivity diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt index 64390c2..0aa6d69 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt @@ -2,7 +2,6 @@ package com.localee.mireo.app.ui.fragment import android.content.Intent import android.graphics.Rect -import android.view.Display import android.view.View import android.view.ViewGroup import android.widget.ImageView @@ -14,22 +13,22 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.ViewPager -import com.hjq.base.FragmentPagerAdapter import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy import com.hjq.toast.ToastUtils -import com.localee.mireo.app.R +import com.localee.mireo.app.action.StatusAction import com.localee.mireo.app.app.AppFragment import com.localee.mireo.app.app.TitleBarFragment -import com.localee.mireo.app.http.api.CustomerRegisterApi +import com.localee.mireo.app.base.FragmentPagerAdapter import com.localee.mireo.app.http.api.HomeCategoriesApi import com.localee.mireo.app.http.api.HomeDayMaxRechargeShortPlayRankApi import com.localee.mireo.app.http.api.HomeModuleApi -import com.localee.mireo.app.http.api.RecommendBean import com.localee.mireo.app.http.api.UserInfoApi import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.http.bean.RecommendBean import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id import com.localee.mireo.app.ui.activity.HomeActivity import com.localee.mireo.app.ui.activity.SearchActivity @@ -44,13 +43,25 @@ import com.localee.mireo.app.ui.adapter.TabAdapter.Companion.TAB_MODE_SLIDING import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.widget.StatusLayout +import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.localee.mireo.shortapp.R +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import com.scwang.smart.refresh.layout.api.RefreshLayout +import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener import com.youth.banner.Banner import com.youth.banner.listener.OnBannerListener +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBannerOnClick, TabAdapter.OnTabListener, - ViewPager.OnPageChangeListener { + ViewPager.OnPageChangeListener, + OnRefreshLoadMoreListener, + StatusAction { companion object { @@ -65,7 +76,8 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan R.id.banner ) } - + private val hintLayout: StatusLayout? by lazy { findViewById(R.id.hl_status_hint) } + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } private val layoutTop: ViewGroup? by lazy { findViewById(R.id.layout_top) } private val tvTopOne: TextView? by lazy { layoutTop?.findViewById(R.id.tv_name) } private val ivTop: ImageView? by lazy { layoutTop?.findViewById(R.id.iv_img) } @@ -108,6 +120,7 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan } override fun initView() { + EventBus.getDefault().register(this) recyclerOne?.layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) recyclerNew?.layoutManager = @@ -174,10 +187,21 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan viewPager?.adapter = pagerAdapter viewPager?.addOnPageChangeListener(this@HomeFragment) + rlStatusRefresh?.setOnRefreshLoadMoreListener(this) + rlStatusRefresh?.setEnableRefresh(true) + rlStatusRefresh?.setEnableLoadMore(false) + + } + + fun loadingData() { + getCustomerUser() + getHomeModuleData() + getDayMaxRechargeShortPlayRank(); + } override fun initData() { - getCustomerRegister() + loadingData() topAdapter?.setOnItemClickListener { adapter, view, position -> val data: RecommendBean = adapter.items.get(position) @@ -234,22 +258,6 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan return !super.isStatusBarEnabled() } - fun getCustomerRegister() { - EasyHttp.post(this) - .api(CustomerRegisterApi().apply { - }) - .request(object : HttpCallbackProxy>(this) { - override fun onHttpSuccess(result: HttpData) { - result.getData()?.token?.let { - MsMMKVUtils.saveToken(it) - getCustomerUser() - getHomeModuleData() -// getCategories() - getDayMaxRechargeShortPlayRank(); - } - } - }) - } fun getHomeModuleData() { EasyHttp.get(this) @@ -258,45 +266,68 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan .request(object : HttpCallbackProxy>(this) { override fun onHttpSuccess(result: HttpData) { result.getData()?.let { - bannerAdapter = it.bannerData?.let { it1 -> HomeBannerAdapter(it1) } - bannerAdapter?.homeBannerOnClick = - this@HomeFragment - banner?.addBannerLifecycleObserver(getAttachActivity()) - ?.setAdapter(bannerAdapter) - ?.setOnBannerListener(OnBannerListener { data, position -> - val recommendBean: RecommendBean = it.bannerData!![position] - startActivity( - Intent( - context, - VideoPlayActivity::class.java - ).apply { - putExtra( - CONSTANTS_short_play_id, - recommendBean.short_play_id - ) - }) - }) - if (it.hotData == null) { + nestedScrollView?.visibility = View.VISIBLE + showComplete() + if (it.bannerData == null || it.bannerData!!.isEmpty()) { + banner?.visibility = View.GONE + } else { + banner?.visibility = View.VISIBLE + bannerAdapter = it.bannerData?.let { it1 -> HomeBannerAdapter(it1) } + bannerAdapter?.homeBannerOnClick = + this@HomeFragment + banner?.addBannerLifecycleObserver(getAttachActivity()) + ?.setAdapter(bannerAdapter) + ?.setOnBannerListener(OnBannerListener { data, position -> + val recommendBean: RecommendBean = it.bannerData!![position] + startActivity( + Intent( + context, + VideoPlayActivity::class.java + ).apply { + putExtra( + CONSTANTS_short_play_id, + recommendBean.short_play_id + ) + }) + }) + } + if (it.hotData == null || it.hotData!!.isEmpty()) { layoutTop?.visibility = View.GONE } else { layoutTop?.visibility = View.VISIBLE topAdapter?.submitList(it.hotData) } - if (it.manualNewestRecommand == null) { + if (it.manualNewestRecommand == null || it.manualNewestRecommand?.list == null || it.manualNewestRecommand!!.list!!.isEmpty()) { layoutNew?.visibility = View.GONE } else { layoutNew?.visibility = View.VISIBLE newAdapter?.submitList(it.manualNewestRecommand?.list) } - if (it.recommandData == null || it.recommandData?.list == null) { + if (it.nineSquare == null || it.nineSquare?.list == null || it.nineSquare!!.list!!.isEmpty()) { layoutShort?.visibility = View.GONE } else { layoutShort?.visibility = View.VISIBLE - shortAdapter?.submitList(it.recommandData?.list) + shortAdapter?.submitList(it.nineSquare?.list) } -// criticallyAdapter?.submitList(it.newTopThree) + + } ?: run { + nestedScrollView?.visibility = View.GONE + showEmpty() } } + + override fun onHttpFail(throwable: Throwable) { + super.onHttpFail(throwable) + nestedScrollView?.visibility = View.GONE + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + loadingData() + } + } + + }) + } }) } @@ -304,8 +335,8 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan fun getDayMaxRechargeShortPlayRank() { val sMap: MutableMap = LinkedHashMap() - // StringMap = getSortMap(StringMap); - sMap.put("type", "top_searched") + sMap.put("type", "most_trending") + // type:most_trending,top_searched,new_releases EasyHttp.post(this) .api(HomeDayMaxRechargeShortPlayRankApi().apply { }) @@ -357,6 +388,9 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan .api(UserInfoApi().apply { }) .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + override fun onHttpSuccess(result: HttpData) { result.getData()?.let { @@ -395,7 +429,7 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan override fun onHttpSuccess(result: HttpData) { result.getData()?.let { if (it != null) { - viewModel.triggerAction(2) + viewModel.triggerAction(3) viewModel.meToHistoryAction(0) } else { if (TranslatesUtils.translates() != null) { @@ -409,6 +443,13 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan }) } + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.CONSTANTS_refresh_home == event) { + loadingData() + } + } + private val viewModel: SharedViewModel by activityViewModels() override fun onTabSelected(recyclerView: RecyclerView?, position: Int): Boolean { @@ -426,4 +467,16 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan override fun onPageScrollStateChanged(state: Int) { } + override fun onRefresh(refreshLayout: RefreshLayout) { + loadingData() + rlStatusRefresh?.finishRefresh(2000) + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + } + + override fun getStatusLayout(): StatusLayout? { + return hintLayout + } + } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt index 6ce58fa..d44cc8f 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt @@ -15,12 +15,12 @@ import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy import com.hjq.shape.layout.ShapeLinearLayout -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.StatusAction import com.localee.mireo.app.app.TitleBarFragment -import com.localee.mireo.app.http.api.HistoryBean import com.localee.mireo.app.http.api.MyCollectionsApi import com.localee.mireo.app.http.api.MyHistoryApi +import com.localee.mireo.app.http.bean.HistoryBean import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants.CONSTANTS_activity_id import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id @@ -28,7 +28,10 @@ import com.localee.mireo.app.ui.activity.HomeActivity import com.localee.mireo.app.ui.activity.VideoPlayActivity import com.localee.mireo.app.ui.adapter.LostTabAdapter import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick import com.localee.mireo.app.widget.StatusLayout +import com.localee.mireo.app.widget.StatusLayout.OnRetryListener import com.scwang.smart.refresh.layout.SmartRefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener @@ -182,6 +185,7 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe } fun setEdit() { + rlStatusRefresh?.setEnableRefresh(false) mAdapter?.selectEdit = !mAdapter?.selectEdit!! mAdapter?.notifyDataSetChanged() if (llDelete?.visibility == View.VISIBLE) @@ -192,18 +196,22 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe } fun setCancel() { + rlStatusRefresh?.setEnableRefresh(true) val allData: List? = mAdapter?.items for (i in allData?.indices!!) { allData[i].is_check = false } detailList.clear() - mAdapter?.selectEdit = !mAdapter?.selectEdit!! + mAdapter?.selectEdit = false mAdapter?.notifyDataSetChanged() - if (llDelete?.visibility == View.VISIBLE) - llDelete?.visibility = View.GONE - else - llDelete?.visibility = View.VISIBLE + llDelete?.visibility = View.GONE + llDelete?.shapeDrawableBuilder?.setStrokeColor(0xFF9D9D9D.toInt()) + ?.intoBackground(); + context?.resources?.getColor(R.color.example_color_d9d9d9) + ?.let { tvDelete?.setTextColor(it) } + tvDelete?.text = "Delete (0)" + ivDelete?.setImageResource(R.mipmap.ic_list_detele_n) } fun setAllSelect(isSelect: Boolean) { @@ -268,24 +276,38 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe .request(object : HttpCallbackProxy>(this) { override fun onHttpSuccess(result: HttpData) { result.getData()?.let { + recyclerView?.visibility = View.VISIBLE if (pageIndex == 1) { if (it.list.isEmpty()) { - hintLayout?.show() + showEmpty() } else { - hintLayout?.hide() + showComplete() } mAdapter?.submitList(it.list) - pageTotal = it.pagination.page_total + it.pagination?.let { it1 -> + pageTotal = it1.page_total + } } else { mAdapter?.addAll(it.list) } + } ?: run { + recyclerView?.visibility = View.GONE + showEmpty() } } override fun onHttpFail(throwable: Throwable) { super.onHttpFail(throwable) if (pageIndex == 1) { - hintLayout?.show() + recyclerView?.visibility = View.GONE + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + onRefreshData() + } + } + + }) } } @@ -309,17 +331,23 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe .request(object : HttpCallbackProxy>(this) { override fun onHttpSuccess(result: HttpData) { result.getData()?.let { + recyclerView?.visibility = View.VISIBLE if (pageIndex == 1) { if (it.list.isEmpty()) { - hintLayout?.show() + showEmpty() } else { - hintLayout?.hide() + showComplete() } mAdapter?.submitList(it.list) - pageTotal = it.pagination.page_total + it.pagination?.let { it1 -> + pageTotal = it1.page_total + } } else { mAdapter?.addAll(it.list) } + } ?: run { + recyclerView?.visibility = View.GONE + showEmpty() } } @@ -327,7 +355,15 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe override fun onHttpFail(throwable: Throwable) { super.onHttpFail(throwable) if (pageIndex == 1) { - hintLayout?.show() + recyclerView?.visibility = View.GONE + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + onRefreshData() + } + } + + }) } } @@ -353,9 +389,9 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe .body(getPublicRequest(sMap)) .request(object : HttpCallbackProxy>(this) { override fun onHttpSuccess(result: HttpData) { - result.getData()?.let { - viewModel.listTabAction(0) - } +// result.getData()?.let { +// viewModel.listTabAction(0) +// } } override fun onHttpEnd(api: IRequestApi) { @@ -363,10 +399,10 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe detailPosition++ if (detailPosition == detailList.size) { pageIndex = 1 - mAdapter?.selectEdit = false + detailPosition = 0 loadData() - llDelete?.visibility = View.GONE - detailList.clear() + viewModel.listTabAction(0) + setCancel() } } }) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MessageFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MessageFragment.kt index 4a08115..03b7e50 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MessageFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MessageFragment.kt @@ -8,15 +8,15 @@ import androidx.appcompat.widget.AppCompatCheckBox import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.ViewPager -import com.hjq.base.FragmentPagerAdapter -import com.lxj.xpopup.XPopup -import com.localee.mireo.app.R +import com.localee.mireo.app.base.FragmentPagerAdapter +import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.AppFragment import com.localee.mireo.app.app.TitleBarFragment import com.localee.mireo.app.ui.activity.HomeActivity import com.localee.mireo.app.ui.adapter.TabAdapter import com.localee.mireo.app.ui.popup.CustomBubbleAttachPopup import com.localee.mireo.app.ui.popup.CustomBubbleAttachPopup.CustomPopupOnclick +import com.lxj.xpopup.XPopup class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListener, @@ -53,11 +53,10 @@ class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListen ivMore?.setOnClickListener { XPopup.Builder(context) - .hasShadowBg(false) - .isTouchThrough(true) + .isTouchThrough(false) .atView(ivMore) - .hasShadowBg(false) - .hasNavigationBar(false) + .hasShadowBg(true) + .hasNavigationBar(true) .asCustom(context?.let { it1 -> CustomBubbleAttachPopup( it1, @@ -115,10 +114,10 @@ class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListen } flSelectCheck?.setOnClickListener { - if (cbSelectCheck?.isChecked == true){ + if (cbSelectCheck?.isChecked == true) { cbSelectCheck?.isChecked = false listTabOneFragment.setAllSelect(false) - }else{ + } else { cbSelectCheck?.isChecked = true listTabOneFragment.setAllSelect(true) } @@ -144,10 +143,11 @@ class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListen viewModel.meToHistoryAction.observe(this) { data -> viewPager?.currentItem = data - when(data) { + when (data) { 0 -> { listTabOneFragment.onRefreshData() } + 1 -> { listTabTwoFragment.onRefreshData() } @@ -160,7 +160,6 @@ class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListen } - val listTabOneFragment: ListTabFragment = ListTabFragment.newInstance(0) val listTabTwoFragment: ListTabFragment = ListTabFragment.newInstance(1) @@ -191,6 +190,18 @@ class MessageFragment : TitleBarFragment(), TabAdapter.OnTabListen } } + override fun onPause() { + super.onPause() + if (tabView?.visibility == View.VISIBLE){ + tvCancel?.visibility = View.GONE + ivMore?.visibility = View.VISIBLE + tabView?.visibility = View.VISIBLE + cbSelectCheck?.isChecked = false + flSelectCheck?.visibility = View.GONE + listTabOneFragment.setCancel() + } + } + override fun initData() {} diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MineFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MineFragment.kt index 104f04c..baf21ec 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MineFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/MineFragment.kt @@ -2,35 +2,65 @@ package com.localee.mireo.app.ui.fragment import android.content.Intent import android.view.View +import android.widget.ImageView import android.widget.TextView +import androidx.appcompat.widget.AppCompatTextView import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.load.resource.bitmap.CircleCrop +import com.bumptech.glide.request.RequestOptions +import com.facebook.login.LoginManager import com.hjq.http.EasyHttp import com.hjq.http.listener.HttpCallbackProxy -import com.localee.mireo.app.R -import com.localee.mireo.app.aop.SingleClick import com.localee.mireo.app.app.TitleBarFragment -import com.localee.mireo.app.http.api.HistoryBean +import com.localee.mireo.app.http.api.DoLogoutApi import com.localee.mireo.app.http.api.MyHistoryApi import com.localee.mireo.app.http.api.UserInfoApi import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.http.bean.HistoryBean import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id import com.localee.mireo.app.ui.activity.AboutActivity import com.localee.mireo.app.ui.activity.BrowserActivity +import com.localee.mireo.app.ui.activity.FeedBackActivity import com.localee.mireo.app.ui.activity.HomeActivity +import com.localee.mireo.app.ui.activity.LanguageSwitchActivity +import com.localee.mireo.app.ui.activity.MyVipActivity +import com.localee.mireo.app.ui.activity.MyWalletActivity import com.localee.mireo.app.ui.activity.SettingActivity +import com.localee.mireo.app.ui.activity.StoreActivity import com.localee.mireo.app.ui.activity.VideoPlayActivity import com.localee.mireo.app.ui.adapter.MeHistoryAdapter +import com.localee.mireo.app.ui.videoPaly.ExampleUnFavoriteDialog import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.utils.transToString +import com.localee.mireo.shortapp.R +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import com.scwang.smart.refresh.layout.api.RefreshLayout +import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode -class MineFragment : TitleBarFragment() { +class MineFragment : TitleBarFragment(), OnRefreshLoadMoreListener { + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } private val tvId: TextView? by lazy { findViewById(R.id.tv_id) } private val recyclerView: RecyclerView? by lazy { findViewById(R.id.recyclerView) } + private val tvConins: TextView? by lazy { findViewById(R.id.tv_conins) } + private val tvDonate: TextView? by lazy { findViewById(R.id.tv_donate) } + private val tvVipTime: TextView? by lazy { findViewById(R.id.tv_vip_time) } + private val tvName: TextView? by lazy { findViewById(R.id.tv_name) } + private val tvLogin: TextView? by lazy { findViewById(R.id.tv_login) } + private val ivPortrait: ImageView? by lazy { findViewById(R.id.iv_portrait) } + private val ivVip: ImageView? by lazy { findViewById(R.id.iv_vip) } private var mAdapter: MeHistoryAdapter? = null @@ -48,12 +78,19 @@ class MineFragment : TitleBarFragment() { } override fun initView() { + EventBus.getDefault().register(this) setOnClickListener( R.id.sb_play_list, R.id.sb_setting, R.id.sb_privacy, R.id.sb_agreement, - R.id.sb_about + R.id.sb_about, + R.id.sb_feedback, + R.id.sb_language, + R.id.ll_wallet, + R.id.ll_vip, + R.id.sb_store, + R.id.tv_login ) recyclerView?.layoutManager = @@ -72,49 +109,165 @@ class MineFragment : TitleBarFragment() { putExtra(CONSTANTS_short_play_id, data.short_play_id) }) } + rlStatusRefresh?.setOnRefreshLoadMoreListener(this) + rlStatusRefresh?.setEnableRefresh(true) + rlStatusRefresh?.setEnableLoadMore(false) } override fun initData() { + if (MsMMKVUtils.isTourist()) { + tvName?.text = "Visitor" + ivPortrait?.let { + Glide.with(this).load(MsMMKVUtils.getUserInfo()?.avator).skipMemoryCache(true) + .diskCacheStrategy( + DiskCacheStrategy.NONE + ) + .apply(RequestOptions.bitmapTransform(CircleCrop())) + .placeholder(R.mipmap.iv_login_icon) + .error(R.mipmap.iv_login_icon).into(it) + } + + tvLogin?.text = "Log in" + + } else { + tvName?.text = + MsMMKVUtils.getUserInfo()?.family_name.plus(MsMMKVUtils.getUserInfo()?.giving_name) + ivPortrait?.let { + Glide.with(this).load(MsMMKVUtils.getUserInfo()?.avator).skipMemoryCache(true) + .diskCacheStrategy( + DiskCacheStrategy.NONE + ) + .apply(RequestOptions.bitmapTransform(CircleCrop())) + .placeholder(R.mipmap.ic_login_icon_de) + .error(R.mipmap.ic_login_icon_de).into(it) + } + + tvLogin?.text = "Log out" + + } tvId?.text = "ID:".plus(MsMMKVUtils.getUserInfo()?.customer_id) + tvConins?.text = + MsMMKVUtils.getUserInfo()?.coin_left_total.toString() + tvDonate?.text = + MsMMKVUtils.getUserInfo()?.send_coin_left_total.toString() + if (MsMMKVUtils.isVip()) { + ivVip?.visibility = View.VISIBLE + if (TranslatesUtils.translates() != null) { + tvVipTime?.text = + TranslatesUtils.translates()?.vip_expire_time.plus(MsMMKVUtils.getUserInfo()?.vip_end_time?.let { + transToString( + it.toLong() + ) + }) + } else { + tvVipTime?.text = + "Vip Expires:".plus(MsMMKVUtils.getUserInfo()?.vip_end_time?.let { + transToString( + it.toLong() + ) + }) + } + } else { + ivVip?.visibility = View.GONE + tvVipTime?.text = "Enjoy all dramas for free" + } + + } private var isDataLoaded = false override fun onResume() { super.onResume() - if (isVisible && !isDataLoaded) { - getCustomerUser() - isDataLoaded = true - } +// if (isVisible && !isDataLoaded) { + getCustomerUser() +// isDataLoaded = true +// } getMyHistory(1, 20) } - @SingleClick override fun onClick(view: View) { - when (view.id) { - R.id.sb_play_list -> { - viewModel.triggerAction(2) - viewModel.meToHistoryAction(1) - } + singleClick { + when (view.id) { + R.id.sb_play_list -> { + viewModel.triggerAction(3) + viewModel.meToHistoryAction(1) + } - R.id.sb_setting -> { - startActivity(SettingActivity::class.java) - } + R.id.sb_setting -> { + startActivity(SettingActivity::class.java) + } - R.id.sb_privacy -> { - BrowserActivity.start(getAttachActivity()!!, MsConstants.Constants_privacy_policy) - } + R.id.sb_privacy -> { + BrowserActivity.start( + getAttachActivity()!!, + MsConstants.Constants_privacy_policy + ) + } - R.id.sb_agreement -> { - BrowserActivity.start(getAttachActivity()!!, MsConstants.Constants_user_agreement) - } + R.id.sb_agreement -> { + BrowserActivity.start( + getAttachActivity()!!, + MsConstants.Constants_user_agreement + ) + } - R.id.sb_about -> { - startActivity(AboutActivity::class.java) + R.id.sb_about -> { + startActivity(AboutActivity::class.java) + } + + R.id.sb_feedback -> { + startActivity(FeedBackActivity::class.java) + } + + R.id.sb_language -> { + startActivity(LanguageSwitchActivity::class.java) + } + + R.id.ll_wallet -> { + startActivity(MyWalletActivity::class.java) + } + + R.id.ll_vip -> { + startActivity(MyVipActivity::class.java) + } + + R.id.sb_store -> { + startActivity(StoreActivity::class.java) + } + + R.id.tv_login -> { + if (MsMMKVUtils.isTourist()) { + viewModel.loginAction(0) + } else { + getLogoutDialog() + } + } } } } + private fun getLogoutDialog() { + val exampleUnFavoriteDialog = ExampleUnFavoriteDialog(requireContext()) + val tvThinkAgain = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_think_again) + val tvUnfavorite = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_unfavorite) + val tvTitle = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_title) + val tvContent = + exampleUnFavoriteDialog.findViewById(R.id.example_tv_content) + tvUnfavorite.text = getString(R.string.common_confirm) + tvTitle.text = getString(R.string.logout_title) + tvContent.text = getString(R.string.logout_content) + tvThinkAgain.setOnClickListener { exampleUnFavoriteDialog.dismiss() } + tvUnfavorite.setOnClickListener { + getDoLogout() + exampleUnFavoriteDialog.dismiss() + } + exampleUnFavoriteDialog.show() + } + private fun getCustomerUser() { EasyHttp.get(this) .api(UserInfoApi().apply { @@ -124,7 +277,28 @@ class MineFragment : TitleBarFragment() { result.getData()?.let { MsMMKVUtils.saveUserInfo(it) - tvId?.text = "ID:".plus(MsMMKVUtils.getUserInfo()?.customer_id) + initData() + } + } + }) + } + + private fun getDoLogout() { + EasyHttp.post(this) + .api(DoLogoutApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + LoginManager.getInstance().logOut() + MsMMKVUtils.getMMKV() + .putString(MsConstants.ACCESS_TOKEN, it.token) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_leaveApp) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_enterTheApp) + EventBus.getDefault().post(MsConstants.CONSTANTS_quality_refresh) + EventBus.getDefault() + .post(MsConstants.CONSTANTS_user_refresh) } } }) @@ -150,4 +324,21 @@ class MineFragment : TitleBarFragment() { override fun isStatusBarEnabled(): Boolean { return !super.isStatusBarEnabled() } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.CONSTANTS_user_refresh == event || MsConstants.CONSTANTS_refresh_me == event) { + getCustomerUser() + getMyHistory(1, 15) + } + } + + override fun onRefresh(refreshLayout: RefreshLayout) { + getCustomerUser() + getMyHistory(1, 20) + rlStatusRefresh?.finishRefresh(1000) + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt new file mode 100644 index 0000000..d2b753d --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt @@ -0,0 +1,624 @@ +package com.localee.mireo.app.ui.fragment + +import android.app.AlertDialog +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.view.Gravity +import android.view.View +import android.view.WindowManager +import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.LinearLayoutManager +import com.android.billingclient.api.AcknowledgePurchaseParams +import com.android.billingclient.api.BillingClient +import com.android.billingclient.api.BillingClientStateListener +import com.android.billingclient.api.BillingFlowParams +import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.ConsumeParams +import com.android.billingclient.api.ConsumeResponseListener +import com.android.billingclient.api.ProductDetails +import com.android.billingclient.api.ProductDetailsResponseListener +import com.android.billingclient.api.Purchase +import com.android.billingclient.api.PurchasesUpdatedListener +import com.android.billingclient.api.QueryProductDetailsParams +import com.bumptech.glide.Glide +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import com.google.common.reflect.TypeToken +import com.google.gson.Gson +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy +import com.hjq.http.listener.OnHttpListener +import com.hjq.toast.ToastUtils +import com.localee.mireo.app.http.api.CreateOrderApi +import com.localee.mireo.app.http.api.GooglePaidApi +import com.localee.mireo.app.http.api.PaySettingsApi +import com.localee.mireo.app.http.api.VideoDetailsApi +import com.localee.mireo.app.http.bean.CreateOrderReqBean +import com.localee.mireo.app.http.bean.PayBean +import com.localee.mireo.app.http.bean.PayResBean +import com.localee.mireo.app.http.bean.PaySettingsBean +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.AppConfig +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.ui.adapter.MyCoinBuyAdapter +import com.localee.mireo.app.ui.adapter.MyVipBuyAdapter +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.DialogRechargeFragmentBinding +import kotlinx.coroutines.launch +import org.greenrobot.eventbus.EventBus + +class RechargeDialogFragment : BottomSheetDialogFragment(), OnHttpListener { + private var dialogRechargeFragmentBinding: DialogRechargeFragmentBinding? = null + private var isConnect = false + private var isPay = false + private var type = 0 + private var promise_view_ad: Int? = -1 + private var connectNum = 0 + private var short_play_id: Int? = 0 + private var mAdapter: MyVipBuyAdapter? = null + private var mCoinAdapter: MyCoinBuyAdapter? = null + + private var order_code = "" + private var vipData: PaySettingsBean.Vip? = null + private var coinsData: PaySettingsBean.Coins? = null + private var billingClient: BillingClient? = null + private var purchaseData: Purchase? = null + private var payReq: PayBean? = null + private var detainmentData: PaySettingsBean.Coins? = null + + interface OnDataPass { + fun onDataPass(data: PaySettingsBean.Coins?) + } + + var dataPasser: OnDataPass? = null + + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireActivity()) + val inflater = requireActivity().layoutInflater + val view = inflater.inflate(R.layout.dialog_recharge_fragment, null) + dialogRechargeFragmentBinding = DialogRechargeFragmentBinding.bind(view) + val parcelable = + arguments?.getParcelable(MsConstants.CONSTANTS_Episode) + short_play_id = parcelable?.short_play_id + promise_view_ad = parcelable?.promise_view_ad + + dialogRechargeFragmentBinding?.tvCoins?.text = MsMMKVUtils.getAllCoin().toString() + dialogRechargeFragmentBinding?.ivLoading?.let { + Glide.with(requireContext()) + .asGif() + .load(R.mipmap.iv_loading) + .into(it) + } + dialogRechargeFragmentBinding?.recyclerCoin?.layoutManager = + LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) + dialogRechargeFragmentBinding?.recyclerView?.layoutManager = + LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) + + mCoinAdapter = MyCoinBuyAdapter() + dialogRechargeFragmentBinding?.recyclerCoin?.adapter = mCoinAdapter + + mAdapter = MyVipBuyAdapter() + dialogRechargeFragmentBinding?.recyclerView?.adapter = mAdapter + + mCoinAdapter?.setOnItemClickListener { adapter, view, position -> + if (type == 1) { + mAdapter?.currentPosition = -1 + mAdapter?.notifyDataSetChanged() + } + type = 0 + mCoinAdapter?.currentPosition = position + mCoinAdapter?.notifyDataSetChanged() + } + mAdapter?.setOnItemClickListener { adapter, view, position -> + if (type == 0) { + mCoinAdapter?.currentPosition = -1 + mCoinAdapter?.notifyDataSetChanged() + } + type = 1 + mAdapter?.currentPosition = position + mAdapter?.notifyDataSetChanged() + } + dialogRechargeFragmentBinding?.tvBuy?.setOnClickListener { + if (mAdapter?.currentPosition == -1 && mCoinAdapter?.currentPosition == -1) { + ToastUtils.show(getString(R.string.select_a_payment_item)) + return@setOnClickListener + } + singleClick { + if (!isConnect) { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + ToastUtils.show(getString(R.string.google_pay_error)) + } + return@singleClick + } + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.VISIBLE + if (type == 0) { + coinsData = + mCoinAdapter!!.getItem(mCoinAdapter!!.currentPosition) as PaySettingsBean.Coins + } else { + vipData = mAdapter!!.getItem(mAdapter!!.currentPosition) as PaySettingsBean.Vip + } + if (parcelable != null) { + short_play_id?.let { it1 -> + CreateOrderReqBean( + if (type == 0) coinsData?.id.toString() else vipData?.id.toString(), + "google", + it1, + parcelable.short_play_video_id + ) + }?.let { it2 -> + getCreateOrder( + it2 + ) + } + } + } + } + + + getPaySettings(parcelable?.short_play_id, parcelable?.short_play_video_id) + initPay() + + builder.setView(dialogRechargeFragmentBinding?.root) + val dialog = builder.create() + dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) + val window = dialog.window + window?.decorView?.setPadding(0, 0, 0, 0) + window?.setGravity(Gravity.BOTTOM) + val layoutParams = window?.attributes + layoutParams?.width = WindowManager.LayoutParams.MATCH_PARENT + layoutParams?.height = resources.getDimensionPixelSize(R.dimen.dp_500) + window?.attributes = layoutParams + return dialog + } + + private fun getPaySettings(shortPlayId: Int?, videoId: Int?) { + EasyHttp.get(this) + .api(PaySettingsApi().apply { + short_play_id = shortPlayId + short_play_video_id = videoId + }) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + mCoinAdapter?.submitList(it.list_coins) + mAdapter?.submitList(it.list_sub_vip) + + it.list_sub_vip?.let { it1 -> querySubProductDetails(it1) } + it.list_coins?.let { it1 -> queryInAppProductDetails(it1) } + + } + } + }) + } + + + private fun initPay() { + val purchasesUpdatedListener = + PurchasesUpdatedListener { billingResult, purchases -> + when (billingResult.responseCode) { + BillingClient.BillingResponseCode.OK -> { + for (purchase in purchases!!) { + if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) { + if (type == 0) { + consumePurchase(purchase) + } else { + consumePurchaseSub(purchase) + } + } + } + } + + BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -> { + queryAndConsumePurchases() + } + + BillingClient.BillingResponseCode.USER_CANCELED -> { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.g_pay_cancel.toString()) + } else { + ToastUtils.show(getString(R.string.google_pay_canceled)) + } + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + + else -> { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + ToastUtils.show(getString(R.string.google_pay_error)) + } + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + } + } + + + billingClient = BillingClient.newBuilder(requireActivity()) + .setListener(purchasesUpdatedListener) + .enablePendingPurchases() + .build() + + + val stateListener: BillingClientStateListener = object : BillingClientStateListener { + override fun onBillingSetupFinished(billingResult: BillingResult) { + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + isConnect = true + } + } + + override fun onBillingServiceDisconnected() { + if (connectNum < 5) { + connectNum++ + isConnect = false + billingClient?.startConnection(this) + } + } + } + billingClient?.startConnection(stateListener) + } + + private fun queryAndConsumePurchases() { + // 查询所有未消费的购买记录 + billingClient?.queryPurchasesAsync(BillingClient.ProductType.INAPP) { billingResult, purchaseList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + for (purchase in purchaseList) { + consumePurchase(purchase) + } + } + } + } + + private fun getProduct(productId: String) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (productDetailsList.isNotEmpty()) { + pay(productDetailsList[0]) + } else { + lifecycleScope.launch { + ToastUtils.show(billingResult.toString()) + } + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + } + + val productType: String = if (type == 0) { + BillingClient.ProductType.INAPP + } else { + BillingClient.ProductType.SUBS + } + val inAppProductInfo = ArrayList() + inAppProductInfo.add( + QueryProductDetailsParams.Product.newBuilder() + .setProductId(productId) + .setProductType(productType) + .build() + ) + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } + + private fun querySubProductDetails(listSubVip: List) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + val priceInfo = productDetailsList.mapNotNull { productDetails -> + productDetails.subscriptionOfferDetails?.get(0)?.pricingPhases?.pricingPhaseList?.get( + 0 + )?.let { + productDetails.productId to (it.formattedPrice to it.priceCurrencyCode) + } + }.toMap() + + // 更新VIP列表的价格和货币代码 + val updatedVipList = listSubVip.map { vip -> + priceInfo[vip.android_template_id]?.let { (price, currency) -> + vip.copy(price_google = price, currency_goolge = currency) + } ?: vip + } + + mAdapter?.recyclerView?.postDelayed({ + mAdapter?.submitList(updatedVipList) + }, 500) + } + } + + val productType: String = BillingClient.ProductType.SUBS + + val inAppProductInfo = listSubVip.map { + QueryProductDetailsParams.Product.newBuilder() + .setProductId(it.android_template_id) + .setProductType(productType) + .build() + } + if (inAppProductInfo.isNotEmpty()) { + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } + } + + private fun queryInAppProductDetails( + coinsList: List + ) { + val productDetailsResponseListener = + ProductDetailsResponseListener { billingResult, productDetailsList -> + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + val priceInfo = productDetailsList.mapNotNull { productDetails -> + productDetails.oneTimePurchaseOfferDetails?.let { + productDetails.productId to (it.formattedPrice to it.priceCurrencyCode) + } + }.toMap() + + // 更新Coins列表的价格和货币代码 + val updatedCoinsList = coinsList.map { coin -> + priceInfo[coin.android_template_id]?.let { (price, currency) -> + coin.copy(price_google = price, currency_goolge = currency) + } ?: coin + } + + mCoinAdapter?.recyclerView?.postDelayed({ + mCoinAdapter?.submitList(updatedCoinsList) + }, 500) + } + } + + val productType = BillingClient.ProductType.INAPP + + val inAppProductInfo = coinsList.map { + QueryProductDetailsParams.Product.newBuilder() + .setProductId(it.android_template_id) + .setProductType(productType) + .build() + } + + if (inAppProductInfo.isNotEmpty()) { + val productDetailsParams = QueryProductDetailsParams.newBuilder() + .setProductList(inAppProductInfo) + .build() + billingClient?.queryProductDetailsAsync( + productDetailsParams, + productDetailsResponseListener + ) + } + } + + private fun pay(productDetailInfo: ProductDetails) { + if (productDetailInfo.subscriptionOfferDetails?.isNotEmpty() == true) { + val params = ArrayList() + productDetailInfo.subscriptionOfferDetails?.get(0)?.offerToken?.let { + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(productDetailInfo) + .setOfferToken(it) + .build() + }?.let { + params.add( + it + ) + } + val billingFlowParams = BillingFlowParams.newBuilder() + .setObfuscatedProfileId(order_code) + .setObfuscatedAccountId(MsMMKVUtils.getCustomId()) + .setProductDetailsParamsList(params) + .build() + + billingClient?.launchBillingFlow(requireActivity(), billingFlowParams) + } else { + val params = ArrayList() + params.add( + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(productDetailInfo) + .build() + ) + + val billingFlowParams = BillingFlowParams.newBuilder() + .setObfuscatedProfileId(order_code) + .setObfuscatedAccountId(MsMMKVUtils.getCustomId()) + .setProductDetailsParamsList(params) + .build() + + billingClient?.launchBillingFlow(requireActivity(), billingFlowParams) + } + } + + private var consumeResponseListener = + ConsumeResponseListener { billingResult, purchaseToken -> + val PayBean = PayBean( + order_code, + coinsData?.id.toString(), + AppConfig.getPackageName(), + coinsData?.android_template_id.toString(), + purchaseToken, + purchaseData?.orderId.toString(), + coinsData?.price.toString() + ) + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + lifecycleScope.launch { + googlePaid(PayBean) + MsMMKVUtils.saveOrder(PayBean) + payReq = PayBean + } + } else { + MsMMKVUtils.saveOrder(PayBean) + lifecycleScope.launch { + ToastUtils.show(billingResult.toString()) + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + } + } + + private fun consumePurchaseSub( + purchase: Purchase + ) { + if (billingClient?.isReady == true) { + if (!purchase.isAcknowledged) { + val acknowledgePurchaseParams = + AcknowledgePurchaseParams.newBuilder() + .setPurchaseToken(purchase.purchaseToken) + .build() + billingClient?.acknowledgePurchase( + acknowledgePurchaseParams + ) { + val PayBean = PayBean( + order_code, + vipData?.id.toString(), + AppConfig.getPackageName(), + vipData?.android_template_id.toString(), + purchase.purchaseToken, + purchase.orderId.toString(), + vipData?.price.toString() + ) + if (it.responseCode == BillingClient.BillingResponseCode.OK) { + lifecycleScope.launch { + googlePaid(PayBean) + MsMMKVUtils.saveOrder(PayBean) + payReq = PayBean + } + } else { + MsMMKVUtils.saveOrder(PayBean) + lifecycleScope.launch { + ToastUtils.show(it.toString()) + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + } + } + } + } + } + + private fun consumePurchase(purchase: Purchase?) { + if (billingClient?.isReady == true) { + purchaseData = purchase + val consumeParams = ConsumeParams.newBuilder() + .setPurchaseToken(purchase?.purchaseToken!!) + .build() + billingClient?.consumeAsync(consumeParams, consumeResponseListener) + } else { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.g_pay_error.toString()) + } else { + ToastUtils.show(getString(R.string.google_pay_error)) + } + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + } + + fun Any.toMapViaGson(): MutableMap { + val json = Gson().toJson(this) + return Gson().fromJson(json, object : TypeToken>() {}.type) + } + + fun getCreateOrder(data: CreateOrderReqBean) { + EasyHttp.post(this) + .api(CreateOrderApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + order_code = it.order_code.toString() + if (type == 0) { + coinsData?.android_template_id?.let { it1 -> getProduct(it1) } + } else { + vipData?.android_template_id?.let { it1 -> getProduct(it1) } + } + + } ?: run { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.network_error.toString()) + } else { + ToastUtils.show(getString(R.string.example_service_exception_please_try_again)) + } + } + + } + + }) + } + + fun googlePaid(data: PayBean) { + EasyHttp.post(this) + .api(GooglePaidApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.g_pay_success.toString()) + } else { + ToastUtils.show(getString(R.string.google_pay_success)) + } + if (null != payReq) { + MsMMKVUtils.removeOrder(payReq) + } + if (null != payReq) { + MsMMKVUtils.removeOrder(payReq) + } + EventBus.getDefault() + .post(MsConstants.CONSTANTS_pay_refresh) + isPay = true + dismiss() + } ?: run { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.network_error.toString()) + } else { + ToastUtils.show(getString(R.string.example_service_exception_please_try_again)) + } + } + } + + }) + } + + + override fun onHttpStart(api: IRequestApi) { + super.onHttpStart(api) + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.VISIBLE + } + + override fun onHttpSuccess(result: Any) { + } + + override fun onHttpFail(throwable: Throwable) { + } + + override fun onHttpEnd(api: IRequestApi) { + super.onHttpEnd(api) + dialogRechargeFragmentBinding?.ivLoading?.visibility = View.GONE + } + + + override fun onDismiss(dialog: DialogInterface) { + billingClient?.endConnection() + billingClient = null + payReq = null + dataPasser?.onDataPass(detainmentData) + System.gc() + super.onDismiss(dialog) +// if (!isPay) { +// EventBus.getDefault().post(Constants_close_recharge) +// } + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt new file mode 100644 index 0000000..434bacf --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt @@ -0,0 +1,366 @@ +package com.localee.mireo.app.ui.fragment + +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.graphics.Color +import android.net.Uri +import android.os.Build +import android.util.Log +import android.view.View +import android.view.ViewGroup +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.content.ContextCompat +import com.blankj.utilcode.util.NetworkUtils +import com.google.android.gms.tasks.OnCompleteListener +import com.google.firebase.messaging.FirebaseMessaging +import com.hjq.http.EasyHttp +import com.hjq.http.config.IRequestApi +import com.hjq.http.listener.HttpCallbackProxy +import com.localee.mireo.app.action.StatusAction +import com.localee.mireo.app.widget.view.SimpleRatingBar +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.app.TitleBarFragment +import com.localee.mireo.app.http.api.FirebaseTokenApi +import com.localee.mireo.app.http.api.OpenNotifyApi +import com.localee.mireo.app.http.model.HttpData +import com.localee.mireo.app.other.AppConfig +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.ui.activity.HomeActivity +import com.localee.mireo.app.ui.dialog.GooglePlayRatingDialog +import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest +import com.localee.mireo.app.utils.JsBridge +import com.localee.mireo.app.utils.MsMMKVUtils +import com.localee.mireo.app.utils.NotificationUtils +import com.localee.mireo.app.utils.TranslatesUtils +import com.localee.mireo.app.utils.singleClick +import com.localee.mireo.app.widget.StatusLayout +import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.scwang.smart.refresh.layout.SmartRefreshLayout +import com.scwang.smart.refresh.layout.api.RefreshLayout +import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode + + +class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListener ,StatusAction{ + + private val hintLayout: StatusLayout? by lazy { findViewById(R.id.hl_status_hint) } + private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } + private val web: WebView? by lazy { findViewById(R.id.web) } + + companion object { + + fun newInstance(): RewardFragment { + return RewardFragment() + } + } + + override fun getLayoutId(): Int { + return R.layout.fragment_reward + } + + override fun initView() { + EventBus.getDefault().register(this) + rlStatusRefresh?.setOnRefreshLoadMoreListener(this) + rlStatusRefresh?.setEnableLoadMore(false) + web?.setBackgroundColor(Color.TRANSPARENT) + } + + override fun initData() { + setWebView() + } + + private var isDataLoaded = false + override fun onResume() { + super.onResume() + if (isVisible && !isDataLoaded) { + loadingData() + isDataLoaded = true + } + } + + fun loadingData() { + showDialog() + if (NetworkUtils.isConnected()) { + showComplete() + loadPageUrl(MsConstants.REWARD_URL_RES) + } else { + showErrorStatus() + } + } + + fun showErrorStatus(){ + showError(object : OnRetryListener { + override fun onRetry(layout: StatusLayout) { + singleClick { + loadingData() + } + } + }) + hideDialog() + } + + @SuppressLint("SetJavaScriptEnabled") + private fun setWebView() { + val webSettings: WebSettings = web!!.settings + webSettings.javaScriptEnabled = true + web?.webChromeClient = WebChromeClient() + + web?.webViewClient = object : WebViewClient() { + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { + super.onPageStarted(view, url, favicon) + + } + + override fun onPageFinished(view: WebView?, url: String?) { + super.onPageFinished(view, url) + hideDialog() + rlStatusRefresh?.finishRefresh() + if (NetworkUtils.isConnected()) { + showComplete() + } + } + + override fun onReceivedError( + view: WebView?, + request: WebResourceRequest?, + error: WebResourceError? + ) { + super.onReceivedError(view, request, error) + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + hideDialog() + rlStatusRefresh?.finishRefresh() + } + } + webSettings.domStorageEnabled = true + webSettings.loadsImagesAutomatically = true + webSettings.useWideViewPort = true + webSettings.loadWithOverviewMode = true + webSettings.builtInZoomControls = true + webSettings.displayZoomControls = false + web?.addJavascriptInterface( + JsBridge(requireContext()), + "AndroidInterface" + ) + } + + + private fun loadPageUrl(url: String) { + web?.loadUrl(url) + } + + override fun onDestroyView() { + super.onDestroyView() + (view?.parent as? ViewGroup)?.removeView(web) + web?.destroy() + } + + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEvent(event: String) { + if (MsConstants.CONSTANTS_web_refresh == event) { + web?.loadUrl( + "javascript:loginCallback(" + "'" + MsMMKVUtils.getMMKV() + .getString(MsConstants.ACCESS_TOKEN, "") + "'" + ")" + ) + } + + if (MsConstants.CONSTANTS_rating == event) { + val exampleRatingDialog = GooglePlayRatingDialog(requireContext()) + val example_confirm = + exampleRatingDialog.findViewById(R.id.example_confirm) + val iv_close_vip = + exampleRatingDialog.findViewById(R.id.iv_close_vip) +// val example_tv_title = +// exampleRatingDialog.findViewById(R.id.example_tv_title) +// val example_tv_content = +// exampleRatingDialog.findViewById(R.id.example_tv_content) + val rating = exampleRatingDialog.findViewById(R.id.rating) +// example_confirm.text = TranslatesUtils.translates()?.alter_confirm +// example_tv_title.text = TranslatesUtils.translates()?.enjoy +// example_tv_content.text = TranslatesUtils.translates()?.rating + example_confirm.setOnClickListener { + val currentGrade = rating.getGrade() + if (currentGrade == 5f) { + context?.packageName?.let { it1 -> + openGooglePlayForReview( + requireContext(), + it1 + ) + } + web?.loadUrl( + "javascript:commentCallBack(" + "'" + currentGrade + "'" + ")" + ) + exampleRatingDialog.dismiss() + } else { + if (currentGrade != 0f) { + web?.loadUrl( + "javascript:commentCallBack(" + "'" + currentGrade + "'" + ")" + ) + exampleRatingDialog.dismiss() + } + } + } + iv_close_vip.setOnClickListener { exampleRatingDialog.dismiss() } + exampleRatingDialog.show() + } + + if (MsConstants.CONSTANTS_web_notification == event) { + askNotificationPermission() + } + } + + private fun openGooglePlayForReview(context: Context, packageName: String) { + val uri = Uri.parse("market://details?id=$packageName") + val intent = Intent(Intent.ACTION_VIEW, uri) + // 设置Intent的包名为Google Play商店的包名,以确保跳转到Google Play + intent.setPackage("com.android.vending") + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + + // 检查是否有应用能够处理这个Intent(即是否安装了Google Play) + if (intent.resolveActivity(context.packageManager) != null) { + context.startActivity(intent) + } else { + // 如果设备上没有安装Google Play,则通过浏览器打开Google Play网页版 + val fallbackUri = + Uri.parse("https://play.google.com/store/apps/details?id=$packageName") + val fallbackIntent = Intent(Intent.ACTION_VIEW, fallbackUri) + fallbackIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(fallbackIntent) + } + } + + private fun firebase() { + FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> + if (!task.isSuccessful) { + Log.d( + "LOG_TAG", "Fetching FCM registration token failed", task.exception + ) + return@OnCompleteListener + } + // Get new FCM registration token + val token = task.result + // Log and toast + Log.d("LOG_TAG", token) + firebaseToken(token) + }) + } + + fun firebaseToken(data: String?) { + val sMap: MutableMap = LinkedHashMap() + sMap.put("fcm_token", data) + EasyHttp.post(this) + .api(FirebaseTokenApi()) + .body(getPublicRequest(sMap)) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + private fun askNotificationPermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission( + requireContext(), Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + firebase() + openNotify() + } else { + requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + } + } else { + if (NotificationUtils.isNotificationEnabled(requireContext())) { + firebase() + openNotify() + } else { + NotificationUtils.openNotificationSettings(requireActivity()) + } + } + } + + private val requestPermissionLauncher = registerForActivityResult( + ActivityResultContracts.RequestPermission(), + ) { isGranted: Boolean -> + MsConstants.CanNotification = isGranted + if (isGranted) { + firebase() + openNotify() + } else { + openAppNotificationSettings() + } + } + + fun openNotify() { + EasyHttp.post(this) + .api(OpenNotifyApi()) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + } + }) + } + + private fun openAppNotificationSettings() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + val intent = Intent() + intent.action = "android.settings.APP_NOTIFICATION_SETTINGS" + intent.putExtra( + "android.provider.extra.APP_PACKAGE", + AppConfig.getPackageName() + ) + startActivity(intent) + } else { + val intent = Intent() + intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + intent.data = + Uri.fromParts("package", AppConfig.getPackageName(), null) + startActivity(intent) + } + } + + override fun onDestroy() { + EventBus.getDefault().unregister(this) + super.onDestroy() + } + + + override fun isStatusBarEnabled(): Boolean { + return !super.isStatusBarEnabled() + } + + override fun onRefresh(refreshLayout: RefreshLayout) { + loadPageUrl(MsConstants.REWARD_URL_RES) + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + } + + override fun getStatusLayout(): StatusLayout? { + return hintLayout + } + + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/SharedViewModel.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/SharedViewModel.kt index 6d57dc6..580b450 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/SharedViewModel.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/fragment/SharedViewModel.kt @@ -32,4 +32,11 @@ class SharedViewModel : ViewModel() { fun meToHistoryCheckAction(data: Int) { _meToHistoryCheckAction.value = data } + + private val _loginAction = MutableLiveData() + val loginAction: LiveData get() = _loginAction + + fun loginAction(data: Int) { + _loginAction.value = data + } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBottomLoginPopup.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBottomLoginPopup.kt new file mode 100644 index 0000000..fb5a407 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBottomLoginPopup.kt @@ -0,0 +1,79 @@ +package com.localee.mireo.app.ui.popup + +import android.content.Context +import android.graphics.Color +import android.text.SpannableString +import android.text.method.LinkMovementMethod +import android.text.style.ClickableSpan +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.ui.activity.BrowserActivity +import com.localee.mireo.app.widget.CustomClickableSpan +import com.localee.mireo.shortapp.R +import com.lxj.xpopup.core.BottomPopupView + +class CustomBottomLoginPopup(context: Context, val popupOnclick: CustomPopupOnclick?) : + BottomPopupView(context) { + interface CustomPopupOnclick { + fun onFacebook() + fun onGoogle() + fun onTikTok() + } + + + override fun getImplLayoutId(): Int { + return R.layout.custom_bottom_login_popup + } + + override fun onCreate() { + super.onCreate() + val ivClose = findViewById(R.id.iv_close) + val tvFacebook = findViewById(R.id.tv_facebook) + val tvFirst = findViewById(R.id.tv_first) + val tvGoogle = findViewById(R.id.tv_google) + val tvTiktok = findViewById(R.id.tv_tiktok) + val tvPolicy = findViewById(R.id.tv_policy) + ivClose.setOnClickListener { + dismiss() + } + tvFacebook.setOnClickListener { + popupOnclick?.onFacebook() + dismiss() + } + tvGoogle.setOnClickListener { + popupOnclick?.onGoogle() + dismiss() + } + tvTiktok.setOnClickListener { + popupOnclick?.onTikTok() + dismiss() + } + + val fullText = "By logging in you agree to: User Agreement & Privacy Policy" + + val spannableString = SpannableString(fullText) + + val start1 = fullText.indexOf("User") + val end1 = fullText.indexOf("t ") + 1 + val start2 = fullText.lastIndexOf("Pri") + val end2 = fullText.length + + spannableString.setSpan( + CustomClickableSpan(Color.parseColor("#FF888888")) { + BrowserActivity.start(context, MsConstants.Constants_user_agreement) + }, + start1, end1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE + ) + spannableString.setSpan( + CustomClickableSpan(Color.parseColor("#FF888888")) { + BrowserActivity.start(context, MsConstants.Constants_privacy_policy) + }, + start2, end2, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE + ) + + tvPolicy.text = spannableString + tvPolicy.movementMethod = LinkMovementMethod.getInstance() // 必须设置! + } +} diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBubbleAttachPopup.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBubbleAttachPopup.kt index ed9a465..ef6a350 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBubbleAttachPopup.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/popup/CustomBubbleAttachPopup.kt @@ -4,7 +4,7 @@ import android.content.Context import android.view.View import android.widget.TextView import com.lxj.xpopup.core.BubbleAttachPopupView -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class CustomBubbleAttachPopup(context: Context,var tabPosition: Int?,var mode: Int, val popupOnclick: CustomPopupOnclick?) : BubbleAttachPopupView(context) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExamplePlayerDetailDataRes.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExamplePlayerDetailDataRes.kt deleted file mode 100644 index 5af2548..0000000 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExamplePlayerDetailDataRes.kt +++ /dev/null @@ -1,150 +0,0 @@ -package com.localee.mireo.app.ui.videoPaly - -import android.os.Parcel -import android.os.Parcelable - - -data class ExamplePlayerDetailDataRes( - val episodeList: List, - val is_collect: Boolean, - val show_share_coin: Boolean, - val share_coin: Int, - val install_coins: Int, - val unlock_video_ad_count: Int, - val revolution: Int, - val discount: Int, - var business_model: String, - val shortPlayInfo: ShortPlayInfo, - val video_info: VideoInfo -) { - - data class Episode( - val coins: Int, - val episode: Int, - val id: Int, - var is_lock: Boolean, - val is_vip: Int, - val short_play_id: Int, - val short_play_video_id: Int, - val video_url: String, - val vip_coins: Int, - var play_seconds: String?, - var promise_view_ad: Int, - ):Parcelable { - constructor(parcel: Parcel) : this( - parcel.readInt(), - parcel.readInt(), - parcel.readInt(), - parcel.readByte() != 0.toByte(), - parcel.readInt(), - parcel.readInt(), - parcel.readInt(), - parcel.readString().toString(), - parcel.readInt(), - parcel.readString().toString(), - parcel.readInt() - ) { - } - - override fun writeToParcel(parcel: Parcel, flags: Int) { - parcel.writeInt(coins) - parcel.writeInt(episode) - parcel.writeInt(id) - parcel.writeByte(if (is_lock) 1 else 0) - parcel.writeInt(is_vip) - parcel.writeInt(short_play_id) - parcel.writeInt(short_play_video_id) - parcel.writeString(video_url) - parcel.writeInt(vip_coins) - parcel.writeString(play_seconds) - parcel.writeInt(promise_view_ad) - } - - override fun describeContents(): Int { - return 0 - } - - companion object CREATOR : Parcelable.Creator { - override fun createFromParcel(parcel: Parcel): Episode { - return Episode(parcel) - } - - override fun newArray(size: Int): Array { - return arrayOfNulls(size) - } - } - } - - data class ShortPlayInfo( - val all_coins: Int, - val buy_type: Int, - var collect_total: Int, - val description: String, - val episode_total: Int, - val id: Int, - val image_url: String, - var is_collect: Boolean, - val name: String, - val process: Int, - val short_id: Int, - val watch_total: Int - ):Parcelable { - constructor(parcel: Parcel) : this( - parcel.readInt(), - parcel.readInt(), - parcel.readInt(), - parcel.readString().toString(), - parcel.readInt(), - parcel.readInt(), - parcel.readString().toString(), - parcel.readByte() != 0.toByte(), - parcel.readString().toString(), - parcel.readInt(), - parcel.readInt(), - parcel.readInt() - ) { - } - - override fun writeToParcel(parcel: Parcel, flags: Int) { - parcel.writeInt(all_coins) - parcel.writeInt(buy_type) - parcel.writeInt(collect_total) - parcel.writeString(description) - parcel.writeInt(episode_total) - parcel.writeInt(id) - parcel.writeString(image_url) - parcel.writeByte(if (is_collect) 1 else 0) - parcel.writeString(name) - parcel.writeInt(process) - parcel.writeInt(short_id) - parcel.writeInt(watch_total) - } - - override fun describeContents(): Int { - return 0 - } - - companion object CREATOR : Parcelable.Creator { - override fun createFromParcel(parcel: Parcel): ShortPlayInfo { - return ShortPlayInfo(parcel) - } - - override fun newArray(size: Int): Array { - return arrayOfNulls(size) - } - } - } - - data class VideoInfo( - val coins: Int, - val episode: Int, - val id: Int, - val is_vip: Int, - val short_id: Int, - val short_play_id: Int, - val short_play_video_id: Int, - val promise_view_ad: Int, - val video_url: String, - val vip_coins: Int - ) -} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendAdapter.kt index 5f5d01d..1ba6a8d 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendAdapter.kt @@ -6,7 +6,7 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.media3.ui.PlayerView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class ExampleRecommendAdapter : BaseQuickAdapter() { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendPlayerView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendPlayerView.kt index 7316a51..1fa98a3 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendPlayerView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleRecommendPlayerView.kt @@ -27,8 +27,8 @@ import com.bumptech.glide.Glide import com.hjq.shape.view.ShapeImageView import com.hjq.shape.view.ShapeTextView import com.hjq.toast.ToastUtils -import com.localee.mireo.app.R -import com.localee.mireo.app.databinding.ExampleRecommendPlayerViewBinding +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ExampleRecommendPlayerViewBinding import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_activity_id import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDataAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDataAdapter.kt index 8216bea..77fbfd7 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDataAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDataAdapter.kt @@ -5,8 +5,9 @@ import android.view.ViewGroup import androidx.appcompat.widget.AppCompatTextView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.http.api.VideoDetailsApi +import com.localee.mireo.app.utils.MsMMKVUtils class ExampleSeriesDataAdapter : BaseQuickAdapter() { @@ -35,6 +36,12 @@ class ExampleSeriesDataAdapter : holder.setVisible(R.id.example_tv_num_data, true) holder.setVisible(R.id.example_iv_num_data, false) } + + if (item?.is_lock == true && !MsMMKVUtils.isVip()) { + holder.setVisible(R.id.iv_example_lock, true) + } else { + holder.setVisible(R.id.iv_example_lock, false) + } } override fun onCreateViewHolder( diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDialogFragment.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDialogFragment.kt index cccbdf2..17b682e 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDialogFragment.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesDialogFragment.kt @@ -4,21 +4,21 @@ import android.app.AlertDialog import android.app.Dialog import android.os.Bundle import android.view.Gravity +import android.view.View import android.view.WindowManager import androidx.fragment.app.DialogFragment import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import com.bumptech.glide.Glide -import com.localee.mireo.app.R -import com.localee.mireo.app.databinding.ExampleDialogSeriesBinding +import com.hjq.toast.ToastUtils import com.localee.mireo.app.http.api.VideoDetailsApi -import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.Constants_Episodes_Series_DataExample import com.localee.mireo.app.other.MsConstants.Constants_Episodes_Series_Data_ListExample import com.localee.mireo.app.other.MsConstants.Constants_Episodes_Series_Data_currentPositionExample +import com.localee.mireo.app.utils.MsMMKVUtils import com.localee.mireo.app.utils.TranslatesUtils -import com.localee.mireo.app.utils.singleClick -import org.greenrobot.eventbus.EventBus +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ExampleDialogSeriesBinding class ExampleSeriesDialogFragment : DialogFragment() { var seriesCallBack: SeriesCallBack? = null @@ -84,18 +84,18 @@ class ExampleSeriesDialogFragment : DialogFragment() { } exampleSeriesDataAdapter.setOnItemClickListener { adapter, view, position -> val item = adapter.getItem(position) as VideoDetailsApi.Bean.Episode -// if (position > 0) { -// val beforeItem = adapter.getItem(position - 1) as VideoDetailsApi.Bean.Episode -// if (beforeItem.is_lock && !MsMMKVUtils.isVip()) { -// if (TranslatesUtils.translates() != null) { -// ToastUtils.show(TranslatesUtils.translates()?.jump_unlock_error.toString()) -// } else { -// ToastUtils.show("The prequel to this series is not unlocked. Please unlock the prequel before unlocking this series") -// } -// dismiss() -// return@setOnItemClickListener -// } -// } + if (position > 0) { + val beforeItem = adapter.getItem(position - 1) as VideoDetailsApi.Bean.Episode + if (beforeItem.is_lock && !MsMMKVUtils.isVip()) { + if (TranslatesUtils.translates() != null) { + ToastUtils.show(TranslatesUtils.translates()?.jump_unlock_error.toString()) + } else { + ToastUtils.show("The prequel to this series is not unlocked. Please unlock the prequel before unlocking this series") + } + dismiss() + return@setOnItemClickListener + } + } seriesCallBack?.chooseSeries(item) dismiss() } @@ -107,6 +107,20 @@ class ExampleSeriesDialogFragment : DialogFragment() { append(data?.episode_total) append(" Episodes") } + + if (data?.category != null && data.category.isNotEmpty()) { + exampleDialogSeriesBinding.tvFavor.text = data.category[0] + exampleDialogSeriesBinding.tvFavor.visibility = View.VISIBLE + if (data.category.size > 1) { + exampleDialogSeriesBinding.tvLove.text = data.category[1] + exampleDialogSeriesBinding.tvLove.visibility = View.VISIBLE + } else { + exampleDialogSeriesBinding.tvLove.visibility = View.GONE + } + } else { + exampleDialogSeriesBinding.tvFavor.visibility = View.GONE + } + Glide.with(this) .load(data?.image_url) .into(exampleDialogSeriesBinding.ivImg) diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesNumAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesNumAdapter.kt index 093f175..55d4a8b 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesNumAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleSeriesNumAdapter.kt @@ -5,7 +5,7 @@ import android.graphics.Color import android.view.ViewGroup import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class ExampleSeriesNumAdapter : BaseQuickAdapter() { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleUnFavoriteDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleUnFavoriteDialog.kt index eccc222..15b8ec0 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleUnFavoriteDialog.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/ExampleUnFavoriteDialog.kt @@ -7,7 +7,7 @@ import android.graphics.drawable.ColorDrawable import android.view.Gravity import android.view.Window import android.view.WindowManager -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class ExampleUnFavoriteDialog(context: Context) : Dialog(context) { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/LoadingLine.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/LoadingLine.kt index d00d0e3..9d44cad 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/LoadingLine.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/LoadingLine.kt @@ -9,7 +9,7 @@ import android.view.animation.Animation import android.view.animation.AnimationSet import android.view.animation.ScaleAnimation import android.widget.FrameLayout -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class LoadingLine : FrameLayout { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayAdapter.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayAdapter.kt index c1e72fb..e9f06a5 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayAdapter.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayAdapter.kt @@ -6,7 +6,7 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.media3.ui.PlayerView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R import com.localee.mireo.app.http.api.VideoDetailsApi class VideoPlayAdapter : diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayerView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayerView.kt index de3a4b9..4f0fd7e 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayerView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/ui/videoPaly/VideoPlayerView.kt @@ -25,11 +25,12 @@ import androidx.media3.exoplayer.source.ProgressiveMediaSource import com.bumptech.glide.Glide import com.hjq.shape.view.ShapeTextView import com.hjq.toast.ToastUtils -import com.localee.mireo.app.R -import com.localee.mireo.app.databinding.ExampleDetailPlayerViewBinding +import com.localee.mireo.shortapp.R +import com.localee.mireo.shortapp.databinding.ExampleDetailPlayerViewBinding import com.localee.mireo.app.http.api.VideoDetailsApi import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.ExampleDetailCanPlay +import com.localee.mireo.app.other.MsConstants.ExampleLock import com.localee.mireo.app.other.MsConstants.seek import com.localee.mireo.app.utils.TranslatesUtils import com.localee.mireo.app.utils.formatNumber @@ -119,7 +120,7 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) : Player.STATE_READY -> { exampleIvPlayPlayerController?.isEnabled = true - if (ExampleDetailCanPlay) { + if (ExampleDetailCanPlay && !ExampleLock) { if (seek && progress > 0) { player?.seekTo(progress) seek = false @@ -150,10 +151,12 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) : } }) exampleIvPlayPlayerController?.setOnClickListener { - if (MsConstants.ExampleDetailPlaying) { - pause() - } else { - play() + if (!ExampleLock) { + if (MsConstants.ExampleDetailPlaying) { + pause() + } else { + play() + } } } iv_des_change?.setOnClickListener { @@ -307,12 +310,16 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) : player?.setMediaSource(buildMediaSource(episode.video_url)) player?.prepare() exampleTvEpisodePlayerController?.setOnClickListener { + if (!episode.is_lock) { EventBus.getDefault() .post(MsConstants.Constants_RecommendPlayerView_DramaSeriesExample) + } } ivEpisodePlayerController?.setOnClickListener { + if (!episode.is_lock) { EventBus.getDefault() .post(MsConstants.Constants_RecommendPlayerView_DramaSeriesExample) + } } exampleIvBackController?.setOnClickListener { EventBus.getDefault() diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt index df005e6..6aa31ce 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt @@ -3,6 +3,7 @@ package com.localee.mireo.app.utils import android.annotation.SuppressLint import android.content.Context import android.os.Build +import com.localee.mireo.app.other.MsConstants import java.text.SimpleDateFormat import java.time.Instant import java.time.LocalDateTime @@ -119,13 +120,13 @@ fun transToString(time: Long): String { // return currentTime - lastPopupTime > ONE_DAY_IN_MILLIS //} // -//fun shouldShowNotification(): Boolean { -// val lastPopupTime = -// ExampleMMKVUtils.getMMKV().getLong(CONSTANTS_PREF_LAST_POPUP_TIME_Notification, 0) -// val currentTime = System.currentTimeMillis() -// -// return currentTime - lastPopupTime > ONE_DAY_IN_MILLIS -//} +fun shouldShowNotification(): Boolean { + val lastPopupTime = + MsMMKVUtils.getMMKV().getLong(MsConstants.CONSTANTS_PREF_LAST_POPUP_TIME_Notification, 0) + val currentTime = System.currentTimeMillis() + + return currentTime - lastPopupTime > MsConstants.ONE_DAY_IN_MILLIS +} // //fun shouldShowVIP(): Boolean { // val lastPopupTime = diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridge.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridge.kt new file mode 100644 index 0000000..5bfd90a --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridge.kt @@ -0,0 +1,224 @@ +package com.localee.mireo.app.utils + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.util.Log +import android.webkit.JavascriptInterface +import androidx.core.content.ContextCompat +import com.google.gson.Gson +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import com.localee.mireo.app.app.BaseEventBus +import com.localee.mireo.app.http.bean.JsBean +import com.localee.mireo.app.http.bean.JsonInfoBean +import com.localee.mireo.app.http.bean.JsonInfoUrlBean +import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.ui.activity.VideoPlayActivity +import org.greenrobot.eventbus.EventBus + + +class JsBridge(private val context: Context) { + @JavascriptInterface + fun getUserInfo(): String { + val jsInfo = JsBean( + MsMMKVUtils.getMMKV() + .getString(MsConstants.ACCESS_TOKEN, "") + .toString(), + getCurrentTimeZone(), + MsMMKVUtils.getMMKV().getString(MsConstants.CONSTANTS_lang_key, "en") + .toString(), + "android", + "theme_1" + ) + return Gson().toJson(jsInfo) + } + + @JavascriptInterface + fun js2app(string: String) { + val parser = JsonParser() + val rootJson = parser.parse(string) as JsonObject + when (rootJson.get("type").asString) { + "login" -> { + EventBus.getDefault().post(MsConstants.CONSTANTS_Login) +// context.startActivity( +// Intent( +// context, +// ExampleLoginActivity::class.java +// ).apply { +// putExtra( +// MsConstants.CONSTANTS_activity_id, +// "login" +// ) +// } +// ) + } + + "open_notify" -> { + EventBus.getDefault().post(MsConstants.CONSTANTS_web_notification) + } + + "watch_video" -> { + val fromJson = Gson().fromJson(string, JsonInfoBean::class.java) + context.startActivity( + Intent( + context, + VideoPlayActivity::class.java + ).apply { + putExtra( + MsConstants.CONSTANTS_short_play_id, + fromJson.data?.short_play_id + ) + putExtra( + MsConstants.CONSTANTS_activity_id, + fromJson.data?.activity_id + ) + }) + } + + "go_tiktok" -> { + val fromJson = Gson().fromJson(string, JsonInfoUrlBean::class.java) + val tiktokUrl = fromJson.data.link + val tiktokIntent = Intent(Intent.ACTION_VIEW, Uri.parse(tiktokUrl)) + tiktokIntent.setPackage("com.ss.android.ugc.trill") + if (tiktokIntent.resolveActivity(context.packageManager) != null) { + context.startActivity(tiktokIntent) + } else { + // 如果没有安装TikTok,使用浏览器打开 + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(tiktokUrl)) + context.startActivity(webIntent) + } + } + + "go_youtube" -> { + val fromJson = Gson().fromJson(string, JsonInfoUrlBean::class.java) + val youtubeUrl = fromJson.data.link + val youtubeIntent = Intent(Intent.ACTION_VIEW, Uri.parse(youtubeUrl)) + youtubeIntent.setPackage("com.google.android.youtube") // YouTube的包名 + + if (youtubeIntent.resolveActivity(context.packageManager) != null) { + context.startActivity(youtubeIntent) + } else { + // 如果没有安装YouTube,使用浏览器打开 + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(youtubeUrl)) + context.startActivity(webIntent) + } + } + + "go_facebook" -> { + val fromJson = Gson().fromJson(string, JsonInfoUrlBean::class.java) + val facebookUrl = fromJson.data.link + try { + // 尝试使用Facebook应用打开 + val facebookIntent = Intent(Intent.ACTION_VIEW, Uri.parse(facebookUrl)) + context.startActivity(facebookIntent) + } catch (e: Exception) { + // 如果没有安装Facebook,使用浏览器打开 + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(facebookUrl)) + context.startActivity(webIntent) + } + } + + "go_instagram" -> { + val fromJson = Gson().fromJson(string, JsonInfoUrlBean::class.java) + val instagramUrl = fromJson.data.link + try { + // 尝试使用Instagram应用打开 + val instagramIntent = Intent(Intent.ACTION_VIEW, Uri.parse(instagramUrl)) + instagramIntent.setPackage("com.instagram.android") // Instagram的包名 + context.startActivity(instagramIntent) + } catch (e: java.lang.Exception) { + // 如果没有安装Instagram,使用浏览器打开 + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(instagramUrl)) + context.startActivity(webIntent) + } + } + + "go_comment" -> { + EventBus.getDefault().post(MsConstants.CONSTANTS_rating) + } + + "lucky_wheel" -> { + val dataObject = rootJson.getAsJsonObject("data") + val link = dataObject.get("link").asString +// context.startActivity( +// Intent( +// context, +// MovableTurntableActivity::class.java +// ).apply { +// putExtra("title", link) +// } +// ) + } + } + } + + @JavascriptInterface + fun openFeedbackDetail(id: String) { + EventBus.getDefault() + .post(BaseEventBus(MsConstants.Constants_openFeedbackDetail, id)) + } + + @JavascriptInterface + fun openFeedbackList() { + EventBus.getDefault() + .post(MsConstants.Constants_openFeedback) + } + + @JavascriptInterface + fun openPhotoPicker() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_MEDIA_IMAGES + ) == PackageManager.PERMISSION_GRANTED + ) { + openFilePicker() + } else { + EventBus.getDefault().post(MsConstants.Constants_requestPermissions_photo) + } + } else { + if ((ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission( + context, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission( + context, + Manifest.permission.CAMERA + ) == PackageManager.PERMISSION_GRANTED) + ) { + openFilePicker() + } else { + EventBus.getDefault().post(MsConstants.Constants_requestPermissions_photo) + } + } + + } + + + private val REQUEST_PICK_FILE: Int = 1002 + + private fun openFilePicker() { + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + (context as? Activity)?.startActivityForResult(intent, REQUEST_PICK_FILE) + } + + @JavascriptInterface + fun openLuckyDrawAD(string: String) { + Log.d("openLuckyDrawAD", string) +// EventBus.getDefault() +// .post(BaseEventBus(MsConstants.Constants_Movable_turntable_ad, string)) + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridgeDetail.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridgeDetail.kt new file mode 100644 index 0000000..1d4a2ab --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/JsBridgeDetail.kt @@ -0,0 +1,80 @@ +package com.localee.mireo.app.utils + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.webkit.JavascriptInterface +import androidx.core.content.ContextCompat +import com.google.gson.Gson +import com.localee.mireo.app.http.bean.JsDetailsBean +import com.localee.mireo.app.other.MsConstants +import org.greenrobot.eventbus.EventBus + + +class JsBridgeDetail(private val context: Context) { + @JavascriptInterface + fun getUserInfo(): String { + val jsInfo = JsDetailsBean( + MsMMKVUtils.getMMKV() + .getString(MsConstants.ACCESS_TOKEN, "") + .toString(), + getCurrentTimeZone(), + MsMMKVUtils.getMMKV().getString(MsConstants.CONSTANTS_lang_key, "en") + .toString(), + "android", + MsMMKVUtils.getMMKV().getString(MsConstants.CONSTANTS_Detail_id, "") + .toString(), + "theme_1" + ) + return Gson().toJson(jsInfo) + } + + + @JavascriptInterface + fun openPhotoPicker() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_MEDIA_IMAGES + ) == PackageManager.PERMISSION_GRANTED + ) { + openFilePicker() + } else { + EventBus.getDefault().post(MsConstants.Constants_requestPermissions_photo_detail) + } + } else { + if ((ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission( + context, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission( + context, + Manifest.permission.CAMERA + ) == PackageManager.PERMISSION_GRANTED) + ) { + openFilePicker() + } else { + EventBus.getDefault().post(MsConstants.Constants_requestPermissions_photo_detail) + } + } + + } + + + private val REQUEST_PICK_FILE: Int = 1003 + + private fun openFilePicker() { + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + (context as? Activity)?.startActivityForResult(intent, REQUEST_PICK_FILE) + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt index e34c57b..a06c315 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt @@ -2,6 +2,7 @@ package com.localee.mireo.app.utils import com.google.gson.Gson import com.localee.mireo.app.http.api.UserInfoRes +import com.localee.mireo.app.http.bean.PayBean import com.localee.mireo.app.other.MsConstants import com.tencent.mmkv.MMKV @@ -48,5 +49,54 @@ object MsMMKVUtils { } return Gson().fromJson(string, UserInfoRes::class.java) } + fun isVip(): Boolean { + return getUserInfo()?.is_vip == true + } + fun isTourist(): Boolean { + return getUserInfo()?.is_tourist == true + } + fun getAllCoin(): Int { + if (getUserInfo() == null) { + return 0 + } + return getUserInfo()?.coin_left_total!! + getUserInfo()?.send_coin_left_total!! + } + + fun getCustomId(): String { + return getUserInfo()?.customer_id.toString() + } + + fun saveOrder(payReq: PayBean) { + val list = getOrder() + if (!list.contains(payReq)) { + list.add(payReq) + } + val toJson = Gson().toJson(list) + getMMKV().putString(MsConstants.CONSTANTS_examplePayReq, toJson) + } + fun removeOrder(payReq: PayBean?) { + val updatedList = getOrder().filterNot { it == payReq } + getMMKV().putString( + MsConstants.CONSTANTS_examplePayReq, + Gson().toJson(updatedList) + ) + } + + + fun getOrder(): MutableList { + try { + val string = getMMKV().getString(MsConstants.CONSTANTS_examplePayReq, "[]") + if (null != string && "[]" != string) { + return Gson().fromJson(string, Array::class.java).toMutableList() + } + } catch (e: Exception) { + e.printStackTrace() + getMMKV().putString( + MsConstants.CONSTANTS_examplePayReq, + "[]" + ) + } + return mutableListOf() + } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/NotificationUtils.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/NotificationUtils.kt new file mode 100644 index 0000000..0142743 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/NotificationUtils.kt @@ -0,0 +1,45 @@ +package com.localee.mireo.app.utils + +import android.app.Activity +import android.app.NotificationManager +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.util.Log +import com.google.android.gms.tasks.OnCompleteListener +import com.google.firebase.messaging.FirebaseMessaging +import com.localee.mireo.app.other.AppConfig + +object NotificationUtils { + const val NOTIFICATION_SETTINGS_REQUEST_CODE: Int = 4001 + + fun isNotificationEnabled(context: Context): Boolean { + val notificationManager = + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + notificationManager.areNotificationsEnabled() + } else { + true + } + } + + + fun openNotificationSettings(context: Activity) { + val intent = Intent() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent.action = "android.settings.APP_NOTIFICATION_SETTINGS" + intent.putExtra( + "android.provider.extra.APP_PACKAGE", + AppConfig.getPackageName() + ) + context.startActivity(intent) + } else { + intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + intent.data = + Uri.fromParts("package", AppConfig.getPackageName(), null) + context.startActivityForResult(intent, NOTIFICATION_SETTINGS_REQUEST_CODE) + } + } + +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/TranslatesUtils.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/TranslatesUtils.kt index c5fe2ea..1bb8bad 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/TranslatesUtils.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/utils/TranslatesUtils.kt @@ -8,19 +8,19 @@ import android.text.style.UnderlineSpan import android.widget.TextView import com.google.gson.Gson import com.localee.mireo.app.other.MsConstants -import com.localee.mireo.app.ui.videoPaly.TranslatesRes +import com.localee.mireo.app.http.bean.TranslatesBean object TranslatesUtils { - fun saveTranslates(infoRes: TranslatesRes.Translates?) { + fun saveTranslates(infoRes: TranslatesBean.Translates?) { val toJson = Gson().toJson(infoRes) MsMMKVUtils.getMMKV() .putString(MsConstants.CONSTANTS_Translates_STRING, toJson) } - fun translates(): TranslatesRes.Translates? { + fun translates(): TranslatesBean.Translates? { val string = MsMMKVUtils.getMMKV() .getString(MsConstants.CONSTANTS_Translates_STRING, "") - return Gson().fromJson(string, TranslatesRes.Translates::class.java) + return Gson().fromJson(string, TranslatesBean.Translates::class.java) } fun replace(string: String, new: String): String { diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/BrowserView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/BrowserView.kt index 197b574..966bedc 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/BrowserView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/BrowserView.kt @@ -9,30 +9,35 @@ import android.net.http.SslError import android.os.Build import android.text.TextUtils import android.util.AttributeSet -import android.webkit.* +import android.webkit.JsPromptResult +import android.webkit.JsResult +import android.webkit.SslErrorHandler +import android.webkit.ValueCallback +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner -import com.hjq.base.BaseActivity -import com.hjq.base.BaseActivity.OnActivityCallback -import com.hjq.base.BaseDialog -import com.hjq.base.action.ActivityAction -import com.localee.mireo.app.R +import com.localee.mireo.app.base.BaseActivity +import com.localee.mireo.app.base.BaseActivity.OnActivityCallback +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.base.action.ActivityAction +import com.localee.mireo.app.widget.layout.NestedScrollWebView +import com.localee.mireo.shortapp.R import com.localee.mireo.app.other.AppConfig -import com.localee.mireo.app.other.PermissionCallback import com.localee.mireo.app.ui.dialog.InputDialog import com.localee.mireo.app.ui.dialog.MessageDialog import com.localee.mireo.app.ui.dialog.TipsDialog -import com.hjq.permissions.Permission -import com.hjq.permissions.XXPermissions -import com.hjq.widget.layout.NestedScrollWebView -import timber.log.Timber -import java.util.* @Suppress("SetJavaScriptEnabled") -class BrowserView @JvmOverloads constructor( +class BrowserView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, - defStyleAttr: Int = android.R.attr.webViewStyle, defStyleRes: Int = 0) : + defStyleAttr: Int = android.R.attr.webViewStyle, defStyleRes: Int = 0 +) : NestedScrollWebView(context, attrs, defStyleAttr, defStyleRes), LifecycleEventObserver, ActivityAction { @@ -84,9 +89,12 @@ class BrowserView @JvmOverloads constructor( destroy() } - @Deprecated("Please use {@link BrowserViewClient}", ReplaceWith( - "super.setWebViewClient(client)", - "com.hjq.widget.layout.NestedScrollWebView")) + @Deprecated( + "Please use {@link BrowserViewClient}", ReplaceWith( + "super.setWebViewClient(client)", + "com.localee.mireo.app.widget.layout.NestedScrollWebView" + ) + ) override fun setWebViewClient(client: WebViewClient) { super.setWebViewClient(client) } @@ -99,9 +107,12 @@ class BrowserView @JvmOverloads constructor( super.setWebViewClient(client) } - @Deprecated("Please use {@link BrowserChromeClient}", ReplaceWith( - "super.setWebChromeClient(client)", - "com.hjq.widget.layout.NestedScrollWebView")) + @Deprecated( + "Please use {@link BrowserChromeClient}", ReplaceWith( + "super.setWebChromeClient(client)", + "com.localee.mireo.app.widget.layout.NestedScrollWebView" + ) + ) override fun setWebChromeClient(client: WebChromeClient?) { super.setWebChromeClient(client) } @@ -132,13 +143,27 @@ class BrowserView @JvmOverloads constructor( } @TargetApi(Build.VERSION_CODES.M) - override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) { + override fun onReceivedError( + view: WebView, + request: WebResourceRequest, + error: WebResourceError + ) { if (request.isForMainFrame) { - onReceivedError(view, error.errorCode, error.description.toString(), request.url.toString()) + onReceivedError( + view, + error.errorCode, + error.description.toString(), + request.url.toString() + ) } } - override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) { + override fun onReceivedError( + view: WebView, + errorCode: Int, + description: String, + failingUrl: String + ) { super.onReceivedError(view, errorCode, description, failingUrl) } @@ -148,7 +173,6 @@ class BrowserView @JvmOverloads constructor( } override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { - Timber.i("WebView shouldOverrideUrlLoading:%s", url) val scheme: String = Uri.parse(url).scheme ?: return false when (scheme) { "http", "https" -> view.loadUrl(url) @@ -160,9 +184,12 @@ class BrowserView @JvmOverloads constructor( protected fun dialing(view: WebView, url: String) { val context: Context = view.context MessageDialog.Builder(context) - .setMessage(String.format( - view.resources.getString(R.string.common_web_call_phone_title), - url.replace("tel:", ""))) + .setMessage( + String.format( + view.resources.getString(R.string.common_web_call_phone_title), + url.replace("tel:", "") + ) + ) .setConfirm(R.string.common_web_call_phone_allow) .setCancel(R.string.common_web_call_phone_reject) .setCancelable(false) @@ -179,9 +206,15 @@ class BrowserView @JvmOverloads constructor( } } - open class BrowserChromeClient constructor(private val webView: BrowserView) : WebChromeClient() { + open class BrowserChromeClient constructor(private val webView: BrowserView) : + WebChromeClient() { - override fun onJsAlert(view: WebView, url: String, message: String, result: JsResult): Boolean { + override fun onJsAlert( + view: WebView, + url: String, + message: String, + result: JsResult + ): Boolean { val activity: Activity = webView.getActivity() ?: return false TipsDialog.Builder(activity) .setIcon(TipsDialog.ICON_WARNING) @@ -197,7 +230,12 @@ class BrowserView @JvmOverloads constructor( return true } - override fun onJsConfirm(view: WebView, url: String, message: String, result: JsResult): Boolean { + override fun onJsConfirm( + view: WebView, + url: String, + message: String, + result: JsResult + ): Boolean { val activity: Activity = webView.getActivity() ?: return false MessageDialog.Builder(activity) .setMessage(message) @@ -216,7 +254,13 @@ class BrowserView @JvmOverloads constructor( return true } - override fun onJsPrompt(view: WebView, url: String, message: String, defaultValue: String, result: JsPromptResult): Boolean { + override fun onJsPrompt( + view: WebView, + url: String, + message: String, + defaultValue: String, + result: JsPromptResult + ): Boolean { val activity: Activity = webView.getActivity() ?: return false InputDialog.Builder(activity) .setContent(defaultValue) @@ -236,61 +280,12 @@ class BrowserView @JvmOverloads constructor( return true } - override fun onGeolocationPermissionsShowPrompt(origin: String, callback: GeolocationPermissions.Callback) { - val activity: Activity = webView.getActivity() ?: return - MessageDialog.Builder(activity) - .setMessage(R.string.common_web_location_permission_title) - .setConfirm(R.string.common_web_location_permission_allow) - .setCancel(R.string.common_web_location_permission_reject) - .setCancelable(false) - .setListener(object : MessageDialog.OnListener { - override fun onConfirm(dialog: BaseDialog?) { - XXPermissions.with(activity) - .permission(Permission.ACCESS_FINE_LOCATION) - .permission(Permission.ACCESS_COARSE_LOCATION) - .request(object : PermissionCallback() { - override fun onGranted( - permissions: MutableList?, - all: Boolean - ) { - if (all) { - callback.invoke(origin, true, true) - } - } - }) - } - - override fun onCancel(dialog: BaseDialog?) { - callback.invoke(origin, false, true) - } - }) - .show() - } - - override fun onShowFileChooser(webView: WebView, callback: ValueCallback>, params: FileChooserParams): Boolean { - val activity: Activity? = this.webView.getActivity() - if (activity !is BaseActivity) { - return false - } - XXPermissions.with(activity) - .permission(*Permission.Group.STORAGE) - .request(object : PermissionCallback() { - override fun onGranted(permissions: MutableList, all: Boolean) { - if (all) { - openSystemFileChooser(activity, params, callback) - } - } - - override fun onDenied(permissions: MutableList, never: Boolean) { - super.onDenied(permissions, never) - callback.onReceiveValue(null) - } - }) - return true - } - - private fun openSystemFileChooser(activity: BaseActivity, params: FileChooserParams, callback: ValueCallback>) { + private fun openSystemFileChooser( + activity: BaseActivity, + params: FileChooserParams, + callback: ValueCallback> + ) { val intent: Intent = params.createIntent() val mimeTypes: Array? = params.acceptTypes val multipleSelect: Boolean = params.mode == FileChooserParams.MODE_OPEN_MULTIPLE @@ -337,26 +332,28 @@ class BrowserView @JvmOverloads constructor( } intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, multipleSelect) - activity.startActivityForResult(Intent.createChooser(intent, params.title), object : OnActivityCallback { + activity.startActivityForResult( + Intent.createChooser(intent, params.title), + object : OnActivityCallback { - override fun onActivityResult(resultCode: Int, data: Intent?) { - val uris: MutableList = ArrayList() - if (resultCode == Activity.RESULT_OK && data != null) { - val uri = data.data - if (uri != null) { - uris.add(uri) - } else { - val clipData = data.clipData - if (clipData != null) { - for (i in 0 until clipData.itemCount) { - uris.add(clipData.getItemAt(i).uri) + override fun onActivityResult(resultCode: Int, data: Intent?) { + val uris: MutableList = ArrayList() + if (resultCode == Activity.RESULT_OK && data != null) { + val uri = data.data + if (uri != null) { + uris.add(uri) + } else { + val clipData = data.clipData + if (clipData != null) { + for (i in 0 until clipData.itemCount) { + uris.add(clipData.getItemAt(i).uri) + } } } } + callback.onReceiveValue(uris.toTypedArray()) } - callback.onReceiveValue(uris.toTypedArray()) - } - }) + }) } } } \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/CustomClickableSpan.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/CustomClickableSpan.kt new file mode 100644 index 0000000..11e0719 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/CustomClickableSpan.kt @@ -0,0 +1,18 @@ +package com.localee.mireo.app.widget + +import android.graphics.Color +import android.text.TextPaint +import android.text.style.ClickableSpan +import android.view.View + +class CustomClickableSpan ( + private val color: Int = Color.BLUE, + private val onClick: () -> Unit +) : ClickableSpan() { + override fun onClick(widget: View) = onClick() + override fun updateDrawState(ds: TextPaint) { + super.updateDrawState(ds) + ds.color = color + ds.isUnderlineText = true + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/MenuDialog.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/MenuDialog.kt new file mode 100644 index 0000000..747269d --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/MenuDialog.kt @@ -0,0 +1,191 @@ +package com.hjq.demo.ui.dialog + +import android.content.Context +import android.view.Gravity +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.annotation.StringRes +import androidx.recyclerview.widget.RecyclerView +import com.localee.mireo.app.base.BaseAdapter +import com.localee.mireo.app.base.BaseDialog +import com.localee.mireo.app.base.action.AnimAction +import com.localee.mireo.shortapp.R +import com.localee.mireo.app.app.AppAdapter +import com.localee.mireo.app.utils.singleClick + +class MenuDialog { + + class Builder(context: Context) : BaseDialog.Builder(context), + BaseAdapter.OnItemClickListener, View.OnLayoutChangeListener, Runnable { + + private val recyclerView: RecyclerView? by lazy { findViewById(R.id.rv_menu_list) } + private val cancelView: TextView? by lazy { findViewById(R.id.tv_menu_cancel) } + + private val adapter: MenuAdapter + private var listener: OnListener? = null + private var autoDismiss = true + + init { + setContentView(R.layout.menu_dialog) + setAnimStyle(AnimAction.ANIM_BOTTOM) + setOnClickListener(cancelView) + adapter = MenuAdapter(getContext()) + adapter.setOnItemClickListener(this) + recyclerView?.adapter = adapter + } + + override fun setGravity(gravity: Int): Builder = apply { + when (gravity) { + Gravity.CENTER, Gravity.CENTER_VERTICAL -> { + setCancel(null) + setAnimStyle(AnimAction.ANIM_SCALE) + } + } + super.setGravity(gravity) + } + + fun setList(vararg ids: Int): Builder = apply { + val data: MutableList = ArrayList(ids.size) + for (id in ids) { + data.add(getString(id)!!) + } + setList(data) + } + + fun setList(vararg data: String): Builder = apply { + setList(mutableListOf(*data)) + } + + @Suppress("UNCHECKED_CAST") + fun setList(data: MutableList): Builder = apply { + adapter.setData(data as MutableList) + recyclerView?.addOnLayoutChangeListener(this) + } + + fun setCancel(@StringRes id: Int): Builder = apply { + setCancel(getString(id)) + } + + fun setCancel(text: CharSequence?): Builder = apply { + cancelView?.text = text + } + + fun setSelectPosition(selectPosition: Int): Builder = apply { + adapter.selectPosition = selectPosition + } + + fun setAutoDismiss(dismiss: Boolean): Builder = apply { + autoDismiss = dismiss + } + + @Suppress("UNCHECKED_CAST") + fun setListener(listener: OnListener?): Builder = apply { + this.listener = listener as OnListener? + } + + override fun onClick(view: View) { + singleClick { + if (autoDismiss) { + dismiss() + } + if (view === cancelView) { + listener?.onCancel(getDialog()) + } + } + } + + /** + * [BaseAdapter.OnItemClickListener] + */ + override fun onItemClick(recyclerView: RecyclerView?, itemView: View?, position: Int) { + if (autoDismiss) { + dismiss() + } + listener?.onSelected(getDialog(), position, adapter.getItem(position)) + } + + /** + * [View.OnLayoutChangeListener] + */ + override fun onLayoutChange( + v: View, + left: Int, + top: Int, + right: Int, + bottom: Int, + oldLeft: Int, + oldTop: Int, + oldRight: Int, + oldBottom: Int + ) { + recyclerView?.removeOnLayoutChangeListener(this) + post(this) + } + + override fun run() { + val params = recyclerView?.layoutParams ?: return + recyclerView?.let { + val maxHeight = getScreenHeight() / 4 * 3 + if (it.height > maxHeight) { + if (params.height != maxHeight) { + params.height = maxHeight + it.layoutParams = params + } + return + } + if (params.height != ViewGroup.LayoutParams.WRAP_CONTENT) { + params.height = ViewGroup.LayoutParams.WRAP_CONTENT + it.layoutParams = params + } + } + } + + private fun getScreenHeight(): Int { + val resources = getResources() + val outMetrics = resources.displayMetrics + return outMetrics.heightPixels + } + } + + class MenuAdapter(context: Context) : AppAdapter(context) { + + var selectPosition = -1 + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + return ViewHolder() + } + + inner class ViewHolder : AppViewHolder(R.layout.menu_item) { + + private val textView: TextView? by lazy { findViewById(R.id.tv_menu_text) } + private val lineView: View? by lazy { findViewById(R.id.v_menu_line) } + + override fun onBindView(position: Int) { + textView?.text = getItem(position).toString() + if (position == selectPosition){ + textView?.setTextColor(getColor(R.color.example_color_F56490)) + } + + if (position == 0) { + if (getCount() == 1) { + lineView?.visibility = View.GONE + } else { + lineView?.visibility = View.VISIBLE + } + } else if (position == getCount() - 1) { + lineView?.visibility = View.GONE + } else { + lineView?.visibility = View.VISIBLE + } + } + } + } + + interface OnListener { + + fun onSelected(dialog: BaseDialog?, position: Int, data: T) + + fun onCancel(dialog: BaseDialog?) {} + } +} \ No newline at end of file diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/PasswordView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/PasswordView.kt index a4cd3a0..f10fd72 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/PasswordView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/PasswordView.kt @@ -7,7 +7,7 @@ import android.graphics.Paint import android.graphics.Path import android.util.AttributeSet import android.view.View -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class PasswordView @JvmOverloads constructor (context: Context?, attrs: AttributeSet? = null, diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/StatusLayout.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/StatusLayout.kt index ecf1a44..5471f60 100644 --- a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/StatusLayout.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/StatusLayout.kt @@ -11,7 +11,7 @@ import androidx.annotation.DrawableRes import androidx.annotation.RawRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat -import com.localee.mireo.app.R +import com.localee.mireo.shortapp.R class StatusLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -34,6 +34,19 @@ class StatusLayout @JvmOverloads constructor( if (isShow()) { return } + retryView!!.visibility = INVISIBLE + mainLayout!!.visibility = VISIBLE + } + + fun netWorkShow() { + if (mainLayout == null) { + initLayout() + } + if (isShow()) { + return + } + setIcon(R.mipmap.ic_network) + setHint("Network anomaly") retryView!!.visibility = if (listener == null) INVISIBLE else VISIBLE mainLayout!!.visibility = VISIBLE } diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/CustomViewStub.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/CustomViewStub.kt similarity index 96% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/CustomViewStub.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/CustomViewStub.kt index a1a94f3..ca96b96 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/CustomViewStub.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/CustomViewStub.kt @@ -1,11 +1,11 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.* import android.content.res.TypedArray import android.util.AttributeSet import android.view.* import android.widget.FrameLayout -import com.hjq.widget.R +import com.localee.mireo.shortapp.R class CustomViewStub @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedLinearLayout.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedLinearLayout.kt similarity index 99% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedLinearLayout.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedLinearLayout.kt index 12a7015..c175f28 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedLinearLayout.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedLinearLayout.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedScrollWebView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedScrollWebView.kt similarity index 99% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedScrollWebView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedScrollWebView.kt index d6a3cc1..df9e829 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedScrollWebView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedScrollWebView.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedViewPager.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedViewPager.kt similarity index 98% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedViewPager.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedViewPager.kt index 0fbb8f0..2f846e7 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NestedViewPager.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NestedViewPager.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NoScrollViewPager.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NoScrollViewPager.kt similarity index 94% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NoScrollViewPager.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NoScrollViewPager.kt index 992f928..60c1caf 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/NoScrollViewPager.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/NoScrollViewPager.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/SettingBar.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/SettingBar.kt similarity index 99% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/SettingBar.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/SettingBar.kt index 2e0e9a3..6c86d7e 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/SettingBar.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/SettingBar.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.content.res.TypedArray @@ -19,7 +19,7 @@ import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat -import com.hjq.widget.R +import com.localee.mireo.shortapp.R class SettingBar @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0) : diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/WrapRecyclerView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/WrapRecyclerView.kt similarity index 99% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/WrapRecyclerView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/WrapRecyclerView.kt index 34e89a2..52e1503 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/layout/WrapRecyclerView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/layout/WrapRecyclerView.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.layout +package com.localee.mireo.app.widget.layout import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ClearEditText.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ClearEditText.kt similarity index 97% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ClearEditText.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ClearEditText.kt index 4232e5d..3d7e607 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ClearEditText.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ClearEditText.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.Context import android.graphics.drawable.Drawable @@ -12,7 +12,7 @@ import android.view.View.OnFocusChangeListener import android.view.View.OnTouchListener import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat -import com.hjq.widget.R +import com.localee.mireo.shortapp.R @Suppress("ClickableViewAccessibility") class ClearEditText @JvmOverloads constructor( diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/CountdownView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/CountdownView.kt similarity index 96% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/CountdownView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/CountdownView.kt index 75cdcd7..2f0d6b1 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/CountdownView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/CountdownView.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PasswordEditText.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PasswordEditText.kt similarity index 98% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PasswordEditText.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PasswordEditText.kt index e13a5ac..45bbdbc 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PasswordEditText.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PasswordEditText.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.Context import android.graphics.drawable.Drawable @@ -15,7 +15,7 @@ import android.view.View.OnFocusChangeListener import android.view.View.OnTouchListener import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat -import com.hjq.widget.R +import com.localee.mireo.shortapp.R @Suppress("ClickableViewAccessibility") class PasswordEditText @JvmOverloads constructor( diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PlayButton.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PlayButton.kt similarity index 99% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PlayButton.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PlayButton.kt index c11f879..efcc4eb 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PlayButton.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PlayButton.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.animation.ValueAnimator import android.content.* @@ -7,7 +7,7 @@ import android.graphics.* import android.util.AttributeSet import android.view.* import android.view.animation.AnticipateInterpolator -import com.hjq.widget.R +import com.localee.mireo.shortapp.R class PlayButton @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PressAlphaTextView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PressAlphaTextView.kt similarity index 91% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PressAlphaTextView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PressAlphaTextView.kt index c237404..9811382 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/PressAlphaTextView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/PressAlphaTextView.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.Context import android.util.AttributeSet diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/RegexEditText.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/RegexEditText.kt similarity index 98% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/RegexEditText.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/RegexEditText.kt index f3d9a78..a1f79fa 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/RegexEditText.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/RegexEditText.kt @@ -1,11 +1,11 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.* import android.content.res.TypedArray import android.text.* import android.util.AttributeSet import androidx.appcompat.widget.AppCompatEditText -import com.hjq.widget.R +import com.localee.mireo.shortapp.R import java.util.regex.Pattern open class RegexEditText @JvmOverloads constructor( diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ScaleImageView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ScaleImageView.kt similarity index 91% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ScaleImageView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ScaleImageView.kt index ceced7b..da90a1c 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/ScaleImageView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/ScaleImageView.kt @@ -1,10 +1,10 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.* import android.content.res.TypedArray import android.util.AttributeSet import androidx.appcompat.widget.AppCompatImageView -import com.hjq.widget.R +import com.localee.mireo.shortapp.R class ScaleImageView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : diff --git a/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SimpleRatingBar.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SimpleRatingBar.kt new file mode 100644 index 0000000..00f44a6 --- /dev/null +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SimpleRatingBar.kt @@ -0,0 +1,212 @@ +package com.localee.mireo.app.widget.view + +import android.content.Context +import android.content.res.TypedArray +import android.graphics.Canvas +import android.graphics.Rect +import android.graphics.drawable.Drawable +import android.util.AttributeSet +import android.view.MotionEvent +import android.view.View +import androidx.annotation.DrawableRes +import androidx.core.content.ContextCompat +import com.localee.mireo.shortapp.R +import kotlin.math.max +import kotlin.math.min + +class SimpleRatingBar @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : + View(context, attrs, defStyleAttr) { + + private var normalDrawable: Drawable + + private var fillDrawable: Drawable + + private var halfDrawable: Drawable? + + private var currentGrade: Float + + private var gradeCount: Int + + private var gradeWidth: Int + + private var gradeHeight: Int + + private var gradeSpace: Int + + private var gradeStep: GradleStep? = null + + private var listener: OnRatingChangeListener? = null + + private val gradeBounds: Rect = Rect() + + init { + val array: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.SimpleRatingBar) + normalDrawable = ContextCompat.getDrawable(getContext(), array.getResourceId( + R.styleable.SimpleRatingBar_normalDrawable, R.drawable.rating_star_off_ic))!! + halfDrawable = ContextCompat.getDrawable(getContext(), array.getResourceId( + R.styleable.SimpleRatingBar_halfDrawable, R.drawable.rating_star_half_ic)) + fillDrawable = ContextCompat.getDrawable(getContext(), array.getResourceId( + R.styleable.SimpleRatingBar_fillDrawable, R.drawable.rating_star_fill_ic))!! + + if ((normalDrawable.intrinsicWidth != fillDrawable.intrinsicWidth) || ( + normalDrawable.intrinsicWidth != halfDrawable?.intrinsicWidth) || ( + normalDrawable.intrinsicHeight != fillDrawable.intrinsicHeight) || ( + normalDrawable.intrinsicHeight != halfDrawable?.intrinsicHeight)) { + throw IllegalStateException("The width and height of the picture do not agree") + } + currentGrade = array.getFloat(R.styleable.SimpleRatingBar_grade, 0f) + gradeCount = array.getInt(R.styleable.SimpleRatingBar_gradeCount, 5) + gradeWidth = array.getDimensionPixelSize(R.styleable.SimpleRatingBar_gradeWidth, normalDrawable.intrinsicWidth) + gradeHeight = array.getDimensionPixelSize(R.styleable.SimpleRatingBar_gradeHeight, fillDrawable.intrinsicHeight) + gradeSpace = array.getDimension(R.styleable.SimpleRatingBar_gradeSpace, gradeWidth / 4f).toInt() + gradeStep = when (array.getInt(R.styleable.SimpleRatingBar_gradeStep, 0)) { + 0x01 -> GradleStep.ONE + 0x00 -> GradleStep.HALF + else -> GradleStep.HALF + } + array.recycle() + } + + override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { + val measuredWidth: Int = (gradeWidth * gradeCount) + (gradeSpace * (gradeCount + 1)) + val measuredHeight: Int = gradeHeight + setMeasuredDimension(measuredWidth + paddingLeft + paddingRight, + measuredHeight + paddingTop + paddingBottom) + } + + @Suppress("ClickableViewAccessibility") + override fun onTouchEvent(event: MotionEvent): Boolean { + if (!isEnabled) { + return false + } + when (event.action) { + MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE -> { + var grade = 0f + val distance: Float = event.x - paddingLeft - gradeSpace + if (distance > 0) { + grade = distance / (gradeWidth + gradeSpace) + } + + grade = min(max(grade, 0f), gradeCount.toFloat()) + + if (grade - grade.toInt() > 0) { + grade = if (grade - grade.toInt() > 0.5f) { + (grade + 0.5f).toInt().toFloat() + } else { + grade.toInt() + 0.5f + } + } + if (grade * 10 != currentGrade * 10) { + currentGrade = grade + invalidate() + listener?.onRatingChanged(this, currentGrade, true) + } + } + } + return true + } + + override fun onDraw(canvas: Canvas) { + for (i in 0 until gradeCount) { + val start: Int = gradeSpace + (gradeWidth + gradeSpace) * i + gradeBounds.left = paddingLeft + start + gradeBounds.top = paddingTop + gradeBounds.right = gradeBounds.left + gradeWidth + gradeBounds.bottom = gradeBounds.top + gradeHeight + if (currentGrade > i) { + if ((halfDrawable != null) && (gradeStep == GradleStep.HALF) && ( + currentGrade.toInt() == i) && (currentGrade - currentGrade.toInt() == 0.5f)) { + halfDrawable!!.bounds = gradeBounds + halfDrawable!!.draw(canvas) + } else { + fillDrawable.bounds = gradeBounds + fillDrawable.draw(canvas) + } + } else { + normalDrawable.bounds = gradeBounds + normalDrawable.draw(canvas) + } + } + } + + fun setRatingDrawable(@DrawableRes normalDrawableId: Int, @DrawableRes halfDrawableId: Int, @DrawableRes fillDrawableId: Int) { + setRatingDrawable(ContextCompat.getDrawable(context, normalDrawableId)!!, + ContextCompat.getDrawable(context, halfDrawableId), + ContextCompat.getDrawable(context, fillDrawableId)!!) + } + + fun setRatingDrawable(normalDrawable: Drawable, halfDrawable: Drawable?, fillDrawable: Drawable) { + + // 两张图片的宽高不一致 + if (normalDrawable.intrinsicWidth != fillDrawable.intrinsicWidth || + normalDrawable.intrinsicHeight != fillDrawable.intrinsicHeight) { + throw IllegalStateException("The width and height of the picture do not agree") + } + this.normalDrawable = normalDrawable + this.halfDrawable = halfDrawable + this.fillDrawable = fillDrawable + gradeWidth = this.normalDrawable.intrinsicWidth + gradeHeight = this.normalDrawable.intrinsicHeight + requestLayout() + } + + fun getGrade(): Float { + return currentGrade + } + + fun setGrade(grade: Float) { + var finalGrade: Float = grade + if (finalGrade > gradeCount) { + finalGrade = gradeCount.toFloat() + } + if (finalGrade - finalGrade.toInt() != 0.5f || finalGrade - finalGrade.toInt() > 0) { + throw IllegalArgumentException("grade must be a multiple of 0.5f") + } + currentGrade = finalGrade + invalidate() + listener?.onRatingChanged(this, currentGrade, false) + } + + fun getGradeCount(): Int { + return gradeCount + } + + fun setGradeCount(count: Int) { + if (count > currentGrade) { + currentGrade = count.toFloat() + } + gradeCount = count + invalidate() + } + + fun setGradeSpace(space: Int) { + gradeSpace = space + requestLayout() + } + + fun setGradeStep(step: GradleStep?) { + gradeStep = step + invalidate() + } + + fun getGradeStep(): GradleStep? { + return gradeStep + } + + fun setOnRatingBarChangeListener(listener: OnRatingChangeListener?) { + this.listener = listener + } + + enum class GradleStep { + + HALF, + + ONE + } + + interface OnRatingChangeListener { + + fun onRatingChanged(ratingBar: SimpleRatingBar, grade: Float, touch: Boolean) + } +} \ No newline at end of file diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SmartTextView.kt b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SmartTextView.kt similarity index 97% rename from Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SmartTextView.kt rename to Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SmartTextView.kt index a0a4083..22574c2 100644 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SmartTextView.kt +++ b/Android_Mireo/app/src/main/java/com/localee/mireo/app/widget/view/SmartTextView.kt @@ -1,4 +1,4 @@ -package com.hjq.widget.view +package com.localee.mireo.app.widget.view import android.content.* import android.graphics.drawable.Drawable diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1024dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1024dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1024dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1024dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1024dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1024dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1024dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1024dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1280dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1280dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1280dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1280dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1280dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1280dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1280dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1280dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1365dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1365dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1365dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1365dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw1365dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw1365dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw1365dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw1365dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw240dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw240dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw240dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw240dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw240dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw240dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw240dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw240dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw320dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw320dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw320dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw320dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw320dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw320dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw320dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw320dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw360dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw360dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw360dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw360dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw360dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw360dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw360dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw360dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw362dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw362dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw362dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw362dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw362dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw362dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw362dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw362dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw384dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw384dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw384dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw384dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw384dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw384dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw384dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw384dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw392dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw392dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw392dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw392dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw392dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw392dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw392dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw392dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw400dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw400dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw400dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw400dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw400dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw400dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw400dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw400dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw410dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw410dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw410dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw410dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw410dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw410dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw410dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw410dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw411dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw411dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw411dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw411dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw411dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw411dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw411dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw411dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw432dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw432dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw432dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw432dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw432dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw432dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw432dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw432dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw480dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw480dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw480dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw480dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw480dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw480dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw480dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw480dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw533dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw533dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw533dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw533dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw533dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw533dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw533dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw533dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw540dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw540dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw540dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw540dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw540dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw540dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw540dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw540dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw592dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw592dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw592dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw592dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw592dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw592dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw592dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw592dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw600dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw600dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw600dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw600dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw600dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw600dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw600dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw600dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw640dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw640dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw640dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw640dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw640dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw640dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw640dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw640dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw662dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw662dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw662dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw662dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw662dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw662dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw662dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw662dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw720dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw720dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw720dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw720dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw720dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw720dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw720dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw720dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw768dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw768dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw768dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw768dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw768dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw768dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw768dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw768dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw800dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw800dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw800dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw800dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw800dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw800dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw800dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw800dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw811dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw811dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw811dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw811dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw811dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw811dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw811dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw811dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw820dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw820dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw820dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw820dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw820dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw820dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw820dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw820dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw960dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw960dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw960dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw960dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw960dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw960dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw960dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw960dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw961dp/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values-sw961dp/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw961dp/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw961dp/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values-sw961dp/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values-sw961dp/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values-sw961dp/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values-sw961dp/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values/dimens_dp.xml b/Android_Mireo/app/src/main/res-sw/values/dimens_dp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values/dimens_dp.xml rename to Android_Mireo/app/src/main/res-sw/values/dimens_dp.xml diff --git a/Android_Mireo/library/base/src/main/res-sw/values/dimens_sp.xml b/Android_Mireo/app/src/main/res-sw/values/dimens_sp.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res-sw/values/dimens_sp.xml rename to Android_Mireo/app/src/main/res-sw/values/dimens_sp.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_fall_down.xml b/Android_Mireo/app/src/main/res/anim/layout_fall_down.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_fall_down.xml rename to Android_Mireo/app/src/main/res/anim/layout_fall_down.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_fall_down_item.xml b/Android_Mireo/app/src/main/res/anim/layout_fall_down_item.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_fall_down_item.xml rename to Android_Mireo/app/src/main/res/anim/layout_fall_down_item.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_from_bottom.xml b/Android_Mireo/app/src/main/res/anim/layout_from_bottom.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_from_bottom.xml rename to Android_Mireo/app/src/main/res/anim/layout_from_bottom.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_from_bottom_item.xml b/Android_Mireo/app/src/main/res/anim/layout_from_bottom_item.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_from_bottom_item.xml rename to Android_Mireo/app/src/main/res/anim/layout_from_bottom_item.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_from_right.xml b/Android_Mireo/app/src/main/res/anim/layout_from_right.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_from_right.xml rename to Android_Mireo/app/src/main/res/anim/layout_from_right.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/layout_from_right_item.xml b/Android_Mireo/app/src/main/res/anim/layout_from_right_item.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/layout_from_right_item.xml rename to Android_Mireo/app/src/main/res/anim/layout_from_right_item.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_bottom_in.xml b/Android_Mireo/app/src/main/res/anim/window_bottom_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_bottom_in.xml rename to Android_Mireo/app/src/main/res/anim/window_bottom_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_bottom_out.xml b/Android_Mireo/app/src/main/res/anim/window_bottom_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_bottom_out.xml rename to Android_Mireo/app/src/main/res/anim/window_bottom_out.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_ios_in.xml b/Android_Mireo/app/src/main/res/anim/window_ios_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_ios_in.xml rename to Android_Mireo/app/src/main/res/anim/window_ios_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_ios_out.xml b/Android_Mireo/app/src/main/res/anim/window_ios_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_ios_out.xml rename to Android_Mireo/app/src/main/res/anim/window_ios_out.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_left_in.xml b/Android_Mireo/app/src/main/res/anim/window_left_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_left_in.xml rename to Android_Mireo/app/src/main/res/anim/window_left_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_left_out.xml b/Android_Mireo/app/src/main/res/anim/window_left_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_left_out.xml rename to Android_Mireo/app/src/main/res/anim/window_left_out.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_right_in.xml b/Android_Mireo/app/src/main/res/anim/window_right_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_right_in.xml rename to Android_Mireo/app/src/main/res/anim/window_right_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_right_out.xml b/Android_Mireo/app/src/main/res/anim/window_right_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_right_out.xml rename to Android_Mireo/app/src/main/res/anim/window_right_out.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_scale_in.xml b/Android_Mireo/app/src/main/res/anim/window_scale_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_scale_in.xml rename to Android_Mireo/app/src/main/res/anim/window_scale_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_scale_out.xml b/Android_Mireo/app/src/main/res/anim/window_scale_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_scale_out.xml rename to Android_Mireo/app/src/main/res/anim/window_scale_out.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_top_in.xml b/Android_Mireo/app/src/main/res/anim/window_top_in.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_top_in.xml rename to Android_Mireo/app/src/main/res/anim/window_top_in.xml diff --git a/Android_Mireo/library/base/src/main/res/anim/window_top_out.xml b/Android_Mireo/app/src/main/res/anim/window_top_out.xml similarity index 100% rename from Android_Mireo/library/base/src/main/res/anim/window_top_out.xml rename to Android_Mireo/app/src/main/res/anim/window_top_out.xml diff --git a/Android_Mireo/app/src/main/res/drawable/bg_example_text_think_again.xml b/Android_Mireo/app/src/main/res/drawable/bg_example_text_think_again.xml index 794e760..0078b71 100644 --- a/Android_Mireo/app/src/main/res/drawable/bg_example_text_think_again.xml +++ b/Android_Mireo/app/src/main/res/drawable/bg_example_text_think_again.xml @@ -2,7 +2,7 @@ - + diff --git a/Android_Mireo/library/widget/src/main/res/drawable/input_delete_ic.xml b/Android_Mireo/app/src/main/res/drawable/input_delete_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/input_delete_ic.xml rename to Android_Mireo/app/src/main/res/drawable/input_delete_ic.xml diff --git a/Android_Mireo/library/widget/src/main/res/drawable/password_off_ic.xml b/Android_Mireo/app/src/main/res/drawable/password_off_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/password_off_ic.xml rename to Android_Mireo/app/src/main/res/drawable/password_off_ic.xml diff --git a/Android_Mireo/library/widget/src/main/res/drawable/password_on_ic.xml b/Android_Mireo/app/src/main/res/drawable/password_on_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/password_on_ic.xml rename to Android_Mireo/app/src/main/res/drawable/password_on_ic.xml diff --git a/Android_Mireo/app/src/main/res/drawable/progress_vip_bg.xml b/Android_Mireo/app/src/main/res/drawable/progress_vip_bg.xml new file mode 100644 index 0000000..e1c94e4 --- /dev/null +++ b/Android_Mireo/app/src/main/res/drawable/progress_vip_bg.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/library/widget/src/main/res/drawable/rating_star_fill_ic.xml b/Android_Mireo/app/src/main/res/drawable/rating_star_fill_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/rating_star_fill_ic.xml rename to Android_Mireo/app/src/main/res/drawable/rating_star_fill_ic.xml diff --git a/Android_Mireo/library/widget/src/main/res/drawable/rating_star_half_ic.xml b/Android_Mireo/app/src/main/res/drawable/rating_star_half_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/rating_star_half_ic.xml rename to Android_Mireo/app/src/main/res/drawable/rating_star_half_ic.xml diff --git a/Android_Mireo/library/widget/src/main/res/drawable/rating_star_off_ic.xml b/Android_Mireo/app/src/main/res/drawable/rating_star_off_ic.xml similarity index 100% rename from Android_Mireo/library/widget/src/main/res/drawable/rating_star_off_ic.xml rename to Android_Mireo/app/src/main/res/drawable/rating_star_off_ic.xml diff --git a/Android_Mireo/app/src/main/res/layout/about_activity.xml b/Android_Mireo/app/src/main/res/layout/about_activity.xml index 2c6b06e..02f40be 100644 --- a/Android_Mireo/app/src/main/res/layout/about_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/about_activity.xml @@ -6,8 +6,7 @@ android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" - android:background="@color/black121418" - tools:context=".ui.activity.AboutActivity"> + android:background="@color/black121418"> - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_feedback.xml b/Android_Mireo/app/src/main/res/layout/activity_feedback.xml new file mode 100644 index 0000000..97dbdfe --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_feedback.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_feedback_details.xml b/Android_Mireo/app/src/main/res/layout/activity_feedback_details.xml new file mode 100644 index 0000000..a9701a4 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_feedback_details.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_feedback_list.xml b/Android_Mireo/app/src/main/res/layout/activity_feedback_list.xml new file mode 100644 index 0000000..dcb1424 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_feedback_list.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_language_switch.xml b/Android_Mireo/app/src/main/res/layout/activity_language_switch.xml new file mode 100644 index 0000000..5498202 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_language_switch.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_my_vip.xml b/Android_Mireo/app/src/main/res/layout/activity_my_vip.xml new file mode 100644 index 0000000..e4c2b08 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_my_vip.xml @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_my_wallet.xml b/Android_Mireo/app/src/main/res/layout/activity_my_wallet.xml new file mode 100644 index 0000000..88b9cd2 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_my_wallet.xml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/activity_store.xml b/Android_Mireo/app/src/main/res/layout/activity_store.xml new file mode 100644 index 0000000..1e8f643 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/activity_store.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/browser_activity.xml b/Android_Mireo/app/src/main/res/layout/browser_activity.xml index 36e6138..533f5df 100644 --- a/Android_Mireo/app/src/main/res/layout/browser_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/browser_activity.xml @@ -5,8 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:background="#121418" - tools:context=".ui.activity.BrowserActivity"> + android:background="#121418"> + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/dialog_google_play_rating.xml b/Android_Mireo/app/src/main/res/layout/dialog_google_play_rating.xml new file mode 100644 index 0000000..4a3d86b --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/dialog_google_play_rating.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/dialog_home_history.xml b/Android_Mireo/app/src/main/res/layout/dialog_home_history.xml new file mode 100644 index 0000000..389db3f --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/dialog_home_history.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/dialog_notification_permission.xml b/Android_Mireo/app/src/main/res/layout/dialog_notification_permission.xml new file mode 100644 index 0000000..e81a975 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/dialog_notification_permission.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/dialog_recharge_fragment.xml b/Android_Mireo/app/src/main/res/layout/dialog_recharge_fragment.xml new file mode 100644 index 0000000..895418e --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/dialog_recharge_fragment.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/example_emptyview.xml b/Android_Mireo/app/src/main/res/layout/example_emptyview.xml index 9710a35..4ee861d 100644 --- a/Android_Mireo/app/src/main/res/layout/example_emptyview.xml +++ b/Android_Mireo/app/src/main/res/layout/example_emptyview.xml @@ -12,6 +12,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="180dp" + android:src="@mipmap/status_nothing" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -24,6 +25,7 @@ android:text="@string/example_no_content_for_the_time_being" android:textColor="@color/white" android:textSize="16sp" + android:visibility="gone" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/example_iv_empty" /> diff --git a/Android_Mireo/app/src/main/res/layout/example_item_num_data.xml b/Android_Mireo/app/src/main/res/layout/example_item_num_data.xml index 6ad9caf..f7add2d 100644 --- a/Android_Mireo/app/src/main/res/layout/example_item_num_data.xml +++ b/Android_Mireo/app/src/main/res/layout/example_item_num_data.xml @@ -31,4 +31,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/example_network_error.xml b/Android_Mireo/app/src/main/res/layout/example_network_error.xml index 4c8eff3..73af49f 100644 --- a/Android_Mireo/app/src/main/res/layout/example_network_error.xml +++ b/Android_Mireo/app/src/main/res/layout/example_network_error.xml @@ -10,6 +10,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="180dp" + android:src="@mipmap/ic_network" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -22,28 +23,33 @@ android:text="@string/example_no_network" android:textColor="@color/white" android:textSize="16sp" + android:visibility="gone" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/example_iv_empty" /> - + app:layout_constraintTop_toBottomOf="@id/example_tv_no_network" + app:shape_radius="@dimen/dp_20" + app:shape_strokeGradientEndColor="#F56490" + app:shape_strokeGradientStartColor="#EB8A64" + app:shape_strokeSize="@dimen/dp_1" /> \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/fragment_reward.xml b/Android_Mireo/app/src/main/res/layout/fragment_reward.xml new file mode 100644 index 0000000..57298ca --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/fragment_reward.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/home_activity.xml b/Android_Mireo/app/src/main/res/layout/home_activity.xml index 3086f2b..91f0792 100644 --- a/Android_Mireo/app/src/main/res/layout/home_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/home_activity.xml @@ -1,17 +1,20 @@ - + android:background="@color/example_color_121418" + android:orientation="vertical"> - + app:layout_constraintBottom_toTopOf="@+id/rv_home_navigation" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/home_fragment.xml b/Android_Mireo/app/src/main/res/layout/home_fragment.xml index ddd2cf8..8d82ce7 100644 --- a/Android_Mireo/app/src/main/res/layout/home_fragment.xml +++ b/Android_Mireo/app/src/main/res/layout/home_fragment.xml @@ -1,77 +1,88 @@ - + android:background="#121418"> - + android:layout_height="match_parent"> - - - + android:layout_height="match_parent"> + android:layout_height="match_parent" + android:orientation="vertical"> - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/home_navigation_item.xml b/Android_Mireo/app/src/main/res/layout/home_navigation_item.xml index 52fd215..c705d36 100644 --- a/Android_Mireo/app/src/main/res/layout/home_navigation_item.xml +++ b/Android_Mireo/app/src/main/res/layout/home_navigation_item.xml @@ -7,8 +7,7 @@ android:gravity="center_horizontal" android:orientation="vertical" android:background="@color/black" - android:paddingVertical="@dimen/dp_5" - tools:context=".ui.adapter.NavigationAdapter"> + android:paddingVertical="@dimen/dp_5"> - \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/input_dialog.xml b/Android_Mireo/app/src/main/res/layout/input_dialog.xml index fd9dd74..63787c1 100644 --- a/Android_Mireo/app/src/main/res/layout/input_dialog.xml +++ b/Android_Mireo/app/src/main/res/layout/input_dialog.xml @@ -1,5 +1,5 @@ - \ No newline at end of file + android:textSize="@dimen/sp_14" /> \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_coin_buy.xml b/Android_Mireo/app/src/main/res/layout/item_coin_buy.xml new file mode 100644 index 0000000..eed25ba --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_coin_buy.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_home_top.xml b/Android_Mireo/app/src/main/res/layout/item_home_top.xml index 62c4532..42c3269 100644 --- a/Android_Mireo/app/src/main/res/layout/item_home_top.xml +++ b/Android_Mireo/app/src/main/res/layout/item_home_top.xml @@ -9,7 +9,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginEnd="@dimen/dp_9" - app:cardCornerRadius="8dp" + app:cardCornerRadius="@dimen/dp_8" app:cardElevation="0dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> diff --git a/Android_Mireo/app/src/main/res/layout/item_hot_banner_view.xml b/Android_Mireo/app/src/main/res/layout/item_hot_banner_view.xml new file mode 100644 index 0000000..a6a27d2 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_hot_banner_view.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_language_switch.xml b/Android_Mireo/app/src/main/res/layout/item_language_switch.xml new file mode 100644 index 0000000..ba32251 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_language_switch.xml @@ -0,0 +1,50 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_list_tab.xml b/Android_Mireo/app/src/main/res/layout/item_list_tab.xml index d7ed117..a779167 100644 --- a/Android_Mireo/app/src/main/res/layout/item_list_tab.xml +++ b/Android_Mireo/app/src/main/res/layout/item_list_tab.xml @@ -78,7 +78,6 @@ android:layout_marginBottom="@dimen/dp_4" android:lineSpacingExtra="@dimen/dp_2" android:maxLines="2" - android:singleLine="true" android:text="Salvation Mispaid" android:textColor="@color/white" android:textSize="@dimen/sp_13" diff --git a/Android_Mireo/app/src/main/res/layout/item_search_girl.xml b/Android_Mireo/app/src/main/res/layout/item_search_girl.xml new file mode 100644 index 0000000..00b3f18 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_search_girl.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_vip_buy.xml b/Android_Mireo/app/src/main/res/layout/item_vip_buy.xml new file mode 100644 index 0000000..756c563 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_vip_buy.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/item_wallet_record.xml b/Android_Mireo/app/src/main/res/layout/item_wallet_record.xml new file mode 100644 index 0000000..7352cb8 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/item_wallet_record.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/layout_close_episode_recommend.xml b/Android_Mireo/app/src/main/res/layout/layout_close_episode_recommend.xml new file mode 100644 index 0000000..52f7327 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/layout_close_episode_recommend.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/layout_detail_player_view_controller.xml b/Android_Mireo/app/src/main/res/layout/layout_detail_player_view_controller.xml new file mode 100644 index 0000000..5c9fe95 --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/layout_detail_player_view_controller.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/layout_lock_episode.xml b/Android_Mireo/app/src/main/res/layout/layout_lock_episode.xml new file mode 100644 index 0000000..06ef18d --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/layout_lock_episode.xml @@ -0,0 +1,56 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/menu_dialog.xml b/Android_Mireo/app/src/main/res/layout/menu_dialog.xml new file mode 100644 index 0000000..73f16bc --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/menu_dialog.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/menu_item.xml b/Android_Mireo/app/src/main/res/layout/menu_item.xml new file mode 100644 index 0000000..4b8abbd --- /dev/null +++ b/Android_Mireo/app/src/main/res/layout/menu_item.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/message_dialog.xml b/Android_Mireo/app/src/main/res/layout/message_dialog.xml index ea03cf5..0dbbf8a 100644 --- a/Android_Mireo/app/src/main/res/layout/message_dialog.xml +++ b/Android_Mireo/app/src/main/res/layout/message_dialog.xml @@ -9,6 +9,4 @@ android:gravity="center_horizontal" android:lineSpacingExtra="@dimen/dp_4" android:textColor="#333333" - android:textSize="@dimen/sp_14" - tools:context=".ui.dialog.MessageDialog" - tools:text="内容" /> \ No newline at end of file + android:textSize="@dimen/sp_14" /> \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/message_fragment.xml b/Android_Mireo/app/src/main/res/layout/message_fragment.xml index 864d94f..1fb5d89 100644 --- a/Android_Mireo/app/src/main/res/layout/message_fragment.xml +++ b/Android_Mireo/app/src/main/res/layout/message_fragment.xml @@ -5,8 +5,7 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="#121418" - android:orientation="vertical" - tools:context=".ui.fragment.MessageFragment"> + android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - + android:layout_height="match_parent"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/setting_activity.xml b/Android_Mireo/app/src/main/res/layout/setting_activity.xml index 93ebdd2..c89b5f3 100644 --- a/Android_Mireo/app/src/main/res/layout/setting_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/setting_activity.xml @@ -5,8 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="#121418" - android:orientation="vertical" - tools:context=".ui.activity.SettingActivity"> + android:orientation="vertical"> - + + diff --git a/Android_Mireo/app/src/main/res/layout/splash_activity.xml b/Android_Mireo/app/src/main/res/layout/splash_activity.xml index 83dd830..265c33f 100644 --- a/Android_Mireo/app/src/main/res/layout/splash_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/splash_activity.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - tools:context=".ui.activity.SplashActivity"> + android:id="@+id/frameLayout"> \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/status_activity.xml b/Android_Mireo/app/src/main/res/layout/status_activity.xml index 7abbee1..631e11a 100644 --- a/Android_Mireo/app/src/main/res/layout/status_activity.xml +++ b/Android_Mireo/app/src/main/res/layout/status_activity.xml @@ -1,12 +1,10 @@ + android:orientation="vertical"> + + + android:layout_marginHorizontal="@dimen/dp_5" /> diff --git a/Android_Mireo/app/src/main/res/layout/tab_item_design.xml b/Android_Mireo/app/src/main/res/layout/tab_item_design.xml index 4c53a74..f9eb417 100644 --- a/Android_Mireo/app/src/main/res/layout/tab_item_design.xml +++ b/Android_Mireo/app/src/main/res/layout/tab_item_design.xml @@ -5,8 +5,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" - android:paddingHorizontal="@dimen/dp_10" - tools:context=".ui.adapter.TabAdapter"> + android:paddingHorizontal="@dimen/dp_10"> + android:paddingHorizontal="@dimen/dp_3"> + app:cardElevation="0px"> + > - - + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/wait_dialog.xml b/Android_Mireo/app/src/main/res/layout/wait_dialog.xml index cbae7aa..7e90a68 100644 --- a/Android_Mireo/app/src/main/res/layout/wait_dialog.xml +++ b/Android_Mireo/app/src/main/res/layout/wait_dialog.xml @@ -1,43 +1,16 @@ - + android:background="@color/transparent" + > - - - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/widget_player_view.xml b/Android_Mireo/app/src/main/res/layout/widget_player_view.xml deleted file mode 100644 index 2e7e0f0..0000000 --- a/Android_Mireo/app/src/main/res/layout/widget_player_view.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/layout/widget_status_layout.xml b/Android_Mireo/app/src/main/res/layout/widget_status_layout.xml index a6b9d49..6c39751 100644 --- a/Android_Mireo/app/src/main/res/layout/widget_status_layout.xml +++ b/Android_Mireo/app/src/main/res/layout/widget_status_layout.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete.webp new file mode 100644 index 0000000000000000000000000000000000000000..0f3a3d058206d48af406645049ab98a255be5838 GIT binary patch literal 4922 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete_bg.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_account_delete_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..99f027996ae2931e8352fb664e39bd893edb9516 GIT binary patch literal 401364 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 sSbP?kM9P*_#deRplhQT|aNEdm_9sN}y z$`)*&rB*e$U<;I~dkmiZs8Y$TqU<;1+4k$VfOGO0%jthqOm1gKJ)kwhd}HoAR+%HhZmr%u99R!(CP_ zZE97j<6sF*l(pJn(sE(c{&Kr|4;EcdoMWK}s(k3x%&pXzP_opSB^DfsE!X> z4ub3K10ecT%n4!E$g*Uh?PN4(5o5_fW2q<-@?TpBKbQBnAA1mozC3N-Gny+{D*xO< zr#GwQxXd0)K`F^JhTQasF^)sw>MEkl;i@;zTJaa8b*|})8Ax@&;2EX-3r=ky9&6@P zlyQ~IJ_wyenrMz)1Ap@ZU$G?MaEUJ9W^rNGKv^KY^OYc4jxf!Jv9Od>K#i)kh^2(d~fNk zq-T(VRGZXmflUqQ88F49lM_mr>I|YJ5^vx_Geko&kOh>XN?ax-X4KnRO3Nq0)cvu! zmFdSVnPCIew-10cQTdZeTHQC-#tC(t#c~L-;74Nq?k|{jH+sLafWkpJ?g;XHS>Bu+ zTJnFaTl{W)&Uo;0cNJ}GwZ<$%uB4?D?WEd$3yE0gFXNYB4|OXB+ANy2H?PF_N>N50 zIPW${WFG>%X~^WL6O*$w-lsUR>1uz0Tl&{rhGrRDY4tb3z~vn)(m|kPDHM;V-0Nk% zt)7tORr1uo=>Y0?t=LPv3YTWuU~X+zSuO*w^wNFWG!v?#30UV&eyucn1S%dUUkG;_ zVpIa#l?_6->}2l#`Xr~m74ZbhZO4TwtPsF}I&G{6B+#=7Icg1tk&}Wa=6hCD5XC=M z0_au3Lss!uMS6B*;jcX;!R!k7y`s!oS|5QTN7oAL`tl3%TG+7>uQjWMkdzm3xl6K& zYtQ&*Zbna(Oy-SBPRq@|RX}Gnm%lKNq6fayoSN#NnR%cS|-%hs1agg>IB{_@tp}$MgDBq`RmJ$ehKA9ePhxKsxo$7%k?iN8kP-r`Zl{yek87(->?QmLL5@fPO7ah8MonUGF!*EIruXD>5XWE;)8(J@EhtLW}rI6T{)rudt)dMUH z6Jh7r#>=BFU~_8TJ=-+vsb%KN z3BVT4^U6)%_Ss4rTkwV3iABCuoDO}RUE0St+rNOiw?MJ2`P8h`gW4XcVMDt{v?*BCqVs8o-zxz50s1kC8*c*NY0SbQ;4x3v~J+o z38|XhT!Air!wV;(246$XHV3R>>1AR1f|D$K^gXa`2)hQ$V1C+7R0v!+(5kA(6r{)1 zypFC8I1dYFTI7UQqd`%R6{VdqF$@V;Gj?9d(;Gtai?_0gc+-mj<;AA}vl;}eH7m7m z7~NubR3Ry4R=cHNw41ITjAq)Q-4D(>4CgP4D(018$>b*I=kWZ4pW=DHitzCtVd^-s zE``9~-ubbn%$JIfH>l$jGZ;uMbjx5)Tv~rAzI9-yqxd)R|G`rj2MCTO=&ZcWN~8qO z1`%fII@`MBd8aUhF9)Ptms>6Kq-=?cO3Y?3xhbmnq&b>=g=spG|MV}fhFE(2c&9L* zSQ>z&ST=+=E@l$QTLz`lF)o<3IirydqUUeWoy0uFt7X6;D6X^|v$P6+ektu*M#blD3OW3-rC%ql5PuxX45-9O%x=<>GRU#f6!h>&2WE}e51-P>1}xFGBv z)n^NtcD^8TCtkCYMEnu~TyfSP%vyZ;eOoYx`P2#n2$q*u6H^>vomH`2C_n1LRK;m| z-mga|z8#(KcS)A|tJ%y#4~6W$u-cyXX#b^Wtm;SDh2>B%7FXr!u)O-l`t#jyD{Aqp zUCUI>YfUX-q5Ze{el3n^%k9}_Q--q8%h(hG<})SiJ_UPHdo=Zg)(^$>!Q&RDP(+`f zI))}V3H@GmrYSfzky;$jmUD#kjoh%XpNdSR#Lb2_6#!;C>)}Mpoq>wOiT>4v^eo{K z{|8ON1*O2EfGh#TrQqp2e5Mq;hEyWibA~9i83z>LgQP-=we?~yK49gU;_iSz4)yqp zmArk0XASnXrmA|{zRSJ-QME!(CKn5k>;+>TD0OyjY)ea2oJbtWVfDQlTE*8epOy=g z=l$9BQdZ9O$+yPf@0e*kzg`v)elAfQT$}RF6kuiC{vb@7?mh0^D3H(PEJW)HFH7IHNx8c^O!8Svgph_;1>7Gc+LNAkr2ZzJ$6akBVxW)4HK z?T=~(YD{qV6Dry)gb0waL%Re=i;Av6S*elIbgX@BEBnLH6(AF1gPwPE<%?eD7u zDe@ALW=I4v`Su(+)X0Qbsjgx?W|(2}J*M8p7V~u*fG0dHmGXN`5XUrjCg&&xH4hV2 z<>p^5>2g{r?;izos!*f|VH&tPl-^q6BsHI1dQx*mj|9f*?t4Y0 zb}JJoW&A{brwa5ewwhyJq!5+j-4v~$jVUZ3yweN)gWtd89fVze@mc9JI8}?g)4j!P zU8~|B7|rY4%vCv-cDd)62(*+M5pPM6?y>B?g@~}cSz?CBoIYz#kUhHfLea}4}zRQ&onOTuMwG=Jgf8?2FU_toE7d0%sg&K^ySs>Qq%gxzT9VcNXu7UQRI$lX%1= zus)a!#CodV6g}tzx*O2Y)rmOao=-K7Eqg7usvOg+c|P%HjU(PXa&@P(>9sEF3~0hfxlv6xT_ZRk&JTIpI0v;-N=; z8O(RGzbY&Ld46o0*%Qev4IGg<((q?C9U;&!reIQRquj6OTuAoS`pfBBh5dr28H`&m zG$qWvITxSI#T}K`0TD*+@8p()A^d$c_s*@NmUFxI5WY-EiesSrciivw+$cRZGX|>R z-kZmCM|Ki3sp5j~c*k1YpzR4f#a$2B>y+P0Oj^bvdr&jZ9p-)cwSEOzT}I(p(xmUK z7%ytv+63h%Tf?lOrp;L4bt3P(EA6L_ReLjOkm5q0;NImghNP!H83XE?HRNwLj~Q6@ zvy^I?$Vn~1Whf}K<>ywDqH|D;mN0_i_d+SBvv8g<<%l`?XQ-bZizVr%0T@tpOkkFmHQ zFxM-6TMQN#+7O=SxsGgp50a^olUjee>hs_(X#mu|JE>@nX`O03SZZ9PFtp2HDOI-? zGpRH1ir;dt=7W!JC5}=~pCsCeVv8(r9_M!cn!WeAf39*H1;4*^jBBFs=%I_fR8TX1 z%`#**XDH*t9jnaJ=<35eU8V~$(HHlMfGwE_(NB`acynitB%5)dAVb&RRmZ)imU4@4 z{bnDO2$-#Py68JRv^oluXEEd46u0Ipo#V}~4u0!#7?!#0{M>)mg7+LAWYq_o525=^ z`FNTVvfx*Z98wn72Ly>>s(}&|!t{{V46TB+Hds_!-kLvbz()c=LL0UE+^}_i(QvS2 z5hp-pT?i~4$PSWK`O(pl*f0svK}NjbrXxetn@XT8kjqIxM}9~pT*sPN}(7~$=hfhYgQMt zBQY62M2aiq8awd#R(CMTv`i33f00d;0IepHxmS{IneT>zDtbEYA~V#h`3=xOb2&Wb z|ErrO5|sXA5y&}dw%i2QkC!Pla&((|8rn%u1Y4?8OnAA$sJh{-Z{

JEL-wn>l4m&>|o=}_{s;s=dy-V_9#!W~iFYm5}x~z!$Hqi&e zEYw@f(_Eia0!*u8dWA=_HByqozu-R+AF7ni^iSPWpAs4(3FJ8a@a6M{HcE1|+rPnG z0Ey&qHaW2FfW>mFjg-8*YnS=#xyJJrMv%!7(w}I5W3WpAr{ACg&~TqWpDmmM?h5EL zP!ZqxDPF=XObKEIxwV8Do_;9X3e3a%G#B zV4QGU>(0-69~@R+^^dgaOHx9cI{TU)$6b$>^f_Rt1X%yD2val1(ldD?0B?Y65PNa- zoB4Xfto!P_SJ=hja!BZ(j`JDYt;>LWysUl!4}ufT`=T8WoTsXQexff*wnFKE%NfBpW} zCO>0NG@k%*A@;?uN*%x{q+rTS+eNDdvWz~-!N|K*FL^ngwZE6Ht20YyOE*w#5s8T; zvlr<#7R5_h?XHBL8TINC0$46{}N64i* z=h}rm_vSkgeW6i@V^OOD4_^K9S?AZ5`UGyV#%0yoGHs`mR0@9*%2XVFSPtE>D7lr#x5)tJCJk+1&9F+G2fO(m{c8!m_J!|UoT1B(%C zJO8cz`ul3W7jeFlc<;5|liXV(we#b2I-sq4T2c3Y1(bcw5hi_4z8mHClNTNsd>yuPFG;(P2stk~UU z^K0BraP}gaLYH;X8$n7EWZ$Lf0Ws}*iRF;|H{ck=i-E2u?!e*^7b(4Wl)i&wb<=5- z0XA$90Gw=3jW*Vaui*p>1yg(Lo6*@M|3$^yD~>-5*9epV*)9}XP@_3I%afOZ74pWk z>pr2pDo*~sfsSloth%*&@+H40H0bP-r}A5)*kA?8!A!fwZRoQ`2FC@9F09$LMYBak zv!kY1MhQ!blmvc+H)bkHsT1`z%3B2^4$V2AXSPsNGtScupPkwTPX3Rh>wu>E{lnjT zZCzY`vUeicBYRwtQASbro|o)BuNm1&Av;8pl}%Q+OXwP*%w#8fWRL&b|G3Vna~!AM z@B4k<&*yob&-1(yl3H?ZlkQNIX*E^|`q(m!=s%u!4)tq3Uc_e1Mi!N|zQ~?ivi6$R zKFr*_CCffJhyRI@lF><9sOy;3)?u*dJCXoCL|q=w`}@4mJ>Qatlb@Lwr32?nSqK82 zDV&;YoSNh*sduRqAKSfDOR|3A6bK7lV#}~G3C#<8Nr7IxeNX*wdCW*bHZAb}0#iEw zdm@HXps3W{>ooB`lHXGB*%HGk%NR#E=%fIFKL^I;^>+nH$ z|CBvgSF;Zmv?%x>;D#)WXvEy`H4Ca?kQf%&k*(MaEEp*s5d3|mpR3GS#TR&o0? zb5OU`<=pJa=InW}(#f04rIVusa8U2>-9I&T>%s96Wa1YAEjHH1NM*B*OwR9m-%bQ za7)X)mEU=r(E$?(VL91MQAM`{fB(}{ypMll$1Ll*iCkVCu#K>7`Em4+M_ntKA$J%= zV;QMA7bx?8o5~=3cyrY=zjOah!8PI%18T&aP4z{4WIgRbtIeWv8?pC|V(EE%RKU)C@k0R83%Z{eHCUoo3wi_ut*>;T^Ozw+D*Ago78~x9(NhY>Z0ZOh*=3 zFP-#-){lofrJ|h@P2tbDBmz(cA2`tnax0C*hu=9Sg$$aM(JV|%lA9q*Yf7i$VVA<8 zYg-pdN@ssBe=V>pp8uxrINQ!pbn4pMp&IN_`m9&RNpD^;b$p9h#i{4{Ju|cVvG)jJ z$Ayu&B~2mw0KO50!yBgb;!Z#Z&3wzw}MvsrSAzn~mxD+$&<^sFB9VINUA zpwtkYq@L5D1=hoG;Ax41Ac>n_)MAU@zPo`WRw4|K0ZxMe+5jHPb?E5Vyf@O{b`!8V zmIFJbck;X8z?$34W?DC*az^PwzTY=Fa42tYZ;C|eyg2mT-nn6>P4ZrCgYo6Og2nqk zP0ar}E9+54AtePQB&JJoh@2$I0c{sBApL{H4P@6g#6yJ{rvFmmU<`lwn zqGo2el*{`=3FqdF`GsW~f-&@o1Cw%f%~i3V_iPZOwk3?T;KEk2LX}|0sW(xt>NpBam>I>ux|TJsXOvJltP3 ze@|-`9DJaFUgb4LFX%LuMt*UbL{>^LbW-RQeIy$uc0u+W@1>Yw4r(v4yt9`MdBW_N z+`Y8e!M!8TfkE#ed{YmNg#7I+P`_j}WLZ!3t2A4Q^R2B8`Kk!ngFiSK>(=C@AA1?; zs>D~0tQHyRT2BB%u*YAz8TV6p;lF>$*pR?Iki0Wxk#NU&z_xw#+%e$DE?~b&K157D zD8$RpyCx^&(Bh(b3{kX)^$Bb2XnnQ0RdPD>(>ilgbjG%&$0ucntVo=gAnPVlIprbz z)qO`wojUcQ=Y%N!M1Jy>x0A2iMA05qPDWfq{PzKdb3;eWW>*WC%nbcOkT~a2i8D*@ zd4RjXtS%>imTguk*JAb^Q%Czvzoenl_m9?5Q!h=LV1#%Ft#MA{_hwJu=IDn*w8Sb9 zZFp1BlR333)^%x1K9|2Xq?F9rJDL^Sn`PRhl~&H=OMl3;Ddt!>PTP_pL6${Utb9qE zN-t5fRx=7tnxah3r1z|P!*(je>~=if&S;<}3+L5tG+--}GKO#ulXl@j_xM#Oty*kI z{|of^;NN+nBOFqb#gZTqNQ=~y>2PCjFCx(`CDEOVDqX_*TTBOI4laUq+jo+}!t1g( zm9!4od3wrMFPyjTANY^Y&RHd_Djra}dW|l=9hQNB^7HkB?Y#THcb;Md{BP}2Bd@BS zC7FOS`H{dcjrZ^yT$X{rHM6rQB5IWTuga%{h@TOjnz3S&!`%vd@8FVT3puRDvmRRIIu&zAwn6 z;kX$@3nMc=VbbF|r>%ZRA{$$iJ}Im18>|wt!2g~J zWVNF-VBAC%oe@Dnm8d8te~PHMqk1E!A?vt#!)qURHLkM(C!rJ`ZMIa1Df2fSV_I_d z$lAZ>o)3CV!)~IL-EMhLWj4k9owx2{S&^jxTijN)_Gyf`(yX?R`)&5(%nC-xZUVEDvPMFo(wQiVN2ry3sv zrC+(LZ{-kKquj9Yx3sBUF&OCiZ6;!D?nBh#hwU3ysqyMNq-5r$|Bf&tyohPp8WT!? z?BT7eu~ecn8Ex2VkkfG-@%x+avwJ?d18$R8-lj`|O(krwu zsFKoAYNTx?U|}IaN)faBU0wI*#dcg>Hj6t?Piq@?=I5M;k5caRrj8pGZ)0rl1MEG7 zursg)<_Nz@c}+0oss42kdjx5@H=a_-o&g@cHsKSgWw69Y61C*CO$5UJBv6f@q-U;^b80XKvTHRuQlGCZ3eY zg^!5?1%oI^H9*F0Wai-$GY&F|6OU>J3TFxU}tp72`cnqKH2pf{D;=Pl>8=$nY_^A(>OJv=2tdd{3fs^BSGtc71*y z?>1cxF&CV6oqL3`6xiQ;QqkxV{bh}WfmZzDMjQylPJ!@68hC=8a>U}dVlImP)c#T5 z3V?m+gD=7QZ@$VIqgIRn8JZCmn2V@X`C&Z;t}z=?yupTZMfu<53vt(A*I-{(N_M)_ zR*EE1hG)%QBvh2w%S6x4sp08hk(O#r4L4*kLqMXn&dvt zvdp;axUna1mY#1&DAes3Yv1`YzK{_Pqh4O-2-;Z6G_|-lTupnQF~|L@o~h6_`r9IB zSp=~vpo<8ihSiui68oEm0eZLM=_#YM*9DjcjPVA0-w-ji#Uq@9L&uNFb<*&+Nu z>r+9mF=}Z1zDsH*vSP9xR(kmRY3AatbCUJPI$4|Couu# z9uN^)Km@_jHJu?7%l(p;4gL7J;RR4_j{Im3l@9em_l(V9!8?^R{l|*A$eYn(a;04g z5z~-0=T+3NE!Xk=+_Bt$wxj8Eeu896@wkTlSiDU8bSk!}H9Jj8N^15e%Pc!(<4BjE z?6`ImtN?7ouju8&-3iDcht}i+WxWu^@Q8EU;4ym|orkz8pjp_tDyiL=bw) zR_2G-Pr8KF`F9EdK(hLNCb;rP$9IET$&a76X-G_`L-Y^)GdF8Gu>JW$+!YS4HE6@f z@C)nX;ad-Xqj5&oNJ0r)nkY5CAj6 z%`Y1I<+`dz19xQk8k%=Cr{2qYDgJkL@7rseCgrD4c#|=$I!WI3j|2&W48CGQUGB*S zQcvf2K8Z>R2oQRxaCCO#S1$&zJye_h!k7@u{*`>i<_^m7 z!=c$Mw>|oJYF8tAQ@~{u1IjT{OOuP=bcV(D3Um8s9HUN*-EA9b+s}wzou8@ z=?n)k#kIw&)IAS2m@`@9ljyE=M~urTg}EP`ZMt9XN?lBy9aQa9g>4K9RVf|+=_#G- zpX%8%KajHwz1;0Oe**VHt7{95RBt?IvdLVp@0ilkZCwo7!Y(Wse zp<~l$tTUG;-UoIwY`AMc^m_ku&mIV$k0KFxc116W1U+;ok}##37L~XmR4*nA+8FwF z6o7~)U7nQtnz?y2$El}yZZ)&X3ts;IQRTqT>hkv!eb8LO!6*8W;n2rD2lFfc38wgY zK4OzMpAKsXxNNIEoDKH$^FHYAu{6cgr3W342wR-Kq^iP%9qyKnB;@O+*=klu)YE$Z z-Od6^4mj8Ir(dtn^N<1i?+AwpGz`t1H?aCda&PhEi@f+?Vm9C|R#t>*n59tP27d<> zj8z`dR2ylLchUVS?0sGLmAK1;{SzgY!WxpCT<9FX&p=6mC3c#aXNZnydX*H7ON#0e z!?F_WL>&D-XFvZ9Al36r>97^0vu&*V<>G$M-U5Ira*erD23JPdJIwn^R2R@RA`N$@ zEVR>0D9Ub8y>VHv7H67z%NoApjhC)qSXHrf(N*Vj02xO#ytjMwmA-1T8om^g@ z%G415UVV+{62^40;Gk;JNFrwCkcS94o`Cfyr)zlF%{v`51I*BCjI3mOTpkHk_C=Kj zY)h~y#<3sO({mj7|2zAdbKTm0CJngyhR;FhFYIbRL|lT z&B9yV(nmtMfZE5Cci#TReR$Yx5AIk$e@0q!Ciqv8lT4r>m<;jkCERYJFAdqNk&ps^zuFI1;*c4^CPZ zK&vj~Bl_hDB~=Aaxhp~@#*R8r;xjQPvQmt3a&FFAY+dc|klobOx@o}|$QxFlxH$$SU>_%@Sx(Paml$!RUCmX{)J znIFF1)$3KdjvFnz8COOe&LQ*e`p1&oKG;!tUXKXh1M#S4V?5J6d{Oblv=)DUE#By- z6z*nN+yIrq*G>;_NeM`Ift`Yhn5d}+iRgr(j}Qq2o(qtG8)?)NhZs5$W+_q>G`}3w ze!jhOnXq+n-my1(F&nl`b-7@9wkjOboMYR>z$7iH+L!(z!iG4U{%NLgZ2y?CcsG8E zs&>p-(bT@ju8}!+(yPH_fPU)6+u^GfrC8>aFb4%jhDqj4ldZ(uLxz0crm>v{R<`P} z&P5~OC3HRmBziF!-$uUybk50{5Ot5@xjeGSk_dtUdaRj)KA`UD50Kv8S5;WXl<(su zr`dPM{KtS>Ur`Sh%ZojCOc+s5IQBaFZrH(9#_GF=-|U{k?#wJ($<1JV(@ch<9(wU@ zg>28`g%yHNvAjzA3$v348w0$CmPbqFKQQ(upM)Dts}`(Gd3w-2He^)b*Ru)IgCZwN zJq_So_U)Be0R<{GY94Vi3`UXtW7xNLnL;D3MeEv@lc_;}a@&cskX6I?5~{BDSw>gk z(XX$Ya?<$Z5{)w;nCPGqSo9q6xU>jZWUA;)mI3TH>_fqEcQc{ zLaz&cADO$T#euHD-}1$wMdigO_7Jg|wIy9Ce?_ONb8?Fl#7HPYczAR-wYJK5tTmQ_CvbdC=l&Q z9{LHo1d(yu1!CoChVAxT|&ySZyN{2m`7qOQ+gP2p`M|FtV zlVT6^uZ*2QDtgwgl2^Py3(HEgxV5!&Qn`m6)i0fqb+-Ap!%_V8#Hsh56_&XMOeE=2 zkxcoIoa2u?#1(%g=`iKm38o@BsbuJ1J+IJ`$u$dzAVSnrko2sgtFQ{mjk1&JMW-J+ z_)l9iH~T>#k06Nn`uyTa5Gf!%ZqUCl=15QucsNqI^ne@mna=-)MZy{Kw?EOhR*raC zIFyT-QeE!iko2!4>^LNX4&;!bIaEkqa{c)_k#yz=|v_?SR z({%jnd}Q_b4gPN;Ga1i*VUpbxHKC0U(&7$IpwpeN1cAC+`=7ycrA9+9)!e(a8xGc5 zf-%O+JN!PiOY!xv`!}mUU#sm6tZ`=5;O4tRN~~ssbVGh7p|jC;xsw(7bTbS0>~Z}S z=!ZIH2Wy#Qp%k)VdGYe{Z^z|C{@Kad!PfcmA!cDjxc#)`j;&;Nr4MXycc6&Z^7sO; zdm1N<*}L3nJnO7F*PlH*VQ)P=V}_usdPBZM;oq&s*I5<82O*q&J_CRd?6w$1Os`m$ z$s{$N^zm@u7uR1#(l6eBc=hL_@N9r%{VM?;6*+kwk`<@R!gJf!9lxgI5>Se}eH2{K z*L2mWkhmqF68TRnPy}*GNma@{<{w?hT?eTqus|?(sez+e&~M#281e)peO%9akwXL5BV^G|>7H*Yy@i6CM?L~GL}!t&DKxLYcwDr{|?{qiKg zI>xkW%i_dkZ?}|67_%cX^Vr92Lz*InBD8vX5l&VB8^(VywwWGwn3idaG-Dr>_q1YD z+}pmm(+2ETy!cz4M%hLPFN5T#3=dqgA!#?cAN7-CL^v!m4K4#z=N~y9 zqalhb){Bj37X+~=LHGn@CCx$%bBGF`cx{zf+UTxyJaM^(Kg|zWaKHG|ampUH-`cUa zdKk91g*ov)UYyF=N)ssiT3Y^N_Iz^tDg7pUats(yZp3Vy^=@y*TAscNy9_)0wc4n| z9{N~8popBEQ^S-uYF-({ePSbIaGXjWI5=m>@rjF*@U(J%h=zj6gWx-14o_ zDa<5SzNJ-pj8`{_l9D7aORc}IQBLfi5>`6hxnw-VW~YSh=bv3#?jNLJ&hG62i&WrO zG%rlQh7B=sNE^c~f>@X19L_^_DGK~KnqhsHiKt_j~3IGLayIg zU+vwwnW0S1hlYXk$7jZlF+GZqgM;t4n!0`w>rf(EcsOx55BqL0GEtk+AZ@J3qDtwC zaDu1nh&bh;Yf$pSsdTd-iQGD?jTbE`6)X@UC4KuNC>fbIHwUH(pF@3_itmp1iiVTn zu-iASQe(^v%o`^U>~HZW;I{QGyM8CG{(Csz*POf((w)}%*@m5F*rb))bM7dv}X?R7leIyFR z2GhKRO|M0E=@yx3lTL7Tf^bsXxboQ*937PXjdL=VG0xDAwYwV*`A-XMt4Xd!Pccuw z=VH#kiEDUys8Zu$w;>#kn)X48&?0J*pANOqG0}Z~t>DH0fK7p222`-iv_^Cwv2Ni^ zaq+=8M@tGb&~L;Nn6X=8cFr$vZOUUVCIT-PJ5H32cZ9>5PIos$yfX(qZkd{C4G!=O zI_#|Dv)LctVqL`JN3xmo*)U6&=a)`2>>p3-r4%n}gwJ-}At~*iQwj(YW&s$1zxmrp) z1BFBjC7!Me-w#q+j(L)|=6`civZrRDz-Tjt2I%~t`1eF0F;>$ z^nZI;+`xbk{fOAF&Z4M&6u93s9cGZe$6zt(GYh~{fGQ6+hYk+@bm7VF*A8AQN^=kW zo7Sj!(oMo1Vmm{1N=2pa?(P=0v$-U!*m{2O=lfK7+7y0gCOO%2W#496oGL?VnGxvR z4KMx%9-WcRidf~EchyW{iH*st8|=xvtZYsvg(P!t&GNb!glGrazN|2ZfHI!$HkOpe zzB>FYnS%PG9a6HEv#v>*LELDa;b{^9jFQAwQX+AJ!%FgL5{_bF_e;<0`IBz!%2w!_ z?nO%efs}2%NsdDIx#P%$nq$9Li?rNYzPYb1TelR(`Mk6w&|9osM%H{|!wu7|bkr&& zl@L5AtQc^pZgH_MHBi;jkeBDm!@IUR5fs$0VVK>kDYuywq)`zVPDcunK|546R*WD( z2#Oh%U>HrleoLYrG3XkQM@--5aaPD$mt_4P*2~N5mR#`o6TaueCTR~&NmyJxo3L}B zTSwoVq%MOMoN#=ai_pBSJA|{V_y&;+Tc;OdKMX$~N^UtWxmCZY_y2AYd%E?qQ7I8; zbf)V7pcdJ~$D8F!husTcN_{?;DzEMIBB52-LOx_`u?MriqSGGWeYz(l+>SY1 z+G;y#&ky!pIPeJa40`PuDx$lr+>c!eIr__3rTfaF6v>D{5WUxpnr5WD|LGNJr%~cz zP|Zrkv`ejxxn+y-wX%Vq>(MV88zz$J^UdQoepQ&=AwcDl!s<1NMFd_2_W5x6Yn}`PA9dD_iY<4+oE51rErA3q8kT1zWW; zx8RwQtw;OlG~?+tyZOZ!SBh>-MbirYXCNkjc12!dCvy)MW@ zd4+a?WhoKT;sQf~!G_wjiNEt_4{|DF)f3W45_qYWg$E|3-q$J1AZ*14vR4D@{U<_J zS2{9Iab6ft%(;z>@S4-qLG0LiA*=sJ)8iiVVpc|88YHO+2(#kUbf%G?Y%tWfj~l(K zZz|W|m)I2!Vv0+q?UOmtmJSO+q#wEZz+J; zkHt86wY2Q5(pR1LWoIb0oj55Szgz3Wjr{>#;pvG~*m|44QsC)5%VX1yofXXH>}A*G z_T|OA(#al>yw5Jj*-o$EbyxT=cfVr16+}fOpFdffI^I;fLcjp$kf8i}MKtCsf3uPI zR;Z#=_RI7TXWCXrdvoFstO(ne37W4XtkIs;M~G~PF)ZZ9LVO#`!3AiIq=_b2t+lj6 ztku^TxO@o2wx_ksFiZgZk*rGio&}a#{~%PnJy?oiuw}J+`hDeh(B}qu=(AN0unFdy zYvl`^zVy|<85`kuO?N?(LMLeHl*%=!(zK$~ULh9%iYdRsR9P~z&wTfc{ZO)P#F6?8Z`HJECmr9(F|=F%c-YWeZP zXV?Lu7o4&Bd+2~_QqIQf`*viB&KMKhotrdJ@oj!MtTYCYCF$0TV5%EUXk!(3KC|CP z<+t}{z|D{S<9}Nr)j=yD1%CEua`DJx496 z<7xqte-w{XF4n6qS}zYTLs#4}L3G7S44Jd0;z{ ziD#5VPS6TS0ZuQ3{;6w+Ef zeji3ITw6U;qC&rBEUlLSKpL=)E}$Ra0n%Gd(QDG_Nd`Y&j+!Xd;zci8&FR57sOu?O zed${ZrFkr#TQBW8_@Ir{-U;4fNtQCG5mX^*um_}1wqQ&nyY)y_qO`nr?5STs=0S?9 zkFuQPy%%KSaqk~1$IX^<-2&k)(pkg-ZQf%klO&;|}?{F^+``-Jcf7cRy za{SY-_S7Ji81aph6ONL*!a@isVj;rYNSc)2on{hd->|fE#MCDp-SR~^u|YJ|d`#ri ze^%-!J*cU~)&D*r;)a!|&O?K#i3tZ!FHc`D_u7^Y#nz6HUG&bUU?ZtFI<8thJqLaC z0ZZPYTe=xh<~f$STOIxYbUygy)Hj!7tmceXTMzVKnPb&M*ZiS(T&o3U2y0vEOE%-Jzq_$> zc0b%)rhaN_KLRyh&vIz19FWD-^t zZjgolY$0~bHs<`m#HzahlbA*$*&qf<6NetFrq>WNp>2~VmZI}3`fz>rt{X~sxv9w z<(akYx4s<=NK5}gOHsr!ScouO^~4AgMJA70#bp+glL2+h5yYGZA z9OO=#5>zWXvUo4sE7QF44RCJW8CS)tS##EkzwE4%TE54T6wJkNhWE8q;JqON&*H=p2nkz zDll#Uhfl=8H^&Xf^R{fDG(6p^U{f>>+1^Y`n_BJf*xp{b;F>*)wVnlX(5aCr;h=MN zUH8kBQ17PUZAL)>McZpTGA3MyRFBxn`Rn$(eulAL6`xCowEFm1O<&!eJ=*iGGhSUU z4XbH=JX}d_jS$UtYZ>p>`pgEOw)-PTtva;!r>gSTqu))|Pz(wN*Zj44WYGV?WWa!3Xp*Df zg4Jzv{>XyFbbU)?hAIkpP8Ack41vTFZq5uqC)mR=fD=Ks$!>o~u}RSV&;meWKAW*-@fusg0G%tRaRmnf(~(Z zx{;T#Zaq=qP&>A!yGcwDoH2KBKEJ#%kCtOmunM|?y`o1TX!5*saoFpDP=$O|44;k^ zUpUIBds|HFaOp_spVo7y*B|W61F00HbBfnMs6^14X+AR?8bWNVYVdXrVmKH_D>E?A zkuj^^(D?dkz3P{ZzFz2e$+aiy`8GJWx?V3ncWWV8;i2O>t^A5?y6gc*QbEP2@Dgv& zs8Pm|L1rldHSr5?0@4_3kz#PY8PTYAMiOx-lbg_l7pKBC-~wbK5Fum+TLfkf*d33B zIf6v9z7qEDX*jP2+14Px=9VUtd^1-awy*s^EEO5+zMG^aSOm1nOtV`YJq+dz=o*u) z{0>B~6L%BtxbTc?Rp-51BLp@l=^$j+RG+sW{YRDFBpv+@{f5q`SkgG2l1a4u3ZPmR zxu}NG>WG-k&H6^e;N-5?6GV>LX{|q$zASNhdhTKV&QHxPD(Y-{HeF>c_%|AbFVdut z(DdO?yZPuq&90KNkQMlIUuRQdJLy^>+0aJ>lg>b~%;q6#3Cv7_ZbsY!(0w$QyYS(V zB&?F(;a7$$Zqt|(ooavG=!+nyFbd^dNS>x`8|uy&YDo#dysGv_PV4cbrm z-8*0G#+VSXQ7~E0_o*rg=eFCze}(IqdQT_el0sg7H6vDJ_=s3V~E;pkzoY_1<3>Sx>6(o(bx7jP;^l61c4Prc_e^QmZ2?BCZAXdJ9VWT%6C z0T3}WXD%n(2Illk-}5^9vxn*~xr`c+kZ7l5viTS7RhCixLN$)^ASG;mmT-e?`{(M= zP<7(SW1w5coDaXbv^_{rE>ifyD%(y7V-2lp zLa*!|Oa6BUj1yvSYhcpS%a8xz-zT;hMJHw0tjq%$MAu=2;L1>jU z(8}D%PU`hJ=mUr%FQ1s-Kj~dMacP%*RWV=@<}YF`UuQjnPRwp}y%b^X81{&!#~U=6 z0PdeI!K>M+KTu%BXyBeuwM!kUSn`dev1I>0=Nbr%bKDhD5sISK`#1mTlZq7%xo8vWUv==UY0ebZY3X$~>%XXBW$}+ajXei!ln(>qKS3sr zV(3rUc>FdKn(SVVh4`jS8)gs|qIM-F2}|AZIf>36vR)8x5m4mRZf4;Lx-zwYJbva? zJ>LEe*C>@lH4+0yi3CUz^5188t`Us&gVHCIk%pXb2qbHe8tFkI*NM2Pee_j3l}u>R z8rx5yO*zrHcQX>*8Ri8?Y@V3E>+65!&;Im|{jqCMoEV5A-@sdHUXmtbe>#J-8YA11Ge|!|fA>Z<;h{JenyApapI`+c(njMMKYR#Q927 z@{Ah%*rsWn23n@DKl} zZ>mWfsAxyrXb^qvU-fYf_x&x+mT|A?SFY%Tt9D&OkX4t}I=Ut<^(lo7feQ-_#g(B< ziaVJUw-?DdZV(b$p`NCw0$1PIaEQ=^reOQ2bS^BDBL3Sm)*+%8E(qNeNem%T&Mls& zl;jL+yf1T?d&xifL`!q8Y7r=3kmrB|AQWIO|Dh0 z?B?`(&$u$?AIOsnf_cu=ex!KkbuhGrqjGuH5A>iA7@?!gHpF=R#aW(hf8+I+vYdI7 zAVi-~i^m-=+clV-eKBmWms)pI2nm=w*gRN^joNsT^?UgN@a-wQcIyq@KQ;WonB}ho zw`CaqcU zd()5pUT{-(I~sT5)FhvCLXPG?oFmSDj=Htj)eU3NLqXw74N;=_vy%oG~@lQ^iUKa-`B!r)}^`$J5LBS};Iq%wUDV&KeLa`DCZdN#{sSLisD zr{SDya%o={l3q=k6cQCR@y<)kT{7>})-Rp&_}!9LY3e&Oa~#{0utN z?Dw$^KAg`k&#;(bQCbJwU~#5!{K#V+;mQa+y?q};ArxSzcrul6rZRLXEn&Klofj_T+}_E+DM@*Do?0CT34$~`qnoT3Ajy^;MhdGJ z9_0rrlWDl$mbh`Jh5D7QD)xkz=7#$1DV!zmhye^&{&+pq;0be$#mW0!QE7qiRo@sA zlbC;XLBtdZ;BrM2R;c22?&+caV`76{0ckKSG;nYDHfalvX!a@!Nr;a4O%V1yz#?bH zhk#W5H_f|iFj6||aN5e-Oo+(Q$zJSLQnIyPn|AqE!UGNowdH?tF7+)YRiFy@YTwpb z&UN}x&G~t0@m4};T#tfBx+eHRH-AG z_RZG>-)G}l^Gbd~ODBD=c5EGtyD?vGOP#$k#B49GoaN3Q5rv(Tkd!(xADxv`_4j%- z8|AwGTReYv#p9i-vo8sa?wcVP|BzXMYxOq9I#tbi!ap!x8q*q`&#QU-s9<$=#fD6q z;~J1&_g!47!!=a!fe+>P_x9}{;+yNkR`4N9ncRUtvK3-T&ozYEethW(;mc>k8T@!e zAuqVbmc%V$MX4jzsZAi8;XU)UC*0xDxWV)naXg&w z-Qcr!;lG@eD)DF@fjbWaZV867EmRFy8ombQZ5?FxB%M~31`6jUgh@RArjdO9g~=IDcr z^t#Tb8|6VOc4ltzKtv|S-pQFUKQ$|T&uD;tZPjL~$ECh?`nPjimM}e--wJ6q!dJiQ zq%mA;El&bklwd~}IUk~Iq3`BjmlJCL_5zRQ&1F-io#94{(7m~OUCH#jf?zEVmVzS3 z(XiKAV$)VqG{EprK~din;oV}x)u=)L`EjLD<+NWd>s&f@qPBxV>8}cRp6ypyN2`HI zO3f$r=>G)nmvrDZZdu8;RzPKU-g*nV5r&gKRZUPyAjYP`DC6We-v+3PO)T}X$WcWT zLJ(hMIw2>Kpy3UU!u+YXf5<$RNA!gX|g`QMv32At5Q<<+a+sb~RZP<*U`173pb2w@V0oQFW426^;HyzU4zRw7`1I4 zno`b8yEa^>8=14Ik+l@utgxI84LNvesbG}uIk>cQWlk*t>mUi=jz~Hnb?Xj=u#R=; z{aKT7*^(b_KL0t8>7QJ3*vNuft!|xho`G|7IH>tkcY25&4dI=iI)C6 z=s0;_!byZg7;*gOxx?bFr3n>WCn7}BSgDr&rlWgQ2vK)&#b0i{b(W7StB=Aakrv|Z zYF6p9S8c@2T^$pEhAK;Nc_g8HqPK+EtF-olc{X5c<)f9C45EjOnkPxuwIy2(JG!WB z?sCtL_4|Jn%UGKadd~NKedMRd-Pl|`n)FS9*`&a|5fQe@Ubn{8z7T_d_v=#c>DCM3 zkg%iW*}a1eDgE0&G=VfVT8&=PO=8g+B0yJLiNu6+K-h1U+fNUg_AUg{y|yxJu897< zkP3!vjLGS*YsL-nat8Q^Sn7VrQ1p#=@+6>J9X*_pO=sqQCM`;e7@ChMe3t$78l%*n zma_|YW%I#T9UV%+7y>A=QzLakBs@Clz-*8NDw1{NfQ^=_G~amPXRcy4Kb;0_hN|Z? zN?#T_-{CMvRiDfb@v5Gr%14rsLUrNcsv63lX`?fj-TUdp7h&8Y43r{Ii@(_4C%fZw z{%(!V!XQ4)x5Gp$cC7e4AYrQW5L0fMtBW(`j`0q8wAUa1e)t8}$@JdI$UmF2;ZeVy zLoEZ9vwHChLby1jW-F(tHC1S@;R5?Qdusj{WlpAjAepC5)-gI}+qagcCpODN+6= zGCRLI2^-{cQg){M;f!i`UO(L zmHV$ENl~c6IXJaoN@}Em=b&MKVc+%k-Eo3)c(}r`&qiVtjF5;{kfK z`-V?KWe}~2st5`R>x3h_9_mv`Kxk#oPd4a}Oy9?H7LDux*nqGW3B?kl2%rhWIHH|7i^tjx(Giy5jsaSlF zsjq8RSgd3x^c0|zHnq;vqQb;c<9u?yXpZFL;}#)$!VNcp>xs-! z6BeebVLt>C3Yx?hSf}%Y|D>iebS3@*&ele`eG^t-Hh218Gs|u2AO><$k%Dk;6jB$h z`J_&S;ANzQG+HwpMC(!Tae!Z_ZWN#H^Az_yuA5j+*`WZ(7j3Auj7Flu2V)P ze>Cdp&1pIKz32}67Fg$VI2}xYfkvKu27)3r-eXM2sA;&RV|^PVtkwEnJE_Q3^2E|d z1q~;bJIL>dxvt1G!_xihqcS$JbynZ;SGIsBgTS6{vU&xqVm z0=Tm#Fx_nnW-6oS#r6wHE(J;`+8!}F96Xbp3B?d6aE@R#KIZMoLktXUKoSvq~y zF_1Lav|5@GBwib7A18*0_0Oz|`6HZXv{Jjb8$vGAMeobq%3|e6`b->!M)$JX4tt7udC6hRH2;QfJTP+k7Y5 z6Z=%}Yf@_e%T(`FWh~$TjU*&QXu81TMsPiQ74gio$UYAXW#)J*yE4_LAtZdonLm91 z!@3S+8Y1@yNx5JqTu)Uqm&gH-($DjR&_smRdZIWrl30+BH1j?L*MDZAjJQ^%PU5df z#!X6j1Kkx4*FcezrE?)uBh%qpL)zqI!0h{ZB(MmfwSq@SD^B49u1CZm__&wQdt+Ax z@4ccgqbvyYFX;arFigoyC?olkeX_-dwWU`(&qeP_86RaG$Iw&JHnGS9Vx)vf1REgR`hX+I2_#Cn_tqa~S(AJue{Vzy;e|EtoFpGLo; zc>Qd+jB8Sy`D@eQI(W9Y*Vfg_-FW#T`{^D>XvhPtl0v)8bDNxrusU*)h9f*mBf2>b z3DXQGrhsms;|i1sAXRO?&#Z6+LtS6J_2CcWYl>V?IiMl(Pq6k0fl`k

we#65+s#C`FSz1 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 Y36(DNe|2sDKkWa&2L2_>z@wi0512HW%K!iX literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_vip_top_bg.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_vip_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..e24d2e819177359bfb7118883254f19b93b3bdaa GIT binary patch literal 73204 zcmd?Q_gfUfvo|`sq$Mv&az>JbC4;0T2SGp(LrZ_NK6Z2R9>;Xl~l$HNCl zWB4EJW%5W3hwX8g-|_#zw*LpV^YHo)eG-mF!PUk0KXv^l{O9e+p1VCZ#$6$}$O3o+ zj{q$|^*`^AyT=9h5&)1r0RX(T|H-q>27tO~0AQH@pFEx-0HBNlfZCD&$@?Ffc-VN^ z{MX~~aVglr0RRrm0f5{b0BA-5fW+dz%5cg5!W##!hy}-&JMM4RE+WsB;_4`of)I=If%{`a|aQ})$$MBVqrSS?fSYlpk}^(m{)b-d5&+Y`pm-u2bG z{&~goqEPhZ`;Wt9KjQ4GOR`>N*SzVNrpfQ~v(FxT&^E~8K=F|an-qMibTxa{5|@*s z-j(X=I>7U{_D|uSj5nzsMBCvF?;G3NOg@RDPwg(oc?1Xt5?}G7%=f*6Nh)l+4yTG? zE;FXCGp{~B>xrpJ5tGP$A(I_d3`@@*G9hi#xkH;F%*$gn#2`A3((pc2C7P+VOZDj< zej?Ug>-utM@#`c z@~$JwY}|b~25UbLwoEw8TabKRgv$xqNS>e1a&5cTWY=J|yMiDp)I4FB9|YFM11s^w(=Qn#4fhuSCVVO<2Ifg(KZ zAHcbiqtYHcDfY)r#kH10MLSN85g_}GCIhIMo^(s&$-`{J`v81uSZ@(1O$QxSI_3v4 z`ob8+{{mWK&yfUI4R7%4RnH&<@uEi2(5Z;YX$=)#DsTpzu$K(Z@S;TEJH@;d4Y@e6 zeF+Z~A)bj+k3jp`=DfwrfXBUp6Y{D_E`gR~ozgfJ@EO{ky{DpdrCNFZwD|ELBLd=e z(e~GCNL@uc68=D9Spio6AoMM#ZXi0?VDWV{@nblGpVqvwo^dn#6ym@B4T2l%m;O>q*@Xo<9CXFvQxTA!v5Ub3g~O*_d17C z!{Fd-r!Nia?+~;FfMEqZlMDvP7r>>eYdF*!9KzvT5-8Ot3xC_hv;Oqa(H%gGpZX6) z;Xl#$^uBj-qu}~`{@3;4@3k{Ruh|q2yg)zigPp3XmW$)(=amN5gkd`~&TH$fp;jl! zjs^o?q!x{`kX8!rvm*+@PeI=}$i)%=F=zjKSa=>rv=S)|JKZtfD{K-wtt-^(nJHfr zEf5U*hhM0CF}R~}A6(RTkb)uy5JhMJ$^f9zaDV{<5JsRt!~hVE0G{}S6Go7eB!MG1 zQ6L`JYz5lm9eAIG6@|MjYHA?@QYaAh>7#&L9Jo)+NW7F7^eYN&&zmz?8qX`?1jZ?d zkRykTAD#`*9Yc?z#S00kyTua;sqw<$Fee1g>X(9mpWqmr8Rd}x(m3(MRdDtc(4_@> zlYjxTv~Uo|7yyCb6RJ2l*&xEzZQl67X#r}mJ-`7A507^!-gzq#3AT?T1kwa7?tBtY zLv!%MJMusTP>YY2*`{oU-_sqDfa-6GD}(p$>Syl z=61gqB}8e}JK~*WdJeX1@EAbPfg`(5PZCDVAu$GI$Fsp5N>KK^_;)2Zoy2LtxGK{I z)yG{ncbv}cc_}MuD7*c`*PEd%bH%c8(%|szC8&qP`QzRpvVMz8Xc~Zr; z=dGHQu^@}!3G?evf{x?_V34yq1a!KPEH8 zE1^Y#t%rbtAVLjgWDLaO8jumf;~gLyB*=iMA5#Hn$=sk{>7Hzq0vt~OuGYnih8}Tv z1ZOSSA(}VkD+?aYT|7NWMnp*;NKaA@DCr}k=IT?)bOV2l6SftCf{Wr~?z|Sp9}ho( zy|zrUhw$@*B(ooAI|u?I3R1w|A)GWF7^GBx37ODQ6Yyx!@OYcYrtaelM=kS^GucDF z&2rUxc-#}@z^M*3SZ(kvmsT*EuOdwa59-}xJePQbdjHzONkH7`7xWL4;T&an5w*py zB95X_)G=H#J2A*$hM=TRPn(I>9-k+bY3!vuM0}WXpl+IYfO787(!3;Rw)wlk3zalc zd@>*Y=bPf?92@nnJL2l*=@GR>Iy4bv_%YfX+iaDU5QiW(MoF?O>isPC7{Bf}tlA1i zq}43{zLiXmJ!&pT3FvDxx)q7o$s#Lbb+UOda#E42<~TvW*p0@syg;Z@!!w-$CtoH8dz@K!=$xVj zcnNUB9-ch_W&}79X~4{LULF*+HU~g#Kb=1afZ_~8B~?49oualJd2`5MAl=k&W}_t4 zPQUoG$<+G*NMDxUN*;gzzo;)-G^!Q}3+bP@c*5aKnNHKJ-2x|gVx)zl%5UYDKyRUt zGa7Ap)XF`F`21waEu(wyqVj*mqPA+e?)S?LQQ9)8O8(a6dwL2_B2&IBV60oj&TC}m`I`|$KFw(YPlOllxa)Bn%ZNu8dZKi z2&Tn(oNf9}pooxtKjtJ45R!w#2|>6N%*6OFQ#COxvCN1X(9?yx#D8;4lr0{VdC0+| z8_!QlePvS@y>rYqgpU}-%YH5t7%4k0cc)0W#?H5Q^o}oUgNuBB`>D~LnEQU)r<}y6 zWoebfIG5mwV#C)PK)3iQYYWuWJ)Mm%xxI0XT0awCl~xM%PDrA%&I5vmTC7pO3SUez z3*!&fa^>2e(zz3JyYrI{A_ML(*ogd%{^l!L2hR9>r0!~2F%-YN|5oM;+kEgo;rXw< z8^aKb+ve7zzBkw*B({eAdVvxT6Bu@}*zs@q#XjW|VlS*&5jn!lV<8yVto8%*t;533 z56>=+g<<#G$(dds?$fa(Oxc&{c@BQiZQez2KnG@efNDe}7-jw)96@D)8El`weGl-@ za&X{I1tO45ABkY%+ZBM27e&S+0p%c%`uT2y%U6rG=sojmy7;s~o{|*~3EWs1&)ZX^ zo?$0jso57EL1r&N$`r@L^hmFGLZ6BQ@10LGhSO3s;k_+i8pNabWM)CTbpNQB>mK})QZ?Ez;zn0!LU~1* zK)ugOVjm7zFo85Te!lWn6oJ}oOBuPnz-Jo@cZzyXk;DUf!(+sk#H1ozrul?O!}SGI zTLQ;NK0j^--w#X{EG^G|u21p9b38H^NvVm885mwMYHR1bffEl@0<~iDD-{nEU@cd2LO2+fs1!L?D9Orh-lZbw=lf86M?sg2 zv7AMan&Ndm`QKARZ30c2J9{JBCCd}!Z0`9o)hW@uLJTfS*lr@^K;dmS5yt9fD!BE` z5qW%@!5*@AX511wL%HC+KYkXZ&q3%%VAi}lwOl2LU-?4a+}e=0$tX|^obC@a zPpX{G7={I3NtHpI4FQEQRO;p7dZJX6DZZZE#p=#@W?d^P8{9eh)G!%8+{XGYUFoNy zZ-%OnNLw=XqGmZlUI(vmy|eIe`dwGLHj*KppUGdmm1!&uGBxg58Pm&-jTxnX;pQ0s z@CoYGmc_VOMqDCzG8y-?J$=nJCk)t+LRu z4g}ktM09=8P&T36d883KHLFpex5@cl%A!+pnJB0)u1Gi;@w+WXli_U>=X!=_brc4q z*5_Ih+{>ivtHX3CN>q__qzWCUxECh7j=Ws(uPhjm^`JbbA`7KtN2yjbHk{6lyCJVHA-CD0qG3H}L`JkQ->FC)(4(5QglZTH2_@H_a6u(GCG6F=! zb5&`>@;>MvZFu|J|J^tK|49kjPLC10UN;gvNJY#5aFcnba-2>oj0~LoR`qIwl5|Qz zItd~oK~Q>zD(iX0pLtqYM;l&Nt=?zDmF%HguPNsPciw54Q8ulNt>TFiEikmuw0v4v zJIHUu98O@bcaS$n3z*9X)~455*tNZ|!`$`sy=Q05KKB@i9`#rrKavPRXn9QMdT&^t zZofLeSIE|KER>2*2=dTI$c_Rm36vBqVN%wuE0tMCCl6YD2kR)O^YY00z}4h^tTTt$ zG5wzPa#>eiQ(M-&C{7_Bu+hi>rw}wEf&-r{8V-r*)|xbkBZa@84+uD0>o9Xy3_O{* zS2Z89`6pMjIcR6m(z7o>-bLwb+5Z;RdecyN-HP0Ay{%FX_BlW8+Em+DIHyYr6P0H9 zjj}-BA`b%}V~-sT+V&cintZ_=_X{WyO=yET<(uQkiwOdQ+;SpOj@jyGL~vVYFE7Yi zo2p@$8uRM|&RxZ`*FDAq1^8%UwWm+t@Oi$Om9BO)D1>(U4m$fktg@bKJ~$r=Rt{Zn zF1+6Q$wH=4^KtSETNri(`_KLA$ohg0`^zjIdu)AUx3b<6U`42e?;oxqs>}vCCGv0e zuUxJQ3_37C2AxdAL5K)T2#XJo-@0248DNxeIwQx&@j%OW2ENeh!v=EJbEQ}Y`_n-# zy8ACn8>EFOeZ?mtmC&w!6U8kQ{`tgp0XxH+63W=FVCAbn%RTO2(i>BbN%)!Gb<0`ZF- zh>#<%u*J4b`n~-5)*MHo2w;{glXDPZL`a;Z{$3S)l`GA6_Qsj*0M2zn-16t(pi}Er zB#{wA|2LPtl9^`ZKc)*^iFgOoe>yCxkjEd`o6d&!n$FG-av#!oD1;sF`(JleT~Fc0 zbw=;R_-5Bx2X-e5V_`sdYOqH=f3 zRflhiObK+`iS%Qp1n(7+42iQ{jrv0a7#(<;HfS!j_+BNs`bWJdJA0p?+xerF10woG z6vB3NJ~q^-9Jt=Mce64!7kh_v@fGImANKMJ`)ji0_%yZ?d%d_v*k--J0^2OxA%qcb zKd`zuHb1n!I^L?fy^jBLXfzD4TkVghvWG2{HKtOy)iW;gf~95nYhSz=;6s_8IvB@a z(a`;2pmn6Q1tIUk88d~Zs%x-ymT`EgQ*N3)^Qi-L1;ZH>y< zKPL+y?siVUpu?@o)+=}9;@)kjau4<$_Rx`io~2T(JW^BzGw?So4WAxWdE4o)by#@2 z^0zP~2=T6DA$$zf<1e~S&!%+UnGt)om*Nr0kxo_JK$l%m6M=2$m_k0`73E@aze0&C z@I?Es-;yl)@hR*>1;6TzeD^#QOBtYhmBKvh(Wo@qbaAOwc>AYn{&q}$vY7@=4uHZ% zZ_?SXBav$sttSVckLg=l-lG*4Y|;V+vXwlPWpAr)*QjqFuq#|$>qBwkNjuxizdf6D zZ}D0`9z%K1Fu*mzkSPc_W+}!ckU1eJWPy|#)XmoYH%Z9u5Pek{Ipe3g-$`X_aO(f7 zKZR+#0VN^28LgtK@Kd(=q8l5!mKwTuz+466(pl=do-b@VqP%%6dNXfkMT%TX%#sYa z^Nct~`L;IFYkz|~<%YR6vVno zw18+y`7maO-rqO|?|o#R8`F$A+Woq+HE_LWulXz%xj+3t<_CfM9P&K(_P77-5%R)d zfqx%XkN@dBfSIghLCIrE`DRn<_6+HBvc_1na@=~pv4{*k8mjwJpS{psAKiJc|FvPO+4h==ZzV5yQ|>83dLqVJ$+M%H&QQQ&z}i>+RViwsn4s~<<5^!@c+?6RzS2At`nIGSe+O+AYmzQWS@Y*CMCdUuwRJy#}`gvdRVp;k8w`drO z6ukfW${)E}h@H;D+@_tihMil;D1t<=4F5m`3tS#c)@OhIC?B-d$hg1L){l22Qa-*M zN^J?sXzUi=5<$$WqNwf~>^d*O=$5$=kh=QFmEp-$Pvj4ee|~I|M)5~<6lCGC!?Jg zm>Dd#o?@+=f@vf-H!c_dTpR2)U3B5Pt!jr`lz`fxmT+t_bV*j|?nvOr7MJm_?1hE< z=&Qf;3W<9?t*+q4v;AR`VV5P8gnKvYM3_2>uk(B0tn_>66?m2`fj>2k{* zONu$4Gnj8Lyu1t~mn9E5AGHKA^&MH?p7LKzV)qjLt0J|Db0|gEk>_o>)*(K8AF5l` z2@Un!|Ncoa^YM3EiZL%Hk^V}1rl(ogh((SFHa~LO8dY^XoZMn7SrgNL@-2j*&C~yV zuFiP@m-)clFx35Kzj@^P@18=C2Yv6JQo}_scFQd6XgRn~H1y~@i3{19vdcRa;egXb zQNgQqOz=VWKRmFZ2ftF&5;Ev)NL1-(MlU3gqlV0^{4_dt@O7`f28@%wRx#hXNn+XN z%#5K<{#Ak9J=gF{Lo*MAT7$$m>2czXXT#n#Ryp8GYfte)0`no(z$)ly@}_vNIdom< zYQO7%PL@C@w3jzh!Gmz>#2Sh1Vh_E<2kMPD3M>b)=ew1KNH0F8cj)?P^|S+OJO!ra z{YZv9uP0o?n4Igo%SN4fE(70^`d9;Z`3@*k96N~=4dHAIT;FrYUKPwGsYWl$j+5q9 zbPCN5^cgDs$MrZ(oxd6^#7_9Gg8-m&@2W2t*=2wMHAYCFn-L2j3kvDh`hE86m7FuP zkf5@5Lbd3%zz}S1RoG%*z6VWoC#dcFn=XXgQkb-ulcLNWEj+`_6J1u32dC7EPexkR zcrH(0ma^a2bhp)Rm-iI#ysUm9Pe@3n0zVzRzl6upy~>+~vX@i!>WHSqV%eLnatoW! zw209BgP!3dd|*iS@+s*-G7QkNXoBlTTU?c6`v zhxJA9HU$_-I5$>iuqUD|H|*H0IpzHf7d(+Q_e%-uD^~+II_0yI6YFZyC&B(5XsN3P~))Y zhsiXMd1jC%ib%paWj-qg9Q$hYCM29 zKDR^bPu7E%lPDL+sJZ$#><8Axge`o1|n~}$-U~8aWMpFY;`x{$lBgqS|?;_xoc{|HNos$bQk)&mLv34=e=Z-yZ z9>Fd7TKcmCz{2XaKJqZwy8f)<@?3w(4dNgYQ0HI(%>(>E3eL z#phr1%8l<~WK4pt5TpodQXO9j#^bJl*bu--;+>aWV#15j8`0Ly4?;jno(5_szF4j1Yu?GZ|^$O&L-HdHs zVOl&7F5LLIEa^C#*E^VSJ`#xeH5i1)EtV59<4q&^#53~#V&W1)yZ`u8pL}YFV5b=Y zrVrZnF?vUBbR~+Fi1OX=)2HR3CF!HkKYDkJJ(jWb!?ILl(J>KfP?+25bdia~R1t#T z4T^9x)P_!;lVkTK+?y_qq!-R^w_9&JE!Y!p&r*>`@(x+!=J(Jl)&XOu$PT^{wn999 z7zd_V;U-l%#21gl2@ldm50KNjxZS0Bv0{q9U^>hdQh799<@fuXm3!NP!rRUi<~5NY zJGZ{VUIlT3$h+^reV%a0l62djMcA~+!qXfKzi>jPDm+SSk~t)w*B6cQr;mL0kr13M zdZy-?F#w&e_LyDzhdnH8+0SbAnhVD1IXRfp`m#%OzD2eUyT2w2ZbHh+3DqB0oiA-s zhIyk<3%FgOu&qChRSE&Xw~0^coWy_&tqebpm>db55U{uPrM`9_5WjiJ3~1&vh_IKQ)}N^)E~u7rUX_+z;xRaEV~#TmQ`BqFpW z7(kKa>BL+tDrrzKA%_}D#R$hI6Rsa8B}fYraQx$Gx%%rKvX8von6tj&D!;x`RK6_4 zT(6MV<8Rj(h?1TL9Vtv)Io@L2jhtY=QMr^~9x9(+4jo0#y5r0Wm|G4Er6w0*wWbai zgu!69)YGFb?{gCVzL>Oq1?HoCu|z~E#^W9I$&7$zY&*n7PdAX6gaY7x7=tQhrRB&| zeMJW%;hNV_C8M~qXwLX4J;X%IVnZI$PY&(|d#K0+UQbu9k9@HT4!{G@&Sz}5-Iy~8 z2caqQklz*%)oP6L>HLrL=DkQw0&*Ea<;%6)DkWJP??@798KC_$THDRAuVL8@#64Ri zjzZ-KaHAUNTukgu4q<0&R8nPJQ`_6Y0a5Rw8Vtnuhr>eYMu%m|w0OR9dsk*To_))f znh@qCP)jee76;p`B@{g1rh2tBusPr`7J0lvdCQ-BkQ;V6 z&mOSz<6KKAG?0L&k;?GKqM&ZZ`lv7QzT>~Ty}YoEA!Zjhz^j#5nmSwkYEGM}o(^E< zl(4bY=an~PSWv~3)`8C&LRJ$$M-rn-y_o`x583a2e#T7aYGNDEPvJScG!2z`2LCW4gT;02 z^Ie^wrTw?9+hNm~Q4xfnE6LQN==I_Ber_R=W;7u)>-FAVOJGpj_ebRs(Nu0I zlzziq!N*%7ZOF=tkNJ{c#?rA{L6Q1)af=nJ6ZeBK!V=%{uVjf>Kd4q6|4@f01cWTNzZ$dbk?m_Cq0HX?_wnH!sE# zUWltz2=e^0^{R5@=3uYO;ikJz=`zy2Njma#o5kar%Rc?`P)wFt>Ii=T1yk?jZeiGM znT)va2o^>=MJCU0OK@a?%^B*XH|w^er&q)43V)NFL4VIdzn@4-sM4 zDU~j_wobC#0U+RLw_`78J#y0P^yu$hZUr#2a-gTnO{lfyb0~qh@=^Z~kr@Q7kBHI( zMQEOUY9!X<0-GL2VapkN2m}YL!_=|{HtNxFfiHD6O27!?R2Io6$L%3DfqH^4QLPdz z+0DX%!J3$qNwa-qeJ@*O2+dz;9Wa;0*Tfmyg%iZWw|fNB%vrxG$Ax@ zAHs;jIS+>4ZH&g&BKEKUcKwIrg6rGDMI66_d&u=j|6Qfpi|(U=H3SRJFm<+`Cpup@ z)2l#$6?y;jhAcO?Wc7_;Ev9yEp0d_1he9qthv|naC=zLg6oSr%?7cVKW2f)9K((?x zPwS-MmCed@Rb02qp6DgW>xtX|w8}^MPd2gC;t|P7Wc-PCChgYI%yeAF_{Ht|i)7C$ zJX1U&I=2`PR}&{l3Ul>;m?V+ubd8n4T({C=tQCG@0RZhDu#7F3ZR}|~SkMIk;&0=a zgGC7-k`QR|JX^epr4$pE!S&~pSX$d=+u)vMf=*o*kD-Zk*V2Ql^SKg1gJqF`G!Rk(J z_B^_VLwRHXZ_$16*DV=nM3ngUkxo|~T2n)t;y{%kHuZ5$Ogyu_kJS{M2R|ta-5qyWrs>5H zECI6(z!|M3uF9aFt-{HKdM96d2rWtM^{i~IDnj1*y|f@hgzhKZ99KnyIht!xcRrJL zs`jMkj+&Uq%Tkw9Z&pOfUj|R_Jlt>1eGpZ|2Cr6W)4aWUWL-Z+Cq~b{M;42laJ9tr zKUgHGVv15^mE2fBejK7E;R1nmqJoNvVV!y>vqBCpN4OE*Ltf< zf!)O14jJsf!ltua>*tYS*wp!Ggiu^WyYkt^*ZB;3EkiYqtN6)z6SAT`JN=LMH3^-K zcmC)UQA*r}iE)9`9GH?wq;1GOg=rHM+yrTguMoTXD$@^vtwmh@a!N z3U!)w69N$->7xk#YIASUYmqF1 z>y48CB`QKCEf(4RAb?{L&mz-|6DzMyuq03fNF=o4lTzBUiLUh`V}AD+qcx+Mlc>f_ z)@ySfJXy(*c=)_Mlk;UEGXu*MR8R)0s{7Y*ikCg~YUN$IS(Wln+|(wYh_dzHpHx?l z>-ICz_z?x=Eo{{R#xX$>Gj7&x}*$C`k2YFyDDrK@YI&`|$?< z#%*A4=A%`Gp%KnSJkq0#p;QXY!vPYj%;Lzla9sb%EZ$XoT(fP(5aS!vm^jCGm1>}F zY8P{&J-4nR919MB*C|qoc3gz8FQgFc+9`ikV|Xp_&Zwm$M_20KtVw+X0f?KsIQuJ; zy*80}r+z`$!M2}wy@&x2ey*Ro*On2Rx=Vi?a(h8QD04sJU^}8}UOAcwq28Ba+{v~J zQ#}mq5;DD;*D=_8Ew1g&K*mTpA+7ds=%?yk(~xDA7s<j=RQ%3EBoZ$YdDn37O!8;@9|4dPO4D?aM&V zlxUd0%VoFgC>&V05X1cRCV8=;`=gvF9tQnC!F54$>kJ3EZ?2+Unv%_Fpqp z%oRPko>W-LiLRasg}z8))NC&OM;Kl)jnN8f{No)Izc! zwWSTlmksA56_4`j9`Gy_)nop}|A?1b;$@~6p((S`rv;jvE@Bkf?-$wT5>$g zblComaVYqTTtctEiy}s7`{fU&hlgh-!@|A=e+f4O&hAez{O$n?wtqF{re1w3NDU75 z3$tg|)aHX8&DgyB+$Mg7m%E@@G3?L40HYr8W8n(urRAva?xxaZp#*D=9v)X#aw8(%65Xp{C}t1-`y!Tn)piS$3nTMzo0w{0ns(KALZ^lzxs zx^fiH9&Pn2R$ER*%DwwZ&nG05gAPh-H&wNO zf^X25A(BJ^)I1{dXG3)sTJ+>m%zzeq0^zTgYLQ&s+ zzsJv10uGi8na|edwD8d}XhIbQ`G-s}YS-}N>|DB?51zL*vu?=f+f;zi%)TKOjuwfJ zPS(};bu*B~zaHLmSfx34^L2C~GI^eQy?eczS$mfPnDFYlx7C6d>u-yKbbTqY1L8#$ zT3h&CQrVT@98+)@tiTG)t#g*odR^shpa;4HryX@ZbZ<;yUU9DCU9O9Vw91c|`9GCs zl=^X$j`6-z{Xrn29~T9#oE2#jTyCNl~6}go1F=6q#q~AsChQ ziYZRWOitzP7Alw8d|5L}Yh~whHFFnkOZ=fk&Da=7-oMr$Ir&G)My0dlA4kuLuCEEP zNRPtOmJPRIH24D;jQ5nyRA?|H!lga6iY0t*?Tv>4N{vZgp%%2?w?y<&LJaPg|j&} z@z{%2a_=|G3VY4_v$e?&{HqmbNg_#-BkU!dJ+ z=I6Jkdq;$91jN#UFt8^14q$h`Pkvse>)vG67sRH_@E=PL zrD00F^chxEhxy%LnJuDu;xh51mh)$9T5Kx#C^^iashzW)shH5|%ROb0o_r__nu=#* zL(v1*V;C#?)Qurwmtn%JFaZDr7e8b4Q}szg1({y50T9h1-)A z%BzPb4SU`rubGhSpVPO^J7y5m5vz;>F*-EuhM$VHtQmI9VrYneT-AbP|GTO5FHp4c;UIFe@XSsv8pm*5SO#~$-t)hijx7a(zvdM>l-z!Zj|JfgO~CkyTnr+a zU)x^_V=Qx@x##;wU>{U)3+Pxq3h-@_)gr&o1f%f}**o%Q5#KJH2$%c05!Q2HZpS|K zdJ)|%(>iYa?pvv7ca2PGWjudssndFGP!)3vx1>^Cbn1<^SXc7Q`prXdT^=l@0zAuW zk(u@T1z*```Z+7clZjLOSGs>XItkU%xz1oD6bx}iMMjW_2%NXa0CF%dTMex+(YR1& z)$Ner#2&J3DH+V&tO}}c+LCr83O`oOb8GhFEB}ROnZ=KMCic%~ zEZ_g!)_LhO&4M>H=BVUQppxboYHa zM-zof(@5mj2sc$5@lS~sZ+`O8yxqsR@wG(?=8Lrwd0Jne671BeVS^T~Sq;wiax<}2OYO#;s-8t709ZlA57CjKm2<|^Am30!0!I|$1< zPtqdZ>?Z$(81w51L~g>0{@Ji4tbfWTX8lbqDJTi{+hG>W@u3!TGfxh<_OkzKe{u z7cwA%=DJCez0LFWs@EKhfaB(#A_xHx^tqcJ5m(=5cb_M%7a9flp0)EO1tI#GQ1JOn z+e|md(xZxtUx2bZoY$Zh<0)xBOWd9xQ96ZB zSfcy4s>@-G(;CLQLkedS74-B78-u2ifF+$bC~898&Ys7lfPM=3V6K{F&J2G@_qROg(CgZEAs1oz1L++r;Yt;>$&zVTw`LW2Wx-EP7ZR;Si9#T|>M5V|GE_CSx<$;Hj2 zGnx2UkfifhU6v@@J8oY$Iac|2AW)Jh>+YF9-OeG|h%g zS`ZV4AK(N=6Yo>%qA34y{o!#ctZBL5UTBDH$7{h?eeUzJp{y>oGPPYFRN+vc4(!HQ z*Uf8{4}ZTizni~1^%r}u^|x|4lqn-ILtysK3zgoQ`*2uom*xv0gSrkBq*|9Mh6T6i zwX+40xxc{A&NJBVRR9V2+6NOy)Ka30@gO5(=_#jtW$exKVJC`m4EO9V;ka*D{|Vyu z9X(?UA|;UFD|&5n4Xyzcfv9}i%dkW2HSNvYLYeg4i&axoF*onVcl7<5U2ApAgHx&9 zhH3RQx>6Z?A~0A_vaA$Ff?0FqGsNZ*q2T&*ZAqv!@0Z}34K!niCH?h7vBsagiX!jw zb03E{L`#+8VWvI%hy#?_)^`15ze(^Yd~ZLBl`OvWk6p2tJCN<{a{KFH>4iOVhRT7i z9UhOqxOe9b>0qsF^JtrpEUS)L$33NLF#dp9?-)}B-F5144}$&u&Rk5F@w&F^hftrW zcgBPR_7xu7zlYc3Blt-646O$_Mton5Feuc(2ER7ag#Q@cG_7&Vr`UgekEEF2cp5gX zL=p?{z^(^@uq?yAyPQ*Jk>)u?Z6vIjHwlc1HXjn0KF=%ucqD?)(}2fZ`ksyIB1K~+ zTaApiH-FNpCMJ3D;S`3!R&Mt9+oW5E2R_t1pBnUOg4T-lZp^=oPfeG}lZZe z)q9i@4%PJS$We%y(wi5cJ;bWogp_Tof6!1VjvR`Ae7IIZQ@*#m0qDlHm*P=;F8%3i z6rYhgmw%j+bN$X-08`@HTdQynZH?Kawn&RGg{ZrO}?%y)j&q6x)?2iDm?IxXRtmfQq?b@0x>T9M~B<;iI0Ir7;iTh>)*+*S~+TMi<{7+p!pnlB!V+ z_qNBxUq3EvYOLD8D#r;l`J3K-c%UsB_+!_VmI9zSUkfui5gy23u&n4pYoFzJ(XZw0 z5w#d*gK2@G`_6x&R{Ww_Tp&e+-bU+T`I9~JqCGo1BU`V=Q_~sjsIBVH3dj5a8iz~F|WefckCE{{bt!nUEP3kT@!0p`{^Aa zea0Yri14JS_UB)s!iLD2PeuleBTq$?)IMUSuk+5^Jrdj;1DE9XX@&k2fKtB?h^z>%voho ziVZ8$12P8TVvX)x7nx*Xd?^(M‰+!7LLzN3Z2-mnGYpPWj_+~3)r9x*vF;y%63 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_feedback.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_feedback.webp new file mode 100644 index 0000000000000000000000000000000000000000..53a9dd23106035fdde30c82de09523d3773b3688 GIT binary patch literal 1254 zcmWIYbaT7M!oU#j>J$(bU=hK^z`$St#MWTs>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9z}R45N=sv4__UmXfj5$YLHGg#16MRy4oKi|n*vZu2I#JQ zAWUb-VMt|AVDMzfV@PJu1G0>Ok!r|b28>~!_e=~7`ql^d1oR(iOiIySHBbD`4xtmQ z_8!0AaV4B;d+af3$+9Z5A0Jf>#Qz-J5^U6UZr|;LC50AYQ^nNsFE>B?y=DNKt zw|L^)CC1-suW!pOm0>@i_?G#(B$L_8R`!=YRkETNUmZDl1p5 z-DY+7tVHsz*{iY`LbXCev&zjqC$W@lVIR&lIr|RQgd zBQ#XYa|sg*gTaM{#uc8Q7(!O9y28N5!1HQb?%qWB;&0M?nT2wX`;&tXazVpvj?C*DVV1gZAE&b1_7uTP(ym@|3a<%8S|H%c5 zbAf>lMcR6Gh|S|G&2Acl`e4 zuJL*E&oBM9JW-+zhV14(*>UjL4E6bGv%e%)zx3~3mcIJxW$o~J>%#o?);ks+{cW?W z__@aY<55p;?LE^kZ~T6(=j*>8bU)wb-+#ID^~tEudwq!OHn`Y J|EatP0{{?{#L)l% literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_right.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_right.webp new file mode 100644 index 0000000000000000000000000000000000000000..7bbbb8932a2549c5a69cdbc6f747772b6cb0e71a GIT binary patch literal 704 zcmWIYbaUIm#J~{l>J$(bU=hK^z`$St#L8gg>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-be-p;R_55T+v`TAc4be3P33tpu6&c zFr6WXA(cUa!IL46A(=rB$T9*(sv(0JFou0j0Tt>iAK(zMH~jzE{y*0(v!cmf@4mBq zIAF)ez#z`RFk!;Qz(NJB1_7oHE=4;gNzn(2j2w&(M;RMbZ*E(~cKySngR<{l{`5Dj z%6ntJ=s(w;ZGp#1c>00HB7?Ud|1O!`c5l<0d6!LYxmlV;X6%hoTIZ|oIrpb((*GML z#qP&0dXxUr@7em3H|yuyxW19U75Vv_NUE*JVarpy;*YNk3R=9_D*d~B>g4=w$4sU3 c7Rk)|BEPBYZ?Jjo(&gQ=&%gWp{*MqN0EtATLI3~& literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_bg.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..4252589cfa4500153a51e4f37b5e0903ec276ca3 GIT binary patch literal 87996 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_up.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_my_wallet_top_up.webp new file mode 100644 index 0000000000000000000000000000000000000000..5b257c8d8aaf3414e35e82d78f3f64e251231e63 GIT binary patch literal 2378 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 LKyu!}8Iu73P;5H4 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_store_right_coin.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_store_right_coin.webp new file mode 100644 index 0000000000000000000000000000000000000000..1712038ad1faf5b8c339e78e98346090b484eb3d GIT binary patch literal 21840 zcmeFY_ghm<6fPQimEJoDQlu#;L`o=vG$9m`juGiS^xi=!0@5WwXcBtw0s=~v-lTVs z8ahGg+)SL0((IlFj5^7mu&@77AXXl3|5N%u z*4S28v;VX0l*s?F#sB+3k`LA%R@f#d*o_y8{d4R!(P3pe+y5yG{3pNvpR(+KvX7^m zC$oQpgsXS$BwX;G4@WxnnHQ09(ZvVV7kACek8t9aSq^7uXFCm`(Sh2 z%}o7iCTe8a+&AuQD6 zmClayh9l?STLQLH*OL6y)W|LrSsN5~Txyq2RF99N1IOl}j*Etk*0}+o8~5w@@k$&Y z$2}ye$a+S6k|NG=AapF*$$7C>q<`0GvC7$Q_79tB_QdV(181o^=fx^yGx~bnaH}c# z3{R|Ac!~S}9^L={^Z)OG|1bBz6)FXDY^fF;8N!{`r};^RU^hfP^sZztts&@M3@!HS zb~!HS+pg7VCGu`CNB*Q3$u=bKQX{$9Vklxx1YS&Kp}4vBVsWM8u+ZEt?G?C1xuo1 z*L`X6V`n@U`wKuG^#EH_n8u1MH=o%u)qUGy(P#<|M--7T%rzHC{eSbY-Hn$q$ zZ5~9>xZ{7So{Q}8I@$70pX|AmavU2xn~2LeVYZi*>A1THyqRt0m%3gYO&sy&%6oD z_FmR7U$e2xUg_N5=XL#SzrRUrul^Qzy4Z#mmPFH}%r2Ue|U zmWP~2oAF^et<_su57I52;mpIRoK|nw&tfKRT0C{Gfyb#kvAs_F@#vS|7ZxHP{YpWXSKw~Ds9p$xlvyKsG1zHm}@?OT_a9KAU{AI|!nSjYFn8GrY;hF^OZpalCRku|rh15mYu zEXnw3&bhK5!<^qdXV`gz2Xio$Pe*0532i<{15VcqGJ`)oG3VPU9N6Wt@H#@(sN5pY zO#BMhVZwHOdSaEtb^NG@s{HrO>ZyMJFV=2j z&Cgr|88zNo9vCg3o(1`v#FDXJSD0Oa6^@o5|VF zr|KIikCW+8qN(?C0iAu1`6c;0&T?b)rQ}S#6=Sav%uH`Ir%2==qZy#zU(1t!qfWoC zo>U(^Es;&OIPNg(pQ2*)sk%yWa5UM4a#r5TN z54(`-WFX&h$LkT6fUgI;@k{wYD%@7ma4rB@X*}Cg9zu$&GbHd;!(C8J<68@Fd3ZP5 z;*5RV->2#-AGz^}^#IgbA4A)=#;Npvac{&2IObORos=zVZ415I*TkMu8~&(>N`yhzLKQ_LIi$1z`@}i$CSD< zkaCg~+(L;6amOdPZg8d_09>k})NDFjKzJ-&IGkquJ>;uxWZBn3h7^2U03bj8q?$$u zpPmlTx2j9m{g0o-Jt_C1Lr9zGy1rYe5C_+REz$XO&2ZanNbC9a% zi4(UIobQ%t+pY!6X8%lhaD010@tpk=;Fz_S{9Rg9tpQk1R)dtVo}tDe;|k zgcsfDY1d?agIZ6>@Jn0(odOdsKmb1$_df2ELIfS|-P{B~cW9&Do?k_TfBJUGjvpL% zk~N`C7p|nh9cu=7;$Nb3aH0T<%vm^jab10W^6KB;x%zGOrF(L(YhcB0!{%1J@+~f2 zIE0Ck*JvOTK*8x2_1CKK`U);iY{fG(0$$J%y zVe5216qp$(Qmu4dRDkPGBgbEGl9R6EgX7+<O0q}I%(DXHIO{YX%pr(Bg&LRj% za>E5g;Ku?01ituD*i#O`{PYEJyZgwT)z_}yXJFS`&X}YnDT&?CxUojdM>x^z_##rW zZa_u>GNOodiSa!xW4JJzKnaNn14Zj}DfflIoJ^P!bKwECwlrW3e+VZ^DAC>buN&hL zvjV9!4h#+;f-{IH3@ZR}V1UqBrS@a%u7BFsQ<#>`IUN&}Y)~R_U;Oqrar&CVFp1S? zKR3AaZ<+>SaNqZ5F;6HxAaI!Y4kTZ=i0}fSN(jKG8^8mo=~4ky0Ccznh;8ca1?X8% zO6)-joPerG03N98S-}A3nug*cwqI)Z$a?$P0<~`{4ekZ~^J+@Ic4%82!pyQG$;U~F z3STod2oLEmMB*&qmqieiDX&5c#I%|GUKW!J@&iQp!I82(-26<%3^-vzs>a`AY9u4^&RuV7nAZx&&4 z6YX(mk9ZsYPywr=I~*=-m(21Gv5ha(sDSIhQZdZ~Fwste4n+Lhnz)b2yZz~kQJHbi zU|=((WG%P%GT5LCQ&P~SiiGy-ML)eQPPBGo$|*TL1^v^ssa|#ew}BUjvXzDBr_<{F z__F2M{(axSXF2M%)+ zpM1Azns@ux^^Sfn7h@74)mXxvFun_J%4Aku-t_|H?SkpCehvl&)SjDqslM@t|0}Nz#vwU4MrIR@I)s z1*+iuD3yi7VE{Th9436SRAr9hM3R80jq6u9K^WjNzs!n@w2qakQ=r|9#ZLE zg5Cc{G1OnpEs4~Fw9?b3&nNh(wCh&q_5^#uVnIkws@HS?;ck;b@xQxYFt1W`5jFt< zpaE{8cjE=t(#a8u!=!NGP#p5dfWKS#3RtaW6CR?%dGR1-SwG|;ugN2@T#iryCssl_ ztRSAvTqLv(CyiF+S@}WV!(3WGs3c*dtddBo1YMVMDL^pXBy!zl0bSSy!8mrEtd+a! z4~v7dLg(>Y`48aD23^m0^0WXAFn~4_pN*zJy7Dn8z2G1%iveOalv8WI3+jSP+39~KYT%PL*Ku= z#RUw4jQ}pLR1?g_+{WIAmM&ZvcvwAfa&qY@S>^Nvm0RdI?2IWryy8NN2BE;CF;PIo zyf-+wbpc-)gOS!#2?>pgo4Gb*ygl2b?=65oAnk?&uyctE9!h`%E}{xmh~+`3aB-_8 zpV_D6$`QxNIHGa}y}zX^fT??45*K%3JuK+%;V>nfN*iF>LwhALIr0=gjmt7ss;*yG zi!VNj1qVO`sM}AZpUW{25Q3y91tfK%t{sAJMW(LbmeIt*qj5<_zPN#@rAT~t3mHopOirFLD9{FVYVpiRNGKl>8BGo;z5O?!q_{n( zn7hgpZXPP3=KxG4LZr|NkgA9frJ95S@QJL{whU^>a;O}LS41N*r+J=ee$IIrv2PM( z>Y+3chEHJP{K)i|!Z?ai1zgD{D7u%C*dYzd3MS z!qjvAkq>;2TG!50dq*sx^iWa>l8Q$V1=hU!w{>WKQIy75F}@|>1F3VvZH)i+FifM1 z(aJ77A}aPJEM-UhrrY(rhZ0nS@dZm6d?2m_HP}UoL(^#qD`9Gx zhea<9nSs1pNqT}zW1Z$fhXG>dm=JmI6aLjHj?c4WwhocZPZ7$Q2mq;IC@xd(fO(>k zO1UnG7hse>Y#m~KNMIE;IrKpL0|7vZub~XZDiwTJdyq)<`k_`TF~Lh>A$&y@1+`Lw zB`yS&r~(NdpqIEFD$e#4I>4RJSxhm<@pcTeX1;zTV{^b~i)bcIXrYZI1@J1Byg3Q@ zlKLTUwxL9au&HE`8x3jdc)GfL9kYs-guP*^p|U-nj6nBvptDj$p9&Njya~T29*jpj zf587;r@$4eA?_S_lix8Xre%YlPh%>?i)%nEB!sI-WuUQuT@V-=(m%Owea8I+cu4m+ z1~yQfHIWdTf|g>e!dwJh-~V+TWd1DoTY#^Fu zmXym|N#tGa5@$YMxbi0ohp54wVa9K}5ddz0A`cyo8nFfhTy79QY*stz3{--Lk`9IO zAVS%~#g%%?l+1gI7W}Sa#EPwx>pljQh6xOnRCwO-vIU-V-dD!%248p;TIB@;6Gk1c zwF(z^U|*wqIijt}(EgLv{LAhV71@%H4#7hCKZ6j>h-&3V%GHZIB7k%g6$F&1e%M?HPX~9a3FDk8l30Umd4Se+GS&ama@WicH-scO189S~-YT z$W?vIh%jx=D{G2~(kwxxxd#9HJhl|lUq1JCM^1p|bH`RVKLSBa+$bIyO{0NOqgF!@ zD?~+_C`5&V9Sv$&KI+Ma>1sdZj!ch;e*I0b#tDU#lW-d|zw6~2@rlP*wa;%kT%(Zvod~UMNzKTf7qVs7h+b=o%Mq&Xfo6=_$ z*}q0o#7p+9B3nt$HBA2aW6U_RA@dh8{Py!OkYDBe=WmHpE{RgXOH)X{)3bcc&An9M z>D`0#Dm$D|F2$0VLy?$v7>xiieIu2Fh~xej`Umvk`X49$e1Sis2q-_Z_bht96-EW8 zqIi6Wtqeby3_H<5Mvow6Ws> zLd~yUxvt!MW6tl)(d3O9Gp__6J&WxvPcp>)N{5rLrxZ%74OoNgX_z(wthXc{AKS2* z6QtsO0zaLm!G}{khV=95O#HKwa}I$^S1f+&g@9^7qtTH06clIB`r)8ybEm)kQJ~1E ziX9?F-_L1bDgq*>J}jCzIA3h7F-&J8nbBR^aJUg{Wdzc<1nD_TD{~YTPbzWfd-&;O zx^ADUHg=??XSlE*qvI*Nc3rz}0s@ckS!Hqb9GDrm`3R^&;pub`{9Oa#P`aT{;w5Q7 z2DYtGaQRZT5*`8Zu%_lA9-UyS!6y&m#v-hTLFV;}D}G6jg>%yeqbVvfrh4tDqj}&| zBgX~`*xVY#n%dLJ+s(#5iVs57Dm-u$+3$;Vpwq>TB@hM3W`h8`ik&6!FCU z1EFK08E>$&vPpD<0mt@t1Ls6obJ>x4h_8(+>@L1!^?cXz9?t^Qwe|BXJ5DmxL|Zyc z=vV(A1F|KehBIRNP?MPwl@MY&QfUA^UGYnMqDF<k`TP$(DF@12bfj6AP>4y3ga(nB;{6cyie;@ZH)F{nYlU^<| zx*IIMVpIgxGQ$0$yTpW(TD-`psX|RGM5FLvXrP9K7|yV9y5i?AdpUTp#4mD&ICgv9 zA^d#Rvh<4k81W7Y<~PXnI+~eq?7EF|h}%)hEH1$95%$v46nQ3&2;1AbF?FP5e6*V} zt!Ta#=CQS8C(7?os%-u5*r%(mL-xf|RlZ^4-VnR$w-Rl=9}gw*;KWhyJby%Xlh8LB zUjF`TWS#X>!>8O#+W*<(HMlV^7$5h6BI!5;=A_Cfc0Ri4^yaz==1fd#H+vBXMk?DO zQgwBG5Dumlt6~gNtf?kKLP8GQR6-+sx4rW>DYO;OSC=#8<#&arf50ga4Qy)y$7Eh= z5eEmRsFDD&&JfE}3jWYkTDnFm0emGe8ICX;U`Rvx_a z!f?XCiU>p`v#Dz}TkzdOQ&-C8s~u#FlTVAR-3XrnG}wD&dxn^u-f2m>T9|geV}{d2 z#`pY;k5!3{h>eIK{Y8>$@&g+T5EF$D4G|iqDX3c&eu4e`hcDQ8Myvo3a?k}^dp;|F zY0Hu*VF?2TEq?7QY{@X0VYu`L*yV!-w6yc1y?oB@DjiIJb!>blRoGTEK|E)pa<{CI z(~_x9+~{PQEtDnXr*e=EBlU0-EwWa8Sh8TPzr4h{*$mav%!ySM5P%yCkj02A3TvLa za~JBFeNuY=^HqAa>Q?t3mbgZZgblYr0S;+u8Eydg@4Y8Y^Lv7F0npur10SWvqg%X@ z%XdanAC&UJ6bRYpwmL|zSq{R+8qHxF_xh|=J!hhW>$pMS{y|dzTBJu(dKxxvP(Z9l zvN-$-O6yk~O`;7NrO;`V#%IFICqq^eA8*0`gJ zrv>IGSp1j;Srka|hPrXMR0nuIuTyYXW^>Nc$BZFITwE(bOLnddy&8>_eupr15h5+b zeT}1z?FfOa@sg~`l2f#ouJdCywxAZ{u4>2XDy&Aq2CTwVIFvaeB&5m6nWk}mvR~R6 zF#s>DJp2Psu2OzgWRPwne?m>xaFw^ng#aoJl1bW#C5857!}pK$vr{Y&L*Q{2H4WkGBWtKFGsBUwdmMI ze*}c@cuQ9sq6E=n+%LYm;1y|aFk1*d@4Q46?$nWbNC!2wqb^^?aJn|FR9%JC?tj*a zzWialRqIBGuk_&MlCt@B65&xB5V(AEOXPKZ{P*INc|?eLm`4C#qwE40Tcuh$qzl-l z+S$SrQAFK~m|q{980nbH({YuPv#XbG>sqhzOmSxsc;@F$ zQL0-9j}jQL(-M$gC*P0MBa_B+BP4ymFQBLLJkN^;s{CL>B%P%x6WOhUdr zk&MGKVE_F3Ygv#8hg`tWa)9^MLi6!qr|HtaefUcCWq)Bqs2+cscxg2O6*2uY1FDZZ zPnZ6kDVYc*#s>Th%BL7rVxNwBv86cru2K4M=O7}YJ)l~S^LUxP@j!g z$hPOnE&nkjR@-;jbzQlrFL+6}mfMsMj`jhsEJdn1fW)G}^6%tA`|l;ag@_|fj1Y0R zZF=s6^ujeY+=)!-8u^w!^}U08r`;X=wyv^WZr;*Ns#`Vna(@Qrf90E_P4ZXxjEo-4 zmkm!mqe}!(2*A@#cx4L|T4~^#;{t9J&nUdgvix4#-6KDOcO9LeNX`4zxRCni*6HL8(QZZ-<-1~CoB^@d5o5--=PJqpz}bT z-q*d3*%?HRsFb$smbZUMP+;@Ig=l})N4pRx^Vb9Lk@6BFb}8sq(<~AvUr6(=ykXgm z$z*4!?=53h9ukk|j!WgXR{PXIG1lo<-Z?t~-3zo#29seiN1q|EUSE{xGzmnJ3cCi- z6VZSG~o!t6`sE&)1sF{Nh(80wDU={#vhVZg=g`^;!0LK8__kb0Rh_|LcT3BHjrNb6%J=9 zseZE|vV=%AX-HRZjnAhY-Y5d>$l~T}1GWvGg!BFC#QpQ|?Y%~B6nTva-l^0PLtle#9^_$eSFLvBllksj@25FB zj~0y^`!AcDgU2x_TJ#IHW%iD{%IlzWsjh>|OJ#J^A79@Z_n?MakZ~T?8az7Qrm*K+ z;P~BKc0a$178eE3E-@5vRYic5j`NSskW5n$uIV`(;oWGE%F{3jqPHM|G^i zHZf%U{bXpP3#&9!!MIeWKAr^MTeRs+Uw2EoOnj$1VJWpky3i%j`=2Bahbro^@U%ji zu!=xdTcG)VpPo;|`&14<=pf13n!+QctRMrj^`8S83$u&9fzGinI@aPA0ta=Q+Mr_q% zMdX6Y+C}88|5e5p!{gO)*_4S@%dW>OX21>$O^@}TD)z-}eT?~`FY>9h5veP2o2!5K(!9kw(mgdBho zbW!PeJioCWMklT+yFIWjY`AFxCLZb$?B&`v*xP=8*>U(6UF>OjTZv?pzgy$BHah-!ng za?$$t$y}ahl*T=5PD@4c$@63Gl zO!`=j%&2!?UbQ6miGQ%0n>lo|$0jHJiK{;9YWE3jk(8-8d)J;AuICu#_cpoItm^~C zkW8U$Pq!Nu-G?*ubaN+ypRlPRqJ}gpd`k*6Xf#barRQS9%^X@%4JatM_{nhvLj@?L za0`eVC0Vig6<1P^PgME`&y_7Nr^f~XwpTu5&g8HC4!uSz46b=aNIZ2WEZ%p#cndLI z;TUZUK$^@u5!vcIk6%7mZL4tyqQXG`YMb-qt{W|Ho2o z!e-{oy|Nn8s`4KkMRsghZ?sf%uD<*M3r6($AB$VpID*%gp)(X>NhQ1!@M)T_t$6j zi9tbru=WI00caftWuo8yTC7Myik!r+dL+g=9;kMq-6GS^P; z&Gpd*uasYba+%dcB)vvz%WWa!iI9un2Bz9uHfwW}uZ=I0Rq*MFC?yqv2&(@GsEE)4 z02yWIBLVyYytFfLcm9&`mt0y^3RMmSZ7G@1$wxSr^vF650$PQ%waIyn*VuH)HqHAT z<^TgUO|p@5uLGo`j!)L^j#qA$ZQMO(IedDRIQWWHgRK2+(2&}j;M%K}vMUHGKllD= zoAQW@^uLd9gS}cX69uMkNBkCs3z6sz+erpnU>jyDs$EKqJ)ZHnGk|Y|`!}gbqmm{m z^-Nnz2YNIirumA4!wGA~QGErR&E?!3I0aWQwfg z(c`O2(K*YUMqKB&lDAij zzL9Z%6}5IaiD+6wSGLb14;v4Y=^xDZiT(}gER1zXxy9n zO$_)LrX-b5x@HaZ&yNdHvbD9p>aJSQv^G!^RZoHrqX0sO{BO|fb1`DtyJY9kW3Ax| zrgRZ3dUaH6i8Ao{v;6N@8mm}dmKnoLQ!KlI!88dXs%L9WYjkwpI$LtItv99J5|p(( z;{obyxISw=ZuqyRgUvLOO6lUxX;>6&S`Mc(!rZM|^~!#mNs>0(`Q5EnVmE@FD-_&dcIK@24GFGaP zA|~3^{~&_Qeev~}tz)9j*Wqt%E6=pSCXG5JQhs)j3`F(ugmD?PV}dQ^TLrBa12DG1R4tvP;nb7 zzHZ;_s()jW>vBlBSOLjOi<=r;*6F%finzu`jM`KZRwxtLoqayPE9FSTgN~Mk2-W*%Y zuG(Pv0OVlWFC#C_L-|}Mf1068VRjEqY;uKw7tPse!toTR31$$aw%8M%uHV2W3@g}P z!>|1Eao8-R)GAi~SzKf&m_+2I0L@47LA)eY@|fiaL#Np`fih1CHU?*QbEn8mz*Na?~`tOks3{io%?C_S>N z`Ked+?ffYo@AQ290*gC4$;ut#8rHP@)(k8}CFfWJ#4L@MmQ0ocAxG;EkM`E0#>Rp- zFeg!6XKzCe6L#M|zkZdy7;$+%xV2uvTE1VW8O^N>({Ja91Ok;^C$8Y8Z|#{QFP*RN z(2hD?oo|k&=1>2wEEl^NlQZuFms>)n6QdLa25daRh)^ZHq3K|>E35qdr~UF(LjC9n zQwl?EV`=L*h8fhtV9jyas%(4(<)ng$mzgQ#G!UBDNEV7-#AbEK-rd{#Z>*HfSC*>- z#^eX02_rSw>0z%W^rOIlEWT~YCZw&^GPmj|aaY~m9%AHk4Z76`2!x{Ie6aX%*_Gmh zMwrrrgKu(j8pDtNn-FQ~uLBll<`gR%oO)y(bn;kciDs^}GIgEFY&FRIlG1;Oiex-r z=_&zz-}(N=vJga`hn-`bmt8^Ymgx2NQOa_nM5zt=nT*#RM`b~=s3IOCV!br`7gCF; zl$_y|#YES`6;KVNiR1Tdp^I>x8VSG4D#)(C+o^(_4FCO%mAW~F0}d;c=q1*LiJT*f zv%K+ml!uYK*q0hU7igZO0j4Qa82Y_SiCABwO9)?xMRH?_&S%r4;AHSa$qj87H47wK z$zpUAbTd6sefJE7DtXT7GK~@{-hYhF-xrDYDtq1&$y~_FcdD0-P7VY$W%ZuQmV+b* z3rCNSb7b3_ulHLo`!#3eBbl)tDB{W!dUc_j*)HpCpEaq6MHPwb#fz<_+7~Zk7`1be zWk&+X8|ozl@`3_D-Oovwq{7O!_N5 zW$a2J*(R(#t2v+4*TZK$z*A_+P(L-1gCd$+&0}L1gNYHHpVKEYZHAG(>$`qsi%OUu z5yH9-&wAK;WJ%@hYJlD}4#og46GL{s>GXC3Shtc0?jt=HfFP-0B<*8;5p{|~(9(dF zLn7tEW=F8xAfBE^l%epNotu(sFb&O6&hVB(JW_TeP7356vk62)~j zMd%)BX}?)~5AAe28FX}{R9@0mj8xA=5QLhzzcP;X~-Min~+?*SH zIy-pUbJM2uy4f7(7at_vL0|E@JY`J&WFZE5lMA}}xy9muAoHT$QT(f+^nly}K#s-Q z2^1h;D@h11-!|3^&;ZEjaEmv{t&3AwARD17nM5PoS%cdq0pI7U`GM^X@bp-gT=#!F zc<9S;6M-7xUeW83!-yas+vhI=+(@Svc}Am1Nux-lx3Sz%Nn?!4(qJJB04Ye1jl~8L zy3R0AYkkY7#u&|Pq(x~pkv+5cyL<|Pr2h9%j-Hq7(-8kh78_2j;;pb}8RkJNkvR@| z8}h%5-3^yC2^0r=c=)5q`}-g7wX~eyuU!ATlb9ObIoYwRt-AerzpdK=E47y9w$`OF zWNrYL8QiX}T%TRGub}_6?%v;hZUZwysx~^oMA=SKCWn5>Vk}{w&j>_lG|wD``w&8k zB$wX#trqr)*SD9vzlREoluGK4{^p2v#s&Fuz5@reaJrbL;R*fzn)_DBp|m(1?@h|sG0=`hTpd|7$Gu9};Xxm*AJ#;+0TDDNN<(@=Dj8EvLkUt&epV}XaL;Yw5J$+Q} z!a?rw#OTf9BPl%w_qmIO)W}Kk)?U4FpEoBO)*t%>l=*sPf?Pa-`q>u;6c%%*S5q1}5GD z@3;xb@dbYpM29lq5D2{c?w=J3mp1zy&oJXH*=lCO#`)mjVdJ!Y@C(#rA_k}5GB`rx z^z~Y@Z>jg$*7VoDQn+?zfMF`m0#&y#BO4b*yiiP=D2 zPOo101g%PeF77f?UTt;PdZw2IZRhamUmfs-uBBS@Fzr>?XTK?nWH<<@|Gr>ve2@*g8aR_uMALKNe zx8x{_ouK?$_Vd4wz0r_N80DkgUt3xn>yaL7N&P&D-Q6UiIDlt8!dNzmC{Ffo-%j^~ z%Rf$|M3+sa&E}0dZ@i!A!`_UPu9Wy|PaW8F*vg;^6AsjaatPy4Qgdy!fBS_#VIh^C zPcld(Z`|g#QUDNF8&FE!xIqmdP}2Ma-XFX`iG9Bm!=S&e-VG(Ri{paM^{`?X%AudAS82Z^gN0es9xdj0-IAqgxR7 z7hV)XN!R{r!QbyE<|5gJubMVCI^q#I>6{wa9Xw2u_WsK#_)#L8!4I0Q%HLjlcANBG zdJpdnBzia;Ga%(}q=@nLv=J%}B!yx=w->&({}Oa;_Wtd$E?$p`xQG=+wQOSfHI*Ff z@PZll6$2K?4^-u_yj9gDN|P1IxSWiQO=JT6k^dr=XBTH`jv1tME&2Je_pHE0CGf1w zIln5}df?%0tqf4kf0LPCs@#vF?clw>^=Hy$*m}O( zVSuGfmb`X=n2R*gD7Z%{GotMW4>l<1n?K#_W*vJ@)EpQ5sVdIJ^o>W^mHE=+-(^>V z-mxhTt5L=d2$fzQerN$}`TV-TJIvYNJ*j4FZdr^JBf~Hc|J5k}2-MrXcvhUjFEwKQ z9g`^VgS7NGF0blACYf{R*}e5xdE=MjuJE$q?`#PZ3xT!*U-jeg-3Y@XC5oO94?n}* zd}>5Lma(>*cN^E)dPC!U{vJ!9*i;7x?mh0(!Dtj19KPDdqOmqKMOpuL+sacs+WT#B!NaZ4rS40-@YTNhq z>@BA~Qm(nju=%Zn9>kR^;cyZ@(<18K;i#0&#z)zIW;vPJ3epi0hfj4ZIt?_{=q?*tnyyf=D}3Y;7%+;p#;AKO0=Z7ORe<7)t%5L>MyM#9otYL{>1 ztAmec+XLK>8HV@Qt~A;!zNmfL>umLw4{!{IO9^)rMrvxMP$CcSkHwtwT%AFkD&O8a z6n1}68rLK9eQ8_-05d3kYLHAHuI+D>VoE01_S?1vHa!e@6Zh_ko(Hw|hkOy&k(Kk2 zkP8&q>Ne&ssQ8u3g6*$kw7wd%w$7{S5Z@z@F6hzTTw<taw>Y{#1W8o3cdc|sJI z3lW+@`@A~I}}7WzE>g;atU8^{jwJm_0OI=t*liC2lPbFtHUlHj8La2l7Z zK}}scskCTY_b0fdVSrCF7#d8^fnEzV5Afm0t7AoSe81b%oVYkXx9z;D%<$&OlfB$o zk*Ll+>@ab&BB31_k5nDq@a#yc8^HSe(ZbLI z&bZ^2+wpR#Z*wnNTA}xDR!`nq(KHK>HA7o!7@qJ?pM6|@i<}QW|LkBX>~hQ={Le9N zDrdrkl;1{*v8~queX852BV_;caEHcW^He>Pwm`0Gr-Ur!U~pkGOLzUGViSdb-hHv=Q8Z*}!v59P>N0X|84uykn-Tso?^{6mW=2Ebfk0k0%!A z6ReSPt->MKAWRzOignc;xhIkD2JP@+_T*4`eF6l~m7~Zr<#)6H`AA@qog#b$Z`3w^=6>3M#XtrT>uwu|UO5DJKbc z2Xf&U1l;qK%D?Kv=&wmdUI3(^gk;TnSYocZ!YF!ob!8z0wYIV>5ohg-+Kz!n z(7}s0)*=n|lW2j`a4G@*X{C2c(qR#l!5HLuEe45fygUYW1KY1Jb%OSEFhxY1!Kx4V zLrv`^}x}YZ0uF z!_GMj`eDlOPWKe6C1&>3XfDT6AbR0d$cf-d-<aq8gWfih zVm}mT{Ut}T^3b%{g;lfkxaib-NbO|RlXz~vFHGrbpMuHJkUwp(*Hti%#5OOx`u$y= zCZ)&6`gYhrkbalWmPAN0lvVq~gh*Vlv9IuzXku;Vc;CfHus7^Zg`t!9#SHED% zG!JbLPUv@)1;*Z|(iJuz$Px}BY3D4053@M$T@#ams;=T>w8YnYtD`bK04Wxbxv&o*TS8b-H$l~ZZs`#XML7Bf?jnX3$W{Bz4qsf zGT@Ad!&T|L&xl2e^W5Q#lm45sPq7kA*kpuWCOsj($&ZqRjJ9wlpz=@>4VooxYJcIz z35gyYT-R%-7uIXv#dXn{GDv6;gYBLEDMgxeUCFFLq)VjXD~-H}pWaV?6>>Gg%Tt244@1u1w# zZjRT#VsbI-u9q9GnAZ>r?MUDZYJLZsnMpU|U7+pox?1Ns2d9(#(nErcijf$ixXl`G zKLxO3T}}l^-XtVYvP%wHu;9&_n8?uotM5kfFU2-KxJ1^DW3>^zVY>0G0{`8X@bTSU z^J3uj(B71oi29FkJp1;|T!J%H-78m4-;Ql5QPZRM=Dh(rxr?peFKaWpE;jf%eNlq} znYze!|5dENu|uZ`)1Qg0$1YYXRFc>PIAQD)BE_n9>ckL+2Uy3$GWwVMGqxC0SB}H) zax!upBD35No{QPWp?e~h?CQ#QMMnjH3#N|q2r!||$c?x89zCBEO|H6BsE?Iq$ ze2F>*4uGns^N$}oS+<9ykR9l0KQ1bwa(IKHKtw713M$*tuAkQ9S9(@b z2Yo4$s>~9xn^wba%uE3oFROaxcs&M;-+1yep|$Dya9DFI?mMr~(S0qIN&RN`GQU`b ztBy-o$K~CkrQgAPyY`&ph;_5~vVq6jk=RNHZFfThNV-DYMkFl*1A{}9-iY8RsgTwe zw*nbq8>z>tPB~*&tGPcNb6}#LR!pi|&9C1C#{L=!dtTOBzEky8|B%jfW=Unnvl)bR z9_7#8}=Lj@GuyGfWsq zbuzA2y6CY_m_P}=aC@2BtS306?6rXOtoZaAs?9EjzLi=68aPVEr=NK6Rg^SDxQf&1 zx|tRJZq*d&XhM%?e{C==uM0n@Acv-U;aP!Ok@P$gu>T}PuRyEaZ#Y3;$G`9aQe#wmKYt4U(82{p$P{ z+3sN2aimmwrH9wjTk~^oUFj*7O~$@G7bn_5nDpl0``2;j1QGAUpi1?mh=J|DW2-YO zmOzk&17&&RFf%EFR{YlMiSX3=tLhOQ+g^kXB_EptOS@FpImu7rB>$fXBR0i-TrXmd zo+zwhUMzn&LF<`bm% z8=8qBGPcPm?D5T*zw}dHQH%|cT%BKKkG0E2uV*!o38n|rTsjJ~dz#K(bT&1WAEOb7 zSw9H(>0~FWq~RmCFn7vT=KLIt?c%>i&N1CutlqeD8CQ~SJwT{u!Ld-2xaP_NQ7hp_ zx7}@z;reNap8_o3n_Fkh+zj9aV zW2|+ghfZ8%(}Pc*cWMP+P5esBlr_k0e}yNq2Axb}H>5ZIgMB1;vRa_g70;yzg ztK4U|-A$fvH>v(5+fxdr?55`C4nhS3YB@$WpL=nV=X`8>#tzG7e` zCxzm?jcaj2?%1IZ2lep#U)2Shab^6ZFeKmG{R$>XXlaPmGdn6HpeOq(U>+7y9WA}b z%^J&Alk1iuS`bCao*O?&TziJh*LW;I~|$ z56j-F(N}K`tR7mG>q-`F9I8n5QFHWi1|84rDwY)|B>hMQ)2<|b$&-BrlIv~SI`(`^ zeuD!880}5!`SJ3dj6dP9i74=3)RBCxiLxjb`yQHGkNWkJH{R{PH)}NZLt08Nq=`#X zA#jaQHf`v0%oCU~d8b&uTAGMMT~cx0xs8c6{mfYi#eo3^X~{)ze&}uhOqk3jopBMj z=?MDf{8X{fns`X$L-^&8&_c{KjL^(siHMdRG#?>j<9GB>^FLAKoa92@oG&9O@@-M3 z5P)(pNaK_r()MMm3a$AajE!ZlKM5t>9U}fes6KI(U_Xs7E|yB4+ZB(vjPZmZX?mRB zuDnA}RA$HAz2URCdP9D9JmZd8Wvm)NQHM39vWll60Bh!2AA2&c z9xodSE1ndB@Fi#!QNtgcmVD>nPSD}Z;=V>3=$e=sX?yk-uii*OsLXr12_X3VOql_K z1)C96PyrSr0JRHg?v9<|Q;Ct)cjCRI;?uNmgqI@lo1u_R1dl*ejt~lH!4k0qRKVP( zWSN!hg|iFM+Eh8l`v?Y-V-4{W)#QEW%@ddRwNc%?=5HS(J}1NV|TgD!9PYPg3^HJlMBQj#`Qk;2ywsgKSCILdqj3I0{acft%eS|nno zCUl*6zrXe*1T-s)^|=^ckOq9&*}lFU_M}870PAyh$WODY_jlN9+sQFM0w{kaq2{}| z^gg4@;T1kXekmvPd!U5aE5E1{UN%k~l4xKcr!iIzyIz;Da|S`W2_qy9Q{MafqKtJP zy;+;^p)_G67EdbLRFAhwPY2@@N&$qVVF><<{BX&5x!Xk>cN*68Rp0XnWvq5NVm?sd zdZ(kJWmageZV>;+5SQcX$_ogGts9Dnl>{bgFT9F&KZq#{o8&I5%cdu0Vg7azRCu?t z&4^r?-~Q0Rkg`x|({u*fUQv!SvndRkTjvHl!$oUz1xA%5gC&Kp7Bv^@p=n&10w(EP zx8XN9<|Fv=$8igb_s>($#GiB&IC7-oL(C^wb7VWTq5rDeb>F}qxChOFl!Tum6%&`x zY_O+4mc>2A8z$oSa@Z7JHxg4!_ip9>S$y4Iyh9&Wfw8}Z0tg%20XvSd7cNZqveWA4 zdLOc>l{?*)4-A#*3j*PSDo3J}vI4vUWA9y+Q+i_5w6RW%AIT=KY}P=fRI@s~7DIjI zKXU<`gLL!~Umq)PRI_v0eY8DkH5Gil?}mj1Mk9ZB_sVM4`#3qhHVXDt%xrylUO(`{^3uf4sZ2jP<+ ziKW~%?m8k#=DdLZkp~wA{t4jHcvKTAcLg_&M!conwbs8fRA*j!)?7v8(exUDZGrmp z^JOvZaMsCBhG<4T-EA+9n%~IKC-1Gl{FpOyP>QavU&DJRpZ= z&ixb3>`yJ0-9a~OJ(>4sfq6`bMD0F5`%lhHO<}EvpjmE>&f}(1R5J_Bp?>83!4)q^ckP!u zQRNd#H@D-hcjO|6ZjA_=X_$3hfO;mgW>MS;2&V}zzR4-Nw?7IiAaC9%O_x4sv$pny zuAg-w&p5C!__&-cb6b#@P<3}G#j6D3U3;VElAyVItGPPROc7fYj*0vHF_LP3+4Ww@ zOn|P~K{LOa<^*`XICZ|yBFAa8aL$gnN@R=cnm+7jA|PlKdx6stQ#@793=f?G(acZk%4IyprQ3m}e47*{HKZ;%1w~L)#meyIY*b^!;O!b!mTj)5q1I>XBX(z+03|)1V zgJPgEI;dy0kylfLJBROx6#@ZST--a)1~y@%AKJvwxg6EH*8`3Q=ODpWOhn*)Ra;?2 z3DGp?zTK>6Ij(QA&hN_V5Hs&ydY1a|nn;;t%_m^YPAyUVs-sp&p6B?0Q-h^JZYm0U z(p*GRy>6lNPEOVP=)y}p9cm@;cE-qA#lL_`ZlbcO zBQT+?eAu9Un*!{SF0O=<(@mCjXKU9fyA`t5}W zd3+}%M8EgTy}4k)2z(1gWt>x@+mI2{QPkBkwx$^V{-;faGTGpCn;l)zRmoB`dH^z9 zb*FtOpEm*P4j6YD{eCk-6R#@J-^H zh(%>H@?c$s>l77>NziG!uva^wMX`hoZ zXMPR$;erU0tdPx5AgN$dtJ_KybZ$fYHZ^5{l#|CU)b&j>8$OvxI z7kCkKi+C6sLFESh`C22A*auqptAW3yZlMSw&M8_;IzV#(8zz6^qhI&s0tkhB_~7g& z@0NmvBGQ!Km?wd+}Mm2;yAS{r*GHfefvVy$lXBLz4}kUrACOjjs|rA!rIyFHP)z*!IE7Wi`j`)o=wMD~K&pFky)!AhlEhkgpUpJ7 z25`+Z4#la{tEd+UI;`z>5AqcC53W2)TKxC3%(3vOYVjl7rnz_9hFEPQwR0~By?#of zk;1K!;v&@S7Z}}^UEet!t*SCHDCcwe#`d7w!XjKYW_R}B^Ta9fQzP#?rR{PQ|K4ODxtZ+q+t#?{p zzQKw%%M`?Ne3bdSRK~bV-_mBd+C(2ayeHv3)A)5ZW##x=UiO1tg?HH{{I-hvigtE( z8H0o9yju>gGF%$1dmJA>e!TOi;?&>H71{XzeLBo%mb0JQ`WLxMx;rBq?LJP`F6ojw zQv8yH%$g`jjs9EnYx|+^!>d6YEKi7|va(OI&+)wRB~|YXup<1{LI&0sgM))tM4$i6 z?PSjs!Ph@^%+7n6C&X2C8ZCIgMAm7f6nUYBsW_(XH&|IUDi|M&i4_^=G}>wF4ZK$v zk%AK-@k+=p85Df`g`7@J>~d!r8Jmpj^4v3{f;cXlaQVL#@_Y2*attY zvVu{^GsgDUHG&u|>pz1oSaCx;m8(Up+^t$yh4o*pVR-!DPXyNo3615~y?M3TK`#Gq zhri_dc4!!tHKLv#W%dDXsK=^fJc%5hr1Xq`WT17}-p$!Y)f6s`;iJ%h3LO^M7jIC! z&_Xay3=VcI?}pIr1r)|&kBA)p3=SGgOqdK(bhEn^+g0%YgT~6Mtz7^8$G)+3@w+Rs z4)N~ma{F$-#d%d{1y?#Txj4&gTfev8OSU@cjMCvQ$Psht<*b>f-<@5IwugE+ZFFIU ze8B3rOX&b)<5$xZF30!Zhg-1maTVp|idLdx=X&x?UK971%c56@8F9p3CT~RTO`C(F z1Dng^6z$aM?%?+KMtj#F?7stj7e5m?(`Z?9vOBor zU%^GEQ|qch=q5u{vgo553=EXK(^!Re1x|)ak%fP!`hSl9An+dq{)51O5cm%Q|3TnC z2>f4;KqNr#6oTr=;toIjV0nH1^WxYUVH7s7GU6t~j`i9?VAgv%I%RwgCnIl>xOY*LcODRyyp1)rxV|zP%9WjNcw&(#vKlHe{oKvaUehE|TVfpk z&2;Pw8h5N2GB^CZVxj?Fmv`3)!uE-E5~E`ga(cEI+TnxlkUK_LULoKsl80FR)9agE zs@o`?JhFV*^66WMR;-K@Z$$D_bgr_2)}JpmSL(gvq>IJO*L9O>|jS~hS@LaxlY)XSlGI~c0DRg z9yg3@u{3TCtK<0bv&{YaFuDNg#~K@eyq;K%T=uX8-|;?j5k!W{XlR2SfaByX#R>u4 zXWehIPLT-jF8|}Tl#8vJ&is&zD{lPKsPAJnSJY76)OD}Iq968o26)!pO+>TA#U9hN zzMa?`GPS$p>EdQLY~wpiVuO@rAqS+nKqG}DN|9v0ZiOg(&4}H^SqHbD9cI=P>Bt8@ z&y(-6^glfwU&n8DZJ&NpxWMAqGc3>WSJTDx#t2GpfAPj6N8!#$!2%rw^$Aw6usvp;*9zKyhpREa|&y(wTz!4fK)3w*A z7Iv{{vqXoxk2YDnvhz-QZ68V6E-Z)nHRJA0#H=lDg->(qGs6&m-h z9;+B^74E9sWKoZ_o`h(_H^l*tyRdrpCgjc=oO#d}^X=v+Ez+*RH7aAPyaf{f3mSi@W4|%;`R} zPQFg)tohn0@~-r=8*wm4CT8w;qyRlY!vZjkdNBc}04Jn**7q^Om)Sko>tqeCiSQ1q z@(O9$ec83&Z-Bq6}M9uDHs@Gyi@X{lom+fbJ25njdpbrkq(Pds~}S zQ@`&oB2I$N@_=BwG{gWsIVTHjr0_)tq?z*TG`kVfuZ%S|)_rP!a!N=0$W_i$ET7}t z64w`&cAkX4wzO>SzwwNGBcrFprcI%?9!6?~U6p-xO0@Aot7cpd86frb%Co z1_xkJckT8EMnU>&pl~9y@w02`WrAeq9b3!u??#wqn-4<6IQ{Zeh}N!aduU_{jhSfU zWv>nrF4QEcAk6w03mte)sln->UuS9+4D^6`Kvt!0-OomEI62+P1#>a(t>fMP z{OIg=;05$FH*8;L*{}2L`|2f&Lbx`(r=;b0T<3D?h@)B_i$%WtgV3ie?R1{dor_Kc zus_vw0j^P4lpAbtMVQx=Qe-fq@w4YnB0KbO4PKVf{d*9zh1lD5-l2I&v-Z9Jo*%2^ zx`3Oz{7JrVO-Y)$%PVXlNC`UUx%J4Ok5h95D10@;72~S)&>P@n8LPjD#8k1#(dVNQ z8=E>qSwL8Wy{m;L=w9%FGaM@_Pa>GvGxY6GeH;9!g)UR%2y0aH2Qfs%z-4fjw>c{X zrX=Uo-5|_YP6|eXil*=bUS@Y0Iq880hhtS&S*Ai($+0E!7QGPXcR{jK)D1+FId&g2c79@s zgRR=*f%5$G8=6=VD~6aiuQuJVyTaA(tzCg8fz7g+1-Y`E_rm4MI>r?52Ldr}K*pN^ z8v~44%q<{UK+u3YZ~mn3;cXe8~KFIy8T)z{~OwGdak;S zP+fbQd}aYM00>XKGjMZu!|Id6V1rQbw;z!H75*C``iUElZqq{wQkg^7N2>E*i21k$ z%bN1UuD1p;!vXsW)ZV;%%@o=^Y(Dg8#p_P%XELy=f88iZCF-e%QA5wNnNmqAEoo&B z)0hV+?iM*cLu`W?s7LkpBO?htx}hdVyinKm-Y@idO;@95%~HA*xOT<{JwZ@Fg7Ua_ zwuK5QH{~wK6$H>$O4HM@ygH$bSBoO$z4v#O^d{`#O5@fuP6|n*kuOUR8>&Q#p|&2u z#hb^wmzsMJJTS!R%g~T(#v+ZGJ;7k8&9(wpEbcXswjiPRQWqfAw6+O^K3) zDW}CV;|mSB#Tkp$?JL{xf2=~LrrSQtO|%~=_sCc#cS&}u<>X?j=8l!IMwtohSdpks zG}!tyBCgSZ7^>l|mB#?OTdc~gITEK3&ZV9ViAvm>rPSf|pN!xoPNv9xjMS3noR~RF zx4d-E4#O&(F3UF5slx&SC9FL2@HCd0YEdR56hcw8!Jyo3*(%ul^kpd7s2|SRa90&p2Z$wIW(p+rZhyuaiP+0yEQoyB zEB>l5Wjz!hPH!USg&9W*XVfzCX24YGGEz7x#96$5QfPSpMSTf*m0Ra!QZKZ~Qc~Tp z>aP{HI)$@6wLBZ|@?MkwIo!)Fmf&d7-Zs74+|_Ck>~}4C{|0?}(>bHSgJfB89?DzI zil*WYCXpH370fi8bn33w-z&cS_9g<8sIV5@Cs(Bxhm6puNHJ;;7<|Zhj$JLk(7~a) zK3@b7)?X2Hn13j42N^1ci#kd|oqvmkPr-LheFHUc7z;1NBB;ZmETgkm z+|Pu63u(yeZUCAR9j7LS!$`~P`oXTN2cajka0_f_BK zluyA?|2%!1CY;t(La2y}07@ZaPW*8ua8XTKCvtQq-@`W&!k(RlSjf5F7kw z26eIYE?UC*G?a)(e#bg>+F#|DHy;_UI`Trgr;hen z18Je{yXLpI=plUCO7z{7TDe3_(UVI|sYx$Gy5)fc zuJWp#x!c5Bst-UTGD?_?0{_YI{eT1`-d5*7LH`?9m|G1(vGPK3X< z_79k_5a$b68$EBlFMUI9OYuYLMb?!hZlp^XN6^Q95%f#{kZH3flsUSlIlwb)fAO$x zxps!sJ5yhgC~oo-FOP32ivO8atri4An4`7SEN^;E_!w~v_f`<4H5;X~$FEKj*;FnW zU#9LLGk%sQD#Crd8@J;R*YlL_JPU8Rtla+ImVoJ;8n*CF#KFIe1_7F%rHuBYBoT(36RHdwea8iKI?7c2Br^iuExP;KDGJM`qY+l~5D^w0AP{ zdHAuqS&H^$541rrO4$2vH4N%6&dE}6H-&!JtdKV#clI(7oRF6(Uk-dHBvIT{wn>)Z0dfx_N8gH`Hqm||@4558DO=eN|q z-VF%o^AjAa;$$!}TLZxL7uIvr|CRaIMotgvTQr(Ew|O~%@Qs0DQ{~=*r}+x!t5w^Q zy`Muif1RZLAx7YTDC8>q3M0}5*(hD7h^7G#*dEX0n!Dsr7TfZlPn(;Omh2D~ABTS% z5S190M5N2)#PFsiGLocHMZnrG<|Xfk4G~I-Y5)!efwQQL;wk60UMYJg8)kY?vq6~6 zn95qKp8Loy{HgTW(z!;3aeKw0Ul2{_vr7i(d6~I=ZS?un*6_0N7Oc@jy_U)2*hqeO zfG#Y_M@eo5sJDSr^uLlnTss|?u#^pv!;d!&*}C{)B7NVvCF;MTkXBljO`q|#{wtk6 zR9FoPugK-MW+qR%b;s68WHbO_Snk=oi?~Y26Em{;e3LrM~WBC zX8GLm=pdy4xr^UH9IfVeo@`DJqy70xTmAboV?JH;2WpTb(CXWa^IM!RQ&4vmgOlP@s49W)> z#GRs_lh9Pj6Z@8V%98alq{HoPRIm47QIh-Z&W>+V-sIayV7XASGiqoD#iLV ze>E%ca7)4WYCCL&Y<+JfKl0YXYdT-H#-jsd?vV*$sPa0x0>7bMX>;G*$w*~Z2NjyL zR_lE4%H2NcUAySZ$ED-&31Jsu?F;n@Xnai9VOP65ZVkVGdOYz>Smrcj9ECW^(V0JQ zK082itlE+OW$jN_BBcU`OCH7u^l@h_e|8X)4d6Ej(jGr*{Gx2E@yPzsp>urE2>suXOc#RaK% z-fK$Al~xPaIPb2&k%w7LC`&iL;N#PyM;slO1wKJXkCgpv?=&bC%?YnA9V}eza!DSH zdR?zvmJNxtpY&~_XF9ruf5kH6u{HaHlKJjfw@moL+UA4&juSIk-;9s^vm^=S->C@N z@L0EkUOF{j1>;YvUq+NcaLmbniwY`|L4GRG{uE_{s%uk*^HF+AK*|TBs}4a-;`#xR zwvN)%+TJBC0C`6FZI1qH9yOwIhpR#t<%BO3LXY(D z+jPSkf$6z2rscGl!qwZTDqqD4A*ph5s~g4fv>FCnKlp!>d>Al~B&Fy5czkcZgw&L` z;C`{{9M5}ere1E>N@7qSz1_#x(L)SYA@Ml(tEtU4-#KC!nN-PM z%i^0R%-Pare|8y446ZFn*FZ4uNW&S+GZOkIwq%2^CXeeaM}|YUR>m=Rv6$3Rs_6E% zj5d3Y!>D{SALsgL+f6&c{>H2k;g9@+AQc;7WASRx4L(+DY7k4+%43!rX7=)TT~hRm z0UB{>2aSsFN*VXktzeKBL;`h6SJFO^32xED<*TgBrB|<3>qj?^{~k4JEi}vGtvDrw~*B zjT6l7x`Nj+0@<{CAxXPhY~qK;UKF9RQRtKV9G2};;+iHIZofR=_eHxI*5A?ujo#=U z=T^DZewMwnelIs7Yxr%1pza^B(Mt7fVhWflKHc^DXOKVxulMv{&|hg&6bVa%!-xk7 zfxFVwd>fUD5dZbImri{CYm^em^~dHVB6PNQ^>G)vvv$se5@6IEt&O%d&TzBvKJo|} z4_(Y05K#y_KHsIf+~v$%R0}<&>e`OwxSC9oZ;|>fYn5wZE$d;-P5RB;ZzNR zxdP$gf;T0`zvN>Mqc=louWyEJ(ivXQ;ur0O=Sti?iBO#$zfh|oN0^h6{`Rdk9uTj= z2*FNbD=##UFOd%r3&nL5xufN$eaI4gE-osEL-(*@{d-rqr1=hHnkN^V_;z6~+o!LkhG@jlYKTMBX|ysx&kR}}B$~?^epIMV zld)AZkXWQ=R$Tprs#?4?&SwSj*0Q=5jr-Vr3z#@8!|kFI_r~-#T|=iLZhP0) zYgHza$y}q!oQhCBaIGK)9AOz^f1o+cf!ax&9AE1XJuO0C6j@%la)cgFUMC6)#<~e7 zXkbLW#d4Sk{)kZc0H3qGsbeN+sZjcFpMIx?f5g*0$b>4VEN2Ykqxadd74hhNf$Pf0 zEvpk$Y1+Al;qj!;^I*;ql;uzf>D3zvh}&TY8wdUQoiHlM!Qp%FHroS6;Twm3KNW;r z(B>$+F8{#I=Al7^O)|i#NSOq{(kldgykacFjuwzQ`7Zs4r0bPb1zflLWv5PcHTz4x zsQwp{nZ9>gO;A<(niVkHJ1}+F3lgpm4onh*54?w=+3%2>u3Nk^1G!FBqLT#-k|;JdB^)M^CH`n(R}qa}_?aE=83#b!Hn`T{H2 zG<0&EbhCkLbU&OM%;#WId^UM>c;Pwv7v+AjQKWG7KmmJKA=p-U%<4&lrsJe4p(BbF z+y*0sMAQc58sqJE@>(?19TaEyIfSG)V1zJ$Zg^IdGnl3!zSzL%?RC|dK3OO=_pvOi zkO5;>gOXn&DGdb1S6B4{ZtH3(Z-xQiJJ+zhKIz(JhT<27aYI{lB6qHj|9p{Sw{z=! zb+sglAvlVGsJzwXn-gmNFU0e<7CMiIw1?fsyd2wh@E1By4kU~LF29bK{OfbetCJ~i zCFN}%p2?gbfOA5rh%xwrQG5Ps-W@-XbQF#XVt7VJZ&E zzEfn+^_V_|K-OzRJ(QV9WE6#m)tpW##rcX24|HJq1wM8NA9``qYOu#h13jhw){}Qb zbptZ~^t8kbWjV8dx*vR=KN;M+vd6iu)?Ds|9Shz&e^;T{8QmkaGLJh)2b`gUIvYep zu+?xl``J#P$p>GN{10lA%j#Wb?`yMLmPSM23I|;;b;xvvo0b>$J+dzs+AL+g8-09n zsdRf6>1Yp3;#A6YpI)i1+p44AC?d#lQiFk>ZSkIP47co(<6RA-E=;V##Yc|M9f1-; z8EY>DV}0)kG9#qLoxcfY#3?x_f>I!{w(3AKq$tNOo0uL7dK6${uvPR&yYN(&40d0b zT0M!FqC~|*lcCg?Ng`F8?0H@oF$2jWzcTHqIV02yydK#q<5VyHMBM);gc8<%i&)oxvBj zJdSYc{`=HkVxQT0+9)I@QBEzq@Z6-kZNi#Oh}GHMvx|+h_Vl^4%U zOlZr636=>s&2*u{X(AJ%3|&ckNBLCe+3hTep&QR*Gi;5W+)RqH6vLl3IXJ%?7-Dkb zrk_anCc1&-@b7SH*Cl^0`%pqd9t_r26r%#hQ3cPh4TO&ndA{Y>n;zU@2x^!t+ui-F%-g`CHx zngpV*bAxW>VsVe$@aWmT#W&+MXGI*Jy5Q!`at{Ujl($oFa<10$-8VX14#zj^yD8@^Cj-G|7sFgr+UPN{KB5u{t zk8$}ococpqso&B+Hb?=-n$c}Fje5pV)=AA3O7}(2*Qr#%NEjqiZRTX=oE8Hsu2e(-Ve_?wdWQF z#CmyECX~;%C4{&Hh`8geH`Zzyb@^_$mZ$x(0sBq)ePb=kB_dY`hxc>RSiPcvXDKb} zKVN}q)#g20+6(*z~1Wbwf4)x%x>uCP!Psq16GuXQcSriZX`4B zUZNK3_qjJ1`=vu6OCj(wog+}^gl)H&1oU=$oK>*jLXP%QO0xcYo5PgfR*(jOacnwh zo?&0wVn_ClAnKyIG@$B=bmd@b?*heG{k1RVFXUSFoti4*G)-?d-u}R)3B)My3c;-M z)@D%JQZRKn_CixD`fWPBhMJp1#xbF!_Sx|t^}QfJZ*NTBD1JquISMv-bUQ!_bDufa z{TRQ)arXJ|@YM!$hP63KxPeS{dfak>k^TH$YCm--{^;x4wNBHRj{N1=-Q1**^V9L# zX`Q35q&AK`1Pal6WJKNUWEm_pQhIr~Rw)*IKEZ4|%+b-|f3$>GSnWU`{}CHPo8$K@ zans14u9F18xd|Ll$2v9YIXJ&}{^moMf2+?a($^0q`_Nmj{&|AqcopVQ(FmKc+FZ*B zkkh3_LSNq*gGABl0uU9Zj|Rb?7VI~8_@pUks`5UK{CxO1&i4C+Ky~UrJ=|niJ=M|d zSO&32^^D}LE%6XDgCwX&{d5|n&h97gi4dA6^cYZL^nqrUDPG$WIHY&Vqb>J z9Qfe`4(Tbvm05I29Z-!nKM(G4$d_Dp&<#l_T)Y-I-$&-(6}OD8nZLG7+VveLdRnIL zQ_INaJpwaWw32oQ0OoK9P)Tdn-cx^%wsa0mem_~K0-bHx8C|}6%O*$5?sY(Iu-fGj z0=tpcBM-k^Y_c%4=osncE^cI%%=l_jX6K42JaHTquCy~B0fS849x|J-itT=;k7iON zq9G@yXG;m+_;OLzM9FXL7|f%sD<_#{=So#SC z!&qNCeJ#Uk>WzusrZ|Hh#G=T)%)1`3OxO4p^_$PBF zZRmcF#9oN6Kp=iRDA?;dz~AHQ??EG*JJQ7{hYw0(E=WR29$sfUXiKyLPNsqZqqb5% zXHdt#kn4k^`yVnAa{I;5*Zcm)_*}=9%Ip10g{x5U#>*qCCV7L96Kg42SC?Gz(Nx=_ zA`?x5wZMnq=cF%DkvK>+c}>aw6ih=8@lJgvagPpG9-C9GDqfQlXK=%ZCoIn6g4*I) zq}s>_Qb@7_oQGoJ4u>#C^Xtb+rig+?uEKNEM}vg83BmS%%k5y2LU3&H9vfvRt9Ny- zjd0Up7+e|t>N0c4txI&So5=8}Dr_&n6n*`=@@llnZS(>9@~z~2*U<;be5o1jRAuVe z6er_&Vet)KCDEK#p+zu_(FllmB~l<9qUn>h$1t>qjXXcA_VU6VhL`2fk)r22arZgr z5Wkos^Qjd=FZW!_Otd8`5iE#`KCUE<9EfqFooaoCK3O0Dd>{=kR%aC^`Cwv^;HGS# zSLw?$KK*VxfbGG9zmSOsy4LD2fLUJ>C5G=U*p-4j(lp4NbqH) z&Sz9pUn5Oycb)N5gm8g8CwVKVxrYIO2sablS|FLqJNzlxh}HWd*H|*-FqM0aLjKj+ z@_K)8t@IQk%y9IMz)DUKP6#0Z0R)a_ zgb{KN$V2Li$&b{OdsK?H;7XgUJarYfmUY)gYF&;Fxnsh)NgTe*w^kp$PE=<}R-%W6 z!(NJusER=yGsD*l!gyn}lu}8}p{io4V%-cGPZ28LxUp^Kau#wk9p=INC$ZndPMYRe z6fVyC>XQ_(9!D+pvE!SqACgA3xDAX+$u+|XGhw!V?~TX&WtulqEUvh1u_*lJpCQ#Os*ws0OR-#Wi7)D=t1s`R1$?fh zy^(4-JqbEh;(Sl^fr^}%Edv&77jMS`rIB_}sxWt&IgzYX+YM4UvR$N8KvMgkPBi69 zw<#d}9!aZKeB_4|-2W+0G}_0+2_Z^u;{eDZ44Jenlp*Y&J?gSIH}_MJh+Vqh*YN43 z#q%coMA(&(QRr@65*Yj?Y|r`3zU%qX&4rNLAYjWxw~q@$)}NtlBV)+j4=C0YEA=vX zk0b+1kz54#yck4G&Pf3SMF2EuUrfU~$6apc(taZMdhr6O@&1$jN-azy9qGWDwe}=T zso%PgLy>&4;ghY#4tmt%-tDShw*lP>rJPqR8MUlAd^voAMA6)&Ha4;i_W6PB=VQms zPiCKwhluMHvt%d|F|sgqS05D@S#=yQ6H;tArOiA^03jCPa4<`p{<8m95&Q+a=JxQaDjcF-cn`$OV|dH+ zvp%FU(Xhu%Vxn$<$(r)xP0u^@Y_N!OQ7^?SF;Fh+IZXGEFY+b3jq?yS7F z0uv~hVwUnADBwNlo5POWDgIOb{&~XU!(z%-eOK+R>lSQc~ zGP`-fIe~NTY>q>wlh$scGTxVqtji^<#x=Ov_0aPltGySqr@I(tqyAn2qF7XNb@AO&(@q3A}Zt~%$4 zxFnEnB0cl>_&dbpd`dBFf6Jkd3?gUK2DcWZy5AQ!+mcWi?3WLa5Q7P3K9EKWqgF5H zHz+nGYy>g3#{6VY%f_@4LYkbApfo%FMg0w+E={1~{AET3>pi9qZ!3Xlm-U7X4~l33 z2by0}9r*`K{?5pu%a5-8*YmCC4QF^9bC)MY@|E|TW%y33T+YR$*+Afr2OMFe=N>-h zFl@=(U`Z_e<=&exb9cj7gj1}Asnuvzf^T(if@8>LZa)6p&n>ZRxCwqnk7*M^2fxrA z3SRt?=ezz*t;71yY?W>GQl%!C;OwbXeGDfafvA7H+d@pN0;g^rA%xX$k&i&ac__qz z@^Hhu{cGiClTQwpsCi+4_Ud2Khw71xP+;WI{T!X<5+`~8o3RF%3F98=#<#6+duS%| zQg+4IA4#8+u$08=Yl^8>^bssQ8}IlT+U*!a_$wI!f@M_1NWIbnBK^*;=3PeORDf{+ z(j$G8r~$TA<@Re&osKtWg*Jxr$g}yS>j?BQ(OB0B)vd6cI(|**AjXiQP@y&ABV)9i&D{4`lS!i90(^M)i3&uyRNWCe=v57xkKqkdi*z z7j#`X_L~a(_bTl>rnc=lejT4bl#_u;LWu4$v3LWc6+1hC;y58{KR}bFTu*JcTKeGy zl!RFG1_Y*B*@ICB**Wpa(d1c5gl?6R|VAXgLXU93-!s+cK>Ynny5^DZZQN zWqO`N+e(Ohy&}X_KUVONHGF;Sg{rIO;wbmNZG5rU694-8 z9LGHDg+C12@0<6U-;SzzA)8_7_A4QrhEoGz;3{EJjD>up1jy;V344C6N*e^h(_}P= zI=OxpVOGf4lKAWiOM>T2x~N9#-}ZN7bF03YxqMA}d^d$E3#rV>AqA?;01NbEJog5W zbwhSk{vWTHeZLA%`9HVKd{iYBhiz~bb?Z|aKSUqK64eAdn19J9komRLn#TW-If(1M zPqIb7`p(J|>l;`$$|v~oet0z4K%rJNE`9eC?K%TFXKM>U4Cy5?3ipT+*tpGcaE8bZ z^zc6x-s;3*<&a213hTaF5Ppi|x@SzMj+nlNSs&A;hAmYnHL7%7+d6#Ye{hD{GVfw) zz;sUtf_fMl!X1nwpH{5a-r21_KCeGK5DR|8)Q0eOup$2~)Dph<1|M)Ksc;>PS*yj( zUWO%|>Rdg(Yu`SlaCw54?m8<`2)wmVlS2^>8TJ2he z-Q^qwlaN6=#&+#nX z8;9K=iSiBy?tx$ym#yy-DrB~?MlVMS7a3@nJ=415`h1@z zvF{qF^@qsW%;Vkhzbtt#D6TBS9Ri;EqUGKi!ELN$kY(su#FymNyb5x3Yf z3ZPd)=@qlK`@E7m`+Y+4p#t)OHhvp>zZ_Z`CN2i=eCjSKjPy6(xI7yA7W8B<2)~B@ zgu~)73LV(@*o!9oP8Y`SdLG|3Q77qeLCCb^3Q%z?{r0)|%L2UMwBRl;;GH#!ZTp5= z9m^49U;M_mI=E~g(`D0QtgQwRbN`b`uXx{tkJ+Y8hT5nfw>Isbc#Rl8b=%qX>~bcw zYNAS6Wv#;D7Tfn=QWl4LVLnP@>Fm9J#Jm_cHtOT8H%Z7`!fxkSlW&f>M0`WF@Z3qEG zNi4*Ih(35Ud#f$fAE&Zh^nBMwikODe=nW|Dt-!xqKun1lXeE+e*sIII^(a0R8CXEll{X#9c?208+M(3U9F*is+p6P zLi~znPl@9RX&+?d@DwNNU!tsr8NK7eyVc97>wbj%cVA{BW#liO*}w3m zvq0eJiNiQ&-kaF0nW~#6v}t3uK?p_bG%s`ZsTwM}9Mi~Kwzq1)TK#~>yF~p*(gn_c z8)r{!18&u`y^Ru7?1c(P)TU7hZ<4>^!9zeG%DCIID`0@FJ|xJ$Ni_-E^lPTUeY(+R z$s+_pnT$F~s`EDWgv0X!0*>Z<+nW7qhB)M=)|(1ZE;@eN{UMG|AibglV@+Qyy<6)2 z^Gbaq*SlDwwqbPh*%`(t7BMsZyhU-Kje-A*x-gS|aoR`G_}4S6RljB~1`=H1efQmG z&95$2p6nUKyZ*V)sRjZi6SDwpB@J`YYR;2jrAYm?za0;%*K8!&E*)Kzz~uDoGD!m8 zZh|Ns9z^rISU?gSr`g%7IMBQ(yA9vmWyNF`76=psqCXAPfN9)Q_4l8|nba@aA!I(| zC~Hpo1@1lM1ptE!reWjhbSmNIg-EI=|B#vSo2z9vtyXBz;0j&=rU;@pZ-hbGG;r}ik>KU)M2UmN59EcLoCc3m7$ zhxT__5POgV;fIJ%W7Tfl8t{wNKAYn$&zJRkjq{n3drsBD?yATc;aD>S6Q>{vIBxQ+ zS)Hk9{Ne5Voi_gfuhv%C;Dh6d>j`_CAcOdga+8;Q{1Jsv{doQ8f6{M58~=HKPt!c_ zv>p5BB<FX}q;NmW{^e_$C;-6tyV>FZ;W9xCA)(qF ztz8mb0tqh{*K@4SS^YrSeKZL2nqlW?4?dsto4<_thSK#WQkNTYkBO*BOO|byg%esuA&@_h8`cIEGOJh*vjBW_Y+~w0{qys5;Sa64Poz zZ*C^CKclV6c*OefiG%l;RWvsQ1SrN*iN`CN&h3diG(%!5M|A^cylD1|2*2 zRkBQZq5S6_Q3-W;D}^VVA0H`mOxi5g%i{?N}RKB_F_h`7D>?0EJQtuTkqLf^N10`B>SfHyFB z=RirB@y&HH@D+Ug>8(uSGr=BrHu5-OP6y&{HAy2703b*>IZdnok$Iu@*5C`-vZ#^Q zpBUD~NCAC;XReLWrM5&4rCGb95^ucb<vOL2f3Mpf10sLsJm+1V)) z!2+G;t{0+Fn!;Z*!cSg;H4}!}4&4yW`&u?ls{Cx@yfW zzMj(6WH#+!ww`ok=g*uh)n?~=e)?fGvjOX6Kt$^oWxrjlbtn~O9a!-=SsF$8`qpnt zw&Cn#f*g?L&d(A_f!BA+AJe55>Jw&lfqrfg!?Sm3ubz4`I<{5p(ZQvqp(V+TBvD5+6XFA!-ml|KE8U#c|#-d&C zGpMk8d^a;qTywG$A1}-%g^w7s0%l-E<+TkK5#HYKq^k=~!mH#)R05NevB5zAgmdGm zvy|2mrd;Gr$hRQ;(YUu|BD-~C?*=1(g!vC@BVZ!0@K`R>3{)uMLGe4Lvw^3qX;)q+ zWc#|z{Ex7i-1V>J&da-awV|=Uoic@(o!1n)5WwWEtz#(xwcD`=Z$QZvf^etv+Rvy4 zj2qf@_H?9CNbTl#ezpuk-a|19L(cc~f0$X*d7rE()i*Mz_IOTCfS6->X88Nw%?Tpt za8}!S2RT(bT416&x-9x4+1Ga%o>3&-Dv6ui(F-Tmt03=xCHZ*V$#ev)z0*DyFjIWe zt>O6WL3~kPdvj};#~ZxWoY`P%ZvJZdY#uvp@rhx&v~COy^)xKH^RsC0zPE&&d3M5O zn(`9}mGJ&ZM!7Rxh}SGr)f(9s6Cs2?lnwgU_7Rzba0?5$^bdON2?#_O)UuMI`6P{~ zTZ`>^^`{1DuO}lCTP&avSQ(3K{8#t>6c|6HZ7F3f zLj;dYNG{awnI`HXD@26I%nC%_y|wlK4K42>%6P_9@>{XuDy+7Xa64A+m-NG%ieCb9=fulR_~%M{UYaQp&)#`StsKPa>yBpQ zqT__5c^VCT_`9)~ol($IT4p4YZ-$cdKiVmRE=1hPG}CyMB1qV-8A|`sOeEW}Fnxkz z>Q_g9MHV=C2D=6}J9xrY!PGoZwszXjv4+1#Jsm^5wvc-0yw=k+csIOTw%AlqGgY0! zE18g<{R0wfO&Ve5$wzi9tk%q!sM}}p`o2$r$Y^GUay3kXb!nyZg!_V_dU}Yqrn=0I zAHmprkFL*0l!NOQ_gqhwqq`6z3@kp;*sog5l7^1jIvKCf7h3C5%bx zOxz2c6TB~=jlQVw-^~;n;IR&d>cE}R?+tRt^b5g$GvmAZ+;pRxhHpH3`r6V68#Fn2 zn#STy(>u~!;lMKko1bsQK4@=m#bLD)AOf=D;|yo*tQO0f48s3&HWZ(}J^Ajh$=NJP)_c{TF_@!v+WDcVmto88>ZKmIbGaL4=J>Y-Bv z!4!K%A?k;^6$qm8w^ZBHJU3{w&@`CC4T@O|%hmPj3 zT6uO9I(RL|P6-Mk+a!b*w4jwY{v3%To`0(40tGaDQ{ixZlJD{>RgrD*|6%DX!=h@x zug?r!Lr6;uDGZIYfI}%EH4Nz>B{-mTqrlKgOAH7q-HkLz3P{P&B?=M}0xF?^zAa+<5hrO2tbqu7T$u(FJQfNiGMv$#~EC}{$n4PRmB^+Mke1G8g zbcRM^gyV=*E4z^mkfo>CTf|`;R;J{i9%`%=^e352nNV33scZxlo~TT<-1Y7V;9RCw zLYj92qm3~m8pTC8#UQdX!zWq;1#Y2TWbnK zEqczcW2+@u=q5j{4X=sMq;{W8vj}~70?4#EwseHna~MXuu{>72{x%oP0sPu~n&~nn zol3v@psv^@)(P>u72BovnKyGmp(ux(n3we)r-}zLu+9LGv-4M0V}TYcSWA|krH7UH z*oZKT&$4rKzE1Nf8v|s?u0F%*@f$P)7QF)}Im5rc>*Bi`@jIAMG zFMS`#wal$eO28Z}^+jO1b}17&?^c{B+8{c*OkAswq!ejgApx+WZg{-#wpJxPns^B3 zqdfoh&mXAqxPR!s>6*}6xi^XCGp^&+aL*&#Q;;C=0wVuv4k0z`l5}uvA?2MT71+i8 z?}p@Xamw`iUoF|QUaM@^S*Srl=7`sYM?Gsy-=(e#AbT$c&rj&)*M~c~k7vml*v*O{ zZZ-*}IVoBu+*qy$>11>bqJ0BAh85M~LA@_Eb4HO|;b37_MoP|t^j-neM}y+ij}wcR z(~YiQg-zFyu=W2!5=<)M>*OrBeCag4UZrZhhN5mFDm+i4H1CeJBZZy?Y>arso((KZ z_-4RCn#fM=Wn}-vp{|(YJ*t@2NL}-9z9XK{vy!z z+^0HZoX9e$b_$uOfL6J2EUJk?SC+r(E=F}2g#zojN(e?Ze(2_xnEs=tyXFwCLX+ac zP6(2eM~9MvOD)4=sWN;QAnpR&hnt*oCc+@bB-4)`e&ds|qb5*GG9AqZN{gLDzt;yU zw6$M6+45saB9jqxC!9$O@2FNdnWW+l)&&Qk6=W5^Z0jnsOoGZ@R zlM@V$tP019&Ku+}*0QMXUbaZrzxs*I0BL!&f$$k^SzT>Z`8=1yQ>@P+kjyW9&cDEHBi+^bgEx2y@+e5yo%9`0{I?X+?BV?!B*WUE{5-VjUS==eMj!VXr ze+%dlbw(zC zqX4X>dInU>?AK44wiRgdXK%dNw4)sb0W7k(>LZJ?C~3uRxF*(R($#7X735~4Z*wWG zSvPUmh^UwYDs%t?;$b2h(0ze|Y7%c!64#@#5OCB>JdLK-zjb6nfy*VzO)Ha;=Stn^ z(d<^w&-(J%b<$qdf;(y7?e=cF^Hb$m0)|H-j9KHgV*bxea_=BvS8VTY{u^4eDTDxk z1bXZmJwR!guQ=OFQYgSIN)EsQb%}94TkUO^^S-f}xZT}H7u3~JPgkj{jp7Yo*i@^j zqVhm-78vy4Se`Ni0NYrR*mT9rBxIgi1dP2w)Q*CQUYiPttZ04s0*n^k!SyT*&Ar?( zijQ8<{OlquD61SnrH_^{{t;Zk!T`c>ST{`?AI8`WJ@g>#PMYltv~jHHON8=tWu20P zH@ZBTpM*Ra(L*%2I97w7;^{aw~R_ zrx|NtBdh(%3zuNw@<$O{)hc27NgJk5eC$Vht5_wG^TTQt@xN1b%Qj!}r%y(Qf76n` zZSm>uP}IT}sV1L(t#kTrzVA^tiH^Jl02m>S=Lj*N+|1R#r7h(9=9yDhCIgkimNv!6 zoe_b#G>r|md@nCzWTJXAM?VSN90(J{l~x>+h!Z@tYHcPM%I@5w(2ZcGGb-1X1=S?$ zSn-J)gl^)8mRon^t-gshM0N@)#Ww2j%HO5vA;{(%sj1@g?bu{+IQ~LP+M-w|*CIw? z)XWL4pI;9L06dOD#-iRUdp1A%yq8X%V83kysG?$1aYL^HW)^wi6kKB(Wdj_m5|q-f zmWb=%VWfk0N`5B7xhy^q$koJ8GFb6#ZG#Yhi- z(-2%a-#yv*7Uz?}0zooC@GoZe7e^UZ$Q6))?T&R{IB!!oQN!YikN4@1nbb$BsbxT6 zydYQ-Lsn2WykuUQi5|k??|PrMZ9GRIOpF@R_EYa@+i0*TVF|U2V)~sr^gYtB2|LT~ zhitiFFW%y|?Ad&XYKfPz1PEzcx|9`(Mn(k=fKpcUbJKxydm}!b+Q=f&bQeGrRBPbf z%#6H{B-;UhcXF=2UNt8iF2@z_i+AqJJ|4HKmylPnd09n~f6Y*pLWZK}y*Bi@v}^ur z3ah>F$)?W78WC>RIN&Ez*nCn(%IKIBASMHdDUf^87_iv+tSSPb0}k8X^?zUx*>(#* zBX)ghL>Zl5X&0z!DSp@0ngBr(QR8caR*v(J2@^<>T`pzYFdT$u>jAR;(kJ-%+vcW| zznlP5gGNz9`t^@JSA&E??A2aywX zD1b#l;L_jb56=Aj1Fdv&Az6d#buZafa0+?m$-F!PCNcfba;N9P5~pA019n@Gs*DmHT~>A9tKKrtp13eb30es9knY5y+q zc4OfMJ$!Uxnl*tnu|9Hg@4sdaZ0Yi=YrfcQF+f`g8CzLf>>Q;*NP8VWCc0d3l0}k+ z<})P#(A?`{?D#R+2`G4D2>08_^1k?B{qIKu1`6boWc5a3=)W;I6KXZf6YyaA<)Mfq z)+y`NU|19|djyuh0KX1YKfi8NuSoQ6x4+`rd*-Pk{Up<@ytL7Ee)4;gvRuZedYS@) zsr~_u>dolX9r^a)u3Js6t(5@3wu$qnj(g53nL>6lI0#fdJ~j6~GfR>oSIq-OeM%$V z9p?8$^w&fx8V$Il822<-O2G0>t+~4V^_rQvT+IN7Rc~13M3l~VSz03i+d^pC`+c_g z``0_aIy*Mh9bFmOXcOvUZP_ib-bmI6R)cLIVIKwe)D@n>jYZm%iCmZb-uu086GU>L zM+-A}%KmHHeb7}xO3UG%&+q(fCL?}4rgV*$!n%}RLx97|&+EVBqJ*N+n*gr_os>v) zA5lYFtLPvqVYWb1%i;dbiH2V52CyDyayMc3CIXEn_~I?$mCG!RH{eT7ES zvMjOqybCAx5d#?=BuZpsU`^MhLA@12BRs6QJ=-6otnDp4q5Hx~3<&_J03;|9a_OgF z{zYi&b@2|WfBRMx9|nNJ<+gdNmg;(zh%|aS@}vMx&UyoC=6GxWmd-_tN>JVHTLJg8 z*o7S=(|_S6aI0{3@z&f&iFEUre348%lE{lE=EVBG*wSxmYd&*}UWV#0QX25e1<;G) z!D)#9Xq>2EdZX>48IOEKT!fnSHqQrRa$-Q&R-wvz+k`nm zd*L+Wg?>jV^jwHM`Q@}kNt^5IUtg{kY9jWJQLGu?pwC-#UfnN8D>5i2BX&G6dBGHy zccA$U23v?WiHs5)S-y~!wu7IsS62EVfuTRcjg4U7m`d_ zpavC2*RVBtPl}b#6r!_@u!Bk$vG{Qbv`mTy66gzSL@>ru40)IcI=H4h9bVTIUyB|s z5Ngq))t(sJahgbmBE$KGk=j4fKfl?LzH9}DeLtFyJ72o5HsbxkFM4Caxe+}_ zOoyw~1gb%atfNJAkth){jS}W1IBCKb=l0D&#oxL$MB?Yn9ffi1c*aM)eC0mUw_8`j z5fZiNa$P1o;km6^oOsi6Jelb073WOk^nu5%)M`EM1o*`AY22 zyZySwd17nR^p?c%rXVE|@h!R|;w&@(ni-`{MhlWM@BLmm`-!a+AJt+2TjmIHXUlkB z)=DTbqD-{(u@-f|$M;U>k(s`@693(i1b-K=TG0slwQB<i>puaQJe z&Kx26=7G*b4m48OXy!M+Lki}R)bh5_s=kZQwv(kxer}I@m>K0$z3sl3u{MbDcmVg( zhN{*a|3{vr;ScJjns-p9TVH=%7x839Ptk!}S1&(TcGGEr` z!XCs-3=?yd1kYIuov;xD#^P4he&Y{5gI~uNWkdFC`Uw*j10~W*{kD;gBVimKLo;Xj zosoKqzVLfo4TubY7`oog-`huD2BYcsiUU|N8Ss%Z4b=VK#A~Wx` zGewD{^ah`7+1-@KGpnV~Mhdi3_|;;C4Zl+)Nt;Fn=SviaVb`1%X{Ri#?vufFS{F7p zP31#L9*iliTfG#eAO+&n>bT4+4qyJcP7lsN02*TQGSK2mM(!os$J5RX4ceUD}vPI2HkCVqf5Cwhp7luvXc z#pt`D5u0y=eqt%F>}w-f6@Jf8whBK?Pl9KPMdI1?_@Ja(A|>o&jCjDKtf7uQlZk4b zGRTWWWv2eT@kEW`8wUi)g=VM820wk5yvgil^O(s@Pi76D^@DOe^ z|Lx%x@^y#J{aR?1wx8~=(zH*b1mdq6F^<_$xkhK&QLwf#eh05g>X&4ZXnw$g^u=V; z;8>a-jxL|aRkzjKb=1%ncfv6fPMki|v9;O1|E-sV4n?FNTS~vor)wLZXUSDLo+P)X zmKv34abI})TkA(tzA*?noE6YU(};$DDvCQUa>bXFaDP^Q>Y2JI_uAGnOL(9plWX`d zYlM_21daw{VkLaKMLUw3U5rJvakue7L-yg6Uo=O#TNP1%0*w8)pJfwW$7?-pNS-dKK~;VMZD`aa17{g#KM z$&r(v*H27ug%-qeTD&UI24R4gsEX54>u8OeuHUuN8j01R&oPqaw$@eSNwbH>&CGB* zd_ED>Tc|Pq#e^|oly~N&k$wGI60!3;h2WE(vA9S6%U)I-cCZm?c9y9=Nk!^D9#oVJ zJi`kfgBhk*>}B#wzxytQ%5@3<$Td*T_0bL$wxu^}@>8-wW^~aO%9B>0O)2sSN4gG9 zb1CU?$`6byrfPng_7^}~lld?n!j$?}K(AAJRTNnQCfG-(k>JRT>RT6de4VYdvifD_ zw26D=wfX)2gMSxSzHwLKB9Arqhj|%!8IA9&7{?v0wi>}BG%sw=OO02 zS)#}WWx1l(-(FIWf)&{6=r{o&*=#C5n-;co-CSEgR(r=18cbzCYxey{_I7R+l@+}- z8F^z`EQG0_qTxn0i+}T*=I`Tj+`*Uj93?~i-i7Q1JWjXt|FFU)?y2#C|92P%0bjkD zLiO?l9i`V)Wj3ME(b4?;maLpN|LD zbe-AUEOytCrGjfHHKt^g7ozj_5=NYgi|tMF^B9o~S+SD?Q-17O&ax6X_g9NyYB=u1;X^{=!3-@)g}ToX+v0;%NScm@3K708H9zx!-=M|1Oe zXTt`VC-mDxC{vF_jm+RJr33Jue#Sw}lm&$uPa0xblZBh(5mF5fZ3WPLwT|~{e%Ne; zcg&d0((64g-`~n*3L8KY!0cH|tz#no0tuw|Y7akH`OIt>m9@mw0Ws@ zc!uf4GV)%Lq0=S{0bsS4?q^T~YYyfOSEH|5g>-s>3zFz16O??ksU|jqp;vwKT5ps4 z_}e|zfB)R(x$aPeqovqKj*N=WrIpgrRGifS82HH=it8@o>o_`Ctl)HYTe0irluO{E ze<~H=liJ5gEYyH3>lsNgj&-Lt#f}V_+Eem9Ok>6ZfKNqZE{8{q&ZoBIf|mS!wSUT! zgQAYYdX~cscuJORoLdUE$V!yHnpH|rxZ>#Za%HnhWYDaLL`w0aZEbtmzbUoJWL?rv zE#4ZHc#Ko#GyIDs%Zkl=d_Lwz-C_%4N3EZXu4$DYbSnf?Js4tGR;nCe^8V=P;>8y= zU7zONsPx{`GpHepB?YUQsaB|qpKzt){rBtUYAVDQ2|%OF#Ls@N#l*45gX)!EWwHyR zvh4OvBJZqUaY(X8z(}sZ2~Ie&y_yaw&;a=u)_HGN>%N%(x!W*LV3+y~aW(4EWB3y) zfbsM9ydUBq@<3cDQSfi}EfxoQ6t1X?0oCl46^?o{<>rr@!+9X0b}v9)q-?k%;TO)H zA}CiYhL|D+bY`UBLTKTZyEDRS-W)fD?v78U)f?a^$poaA;jC$8U8xbd_wwp_Ej}=Q z=&(0M)R7ZY+~GK%|FgH#0RSYLZlAoK^0+=xF#?DQ90%VtCG}=qEa5MmtM4>BK;{be z|IN<)>hZFKOymCXr`&Zw@HV&fHYbDH*B$@Q`kr8G~JKOKZ9&vyDAuh*fkTxpCZtun6)NbeX zyvG8?M2;g0p<;oOC5oV(aw~ktoZn}fjZ9UW+Za8KDpwye#n=feJ)~vGzXqoF$;66n zp%4iGd`YN~4gXQ)eG2X?*dh&tE?c*p7bEll#MfRFUdUV3RQ~zY7@#RKUyW$WAf_!x zOFR{=@jG;{dGlwum#b~9T!!6No;Y9EtwKN!u=06Temx-*qZYxBuC*(}AsL&LV6O7_ z=1S5PSD@>jo1UvuQnc!#5s+NM5%UK=%caAJhRQ_aETzgsn-=BHMvOTg#i+Ce1&B&n ziMIH9MRp&4e|X6y+<4&gE8x#%GdEsd-sE858mU8kbmo4{Y162mqa+>;$+zzrd2r-x zqYGO{CJI?dzA$HLD_*WHKDJ*x9wVWX)h@w5%l~~xj0Dt{blY3Tg4Q`RO0JITUQsQb zm@xr(&pTuR2~u7U!t^imB>&_0-%&#xX&T}n>hMcN+BE|qr3sLRlhPRR&%BBe(1z6K ze9}8QIr|g(H!1qj`@M^=7nsmJZ};)qABsw{iPN8Tm^g2keF*GS9sZfkXMqm54a#8e zdvVB5O*stJ%Ip>J3)Q2|eLh{RFi`jH z!SgT?BySkKHrxXRhu^Am%=ADr*`_EeAeYG@0Kiw=VC$r6-2f?Uy$p^!bdHY2MMKR6 zMe+G0kwt-(gxYHxsbor@EB(kEyGZSX^(;UWnVm`srW`9KO~vqEIKe0~W&WtU+G>B? z2ofbqe=h5~j+VD7|3I(yTGAdn3^5C@wLpa41>Q2dP600$$a5^SfYd8$I6br`H`Zgo z!nI4?WAtyy?430LQR2v=K-1v_`$5cT8o33^PI^c3< z|I78m$KKd|q5DHErsU#K>5(Xoe$y=v5;685M`8B5v6M{pJDXeWlP`7OFH zTI74;NQ8>+wVvK~P3^O<69yf8RmDji7+>&_2$7vJ{FnMyP%!eZxi2mDZdKt+ z!1(tcrjK1J(=2fu!1g^!Vfvi@LjzBKUYjPEm{-kSKISRRQNGyBxNY+3_7Sg|h*g%V zXHOJ|M-&yRTAifH4zVK-CpvB;W**J1H*%m-Till2hZv(UmNsM^zk^g|98Z0 ztlTk9luEstro{W#t4iOpJm;7{wh}Yk?VpxK^u+Q$gb8}mRr7LDwN01yvi~f&8^B3s zZex)eVOwy08G+(ehBovHhPXzsqw{MvOUT)en@n7!2N zWf;~1ywlalgmh`_gyHOf>0e(uW63gNz~~&snUjtW4*e%_akKC6ONC|Vt-VP;Tapu?+QM$XsP>@ghFT*F*_+?P4eEL9R9I(1iH{{*wWc8YlEs5 zFnH6agM;#eC;ptEkf2_(T)G(vB>aUSZR=ZdSPwWWna@_HV!E!fAIy8*CN!daMQF=EUfQxgD)`3oh+R-+F96Ww* z@Wemq?dgNTRm1r0^W;y`Z`jlJK74<6hlVUK54`;KVR@@L0zA0^o@J46mh(90E@y{= ze)a}jp}yPOz}J?Y{i5%BmDnjD6l2BvbPM(Q=DQ9E8AxubjI?Aj4*h+w-Li39b^hPV zxqN#?``z}b03}Py)>ydGba6`Es!Y(CwRf{g6SI^swy_@);(z0 zd$PkmRLgNIvRp)(SUkpGnvNpJG>OMd+%i<%u&UhHGxeP$Rz& z)p!}!#!{8n{e9cQaVrBVLjZ?uvy1&n%_D8!YcA)mJ`KD&IKDi%q<#D!uVY;)xs_ap zJ^9s{LvlvxYvR&aF)3fO3J3m3wqbHUzxJ|&S`{KjBmRKak-a##OD2=lN0_@LD|AuB zbmU}2CN;v>c*~hnus}CBb|ymkc(N|G=j??XU1YOxFLwmDv(b#z--Ahg6=%-w|1Ujj zl-p5QsquoeHg#}7Ms|k6Y=QImEWO|t)-^L;i=PZ!<1#4*n4)~qz;kIvgSxIMI-0~u zcTzJ>c9|V1#!u9`oS|Vz{yypEOEy^p^+k~i9!?;2@jXr&m_@*i-K3nK$; zhh3Sp9^KEkRLnxy)IRfnUI?D@?em%2OSlK5!P>**wx3j3_#MJ2$9FO)STMq&DAVaC zS&huczVZANNE8m*%Ym3bDAt(M1?^RVfG4`%JbU(}ev&(hwjUVtIpZ5tt<0`LWOkoB z@!Ku)anL;%9dYYA|M_Ow=HmMPOqM zRC>P5juB{Ul7C$+PpzoU*_~&lZLy7?P0Wrh7pt!SuoHHxgN$F>nDW0a1wZTLD`u+t zxiavw_H<~m)xEmY{7(+M^JrQ<2PEy|E(6n+Iitf4FFc|FoS@)zX)(c>c|Ca>d3tNM z4d;8yM(WIBMuk6HgvTnJf|A75kSlOF1MWI?DIM_96@4U?;8G3u%;!TrXPY{;eZikL z8FHE-*Y$TJ?qX&v;=(B;6V<Dc zsrRUlhr;igHWykV|7xDI7=0kkRyK(EULTLPG;DlO92~Q;s~39Q<@ap=>9WmoHhN0? ziMFZwr!tLc^nNa$hvK;#9BauesUt8g&9K>$yE+Rep%VjucLdw{fxO28{9;JR&z6xf z5qCdl)y(i%vpXWJ9^JVSDO4Ig#@VX9vXD35@UM)oNE@P?g3ku_ABAjeUXHQcU2{{q zH&(bR2^OLgefCZFX<~S0YBf3J9zWlw@6m#RZ|DTekFzG_Y`Mc(*;FJf-O&0G_%OoN z7VDXu&}Da0jNsG8)ar(YG-ZwV93O5GO`5>xh2I+_@bRZPt}u@^}j|8fs+G6W!LI3MOh;mlYf(IfOMCARc(` z;2a}8L|G?6Pv6jsJv*gMy2?%9#gD^9J{CHL=ds^BjY5*JA*BP zbFnRE6^cbj7tNOQ?QB|oL%u*UZgnsmm3oA-hnL^aFFaB1expbEa)JoXA3%;om9ts? zcGSBnNE;k~do^oe`-I!7?2~Wu!eZnD8x^TLjcV6H`?-7Gf2!s){_?9K;5dY#PsK;q zAAhFmT&vZo7?pHeKaNptCmw^S7(h-ei3FDx{C=)l9QNiKJf9v5c=P0~3YF8*gx9^8 zGc3tD-x({(32B^O=x@26D8<2ixaVd&CszWbgV3! zY_IClX7jUCAm$sD9Qp{WR-b>vLe+Ge7Kz{<2QfWiyTHsA538&o0Rq3K+$+=yL|Am9 zlH*>Zs$SC7>F{{S@!_NH1LKz)BX@*f6-kMaY3XM<#hEAwPUq=_fmYh=-m2|NL7M69 zsd!@HZXmgGav_e@%wSQySV zSl<>KF9x$R6|t9xa7;N0eG^JXQF=kaxeDd1*P^lzSAFPdx+OtQhX=f(^z42d89M6RmWuJ$(1zwFNUF{pn zeZp1Dc>1eMR(jLdf}AcmQxFuI&zJVTr-lHcu>|G&qzSch`a<1So*a+9y-l!Z_2^2f z>0rhnA*nLyo0VzrWNwFnn>ZGdX|#Jk`UtsBud53cibS02xVQG~jU6S}w4M*tgyR3O z*mQL*#!uNJve&?nws>MT70d<`nDLTK<@`2E!9XKpzMBOCDb*4NOAFH(q{LaosUnQV ztYf#8Sg~Zful}}+-XA(NGN1fn4e4b{d5R~AT=|}o-;fsm57%|qST%P>n?LYytCYo0 z$AVC6AC+iespx=`MiD@+{@v_!+Cr-Js3u*VL+XL2s5co&E&0qxQQ0i9UOTbMdI zAA){(3{Y(9PEnw+tgMR-;C(Mp)h$hAG_3KXd5>WK?g#Q^EMw8@K#X>Z8lVo4Msn=s zIzRN{u_re;&KkXy9!^RQ&uD1}k2!tp>s8~sLHX)0@4FV_U8S78Md$qE){b48uHPxa z3P$BOPO}lC?vBiWEb+SyAZ$Lhw^RE@pTw1meT|Z?n$A#*z6O;d^9#B&Hgu{*MGi0; zVR3{QuO2d}nmGXwfC(x{=GX04EFZLE?16udY;y{J+m0|b5vj)0R$Kg;N4E!)OY#}Y{2GX z`E|}Ll`oBMhyC;nhVl_fmVwk@E=EeW;f6&OGLMK+>x`KBxYw6wW0;` z2=>hPP>#eU!hm+ga;~xsW7TH5PlczFwN+@0 zNruN<-D@2?_*~6|LX#gwZUpoop%$qv^gzTLGze!FBVbKsumtG#ruqv%beP_^7Q#@c=-f3{@2o#I%urC3MfkGM|~R`AAlS+NGH>~%G7-n~70oj6i* zid0^~lfqln`G{7PLWo^cW#;l^ z1VWz=>*J8|Vj-(kpmlRLOMA0;=fO-|#niNzMPkKBO#eooeXx~S@#MYI*-hPqYx&R6 zp>-mdkM!0BW6#<;=RsVg+IVISJrV`d!UfDDEjZZWxL({d-`Bj}eOCCfdd9Z6ELGl5 z>#7L^nnEfXBTOETP@C<7%i*`VYbUgV;D8Mon>)-&B7j*c+UaJINXGm|1w4-ykTvyh z*8B2B{J7KY^8E3*+oKMKX%>?j%M<=wh{Eyu+lrkyRyh+a;nnXCC}-2H*8nse7%R{g z0B$pY8(8dKq$$A^d^|<1W^P#lsI<-A5s_^~Nl>F&>dmpHlN~`yDWcMyUTHs;zm0$P zF9$<^^#3~9*?8s|Jns`{_I-6H1Ptv(F0;6@LPSr$tY3NN9Oi9VCpOTprE`AyHTPl@ z1k!3G%XLhl!F{i}Nw4S4Fz-GB9=l^IkQq`j5QeDgt+b7?be@vhhHC10LdoiDDc31? z7-s6Isy~8Y1wKEH!J7;I4qNs-oCDwiF~Houl&o?QdkWZEZx zljE_mdZf)ztl9$4aCsw z#i@Qe%S>F{AgADI93!h>W${4f@(fXh{K_cKIU6(odiJe?`*i(V)nHkf#hV!LoR611 zezjO6#`*Q2Z`pPzuV(4UnMe9iyH?En_VH~6xe+IvUYdJuBoN(Z4tj2q40?Ep4E9Br zMI1t1y~14Gq2G+mzeAJT8g%JHJ%%8K>TDYQ$)XGgysNb2+3^W?S{^LCoSJ5mg5Ia3 zkP&5*6|r&4IBjC7Ih?rK$vJPHd%N)IY0q5f<;c|%^o?S-MM`9==Ig~@&o;4$ENRg7 zMz6^+zRHPvY*DOZa^!)G^C*FTL%HMhM_j@LGKJ~MlZ4to7+Y3aOgtx7%Oi8Y(ZnzcX#RqbFOm}UKuQoWnspg21OT!QT?ViO z8gd*d=s*RsW2PGrks2~6PIk>IqWhXGrb4qWMhKB;@-J!x?erP9&E>eVFTcnxH@n_@ ziT~S?Dqb8ZbE3vjojx{OK*K0`*tLY^WOKC0mcL~!%&RP|@D(ld@AUr_U48SGl;f=a zjUN)uXxy;7<}@9xT8b#mgc85~X(vN|2J8CSe-e5zyAWgZ_eW4`z@Lp7mnS2hEddzo zB)e*%@3b{6)~f*IMxQCbOix#o(93X+OCRnI6Y#o<*p(yNTNCp@of zV;imhK3Qq4eS%6lx>Juz)!Iaj-OEdmA#HH^0nu53;d7= zQ?V#*BUKwy3?#UK7gX(gh`jR@Y%wlhG+;p&QifX&Lb}ct#;#6iKR-K+s}cYGW8;@g zaN>+*25lTmjrp8^-&vs(r>JRTRnFrT6jCYfzZW#X_r2xYH{f>X+o4;5rq)${ABcTQ zH(=;G#^`-WtjHF~dd$D4QfM~C)gVYd0ZfAWdN>F_0zLKRKPo})m1wS{D34kLpzcL( zB_pbF_}aOQ1A?r0=ueRIv5`~)8 z4rsZBW`BKZ!XNxXOmvNl1Z)Zb;Y|*dDVkElELy`nTDo#4`b&2Tat}#ls}9Ni9zteS zw3VIXb~SQ4;E<~8-;m?m_r4ugNp&2JDwWj-(G}P3k_(5cnzs;27}|!B^j*%bLG7VkMP6#A?&DS?3Ki#3k6uF6m(TZZ|H_u{`YXaxaWZp%Fm9}@>Qh?) zNA&^74Xps}0>^Ys-@R9fY*Vi)!Vfv7Yk(T+jj_$me}tw~i=K5fQOe|IIQ7?^b5j=@ z60Y#)a=-0IXOmSZ12beQlkY0e*Xzz1$oxRcAS(oq+Um$VFq9h^%>ROtGkglPh$4#+ zWr@(-Z4WJ2OTJSIokUrYtf`GN%VmY-={#sPakV$G@bls^_mshL3zYSL>)S@@I)}cN zsY<9ptJs6C&6dsQ_|DPCK(YA-rsh3CuRiz%u%~Gt>9VkBZ5o*FVQZG$WWF)w7iH($ zr`OwU&UWs0Uadd=BX1t#tO#RC>N{TE`LBuqZJhC0mbo5-mBZsbZvXA$^9gKhRs6bl z%T!j^zHBzYBu60MXx0%&Xp!~M{{+5d*VXBh& zBw_ykmk{Eibr_MZkb|&gmS{vGICjtz4-<^0(sLjOGu16YhBqES z1`Z|WQz3VRrLHMTAPs$gM{NT!bKmAqWyhKiPMt;Rp}Ln&pIKTOqQGe*!D*vv!ho?mn|0MnZfePh)bmKdjTMEPl z&J=NmN>z(dPEJt8IX$pSBWrX7`E+@e5D|k={_5)m2(H+`%T*X$@ zEV%LWWGhNwi!@(G68R33e4twVIhDEi#aTg|0O)}ZM2dK6 z!umbe!?b5M(7`?Rml3MZ_LHuPu6&NEwLiZ-9lqd-aX%XiVznyPFDXlxc-QzItaMFH zs+d0dK8v-S&T721x=1rT^ia{>0IfqbOpw^PKOfQlo4 zW!kf#U;rL{UR8i`{F+=h#RSNps;=#&(Bk^;>IQ!HhjlOyY)guB<0mV*ik>nQj#_Ue<1Isl0o{|0 zyqXA7EPTrhp{V*i5hkUfnE#2nDLfn`WQ{lp>*085tze*n(+kx44@2NqWwXaUA2IFI z_nD^-ew?p`Zr`?6IkY}^j8KF*aK3hEH6)GvnKrGRFHjbX@vOhEb|vU6l9^jR+!-kO zjzYwqe@a)RTe2xGxZs$hUXuvanLyOSa<0A|-M%dF@A|p>>&wN#-?Lqo5n;3MUct@( zSB_VBJI|^=PJGREe#m;`zWIjxM3a?RN%rBGlj??%sBW3UWLoxWu5r;h6Xta0hgcoE z%#G7^*kA2*%K=ngDP`;G$gK3ER;Ua+P@T@sV#VJ13iL3ciWQrFT9+D2)|x1JryFKY z7?aL=QBamxg+G2dH_j#h$#X7*WqOZoj6k>uD_98)HnZ1_T?|ldeLJV7D^f1l&p5@4 z9%Pa#D<98l$t_<B+C5>+N7C<8u4_xs-$IIV-=T&|xvbHU|_U;d+8maOC$1xS;39iTWyU3GB;bK~`PI(*i zTUvXzx4q!i8ybInY%isQcX_U8ohnlnQy}Pk6+qzh88Q`RIZM>_^*EEsMMgwB3GZnw zR50SUQbd5G-0M|NUW%qCAO@xkJMR7emCWA9XZu%uxmW<)@_W_H&ABuIi5Gzh{BC}Y zk!ue(K%uQu@6T5{WqK5;;Gxvs>#H9*9+;E}QmtXJ%;&|Wu6M}kCc=NdXr;9M?GaTBX?!$vdi5F5T&#e+-)eK~`lt^u?x+6$$s9K8_+#~Bk^Z=+v zy=o6Nh`PF`5PfZt&yqt6r4XPPD}u(6U>mm9vxOg-_NKZ|TibzQo$v!nKWS3MsQPllo|^uqOkr#5#{zaeg{RT8qQ)N9faZv(!#ky;xVXV6 zKDx3yUw2tLYtIiZU;H-d@{NwOIa}N{tmaxgLyL2pNj#wauf>pQ(9@B{0VYg&s!EVmbF|iS9T*~odSmav$Oqx+n?RYI)71%7uk9~3BXQo!IiC81viv{<% zfIWw9RT%n?;0Wqz=C^M`%bnPnVTjs$QLPx=m3%5rnY6+3d)HreJPf8_5tU+9nY;Jo zU1e3*cGu+#k;tG2yMNk?-MIgK^8YFO8b-vylFgx2PA_@LzHj#T{i~KS#ELG9H!sFi z$xaCwXG|D#c-}vrjV4>Y=rmV##qVE)dwPlf(TGQ1kU?Xh{D6teQYYq$Tx z$y+powt}UG1q3kn@=02AX)p@v@kCVv zrF??dqN1~MZBSo(-_KiSxEv0*Ry!A|{A{Kgpx+7%H%x?$2)$AiQH-v&=WV5X-B(}M zY_1!NCb@yPqkyx-l9pIef&hlk$;6Xa98H1hUS><@;-9qc1J7sxVEoDL^PZfsZ&D^@ z()ERTx8CiQ@jgzE^FO+Oe2tn=shKr^HuXk*72ZM%y{i}*vzYB?jVp1I6r{{inKJx0 zaMX3l=Wl-2W4=HBCGfrFy|y;)FJMFbE65jwH$X>a5^2w9QZwSRtlR04O|IFecDEh} zztjT_xVrfVgIxn{y=z=vb-3#aoA~k_GZ%G0!aPWTgnBy5d?aTMc^~Q;}3!lsUErKS;cUxA}VKdMvfj2 zc&gj?|FN=XR^m|EGub*;NOq3BMPy~~9fc4w4mo7+z4uPaAuE)|a(D6P6T}S=V zX|=3tcW?&Z5)v3NQy~ocoSS`r&9U%MUo@V!|8tGeb>>$aVg@Ya+nM&HEH2KH#ZCm4 z)nPf~r^9ucrj)CLeC$#hMU9j`=1o}NHoZBjp7Be%xl-w7YO|&5dT^@Vez!_xb+*6Rs72I z)zSI(;*Fv#m*KzW-^F(dMd3YhOje z-z^)}OD1UZcsjd361$(dHH z3odXsW2D#RG!k>RQ7>B!R?c;#N3%$cmp6@j3kh_fnKsqq?Op% zbegSjDUH<8zumtRQk7o1Cw>8Z%ff!dgRu8?`5|3WZ({ys&fT4vZL8_^;7;gjSo~}~ z@F^>}p?|M69^WoBrKzY;j`Pj#M=i^r@qI*epWWfNO*N?yPabSoWuuCBqR6*u^*Kdk zIoNS1!0NH0wjjhw6It}tKSSwqnY__PmL^y3PQS9YpKT217v@bffJS7j5Uh;n7=C+5 zu9lUOoOP}91O7~hu4a8mmGgN7L->42_iJoscZ|1$Zg_VY39Il{UC1ELB5J@24OL(h zlUat6QMDvvxmC**8C930A>GlQ*IVg&Ef0K;|9mu%r&P$=_S<$V%W`PmZBdmdoAI2z z)qdH!)$M(|Lj4sL5JjJ1eLld^pN}Bc##@Sbk4d2O%H#++#H3ub-wz=$VzoX*gx1(t zNB$aCs)YbdpNNfLBV9?9VGBRZr)^|bL_+L1xpEE$90ORqKl}L}Z7s8lF~eT!;x|_0 zpjN`0K1h~UaYblj%)R;YnMBFmpQE4cPwOAWOHu47?Y-uRE)N_Yhz62&#fc>x6Q*Ra zdGxS{;%OwlqS%p9)(d?uq(xv+t-qVgF2gTs)5-gjx)bR;Y4q=J#%Ez2+gqodmr#TM zwWO+LXBAyxsJ1inpx&e`6{Sdl6}=D^s(4iUyItZhW|^)Wf{5u(88amt7%`=C&>njn z@XK*f4rWA7^15TtJF6NqmOw>z7MD?%+pv4@2+LNVM1RW^_fID0aJG)iGbGUpyp%~6 zoRMyLa#8V!ObgdtpV+-9!1zso^ ztoFjh7m+6EQ(O)bYgh?!o#1Pe_;^yCGK#$+x(A92g$8cSpJP`Cww zIV)bgr!wd`^gzP-!jPe4;C`p#!QJ!binXLa628kfZtwkc-Q|y|mVeE2&Hh)CUW^a~ zj)ptGKZb(l2_Xm)ZSng?+LA0`Xis@()QuTiN;52>pfD%)W-xa?AslJgc=yHqjAG&Q`PZ2*wjoYa@bkmSriRMJh%ysyl&T=CW}I_T3hlY zw-R#6Tq8<;FO2U~I)eEXfK^btIOOL?xfLoJ^yp_Su`X?CYto|OoUgJpc~;sll)_d| zpSo+~;TBPn)^JM*(b_3Tqo@BReZ_Bw7Ivu;U) z`3>e1PH7=)wkS>hL;-xLu@hc={%kw$0Vqh`iVbQ2ib|@nfFQoa`4WcK`9<7 zCQku>IMGT?nQv7>pk*indq=zORU=;K{eg+ukKlewd;nEPhPZ$`n++fvp?uDrExtkW zLD3As^dibP8p%dOFj2^yWjU0&C2EGR{KiQ>`WuEk)o_-+1M81r3p;@ijgh_o{*9zf zy6zl)YQ4=edjq&?)&9%tR7<-f5o<3c5Z>J`Fg)g8T@2FEzpY3OGn=hg~PO zA3oM?u42~M5MJ^PF2Z*Iq^dslKBD9q4j$8@wYCshKeTMt^2Ap#J~N^ht=;m19ROp*iU0m@)kkol2 zYaCyJyG8fk^D!h6db!^vbHf@fITZ6Y5RKo=U$liY%cQUx znZ8{l_%|3%Mw^mq&_k&ildk;fLx=y12Rwj4O7310-u+P=GU+mxhdrM(q#|a-g7Bt` zn(@E7B)T)WqABkpgvbjOGr%;gSVH!(WdTnDxdG~(y*CD4QNtj*%`GE_R*2jGa>p$Vp(d#R!<3HR}V9$==)Te~~e#*pg5TX##LW|PYEipFnB zq%C#?+(bI}!Q253rPy!?g=Jw1q<*{V`631;*#k4h%V7F%nQaMe+(ys>;fr0;3G%b>9f5Kw->)}A4#*!)aNa#u_J0~a3oa~6MZc1l?awKXBr z{7u8(v_+>}wAIG)>CKe8bD%7;X@IZ+swE9!yg_KO`D;g8({W3cm9U=Njxy$z->YQdAb{6JS*dI&OTo>SNs#{Fnc)tlYTu(qN-` z(l*zvRolP)G@emKDXSqsls@=Xhk()bx)^k|lf2(>%M4!D$)ls}<0h2R8-!#A9HJJ& zCAjZXcFAJOmp+;1Q~WBz_F|HLEXKycIyKLa&6Ch&@c@Sw>T1%Ku>F$pb}a6CZ*Z;{rv8rusTdz4Gg171cUhEe%K(9~hvs-HFb@|&e+Ty__X z>f(;L?Gpjt=kn=^&Mg67KUL?;UENmEwM52YW8%G~1lqtsc-h*e)mkqJ(^(~`#aG!| z8YDIK+c`07=D%>|t9|RDVSMqrX$6wbG$s`#f^<1vNRBB{{@uoil+UJq{Cqymyd1nu zKz9RSg^RzQ@5~0%2u3^#4Ntb3QjF($LHdn`I=jouMGvzMUP28O)yotHswErEpmV`*Z)r<~|P(I}d{%DV!3bX@7aENDKVQ&oYoUOJ;7*h#d>+cDFTmR9n3^s+Y_d#qZPn z^Zp$rnRvcaU2V;`6ugF6cg#%TT&yG`QS&=oS$ZFB8iRrINMUXHq zF{ydcTyl-IESo`c|M!3ZhsFpPQ$mEcG53?t+L@P0`{N~+w0(&|`{w#N)|52%T+^%J zFsR?x{c^v-iheu_B?L8^y7-@xpN&}geHZ2azVvKI;p;W}kMiq;N6j!^<>Yowk$l5& z+uE5z@yC~jw?3xq&@6uZDUJ2P!7RK}Mf+U)ndK0il}x&t@7!;IXreGtDiL3Tw(R_( zsNwx)>`N0WJE1lO8R^bbZ3{A%;~>arAuh{*bM>Ad+ZXN-GWOd36#Ure;cq_XTDR56i&t*Bi2KElFt7=K(7d3Hh9?`5jzN~TT2S!`_L@{jtEn5dN&=j z?7Uo73O8xB_xhfiK-bA;#TfP~c%xr{KC+Sbt>c&X{4He!l!7*x@st#pnMMljdqF?p z9{VN#Fq4SL)W>#V62@=;%Ai)k2-)-1jb+&s+x40&V6FlRkX zr+Hn%ve;hopkp^R&p@umyBO>OzVSQv&3F;Jh9B@`es<*#op^P95N`p5IA1QN+;>xX_zrb$5H{EBN z_=z;zrY=;AEvoHmmwn*%X{D)~MmtTjx0FD{dwNTvoGv8F8ehgB#7{7dl@~)_P3*ox zB^<)|wyRx)RU*tec3TmRKxScpu$iI^SZVdD;y8PGX2w<4TI0L7iakwzy=T=I(RF)K z$z~Fj#=x6i?a&52e})y+9S4t|Cun5+KJ(2-9GA)S0h9~Q=(=)Iam;hatKvS(JqE>i z1+H9uq!zzMQb7luV31xWiA`LWMO@0yoI*-1!iWv>+zzZr_Q3y#aL>_eLDUc@z$?O9WZzAd$0w&<16RDq-quy z>>$WI3`Sc4(JlqI3}FWa^4=SuXDo+Rm>7(h9|jk&3aE&t3ldhrtvrBt$<7xfJY`JG zO6GF3F2P{-`qRNIgx|@bI^WR{-~(5>_eRl@)$-6c$Va*#yE6FjZQ~O-yS&0Lgb-75 zlC9=TAIZJFQ70;hPMUWJBjaiW1MEkEDN{>Ccg)Ku0f;~hln#$_`?t?As_J-SCQS6tE4 z;w}<*yUHNCQhcr!ZS0q;+~jSb^0;v277PP=`8!94AVr|Z_6k!=f|6o~cwejhtc}FloW-c-M1Cla3%62;TWYbn`IgZdDe@Kv^h^~me zQ*UdY071@#djT@kH}p_O$d5`Za}O8MlWF+@p$pHnrFxQb6UN74k6#b}8H*&nnBiY? zCU)RIv8!8SL8+U#%SPL=a6MAL%L?>QB#%xUxgDT9ZqyP=eLV`R6~& z2AKYYiFtd@NP5E8u8R@g9{&pV{i54a;KDVV)75}weI z4&18`)=Z&EDy`DhZp%s`xpHFEko&{-AqcBBfl#Q9&1#Kk{=~Yl4D(@l*|)qhLlYsd zLmPb8g$R094}d%D{djzq0_XWY^K9d3pOOBLq-769ea0gn|cjf3f=NutEci$P@jDp>`9YGU)-*#!)^7+tYqk@NzNNP|Kd{7VvuH9 zqOLI0vZt3&^?l%-!q(+jK(jdLdm93Xs<|@l#E>B@yDd=AO##+DR2u5=Y%BT>LQx1& zmr#n@9cg-zR+9C}P^5mW=GSLxRJ_is*J_in8cAYQws7wYS8kNW#_FEvlw-M4V&9c_&@GBGkb~!UF$74a*sda|Pt)E<#Dt+4*hQv1Jcsqn$FoI;%%NAYt4$uYpbhAWDQU{HE z`0q1ju2+7_hhtW0BtW9fv4tnRjx_WuT@K)A)7jxe?hiTkgp}si94pQpE@8^mulz!0 z!((j?qbKRnF7ybh4_aVRQJzl82Jltd=k-dEpw@kt!7>kn@aSlngb|5|x=!zcwLR&@ z^}1*Y>{Nj?2{$*KL>zLdrk&C@U}G++bNDO_rj};x)ldUsb-i^GX0AVb9@K?ZiIEh$ zx*gs*YxHQ$q{+}j0-g6rD;^}4#88N3rBP5~FB6aTuo9IUkgF~pCwdY`35`}K6J%jO z38>Bxz%i`hWOtIe9I~_`ZqkzeY$vB>&XYqPpkE|9y;OvxnBX85mtJp09^v@EA-Ds+ z>|CP&Ip_FW!Wk})Jwrd*1p__~CWVIB?4hdVB9?lRudZupx~fWp`QM7?EC7!FPe#ob z1WoAY)N1_1{ASw!N6YyC1E^9Zx^0oh* z((jeLV}E*Kar+}DeGeLOdnbBo_2!V?tIdUj`5m9yITDNFOfG*ZdSO!7XTQt@c>qgm z7B!EZn~NEj{6LL~jpzTOuaqR-(zHwBDjuXBb#VVot;yY6mz-s++??RRyIrNHB3n&z z)Mv54uSZfCYN@CV;<_6krIyZ+`w&$5HXyNCPOHj|fy`ZqtoC11lFu)!wPYh3nR%)U z`oial+6qrIv`}4fof)LejNK7tE<(D+86_F;vDwTFIybNfBEJ44jD;I;Tsvp--LwX< zA!20`k@#kAK3{03A**yxwi+NSaZkZ;RHfZ>3w{8E(7BbhFf@ z@NU3Cox!Yf5hj0K^YkAjn_QL4ZJ_c<=a&7^77H^=xjI;m#tqbi60cI5cHj* zQG?^4Bj9d~FN3i2ul0&y=b;^QXV2D#X5JXzZQjuQnN3mnq$4Bn!O1!)9`mNn z)n=xFd5@YJ1v8u$nOBaC%;RDi6mmd@gqX33Jy<80AKK4fh9^XTC{42@OM!QtwSQ z5G+u1{G>u=YILzLYskoUsX#v~wWwS@6Jn7X6FQUv;cXdwPJkZETE8o;`Q<;? z#UF&p$20ViQC?&GK}%O05Y)X2ki1_vWy?Ip77fUGa@-zRmMvQ<+Hn0Bq!KK1Y97oc zueMM*ayFVO`A!GJ8t>wCpp;Uq8YNq|+b$Pp_#OW(`g^af%_U@BzFc>R?zU?G&~3GO zIph2bkfe)13vb%yqF(0|X~`4TOiLr06RddLG82msJcT6Nh^9t2SN*gx-mH&Byo|6~ zWj6t(_gBIfZQg%!6jMHXG^-q@U)9Ttf|bPr^LViUUpSR@|&5KlIYT$g8-8f7b=& zK#`VmHAo=AzBQd&Q0y`}EZJ3W>@8`S(3OolnNNh00<9(;E^R5rq7fT29GmD}X8AbY zsx59&F9oHE8Bvna0M1a*+vB3h9>T!MfvZr>HLmyK z|DElnX*0p|z1oX^clyJ3htkHCbG@>i*`~%TCJ~T!dQb1dfUFyF%xY$4WcMxb$>uce zSvNKg$v!3?|TvdOVS1!^y4pCCOjEGbjLMhxjjIi$4&EcC|g!eKl0(o zy~DBn%ym}j1mRa&Gk_G_=~2!tHKeF!9*k?&m>i|%OJuwn6+tOCo}MEiAaW`wINw-D~Jwg2i0Q&!y9c#b-Wl@INqdh`^;DopAy1T$#?=fJ^Fl zK5DG7^u`#HJ)2R-_*=JiUX}jPiyj`Z)ftXpryBF&qzo!B8UG~w@p%)c$k_vn)3;3Af z$WODr8~VVt>zkve+ApsHtE34b%npX%1A`i!NyUR7C0F+j?p>|$1C9>dGs+uWy?Y_{ z2AqXDju|#f`x9@B(1Yq*&rR^azALy^>Q#7VV1wc@iAqv3NA@FHl09Y?bK@>^+55*T zfdc$mVOa6pHhtK{4`~D3`;W>Dl=K9tX#YIT$cN{><>s;`+h?_+uX% zZ~>pk59HF=reC$#ERRBo`sf8^u`9Pisk&Zzg}8Pz1ZzQ#j0wt38#iUAM-@pb<%}2$@>WwVPWmieDlF>(vyV|U$ z`}Qt0F0b}sWw;3drA4N(krJg^pj<;}yngHF0BC2%cV&CORd`lPnMeU7nWTfU3%wFD z?|!XI$U-Eb;_lMpGK4*H6DOe)Uw#^=)cNb{3(bIS*SHEXbN`Xma5Szxsh-L+s%?sa zB8Tyn?hq>~us6Z_ox;C7Oc}ldyg!N!ESZAJC=3l$<2H9L=2yReM@_|F7Mo(R`Xp^S zxVP!0{{U}(v&AsY!aaH={20GjV4Us7?_0Qkb&(Uer>&Pof^XDswotd6=tdCjL1W#Z zr1;41*azu-O8S{ZV$!7BGS%r|OI*T*;>R zZ(hu-N`2#C^i1sochD=(0KDSX`h9?UuxSX$Jjkjf$PyGPE&#wqYpldTWe*C%W$w{+ z?w5tdX+aIlE>_jX`4)n$a#SS+#06X3 z#fE4av6nG`nJ-tS+DAx@Ye^ zH2|YAgSY^$Lj!fdy!8>25h7HMM8fRb;UZKwmkeTUp_k@&?w&{xarKook_874lbjF- z*sX{UJI}K+XgXz%p!~>lFYiKvXHcE{%?mik8r~BXh56U(6{(Ok26QhmLpb+Fz!D1A zad7*U(55>_YGDX&oKE~mB9xZ|Mcec=$w8;O4-qHrCQyg_n)DaUZ9jZlruYy$0thU~ z7Fl|d*Nbdl+xj%5!gwt_`CA)}{ja}%f8_}CKUp0H|M*>u%T&*n{-8nc+lra+^a7fa zYH<)Rev=%QT0I`9A3ZDB=YPsZgu8wpJ~2&vUs&=Pm4?JisWyx^dSPE*9J6LBv!y97 zh3d4ybzSklu`oGDVJx#}0EMm>g<2@fN+LP{n<{;h@qRI_$+BC98g*`5@$@^mN+Nk} zO&8$*dw}8Bt^78M>SDQ^o~^;&s9vEZE7hGOdr5EAopz-ig(6smyl+d=f0>M!V-IlU zN_3|;=?sf1$YHjdSWcCPZBv@^YqVQZN1_as9`~V_oWI6NuH$ojjL^!VAn#wB*T*2Z zm7)=JNa3&Gg)g21jsB4n!ip{aCVa#@W(;AYjvag(;v;e@d2$O9GAR}1yMEml;ji2D zr4OTR+GB@pUTz#$e}BMTDc)<|wHdYj;uoxMGs=o*`%#VZ`D8D6;V741HQjmJ^_9&a zRod90D^F)=X=IS}bv@pnQebTNKdK4oElaTSu1|LO+B>j3ly^CL^Pjq3H9b}-J3?YL z-({AvpZ>@3%$+&)qQd@~Zi6~mNtsr?LP_~Umd57w?fu6LO85Ke zh)Aa2j5Gq(eTFKx7&?Wa%=LOh3fwL`H9%qMVa*HmR846+*%J9h> zqR2_ZhDhIlR~yGnRTzYM3;l!?DO(h>VkVXYFm-KYRwC-8p?8!-{V{xdv7+s}@Q6MKWZb0h8g9wB%YS_-`ib8M)=#pm)EwrI6z zjld(j1l`qbigQvqv=l%0D9a}reI9qvoKQ7!p-#9jLlI;dIWKsRS3YpT=T2hH0LCw_ zHU&=pxbIT7Bmt5vQzg_XU$Vhq3La$zK;$#^!?eH;kzl*ej;zwEE;DH}(C@dtw5ATl+S+-(flBZeVhCGOSs{0^WIT%;lIjh+|lEeTo>_n^}OqHU6`XtLX zfuK(oAO&4{5)GBgF-2hOw*yJ2Z{)m<(jjUvlatAg?ZAu~zN@SBzjDwSh-qy2P(V<{ zo=|T?vB4R4&fdxKrJOo>v)#>v0d0((6Je0^8S4$;Kh6iz6}%I@=@}3*0o*?leP#|W zzAz&!2><{fYb-l`iA2!m7Wyg~vaCcc#xCo(Xr(w4)+UtCFhsvN+K%W?%(~O#NuiQO zplFnYPe(qUufY6V-T+sXf&pXfBlN_!GPDR5*Ch*66tV%Y8)G^4r zIh;Vm3Yp7o;SRHg037{|I9iroc=OVOeo?e$X@~?hGwLvDyq@hToLhsaphvGZOah1B zqL&W5z5{O|a?IQL`ue`YR!ZF`b-*n7d1154$QX$(KIo}tQ%{%j_O5O+=HV@Gvz_a4 z5>+8--UtwxVz8PTHLrf`Bg!LeV6PS*l6NUgm%s^FPg+MEF`pEdl?&*KJc|AYbO}aE zg0LE&WY-sO*l2CViE7Hf%Cu8wU5Vs%%M7`Nr`(Xm_igw_ECT7m_i1W}YnxA(F|E@P z7rM4<+37JJ>)Ksqq+p%x{l2y*#;6WD$SyCy6HXdHQnE#T zv}gWEc|R}fVQ%SSZq~!6G=mYG9NX-s-d?HRr`Jbsy+7N(-;`;TODJWcCs!^e8K$Xa zS3UPwQX7@6K~44KtVvK7n&+(E;{Z*!7*?u>Ls-V3AH|LX8_4z+M0Y+=dXu}pNKOF< zumyrgFqn}}oIXsH#F-vA9_R2Yz=OF9yvb6)>F{Gz7#dkLp5L>o#|uMW2$raKpM`gV zpH^7)l(snYp9V{-#Oz!f&74G(lV23I}!*~A#$*5vhfIa|FAXD07*z^(q%4(Z{x zL)*-NNdD60=&+UeWU5uOu$b+`2omM+87H|r|jXwE5$MSjZ%A8o^wq`4gE|r;zP+>@DvUeIqI^M!H6Z% zM{BpDo4<@oq;AZ>QET|tw@G{SZDIF>03S08vmzF|*$e%gRdNI>C_p3c{m%~Ocevd5 z-i2|8P_rX4aefZ0YzAa3ys7+xW$X5+bAU^P!zzzQY;(M}-BiR@$Q@N-1+zd)Y z6i7*Xw`R;A^9bjIyk=KzG~_9p(Ct2v_7Zh zoz7bzoiX9uc2?ebx}O)9r{6-$N9FeHb8drDq+fxcdrVRUKUz0%zv0YR%I8!SRp@|e z#gDFn6q5aOA{N+O9aj)*;Z)e~)kipMy=xJkk2pJhCEl17aZHA%`2)3dMm^~F47STUrs-vg_Z{@d_4A{{{${8hzZYU?1~i*Dax@HckvY9Gf9jK27*a@8}o77$4EIa7*J zvlRlRb*r3o;}9*8>+m06Te1L~=)aJpor-ye9^UwFezS{!n=>m#SRN1A@oJD-axjyezh zqJBP^Tk=EIw(<`@62Bh=bN+N5{{u*VxVOxYP zEnuN%J+T-axfRKl?st$m<{~t;t+oSG+YxzHPrA0t2y1Qqv}57YaTdN1G|Uki!u=rU zglaF9ck_ol=kjwt`S0y)d4x0_IUz$z?pg9^DnWwocLvrRLG*pY2`zp4+kJMItC+X& zk{?y?{(IWizC#+Y*M5!Vw7=v?KpMEzt9Z7!5)wEgHRx?yA9_CB7LdLc$`6}>ZU&7g zfN(Wr)?GZ!ivh83{a3&eL3;-K2#h@hM^rEg!HAaTq{e@B)@&1_X5c*T9K6+JVoEx~ zQn1!ujmri!>-Zd|wqA|SsC_b@J!*dRH5gqXn$$DG%}N!XnN~|%E4e!?NR@&Zf4@}i6BfNfpR?k2@b-(nwDvY9T%qH}NtxVH7%UaF$_8cT*H{YU_i(Kt{GxS>%)0rzhs+Y-u_` z9mlK>RTyvGwj^(alqN%u=q&EK+OU^Qjh&6(!po`X>S{oA9#(u+LOE=FtLnh z5VLkO&!>0Oy>?UEc?y9#jXM!E%abmFlU(18Am)1%Ji>(bK&$z~@(Z)wR~QHqrFE{Bugku)=%mmN#AcHPzPA z!(J90MosugnXFRHt+dQM&ash!=3|>`m?zpYi9XVObo@KT_DG7*NQ8%srVJWU7|Oye z&o!c}7;eOmct%VFi<{SYlE&PF%^m#*AqaoT!2y>>W5F`yEm9Vqe9=k5#FM*fT>-l_ zO=7Et$MUa>>&Du;JwlJ~j}uO(F0H~Hek>gjl$R|X*bdWx{)bD;`1z%W4+t#=_Ic-Z zLYgSY|oB z8-G2-O}38IdhNjW3jxpt;*PZZ$!{M@QQm#rqal%_giDa3vXU`8^7mk*h?Ql-6uE$i z2J*xWQ1G2Jlix{fOlH!U7#MX{UM1xo+kV507ZU$oQ3sOINL}YadwU`Qsq{OGwTzgX zzc)z^KjC-MODu4xg=zpD-5`-$(A^vG83Wp@4JI++oYjg@P@Gk6wkOc0wDK?dv3t2U zV?ndjz?k(>?#W0`B~ka$_Ml4pp8VB8bMat3+qZjTX3bce&G(^9!@C~|^}k`nWUAKG z@@w4xI&#q_s86lDfwXc!+`U_4XO!wFJX%wtxpsGywRBijFSRnc5@sRb090GYO00F< zU26y-B@VCxy<`TZd&3XR}m_|3fz2RaxyWZhPI^6eS{Hy`B?Qu9@Q<(;9 zlYslU`W!utnXSRyUHn50G>bmk>V;Zb6EM9S=WP8N`^D&euW@)N5Bh1gnoii4LOgdM z1jU34zR?jfWvs5J9nD;j2c9sX=J(@bSlGvr*`uTGmxsKF}0=*R8 z3N0mlYEVH&uG}BXOxUxAX+$V}49nSrz__Cs2dN?$GC~X;1hEw9A1e_jB)=oG{;1+u zw#Zziz5($H-lo2bu`*N^vt44ps`oi@O1sf`Ve?TLFZx)1y6kADK7EjRQLoV-ftfLEj@kWzKSYNPURu<+0*-xT@U~9nU z4Tzp;xKWlhJ|nhc0zlRzWBDx?oU@}pb#^84-`Bv)*Fx>PB2wuFEq+P#@PO&CS7qtf zPDIjylD8nH^tSJ!JcWZ=5B6&@E0P@^DPus=xO|BT4@@`#4)yoFW8nERFb{KD88ca2 z4%zn3;?AZPFHCK=X>`n+PU#H`4H<_Vx)#>`s?#?cZJnWz(*t?5ikR5 zcVIi^pF?g)-mOu~QKZtTK=3t5kCUMCO{VzY}&H4S0hzfp~nu2~O4 zm%)G6(uiT+3VHyfham4i=DO*A?qYL$VS(M~jULZAma`B%K2k||>wGHqVd1OC$A7){ zs6R8l6-lg$f}k@4eH9UtsB$Xk1_uWF;Qbv@xpqXR(!^oVf#eE ze1E)H7qBb@H2?C%6?>^{$ly6qF5=%VY9HEWxXf;3M(A?e;&GJf@80Z8o<^d`CYx5p z*@vur8Yxv`s#6w5sTC6S+Z=UkbvH9dI%_?vqW002{)i&kA{K3Zq?LS8_|bfg^s|h6 zowCS#IAp{_fQp@5x?k_me*$13XJD+ljosV#uhKK zrpu_OepeXq0@J)_36(`Ty1N95`iKtH=Wn#Bl8ibf|Cn=JU*s(N<=Gvnpe}i}mzY1O z3lN-(zdd(>XpgDm{!YNkyy7wvdt-2jvke}c-$UxUP*c+=g5 zOH8c01Xo`TVp@NSMU?T)?$!`ZVH-h%m*nrQTFG0=jZl|%kQuGZJOQStx_GOh$-hqX zz&X?F($jYn?eJ^{0!TnQ$PbvP>G<=XT*#|116Le^1lJ_qah7DCkIwnkZW3wl<^rhv6 zjSX1x7ox^WShR20Drrdd?nB{%)?cbH6fp;|j+bgQUj!UKqx&37c#po3uZIPqiw^;D z=19I7hOTZfPDCB{tc-0Q*fzB3ZC_OF_Vp}9b{6bc4tR|EO;Mw|{ibeE1Z%euvoGeO zZ6{o)HX`63y@de$*5n0m@uE!9y=ZPfS1bbIj&yDZd~=TeA4J;Tk3Lp8wRDSPfsEE8 zFGiZ48fUi^@NE*hd}A4s9wjO%f?+D_3o8$0JkTCqC%nMab;W?NjSN~xdLne9gJk5; zIC%Opkw`9x!?pb{S3bJB{dD2q-;+82{n@@PDZkb2KknG|PzM$CAEE{tfCp88w(YJN z7DOZs)QEz>2+L(IRMRLNxHC03eRa}(G4MqaSiA!RlA*xUg*$jgdON!t`CWCNk|d#G zX8lh#P_IZYIcO4N$)5l<-q-}$)rSiB+=JT(4<)v1CFdlz(ZH5SRAQJ5sI-TylhQ1M zbd>H)C0e>2{v1GgeBx!~E!#2W9uygPLkCM)3>MFB@=K~H@@=*6Lfy~>5qQ!)OGsf$Ksq`ydsq2v4wttJ4@e}@d4>LcdyQYa&=ceu3 zLNzIQDN>g+B*~pq;D5cPH;`(+|)Mj0B}bBycwFahqsYdGS71w)r?k>oY?XnR!>q zOh6TdKjqvcT0bx?Y|-rXvuDZaJOhnuESZ1~i?g-S0bP3Kq8E3$+6~p^zOLOu51jW5oIANUHi)%@Kc9bxB3~8K zW*MRbUTGx(WP*V6T*Gz(gXA)|GJ&6$1lXkgeHkNu8@^v zAG>+@dL8*3&P%9`C+`Z1)hrC96s}l{u})yCmA#h)IY!^Rg^}*6M7zuT4kN&B8Dd8k zPs@w_T|Z`vGC5&<(>9ZN@w*Br(maEhR$lt;rC+V)GhP^8H?6f#U;p*J*Fw4QTvR=^ zC2eUub}`0(Z3;c-@Bi0o9xx2!1z|&E46yqcOc>Edc{5h^snjT4(tvf;oT$n447~Mx z8JzNXEYq=(k|qdp;jmyYraanGPxo6{S+#2yy_{uCy*isa&vgu3{b2fU+E?mio3SO} zY~6t}FKKgUj$xqDB4Ly35#0!=LNpbw(DgW{ox59K0ke2SLS`F8=v|l2N=Eg*N9L z;6$5qFo|Q@pQ#9CyGs%LDr8yy`Tb8RW_ka(sx=OeGSSnhm`yr2Vp!{MH`SWg_OH4R z>}w57>|aH0+dF%^?}zNRzG`x;PE*@ak1aW_XOHqAQqm95`VRM_!%KFtXYKXQzY#0 zruvBS8VsyL&lhonwBEH?ANQ3ty5Iz{?%%s)J3S2k&*3kLxsAMthn};z1Q#6_jm3&<&RE(c-`lIj1x*X*6h!& z(_ER*ijkRJKYy>3rWT)VasS-J(;YOvU0|n~)NV0*+2+Edt|Q2e4_lRWzu5is;(RGs z!x_EI4x|b(;PMgVbVLqI_P>kd6DIr1eSsb2v^tT%J&$wOJ#UiRLzd>IM;7*S^RJxJ z9{DO;yB2VNlb`(99V}?aMe3v0vTCcmUWJ-#Z@mfGU0UpA75MSWPV;`?6Y2LZA9b|C z_C|)&s!OW>U6I!Frk&M9FVTkS7xEhLg0aVM;rwIjdwKm=f#skmXe5C=#tlc$w0vzi zKc50bC8jkKo1Yn1U=LB*)FZPq>o!I9=hDg<``z_(GzRCcE(8sI%GP#gJiOVLo?P@` zvoKtTyx^g9vA#PyetgSfcS~pMdFx;(ep5Tq5O~%Dk9v~`(4-(BsRCK%7O$$>iW1v1 zlTA%OUhUG=>Wk}ZDhYl8ckkZ~3b-ri!ois%muzp9M_M0qzW=#QZldRVkkv}Bp+n6| zXMUJ~S+yS_V7WKVaeM8@estRL1x@7}@ls#2uL%8py@=#~_7jvHTkv&xIwT1e1eWsi z5$;!Q$seA$zqYxht88q0>dZL3a68ayez_9d&0@tI7! zf!UGbJKWAEh{5L{=96;x7VV|C&8~F|SXo&uWqa439vBoGkhtWX_jJv_rdPhay2&f3rcy*AD6*K7bW8ohSp=4J z)c^cTQy#l2%N2i>&LYLaxzwwUkC?1u7NNuD)CdTcB#Tq`V}>EDRSvhS*KNoi_+LG! zt1mWt9&qy7tWQQsN@;X5MAd@C73zz`e|+sUX{}uq{Wgu=Z)0_ITr8^w(S6ebj-Z(A zT!gbwH8U2T%1lZ9cgw7QV7|%yzHJQ*suBr&W7qBumGchsY+rMo@D$opMjc@O8 zJsaFpz)o(e>K$u$)2g<0sNH=npIkjUF*G~_fLWiyHW+)x+M%-RxS<9+>w6KnEc8Q6-b+*Y{_id6tE4>yU+t4LJ@vQomW30JoR z)ywns>n&x3qN~cvoGgm9nwl&GSnafimSO+2h~7$d6n==%=##_PLmFSQk4h2hthS_(A@%Y8E=p>1b0%X?{F`$aaIqH*QboonsWw1E!y zpqk*6d9LiIenc-7xkzyUh_jm^`$0%_SCYs1(I$n0_4x!CU#Sy>C$dRdsV~a3O|T0W z0sbRA#^uh$CkcGu`1So?K@5BRyvAhV-Ay6*6q7bs5>lmI_|$TR;sNtN4N5_F=Ko}n@qDhzT62Hpo?D(Mwr(BSAL?p}|Lg4~UH|~XX?sL{ ztCv+xuGM|2$IZrX;7Do17W&tBys8K7zTXt+>>@j+@8x>$w)vLatI({fJ-a=&b=^@j zboF*#YxPODFYQulWXovqVQEd8!N8(^5s6a?dX~E)a?64kBFl{v zttMC7-vvJOGAemvBlQ7y)Bm#RZP({^ejF``;yS7HFJ2#Nt0+w9(5Kz~=H38nFYrJc|{i+rF z;S$ooR)3Iq&Hccty8AvsLFHlUm5hu5aXVd7j-_W3r9Z@TNZx^H!p;l%= zpjr%5Cqhn@a4NH~I1ylTP@S6dOP+(v#}85uHosR)jm`ggux2yoUB-|o>G|VPe~tyB z%x`FLnJ$7XNc1)e z0hvHbQ$80%&%s_B<_BBX+*=Km2=V-LX{R-RC#||Vt$ko^!nu3BeX-}|T~cE2=F>bK?Ar?qa;?&~{?6>r)xO&OIT{uaq!qHXI!4ZO1YqvTk)@J4os({Y{ati1 zj)4Zc*qHm1G{Y16@17bL$67veBe#uo{?urR3dhlzP4v7Bm}J1WS7kQgo#o>|ixL2d z4U7wX6xcxCx_ZvIoYL%lbxItj0ZRh{%dOumGIL z>^w0LHvh7iAU(3zW^u@x{rqk4mASU*AGKe~CofeaQun}MCl<+J@=<33CHwbiYsiZ5%|M>@LJwq!pgkJEl= ztJvs>G6pq62zTr1c9zwC)NRTBfUX3j`3M#i-AOw7SYXGmO!kmKo8J&Z_nIW!=ON1z z5%CAeBv#xQQqbM4@wrsvZNi}A=KiPM1H#IR@i(as&bQ$!XQ&*1tPPmYbd`fXdi!KQOQ0?dA3NZ$U2U zVsBag&i;*VZS`l_E$Z8)gqvU6a~(Xp^IMljMnVGiJVtZG&d^4iX4Xm+0W|P_;j7xa zqFk@R1NRg(2detB4uq)rv$j{={+;1gatA2n?=fM{vkTvyFOf_NmQjP<5CXRj)!VQ8 zEU%ViWpuP(Rx?&>>hkN5lR2p`wC%3$pC4L%Z^mkn1Br1}xn-yN?Tpsvki4zB_P|s9 zP5u(?QCFUO5^9kAz3Z-&7Wj`CA*kqv#qdKNQEM4y6+<4|T3uV3$(NX!^$tlRD~1&S?JiDjXs~7dt7&LW=wV{h)9b(t7{51nJvk5P zH>ker7(%9_y7%64*J+NEbb@y}zXpUOAhe+6lL#>1gP6uZ5HDN>Lc?HKh$0!m#SNpQ z5*oX>_Tso~PdF=hHX3_6NYw5ueeGZj%Y@xI1A&{1#}KNlAbFg9Cy*#i*+ zCl`{|yp-)de^~YJtk+6tpYw_nSG?rq4fZrTz1~(oZ=8*t2SKeeTVQ{ty~;G;zkrW- zu9mLL$h}oiVpFk&cwZZt>Yey@k;5Liqyuz3F8Q~@2b(Sh+@#5o0Tugpf%nX8$<3C5 zY1wY|edYOS5#{z+L9^7j&KvaA*IQw!Vqj(%BX+Pw@Adhs*3MzLDLZgU-9htFYd$`B?;CgBPTf{uP+-u? zRC@`@TjJ8+AjW3S&FVU^hg0+}(B7PrmIz(0yJ_Z7X>VtzbDzN-Hj%cMu|Vk3S-$&f zYbIGOelX+G@5}G}PLS;2S*oHg>UREBeg3jm^av^AOlIg16^0Z@i2&Of+SMr*#1KSG zGA7=*y!@B2owpG{*xcAHJcz!SMdM!0=#2YuDYU*~tN2>yAx8)M*`<9x2-<~rsRs&p zf5^Q%QuV8C+qiyZe^X*_Y`~kI&H|6&V&irC++BV$X^VxI?bv@jqAE@h)Ye@5@Vmh; zXGs)7F9$*7(?eTw4cJ~&9JH(!QL7&H`ou8fKBvh+vnTj4GBo|UU#4dB=A8H-A0!r( zapsVt{H#}T^T?mUy|L#lC)HS8tJS&2)n(K!d*v2qPz!8=+N(Yieq2w1AezX0}=#ez|!*1iyb{bBA$%Hs5hD zbiOrBZBTTg+UV6k&6UQ}%`Jw)if0Bqv}CagkW!kl^|vFCIn{+d!Zd3yq7gPg`4T0Y z;s>KAdF)M19tbc7501awTd1U6yfpaz5>{gOsHRR#;HR!o?WF2iMNjSE^U7_h)lb}C zg8KYl=ijnPb7;Rut-f#HRpmE7$lfiiXbFp0FYbCny*ouNC-oO+J;Xm zA)%}&5q2r31d1dKV$T%4>}Xq^vTZ zN#M4&Jz4!d?Yrl2xor?xRY5%PqCH*4P1T>)Q(gy5m1lQu-3byuN1wXIb(V)Uvhw2{ zsMOL^oC3&~XWqhssoB9X*WNjw006BV0|5KXwxL4?1-=i7*Q6IX;?%GVkx(c zF7Lf2&rjEn782Uz9qLTq>90)Rq-amRjCW*T-FnE_ekifKDS?S5N-#P3R&sJNG_6S|}9UWj0OXkEWB-J|*Lso~vRNjMUY5=$DE#K*P$x?d{fl3E7_nE#fOtLGc`CY%`J&*;vfL^#>x z)Q8{gfsb01%Wu|f-w5)RabK$q6mSdb_#Zefj%~k8B7+UYrcjYQ<-pAVl zpUCmx%N#O??ZtHndNq&>&mIzWmwcWq14%&NtYmK*4dRVME)$bTEVAC0-wf zUv&?<_v!x1_`tnWAP;v>lF7zag$0U9vLUMvzYi{m*S+|@ke7Y&T&2V@Qq!2y`)zVp z$P;OF0}L92bFdmfk4{D*SP=o89v7J(y|~dgFgBiDzp5B&y)h|q5bxS`Jz#tH*GjT# z$mXiR+VX08V0G70DN9JyeXv>}9)GzzETQSSU8{rN6f;#^M)NsQ;W988^aG7PeGHO_ z#%Af8SU@QW(0K&J0ikWpmGog6h}URvj+6{H3aOv5^TaVlppaQ!4>9r!t>+}TWlnMU z24$)xll$jK0!ykExYq|7)3R9Po<29pk+-S|xwBC7D9B;BOSYy$;PFm=MKCXrtx)?k zKXJa_`}&FDQ^6`HvW|sm0FY6dF~E}hU7m7htD-yiT6+2yN4XVWd3V_>+TF9#;@y*X za#z{^)Ae$BH>ha2<1yH5`TS^#Np@WGK=L5rYsu=PwL8Am)&mMwty?p-$MyT0R)58< zYYdu^L(lbn>eZ#`I=@~{0{Xu(KFk-fbi)JIhX0CN-sS6^-?6il5}{nlYv{?{SsxmB z3qX|*)9%*PIA{^J$EHiH9R7q*d*siMju*bH-Rml8DO4-T5U&jeqwRN>GP!O6+FI~* zPJ7m!`*Y_wNX~WkYqoMb&J2S%;&_D3rHaM`kxM9Q1RO$gnJ7W%iU==ANi%{U1tA1@ zzC`jLuV1}>(5(2DdU1V6eZwbrL z-)+-0-}8Ts*MErL2FgH$&HLU-VH?I~IxaQ>|FJ~N!A*RmouWxZJ)SwEK`JA z1q6e03L`K?IT}-9j8pg`ij(_Ab`%&7eAr@G5bOx(HJkc8{Q*XuBgG~C+xn5ZjnQh& zA>Ye^`oTS1L9~uNAAcNwPWUHFa=Zc;zgJpLZGeRLz--rSMO{lb;q+@jqUj$9sIK-> zGaK3W==092Gd^+o#4zl94u?M-=F~eCGqWQX`Ldb+ALSk(gQRR-&#BxtEdzMQL=SKQ zH+?N!itC`8Psob^OJ?b-s!xCNU2`sL&l?cgP&1kP=F-VM+v}n#ajmthS`w*Mp~OYBMv?)fNv)Vbhgdoy=YV^agDe!s-~uDI3$LDx-%Mdr`O;2Xn!PxKEk+?NeA!gpVd)4su5~TZj3>Xgq$;D_s6&w{p6JZ8=;6WjTWhPUi z+m$kDo&+M#VNB#v7%xmLFlxd!=9S-D=X8OpT@ zS#d9O@C{9M&@9iFF1S>z{V9KESxZM@$5V4YH_v`fp|8{HUY{Z36M)6uzVqQtW!w8K4c}4RdR;6P!46j*mBb15|1v5#Fq3#3d)+5TJDF;c zt)3yS_IK*U&gs&Nz5X?ZmX-?g=*FwDu&>_Q zyA!`8c7~?AAF6fO^Rb^h2VEKZdK7MLu1sS)&u2o1D8n$g1y&jjk|qmGOdS4^gY~2m z$y5am>-hJVRI|)s9^OL{rYa`bEG9UIjde~i)tOnZqZvjc(ujKnqS3<@77Vb-=?WsZ zoZj0GIRCjxFxk~kVrkhoDD+P2Sp|vcKXcpSuII$gXmE9g^}h_vS-1`m%p_wIDB;RC z^g}KUfF;T9c>mN5gjZ|g$-bPNlcpE04t(AyFeu~u67#_Y*JV}`dnNmYt@7I!wy8sL zb0b2bTv|DuMGhQkhQ00lir*Ve&p*r7ic|Bf>kjF5XKf3V?@IKr=AXA2AF+-|%C8s$ z{Mbfdi&-Yxt~#EO|L{1?FDo)>9D)7xsXp~u>+;OK3VhAI{jrg*u8{%n`n8GHf#k5z zjfqy;Qq_fxLlZ?WlV?jlzT{NfyFH6H%O}f0m2fYG1mZY*{x^#lT!pT|P?RhV3Pv18 zIq|6fyZfRHxF8C|r@RvCc%8fYUFY4Fn>nAj!zRy3Y@UPaxAy8C2xAwJvVe z(>B9QL!m>UC^*avk4Q???d;U#N&M*!%2}p+?0neYj3>BF>`Cl5Z>WA<9DrtfLV`Y~opj z0iF0c3Sk1NU_K`kc*UzO^PmLpbJRw2?XiH}f_K0iKgmnARJeb6_(*f0^$%-BPvzkz z=b+F(cIiO_KxhEE=qeKGxGf&a0GtcJ1(?|ptdhwAP0V=;6ZK`fK+hd#9@9U zJRbcHodB(8!4AbF9aebrM+^iR zV}hbX><;WP5FCYig1n12fpeOuU{DQk$%ibQY(OFH3o~>q%0+nD{7D20krhWw01tWr z>PVnp?9oK<<;Vz(pNR|Y^(MI%j+)2q`OKLz6a$$h99qq3&tm4)YeP~BxI6t`@E@0- zJP$Ymqm)teXoYQUE|E1YE)mWQOiP znZMe(s>R>YD9`7Jh8*lau^o~TQK+B~g-J4_ByT zw1X>IZEr+?p}l1EwMzT1gZ7_V{GXZ{M$JlzwcIH{Z`ZivFS=SP0$yXlUsTE8SJX!| z>luaFfJvpw2Ec9sKGNu2yJgiJUy^R5LMfJRQf6~TI0@k2nKuLn?50e=N+$cENr0~I z?4N3M930pslr%Coipb6b1xYJSph@>|I3^v(H9qI;Tj!uv;h4^7@sIB~0r(r2fup$; zD-qkubM~3OuvsLMg)C`er`|^wV|N65$JCYaek?JeB`0}HCmo+ zsUL`~QutnL4=7nTDu6BEdw7o6D$Zb3_QVmf_|LYd#Nsgd#9NGw7+55bsv)k@{ zzQ9;g7=ptg!6GLrBqfQ35Tr_21C%8hk;K=QU;sIJCE`qUBfp#mhViY;yw6h1i3s^O zl?J8}hmwYQ!_V5CCLyeOK^qCNB_WhCbhs`_k0&F8O(qIUPe30*0#8LawJ9@n?Pid; zV3i*TpyW|=08$YBPv@C0m7Yv0-~HBq{K}o?=@Aus@x0`X>g0{i>pI;3iGTYL$F$y$ z?|V)&B5`hO$LR}I30?=oo1ORo(u24w$6Mi8a@-X|pf#z>`r*oP zVSgFEQ^plzk3^>q`IU-(kxWiK5v?B^4>-g9(+!(#(NoIn7H2#wH5@}%$8458>gv_| zNvzAW9deuxGJ$zULX|9?~Ue$GTsq> zCLIA5Cfsyz04zm=O{a`#0|bXPFr!c@?N=#K1T)mgbJXhdOtKRXUGn^C>Y?AHHSUeH zu$f8iErKHxMC~RPx<+iLldx@Nq~HEax6p+GI(x-~fCfANGU}QHhKaUYY<5!vT(xDaI~-r zQZ5aHw&lfzn+UbOwb!{51*WQJtcD6hJ12h@aO)* zplowzc3dvOApS}Yw^aMcZjmtPuvR^2Hg;@F5I(hNj?49Xhug>(w<{nkr z+E&y2%-6hlM-D&Lbp8^WPkCI4YTTJr(Nn_DJX!(GPj$e_(x2($9bid(3-%#Z_{y_y zrGTX37R!<`CvmO)xj!&V0@<40}^pzvQW) zy>A!fU4N09Vg=3<6?i0ddB%2OwtCrYUyU$zy{aq>jL=LhVu?<4N!^oZBxHg@c1V6@ z)}XiuiJwk2O+eE@agxDKfTIYH915FbaXc_6XG7-ZWp@0D0|*3s~2L@vg}Ioh<8 zLeVEunZQ4mtQ+V<;Y_561~-J*VJV=!gy7~llL)YSOkv_WuYmo+4Di;X-@?v`mXBAQ z*fX#3tp2#U=x)wrASX~8&^=g{<}g?`OWMp_xadCr>0aOSJ$|!uKqQ1!loZ$l9x;qe zJGL$cj%YZ5@jsJyvh}MaSXv#4ITFprgh8g9(5Q|08yBb(fi$g z`f$Gopz?iTM;R1R(0*9xfi#*|58Q35n>vF+m&Udue>^aZelsb>{b6flTK-b~=5+kp z`qs`+HC2Gfy);~1|3hMHJ#!_mZf~t~z?Na!>8vNo3;83V2C!@-njpl)vvk$0oFjz9 zvn1I$g_C^3qfIA{H5}zdV3QUT+)PlJpv!0Z%E9xm$9vwx)L__==)}baSHUPrvZ=tV zF~k^5I3z{UPdp3qB=^x*oe;S=A9D|9E%Z-pp#-@Y2DSR^352>2U1Ug}t zm|3^v7U14eX6$Z<7yRC!uO7t`!D+!*J+)I3#*%Oa2f>~Y`5LWNwNAj%6t;=OXOzr| zF}N4{)YFI23{)VsDYoWbOh<`2Cso16X0$3}@ z;e8ne68$b--G#PKzg-kP)6?c!8}mPCgQ81q%5U<=1s8^Mw*VSAr5{lNLdiD; z)LOgl759C=7Fr^BFC{ibtZ!ANJ&x2HrmQUvcsow%)Em7xB2wZ_qQ&zecOaE6bdgip z&Ii&R6><3{okARfLqsMxIzDCtE5fIQ2A45$n_wa24quv3WUv&oOM> zXS05P>cxBRNpS*w(z#9b*YUyq>4Rl%tzY+ch112s5)f|f|MU?;15*h_5D{XD26Py^ z+?(?sIRrS=A&`$ExnROc!-)tPB2tEKPDHXm@~{&zxDNC%Rp01~5(xtb(#<&QXgw(i z1A0Ca@K`l`rUnT*fYk=_nIRL_gk36^4+1mt`2=K^iKs0ai=qR3yY&Sg_6)lshWvWJ zbG=wx+E4DIpM2jK+T$-@q2$U>RNRZ5B~332_Fq0%r^9pSX3zKNdATzyJwZKftsX-8 zZg(b%XNzY|ffP-WTejgLbk|##-;wcuj-353&a%9dTiyzg1>sYv)-ON2)CvCZBDdp~ znkd)t4bsX+o^c^}yrcNb_iEXpKs-RL|*pZU;n!sLx2C? z*;6`uA<|;`)q|`WfI*32;WV{rJPn$co^oCIJEYCTe*)XFRj75xhl zYx4^5=W!?n2zv3zv0kZQcHTDMb8T}QJFd2)6SQ!!r?`JWkO+PGMA(Yj*cnGySe0#; z*!petN!1~YCzln%V)fyASPUo_L?I~*1lB)@2n5V7Wf6LUgbTMNpu-_v7zQm|1lluM zjI|*q=A@)8J18kgTfkw0Az<=srLWPv6kQCKCJI*>O29On#y}`41*Vq>aSF4vq2M4V zf&j6J#t0`#vhi{VqfEewRhJpTBg)=U6cyzKoDjL9UW0+?Qm9p2+D8WG&b(C6lN}k) ztuc>b&&xP1k9&9iT}Ljggo<4B^jBYd+*bg0YX3r{HfEkr#Q=By8i0li9Axl|4x;pskp8wXEZZ2 z#u`F!Inmo;@~8rtF24s4U->bkc!qETqL6!8&+ zN;r#fGSruX!9l$~pWwtI%BzXNn!;h>XQQxqB9coP6HYk_iy|UW3gJrn5s)Z55tStw zZi3+9LE7?SGnw_^^1_KY$b`ZywR;3>a+-t@PNe7^LWmmpKqgtm8ft7%4q8pPKXaj& z!9|*yZw+rz#uDs+{QTq;jdV^Onj(k1Hkjge8LPvkP?lpNY1Q{t^hdINeH5 z&Q#QogXqkB9{pF}Oekt^pSC_@3xVP?{IAT*6nwF$a__h>kKbFIYNuUytjCXz4~Qsw zi`Q4p+W+1wN>>D9(!5`BYT+4jmwdkhv1x6S1ONTYmMnY_i^cA zEvwLR<=KrS!jg{qRv;R9;pV6p`fwh3=sy)KmI8w! z_>od*^j-BVT>~ly8lw!f9m#W@#p~Iv1ckmPrH(G8m4ayayFAXd~mtHlMTD={M+B%{#GDCHON=g@0ROZ z_h8ts9)%#kX9YH;^CyjApuK*aBrA8_kp+TUld^#T2F*PTpmj)csv2T(;+FtdCS=X3 ze)YqvozJ6I+}?k*=0xOflKVk#?cy667!Xibm7*m?pU7*Uc3)Zi`**3jy2;%m7s@ol z#e^QeDz`%p2pWc1p`2_XI zRvl+T1b!|Mk&O+)76Eb*WS|G}gHh8-FTxE^k0?MbSMJ1J&uf&*CfB-|X`B>{kAmFwtF}QHh9I&AvUQB~z zI0W7kjcl4n^O#7XvY6q3wkoHAX^4mbH{hA1in@Ln-igstAhB+L=cZeAjJ?j>&c_AQ z{>=H(RYOJuvyrlG7N?)`8}6^9VZ0z`b??4&-MO~F!}gjibUl09=i3vyl41YsmAmD(Pp`W97%FG5j5_=Gt-9g*uXf9MSrv}Uoc%Uc zy0!k}K=EKP{#EFxfFrm@+^y5{=jkt(nh+j?=K=i0IsubKO92p_o z*d8{@A0D;2eElLsL#?5|&!5&=QQSL62wHlz8FaAu^6uqlKiO?INe2g?1j@+uh)P3V zBrjMP5D~1L!Wabnii|E40a0V+(&e14>UKd%i`XOIr6%&QSW|XXqCtWbvpmW@Cc%k~ z8{{}<7>`&Yj)($3A&J(1`CCDa(WUb8w)s5dM`qci@$r<$;B55ZNXaS_-5b#ub+m-Dm<0w~kTsQ=pHDVG1E|>&Ef3+NqghT=1>#+Ud9j_jRZw2x85}pD(3V|!m z3|EG6cQgt0^c3f^(wBBz-(ylcP7@H;M@a)N_ftg8XiF->$A|?&exNlTZM@pYpBCKP zRy^z4eVdVayP#^~YaL+F<%7}qX3lLEqG*n%)y`iRhP{7#mZz0x^-QW^+;YQB#*E@Y zJ7fHI{c;XrD(}^HvtrorYG9CmO5d^dqk*39-O1x20sl&rm11&X?anYOf8Idv#6-hh z`}DxADl6p&Zgl;3MRISWFaO??GF7M;LhzMhqu$$L%>h0fEMe+dlP$sf#YJ{F zh%2u12vEh(BtuAGWt+(K1(}TQ;MFBztj(n@5t&O*F=MNuT&L#GG>Hr>-SITSDMd=UqC$HhcZth)&suEYxQB}qQ~!oj9Q zlw*o8h1`)uq7xe%3I`f+UC=D3Kp1QjhY&lY3${$6@B~E65Yb5pdYQQ) z5A!d(j^{la#TlGCb#vR`CF|lt9jjP&wEOry$#zO#28z5=)1!k0f6-PeZ00VtaOY*W z4{r`T7oX$EO>!-Yy<)2TeAwKsIHRoHuHWWX|J0$rb(eG1J#7NBO)h1>?)l=bm(5@8 zulubkP#spLS>3mmFPfuByXU)oy?$Pw+}^IUGPz#}I1!;U!)cv!Jyj6}6nVG)q^tGT z->s}}3Uud_)0W3p$Qz>b65<1cHA`N1m(i^zN5CP|+DKqLux`fG7kh}e#KH$2Eeqiq zAfLtrSuE;=G+Go}WQX>N;D7ucRJkI5$3s{cB9h2;KJP#l>I|Q$EIg3Z*|9p9J*e94 zC#*BXS?QA;tLqnzOB}2+JodNM2z%*n83eb#?RrX$UsJixvmi9t#Z)lnl88tau`D_T z2IobI86Ad$ZQdaRbPC9aH^4xOiZM_EgQu7t!oVE~Hg+gRjl1oI^GYNl28I19iAL-4 z9!`7>DMj+5a-K;(i~$u4j6W!PLBV=m0|eLfL{V zqagOg)(!2W85caw%}VyX0#hcc2fos1)7#EG%e)cC%q69az##6K^U9ydEpo`zuta*fnrsr@QvpZL7o_AwA+1z`NYovqj*fPMN_vJcn8 znRiRQY-`_tx#--WXtTZucWS!IS(kEh6O&Qi8PVK^Ux9n{a%O|>(z^7j37;i(py1M8 zGpA81Px-A1yY^Inj9%bfB9`JDbvE&d=;&Lq1#bI?_SchEy8O<_36N`}$t%Yd6|Q;L zrrPOp`}dZU?UmIbO4@CZ*ZIRQvFcS^PPa2ui+kur7s}at277DAoUu5uMd$b5rY>CH z8!MV^8+*NGe6UPVdNnh=FsyMH106~9nz?;Ola!B;(=e$(9O3nUiul~emxwTkM2ID{ zUBvQY0CCq20u2lao+ODniE+m!JVFXX21(Gcq%B(J--vTfUov^fJqgKXPKTVMOiQu& zFT9BeN&*IsAQDM!s0641C?_Xli3t$ei3@fY3DJvU-~9N@!B*Oq0DAxv;+6TT#7cyC zh>(mw(gfVU5aBFD8*?D{4iT|KR9-9!vUE{bfvlj)EN=hMvGU+ABAKOj^m4a;pqEi3 zORK8y`J{XCiasdI(Ve9|3lk(7F7<+vlJ>~vz6t~9r>WYTm>cTYXQ^pse;05j%C8T+ zw7-)IyL$2QQj|lXr#pGJ#BY}#EiD&G=7jj%!E#5HO@Q1YJsDhVk>2+F9%?>wg)@Q4oP8$RfcK=LvJW(~CtL z?A9=l=winqs=JnmBTlSC|IaB@tKc8VJyYMroECVbTGU{suFR z?c=yMFxR>t?KE-cJ7ZV&V1{vaWAoMSO^F@iLi5e+_ycNdeN}HNO_3HLiACQ#kL=Px zIiY|{pEMS%UDP!Zh;S@~!42GrG1=~HCP-gy3S9iZ|Ah3|sghrLdF3Qwd{rOr->jZn^dj*x;(v5+Ja zg-6zS7vb;^GA%?q=AogaKK6DQ^33CkBWHGg)=N{*Tem2l0kh>`;F)_npZ5Q7AI`tK zf92inAr9U_$;@dAIytxuC86jUp8*R3W34BtJ~WX7Ayf2u!;hkophwa} zU#$TDfvJpBG=w~Fj!cn6hkuddNiab1ya3FF2M{Ola0O!uoCnF|PL+H}WC7*H6b~Wz z{O`geM9>^JBDmgAbrCR@!v+PwD?8yZdWZ>^sWem$%c6rrGTxY~!X>sYK`A#5AF|9@cplTAa5<;yg~ujq6>zaU;q` zWe5#xwM6-S#(m!HIsJtvEf9Y%px6^Qh2o;rAe1Op7XqCtxG^*R8--B@mx#nhFw7UA zlvxn0Dij|BGM19s-f?$By0Uy_cW?UO9pbyb_djrWo|fY(p{`ckUjM^sIeE^To@a@| zio$FbnIa8nM5GZplSMEp;*@}rFn1vDk46!pho}C&Sdig}B_;W8O2(#;l^UB{E0*+( zUsiHt-mFvRP~u<CEL{TuZy@KA>g5-7$JwMa<(@^EJ;A3Ol@wSkgRBEh} zCiUl&oM0{8R3SmdlcS4}%IIQ*u5~l#A`}tf^latYjq_;s(~57cS+n6;hSzm&@fftg zgd@jc4x#BmbzAJgi(8uN;$h2A7TR0tTGJS3y+aOY*$d;t+}z-IxK*;XG%($2wlaEH z;#JS+<5OyRYI9E+o3Q4`93o?L8VYeli{-ekUG;7S~;o>I-! zVis18s_0>jywPNDrW~OwnrJ5Pj&8NxE;n_Mo(;5O?Cif`>>BU81F~eT&i&@SA3DIu zw>~|7k8!Z|pZ_71DFHR@I2+<;%w`+=m9+thbss*}=rpiv%U3;3u&q+z71iUWpyD3ktJ zVw44sheb7CdzcKNxP>vfM7TNB;MA6!?D&~X5me(Qq{QzZa7*lc7w`_-p*{5`tc~?M z#{Rgww-&TNbFh^BN_>zzzW!jiBgi#f8^5*|R2bH$rpDN%Xlrfm3yiKXO-!`D%Bb5l z5*aWP4>^cT>lBDz|GGhbNeEfnz3mXPHauWGa^qs7xKiVx$Em)f%pER5;m*c}S`HY& zuNB}il!Ym7qT%-BH1a7EMosLgv^YcG2)KiW)W~8G&idG7PscQU(G8wB`RKM38~qARKI^$2ll*$aSogg1>);>h9574u1(#SXnwGfp{;E{urgLX z>3T4kthN7Lv1)&rWaUWMST?R3B}<4C;#(N|%nlA=Yb63Y^VPG31pI2GVl$9OUCnFX z(b-E&cKp$P?nmAB;t24slk@PGc0viE(fkg--smDJEY7drr~{z6;Iq$q&0mz{OuWkj z74AJr`7N<|G{e(bPlZZ=eIYg)ak z+-|E#*KU@$8=$#8NNQnh%}6u$DLX!U?LP|Y!E87=JV{ck+iUWFc@XREu>XZStmCFb z=!;}Vi15bOR=b2nH$I`L=5roIFYClHm=aMqiXtk0Gc?QVgAL!xWKin+RF7Zxd((8b z;tTfn3pb@-)iG>#Y56}6Ha4BPmD(-ONqAYnjz;A*L^HoxIs}h?0mXO;vg>h@pJ0;0 zroLJK47SWJ!Vl0J1IA3&D_)zo%-7jq!Awj`5 zmmD>*CaD)A4ArtBeqqHFU)>&%|Dp{iR(*dVv5yfnld4tJMWTSnL#`I3jYa_t3=9rumK<2vhRm$nxU)+M(0w7%EYuge~UZtNP@>9C83 zCJ>gVpbs+`g!JeGa~U~a?pOvar9;q3;bG)^CRSpHpmOJSX4L#t^Kc7_JK{0B;BZqSlEAAkwzg?FV(9$ET99Qi0pb{j5nGT54)9AwIoNVJ zK7cq>Pgg2FEq~U53WHU3JifsHIWD>(%P7SgCB!cB*&8}!&Mh7NjX#`O1{Eu8pe7f? zK^9&ZW6E-QJp>a{g^XErk*!n3bNeGFVQQCSfo2%go3s80VgH)BgfUral{0jOD!j zUf+Xx#wHV?ws6ZV;AY|RMx1m`obZ^_U0Bu9NVvJ6prXf(Uy#_~>*H(P zRNNN)MzhwSb6Z0rmlmWf(4@}cZT){FeS199@B9B|2V=wJu$j{wL(2}1MLEo*sH{{| zVslE8LsU~@hLKH9C5H}1r1QLWqQzzmp;RiBa!k^JDWSyg_4)q(VIB{A?6v#4ujlo= zp4WBXm-ZMl4A=s$0j{L6QlfX_DnsRpMv^?eW5&hNOw9Iyn|pfsB-VBIv{SR>874w7 zPZ^tST$BKELzzZX%9cjNiu z)c_>*F(+_a5xKey5*M~9PZ>MUz^dja$natWr=ZNGn)R>~!4YPFwc$b!JW5HEP|X6T z76RTcLSuDtS#3G*p`nFzhS(|wgv>*g@-Z-FDi1`!<_<^v8*jz<9=nx%dHcdp^W1UE zl`glXomYpt2mkJD`Fr^R5HDUH7VUAr=lsC;{!CPG(V3TAD=~R;~Gk(DseN0+jt3aryl zu=bc7Nu#K15V50EGbC*@MBJ)HZeDmMW^GXd(={M!l%6g?%ERo9n3?Sm!0AS_BHLc& zVNSQ1(#P8SSeq#7JXQPvyWWf*CYWIsvcXtD@({=&XgurHQ4k!fCh{Q>xFByfnBcj) zlw}X}%wkn_(rIdFXl9oCU3A++R+r-686`vxPBL1kJr#{EOEEoev5Sa<*RyXX?Hb#4#f>B3Fk{pliV_#h5BVcbf+9=cbNEAue%^O(h zf;Q`m-llrl7#uHm6K$=ZBHx|n3E^bZwnh84qJv4O;XJ_KvdiRwU= zM$^Njel*Gu zKAvmZEmlnjdf`tRiM)t0&A70;GsZpo9&pIR>e4ORT(Tcs0B@N2TxR8@~86z7#^-IvN?lV4N9bw`biQ4)zeCX zFk7xy#2{(HQ*@fRuGe|Vzpjj!3+`}Uimy|+n28(LZzE2z1af4C5g%%&1kj^1i&aLX zkf?s_&#}6Cx}LH;jG3ugk-#LxL@iYT3kw7&&UuAOeyQQp2r4GviEWA!gAFmo&c#MR4XX43_e9tSTVYYiN){vZH#7r)21Or2ZOu+jFME*gXN`aAQ9!5`(k8$KsJ5#>@CEkMs&91(+&dv3^({fkZ ziNzH~+_E%oupyf#6q8iOI!BHb_btGDqDa9}VvtTN@koH2t`>HDu@Ie8?%Pz?Z1Ys#70$bE!d?k=!j?%%m9*?aU zNn?f%1WE!4_TDsW=fD-DY72;m(Qx3@Hz$ujIQh0yvFGudeh3md|LICgx(Z*KJP(rzy!anCEY_^a&IjYRpcQl(| z9$eJ5vVVyWxa1s0Y1_IO{JjD{S z2#UmCp@d9SXy&$16AlNI4!4@b@Q?lf9&RLw%6wP&n5 z#Oc}Mw&d=(MXi;|6d+drF>7hswD_YZ^?Tg%V_zF%`LX@xDc@Uko)c!6>`fa|P2Qcs z!I71koOYxLpHYO?BHW`Tw*w$8xmKCoH`tunVmjtetDjxs$qWL?R2hd zt1N@o3;a_q04<~eI!iD!T8MT5Rkv0u0KXW6(ZTCU!6fIgN(EQZ9o70Wa6ka(G%|U8 zZ2AICh=ea>8R;GaR{L&-NfLpA+|R1IYGvpu2! zDx%?#dbKCBDAD_Q>@D!af+pPjQ@1yXsbiOyl>aVgw=8xnAB~&+RJe?6`96O;W$ueZ z&;)eVxV(ksR)0HkmJrq=$?M^5d5vqN-hP4hZMVW)>=a|czH0b;H_xyu?Tyk>TB`e z$S4ZO7%KN|waA~$Tjk}Sy?#tfa6X~!K}_31m1Y) z!jm-{RBzu@g=CmQ5XX}2&Y)meu(rDpNP=cRG_$&l{7FSqSWz7djOW9tted9&I}6U7 zzy^anWmWnpB*V@5#9E4B_0fmjg0hhl)hC}mKHd1t?bqey@9XYtoVWRQ;WPMM)V1%~ zz?+8nBS$ruek_565ulx_ zH)7!{b7*CbdxSw{5rg$zk;<`}YV$eI*$byYt$>0#mYo|isi;Cy zrDrlDGlkohV=ic;a4kUQz{NPkSQ)M7oTt0G-oC0azFmtP0upZQ|b*o^9E`&afJfq3hC@?eV%&BY7ni&C*SKHh-?EM_0BK%gs=y$ zrUm?bYkYLlXuRdlO5V!Us7C6;2bWv+S8Dq{)Pv`RAhMMC>GkHTxv)NxwvybvYO_+4 z!uRzTOV}km;!JB8phLpsNdEy+z--_HazBZXJKj{K;DVj)ja0oTII0kvr|fUVkmu2y z++i}_%&3W#n5oU7VSTR5X*#OB(%JPW`;5cs^E(co(}-Henr<-1R${YrRU-{_dluTN zXHQzTS~KY&H$<0}5fg?(Va+(0a?#OMBv07cx$Ulj*6SG{HFvBwFO!z%m5#_!hZlJC zqqTJ%5EZ%Cv?@HI43MX&VO(MDdyVwbQK;dKQhl{xp$Gj*Gy2#Buggsf|wyY8N zb7-a4?a%$c`S0H>*QO=@N_iaceO2%$tf>1^;&<~GG%X{wFb0Qed4imcao|bfcdnmO zIvBX_YW&_xIT}G7G0gRw{j92r^v(-ywlX)mrWN44mM}IW=W}UNv^Gjs5I=@tW(Xvj zfK)vbUk6O*Zds~m8>RrDNgy;GFfc;t!2Rhc0RXpsZ1NJeH|06N_bORs-BEj4Q1_=% z1e6Dp92HJ557Xn@;Kol zwi*y%M}#v-A)GOQN9myaK|MhO&$IGO6g%qQzJ#9sRZc4qKz62$KCwO*5L#ztUd<$Y zLt~kwC=NzfMFMD6Afr{j=yP5hg5lm;_L+*-|Ai~T$eOr2=peG+X5z*7yq3l7%VXWmD^4pj$K7Oqg2#RzZBbmlc&Pc#9sfr$l1CXX5pz3z zzZI>oFJcIrx4!s}gqUm0cv8)sUA&bmMjw>Bzt@22>mr##5A$E3VQCeFjc}LxhbgFA zH$VFMz4zy+kQwHoJ*B7;fwD*&J2VX7YNk?zl5nQTZ!8BYs7S$$RM%U%>nY#jTkw30uS#g*wD>NR6JBVv#UfvX3cN99) zFjlVCZ9rJ%;Y2YiX}jpJ=OnPU={{iMd^A&SrWMFWCO~_=$7sEoN^H<+uX!LlTA%^p z!BUtH2>tF(?0Lq!x8E2z=yYJ8Rccc=}fe=N{t-Bp0hL*o%y|%9!W-*oqJj< z+IQx}4GhBb(KofYzb(tdA$lvyE3?Fl$@vM77Dvwq*9NV`4)5#rj6&daxl9Hr8n{@A zRFv5sx@iNnm1*ayt5F~dwpZ1tZ10@cD)wN5;Tc)HNT{qEaay?*@7-p(N$qc?x<0Gz z)#n}<8_&%>uW6rJ-zTWLr?7Z#5(XW$?~j( zqi9&fUudhEo-b`q^;Q^(faL*PRLJH)uP}zZX3p zwPieC5_TBT1!g=dBjf`%iYROx?~M~3h;?cjbAf~4N^zm%uq+!qrs zAx${BVivTZYEAq6-}F-JP|D{OMfOV9?U3KaX;E|YD^8n!SOar?A1r;X4j{J0s>O~S z3%GVWUZrIF9zz5W22-xvO-Ve_R> zt%&kXb61YG@#yi9$7X@DKxOaFjioP$(Wrv3PxIGLw(p#nN8!h^;3QPpxpr6H=FAYB zvnr@0viZ9vFwS)x_Pd*+pF`G=NvueT#^d1Ney?YdbqY^F+NI0j*a-8xq0ztMhSN~I zl559YdfpxzJN99|Wnip%<@0jIA^@LhhmN|@{hx*`+*%2Lb0a_BiSZ^=6%>~QibJ=- zSp!xeK)_LBCYX^Xs@x}8ct@pBQol0;eS)FNyIbAi5>3ELne;GGU418>hq7S($t1;M zT@c=Ce44kDuC7CHe+JgGCi%4fS(Calq$xT&909NK-@*s4FINEz>9SBw4!O0}(nwdh z$F(1C1G+VH-$~lP;kpKJbEy5 z0}3Or4OcO+$X(xblzQ}sEgp29<)RLYp~~+%{l%MK6IvnkXDKF}Y}_<<79A|EHlm8y zle~m?gNFw)3@L*!4N|4fz;!A>8R-N5qkJ{@ZvQR4JP;IIe9ITs0S(0m@RYf`><|<~Bn5 zy~tPm?JzKRZ4?KcgM(M;OZrT(sytK5hn|{T#%h&WaW>Hw9ENUM)rxUv0kW*zaeGMX-Z$OdW1M$^HL!BMWL zHaPlcy96tlsZ@kcW(&)Za)7uEfJo;np1qq-oB8CpGU(=?`ri1zQ$&UF-()4KhC_+! zv>tp*9_GwwaO<(>H_u*RJwgbM_m8zl#)3+L+9XW#&fDzO>xXN>s)bw;ovJW}5GZS= zcQPzhnSzs}3I2oo{bu_8TR~37Biwv^vqd1iXK9e&H-p4$ zbA&uDix8u0vc2buONF*2VRyfG>9zIVXEHj9mLzcIfVQ62Z$aJ&jEQm#c8$V%JG}vfs{jB3Cy*B+PJFY!g^m<0~?j0=j_~sG5JK#d)y|V+#41+0Fy)gXRSro5lP%0V# zcCcD^CXNSYJj|9-GL+N7sr4TH<8G~dDRX3_2_+Gn<7AIQ%8@1-&fhz|&e#vpGwMlL zbxEly!~omIGw}mQqozrd9wc479mdPa2$ieW8eiuTvvdZRJ&ei5xdROf_R&jE&nCEq zC2+1QJ@{7g#A)rUO$b)vFQd?Sq1D33T#WaVn-O?*$Fb53VJW&mrR<;qs!fgGV<7(% zyF|0H?5RKU?St>#!SJ5U-0W;98R}jK)PI>Mk(KbQ^*5NP?Z$g5X+nwgk@RHABB~P( zisMAs0u_W-cqg_Y96tA~yT4lX9jxl}p4Ilc z<$4NITvehg)bZ@((>5$N_#(Hzo)m$0g4zz;t7}-;0?n^g8oyGbNhkfVR=6NhoiR< z?a!!afC!0FHb`HiLPb`Z0n*aUdZt);W;}W3+wni!u8K-lUEi8xI~Aj(^}rlWZE_VV z7j8$TbQP%<#O`}Y@@$;}m+_o&4=l9WGOeIttQwGYCO58Z*cdp(V4n z$ATE~P3xaCD;t7u0_Y+-8dUhup$QyA_$W+ZMsbV_x0o0~mBiFBWe*iDGzI}8EynJ| z8E9)r)MR`^Rm-fBcvgJ;B#*0b7c))6S{YVYVv}N(mk%Q+bX9jK$)G&8s%Q+`L-BTZxJiUon#6 zf43&9UBm2o!^H1BxHPZr!mSBXeRn3KP;WmDE0y4(fWt&2ccu}4&FF- zk;i|ohUz>)x(JN|*MU`u9A3n$(cOQ3;Wz6-%;;F4)~Aay1uCPKlDvib@+eEJ>Ib$5O5l2oB=OIvW9Bq= zT19~`Sh^#dQRcR8bHQZ9xJ=&SI|0?ei>@ zD*7~)wh2S4-BFVG%xl`Hl5vMid_h4WSexoyZ{wi8Ba(Vo60AMV4DD>-IgJt6os)8= zW(<1zrn~XAKlyMEu>j6o6^fAJx!~4qp;qT;H{OJp42FEWy9(}#W|BbuY_HCJWoZvC z>KgkZRCH$g*(%oQ9QXEB@?38@U(@=?w{Vn0u;&F8EN-|R>Fv)}sKdcP$znK*=g;m# zqcqeYR<5LKMdf=OVF49%%D&u~puN25b?O`Z(Z8*T4S^3z<^kM;k0kzfAh z$Ku7>HG4@xqL*L(qj|NR^v#3G@a4E}vlk|1@v+`e2W!2S+>KibUT!Ti4Iry=v4v4(sG)8MqzmzP0Ra z+np!ArZuKbY^haFPe%p}9sPoctOD8Cg91+b^0%ttaLQ7-=kw1Zv=NHS#IGm0YpVQ* zmLtL1Je+R6#qa1afv9bGb&LtO4*{xYCTYEPykwGz@pZBavXPx8GyMhDH>Ln4%h$0q^*Lhj6MVO?4t#BBt+obo>w33Xas6cH{P~OCdD2$*DD&t6 zP&N)q3P1^l4IRqt?zC1?Spp-ofO5RBkSqqNW*9o59Dw3!K9~^>qQp+{QSRE_kqA$P zf7_uCa6Kou&*5cVe3-%?+eNkQ;0d$zIqWtP<&oh zgUC1D+<-hrI&i!s*G9Y459SkFv^NWr4;PS_@encln%>o8uWPToVZ9dD9e|mu$;<%h zO`=8xdH%^ct(7qZ=ExzM<3K2QE|pKC?bSbkcqo_;>1V`IQcaLRU(h}cu?!{fviKNO zSf)p{5%H&Ccg#?MDEA3#Lxbf>+u3Wq+1ftgS<|GZF3XD)f7yRu^xtM1$mPqC`H_Ps5(UL)@1 zqkFQ!0}d_?FVA|ZTscS59E()1vOXQ%thzYcmLF-0I;I`W0c(F`BLqyPvPQJ3VN8L) zaTAN4kIA#H-=T}16Lq2i-~#xRcc_eMf|Vt{1EgjqSXB^e8xuMg0~rv4*P~hla?nRI ziOcN7qVm?Evy=dJ9`4^Zza<^4%QYDQod)gRzj+ai+-hURv|3u_;yr8ucB<{XIk-y) zLOPbg%@EG??09iWi<=G?Y ztOHk*QJGv#4j|X2Dr4=V#S2*;n_DK3!jqsGb$@?x-{d8%%?S_l(p{(aS#4-xQdaWY zBA-s{VGH_&I*B)g<|;gll8?5#DO%M*05ss(qm&eVc{pOGISv03pPG%$(_Gb~)DIz~ zW=k^fh66oaD3eAoho&|YDir~eZe+p_T;0gys|RcKiFX>`zBL@HeA`<2{9xS8ty-QL z;Xh$;--ptPZOxJO=$X7EXE0Dlq^Zf(;q0q_!>tFr6;M8Vm zUHy24uxPW8PEsW{u|Q=-R43bL^0|?Qrmmxr8?`PdTdn5+$~c$_VYo($N%2UpgDYKH!;$b3pN^fOwO+u9aLLM)g6p)Q!lA zTqz~gwlk`gMTW+WZhHOj){A zbtj3mv`v^nICrt$_0ee0uE*PIbUA$^tj)=7hyoKaLe-6Xa!H+j*@EgN|8(%nAPm-Axvn zcxRLucOdZ`6d9KfDs%P+60<XyOwY5_(`fy5_)+{d!;*!853fm#3V=>&A(bLaf#5>O7e6H_)ioUQja4Mz(w ztu_DXdUJbNyAZFBy_@+cv;TRd@22OqG<>yW%a3NCog&OG`e4>KLLU|23< zdYJ{cmfr&fbA&*QVgg-3667?K(_V^n52a#R4={or(-Wb)>SPcrPm3uD+an3ut_r1) ze$-ou2c!#GXe-}6mvQHFKFQBT{=E3>P~+9eiJMplU0-MaSTRUmt_!rl?T(!NB;N(h zs(Kmoa@U8Zx9=K@BM&et5_|tV^+cLvjbe3c4?7(ChjR*cpV%FzOoaw}-`&k&nM5(3 zOp!GmToDessJf{l8{E?=@1*e<0zU2b7kh01rc!b@Zn^9PCku>CJ#bXy+%~~byg`T>j_d>bj>x}=-Gkf*)ynl+zrza!Zp-(Ew*e1mbtw-PI@g>H~WbERl;AD)Nf z@dd3FGdpp?yIYDp*Vz0XA#)6InJn`FikafrePIEb@a1BLkc1tJw5_MATOY{i_sBS# z=X1H=zG+k8E@4ho&WO+3{n{Di@=xfUxw3OOFnHkQebXWdi`%ONR|NS~)QVX1R5`lE5*=Y9-f?wU! zoLS4QN$wa<;Q^R>OyLVM6b6CvkCW_!LG`bn*4XbK>2{Z^sf<_##)i^f-}-y;zN}Ml z>2(iMKM%M!2#;6J271UjB5*K4RfAg3bHbt%4yeWbJHgMEdS)Q>Qd(um44${#_qrfl z8V|ub6tDuOTgvZUd^13ZzWwWK<%3&F?^RJv1C8N}_dvc!-EIb+_z?Ycd(?%exwpoN zT}RJ&Ky^`k42}zmj^2+S`*v^YQQhLln%`@Q*exU1ps*NJz*oHQwV9V;;Xj|*s2@Ta z8fV+O18Jucg4hJG+_83KCEFu9r9^IPV~2WP+VY$YE;+|t^PzL*c2upVI#`#}b)o-< z^nZ^u_$_|*a^SuOT1uu;k-`+Os(~#06Z2;NhTXsNs#>5ua-!A0+Gv{H;ZF^e{%Q45 zf=^>r)(ho6LC7q@`H?`I>(JG|&fsXsA6F?M{nhPiASk4se$z^!5?0FQ@i2xadg-n5 zX>IfR&t;}JwH;3j2!3Eyeccis?jDOuXCT`61tW9#Z&(Mr0bM(iZ&;PL6P$m=VV~?| z+`Dh_0Gcl~gqloBxu94v9_tWHP^vD8Gd*^yrrk!GD6Zb^*P5HqP@Z*j%n&D0=M^YI z(M@24niJ5EAFu?Z%P6zZrgShzOEn(qzz7> zGsPl~4r`qNuWa#(e*N@}-k1nNdY8HDCcW2ZV!NwPzB1 zqplYpw!&@KzHa-kNExIjI6p4H=QxhIsOnFHN|Lg&^d;f3Oh8@^oEb=qSPs_*U)yy}3=x1{mGVnXufqT9QoJb33wgjD)ijj(|$Vr}5k z29_G4Q-0`G+;ZLh;801U45M`}N9()qwRh#o*85)=9SA#pVlVc0f}L_kt2C;I-jpA{ zNi8%3@pxE817QB%EGX$?y~$myJ0Fr6Th1?c*eqnyv+_b~Dx>ek=;grkFdmi^t4yP5 z1eR-}6+@V`Y-&h&7DQ0hFZrEa_2qmejXPpURm%WF^RqN6&>JN2q#d)IFknGKVstH@ ze=qNf>3z2i{Py_oNc+YvhWMBdMi4N;Gw--+J5^Vh5K zO*WpRBN(-5ug8p!JdQ517!Gi4YVb-%fYt!gQ zSOnJBD$F505kkZFtJi{ciQtOF6V#Gn-7*`C>->*!#q77|A7{Yu>%#PdkyiiS>^Mm? zubnXq4nM^{G^hmHB;NG1320k(5YM~x=FTlJ9lD=J0NnJcz00G-T0Nw+p#E-Yx_7jP zaWAxwC2I{O?71d)b5vg=zQR+ZlsC3r=Ckm8Pz+@aMsIq+DkBFW3Q^n zL$Cie{KzP$olfkIY`o-V(AygQDyDT`%b9YE-7XcS$l8#jlMB={~CwZD@}od@UETj|3Ofenu0 zc}#Els?R08;=!X0Pv414A_0NnU0}i@Mf=N}ck7~F|1G*$cLNQk%RIxnf_@coZQ6Tx zx9sH&CGjHybz;eo4d}8^^S?9qFUn2ipKqweHQ2;h`Q@bpGGZH_gp=|8)5_MIZ0L3S z`m`LzIr$)xe=qrQFD`qMZswgENAl+$9&M;$|KT{w?nWLs zW*c=sk`4t)GqFqN90RQPIa2Z+Wu#_E46_YeLFuj%lmB-?;U(FyizOb>Dj0T$}>zH7$F z5n26iso}?e03EvgI_CW%$nmR7x7&^BpaH_aqH7H7CKtuC+$F2!5WI2y=~f7-oT03B z{#Wi$@N%Hu$FWGg&0z-urr%erwR&dn^6^^ghpND{kw*BY>k9{Vwfr9Wu&xa@lGTd~ zS8Ts?(XKbz>c{Geiywfs-rMrj(WT|3-i@lF*ylHsb{&7y<8lL|_kcEe@8aKq$mos3 zy}Q@OoV@cWZTENWPe*SD8o0#0{}#1r11sRK&&QWe`&>U>w0G&-mGyidlw0>q6UrWe@S*;y%+6wCVuXH`rZEQgD==zvQA36fH`ZJJxE|OybSU60J?o(F^S*M08^eEZAKvo;k`(hu!_iv0m zZiy-hQa#@9*ZaW%8PKt%YVuOa?Wxhod*f9Hjz>S=Y8$QF|Jx&O_t?q7o5ySq!(-py zoE{uQ zPN)NxSQmXiX&1)+#=X&p;h(D_eGb)5#8&K*KXr+Lzk7Nrw!!T6L`iSX<>&n|1s;Z@(_C zH0Qtm(J=mUfv|C_hSv}{{iU1iZN-IU6J5}fX33B_u~S2_b~a>Y^!<34QZrSul9`qR z3<2EFNxKLFrK+WsqT13#$dHtQZ^JkKF;hxXa3Ic*x5P~uv}_MfGnVWdzcG_Md(nOv zIgZhssU9D?`j7Q4Eqmnn3$g6agB|}8Z_+d*@QF8=O&Da098?03YX<;jiJ zFN~FqfEFY&)11`vEn0Je?iX+{h^Nh$DX=6}MQnzj_=oj;2iR{__iwf%;uKkk;^sa!sM*8Lyk>81J;#r&=b ziyQiv9uJT6xPFu_NOaNmuJd)9H(F@aZN?Y(PaE$jb~VfI3Y$6{)b-}tnzC`K*yDD1 z(RBT(V!v6V;38si$mgXk!9|$ykg&Pcf&W%5b}s<>6=K1p`5AvZ0%Tk~U9h6Ef?hnX zxTCd}Jrh!#KA%$?o4g%>M| z?l~t4C|`x0k+QlMqGW^y-R{gUUMYC~SLPkD~hBy_8EtJ+YzLAXKq7+6zFRvy8{IJZ(S6xl?F723w@fx-3u$%ZTo{qL$33wKg<7E%=u33>HkS>Tn?x>@>5tE`oz3;a;Ic2`}=2ul)1&mKbumPX8G%8lAqie zkC#skja*F2Ohs|ESkq460@*&Dso)BmV{%$=YVl`B?ptKz91mx}eLz{%S(mo{1yy8_Fr ze0DDr*l`7au=#bHFO6sd7hzZoMb5()k>4yAjn40xebbPvk(S$gzRP9d(7F{HO}&Lp zjMU;KTJZ9#ab?g@$Ai;_=_|I&M@J)uH@uE)Zy5Y9@H^mm+%F$$%amvLmVc3V*Yq-? zHk$YLb9yX#yZ?;w1*5)T1Zg8HqfgZT?kMb-9&Q>`IfKuXYu%3a**RX}9{zp%EO0?k zX3LkBmC;Me-*g&fWaB+noE+%Em$x!EmvAboDr2!lEMA+=~YqTVG z`KGQY#Z^CcHr{DWag%Lg=ND%`l){)yW+}gaS_;BSP!Yov6W}!V8Mp4^YDda&Uox8f zjDI1&dzu|acUG2~{_}ja&hA-~Y@uLGEql|q%QL?+JMP5KZ;efJa|-$FtTJv9+i6~) z5A1AMY|eki<6Ac1pLLmQ)SW{uX=_~D3~c31{pQAnYZlkf>5I$9sY{Pz+$82hVSg=? zjrZ)J%uI*RoxB+UPvtM6_rtkqId?xCJ>HL>cd0P^K6pFuSn!?(`FcageOu~WqIa)( zpTcT*;r;k^ijm}s3!xqEn2f#p+AE}GmH1@z325S5w;T_q6A9YiyN zh5B%CIz%ijWY&=@m>$2Ly zS1~=YZ7FE=;YeHFNU4bJccJ|JY{1v9w{b_tVW&i02+db`*kpst}IkEfJl{ahdSk7 z%D*<<9cge=-1#3MIrXcRd4*TjOE$Ix*uB|kNAX!y3jc(+WwPH!)9sz+Lu2=BAuA^w z_smjlZ;x9yZ)x^U6~q+`wfk04&`Sq{zjaCecK7zD7&mSVMQ_RqXekV;^X7A*`a2$V{+eaI{|cEadk zBRfeL>%U*Q+;yB}w`m-^e7n^#f(we$Sy^fOa&t?ctzEt!rot#nJhH%%<$X6kxKg^B z)Rol8hB-`P-c^RgG}kW*oi>D@Xj70ooUqNUGkn)|dTi?doTWg2_QDmHEvbLb`h|uM zp9A9QIoI0M({F-z0G24OLoI1mtN{;=ENyA-#)Zn>%7-d~4)!z`LW(X9lPRTYHD z^Q4}1tqXTRnW!uwX?DbT4Og)n_snq@I@8k5Ud*D^RBVLgTwSKlWj)(>E9jbaUcX6f_uMx58S8N>!n@b#Tu){_VQ z$b!ZNImO9V9yEwmmz9!oUWTb=%Vc@rS}c&F)rvpAo{oRLr+)40yj_1dCt^2}sUS%Z zlqr#*dnA&Abe4n$itK!!;8D0IaPM3IdSBUI2nH-eHI}BEU{HyLWbed677rB^@1YsY zIrRQifdzKrpEv=4w+Yj^vPfkS9z*HGXS7o4_|bjDUmh)e@WUhxiV8HkPZ@YoEB(ch zsby!QG~T*RDAxXHk$<>zWDbei3U8K}O<9!NO~D#XoX$RxZ0~~1asVss*jBgn_=#jQ z;4S;RHa#qADeDF(&VzyAE~iGeMjQZkN1t9EHI4+3ZP{Tru`90rY@NZvMq+b*oK|7F zUdbclg7iC&1Dzf`+TQ@_sL8m=~i7%kpH5O8Bitz@k`#!~tPhhD;s`+9at=Pz=i< zP*o=Qj%!G-=A_0)wcC-1QuaY!fEdJtgD9vv{%B+6f4Z`u>zAM8tTK=ZBA^qdrAS*O zmMqU<*-}82S#9yu;4K)x9?K1AqRrv3?r9uaU_>5Tg-} z$FSE9mN4UGl_F-+&Ti9!rxV?U>weS&OrT2N9J&f^1@J7jGj1zA}RK{@9S1zQdvoo6D zSJynTa7>`R59ql;29dr0O-m$pDg8mZN{NB+DTwCk1ZblF@_-t?=huo6;YYXa31ZSf7=Emo`DLpQ3Bako@N0SK>kRcSy46dm|R3H3% ztNmb7gVV=x_Q*`Z2=AYk5wTyVxXGW`RT(nbXGEetVx5ru${C}ciHm0!kDO0V@p)tt zk$UdkNk5O^;dRM=TW2riP=k&@S~0=ijNLyf5@zPw(M_K-Wm>);~AD}L)e*OPc zn%F?lTi8=<>>j}!VD5%Tb6tjkTYWUdsDcyOq!)k8m#@@o# zD_?-yZ~~$jQHYjIgT3qT#Qr)!XOBZndl_FWlk`1r&ZTyZ&P>UPstzTcXAUy@{a;6q zK|9y)*tzE#SX&>1DGx-1*``o1LkvWRc6NInKP)#4nD(hxqGEi;T1y=`txUo&g&nd` ztdYI0e$OBo0pKe6_#hh#&+FBe$;j<;63QttJ5pT+vpa9?$OBMUR1ZYMzMl5h4S*-N z8NgXRN)y8(MeE4O3G`E|ckJBMIH%K9tlJIVV8?J_oUi!c(NFl`HY||@A0gb4vyGKf?A?>= zhdLw@$={5J0=+FU-{*YMaUGHflxsU|`xy5sIbLsin36N=f2#ClW-t%Cz{yXE+o*|Z zI~R3!briZ2kBKhwPy>MYpQrI%5B(m7e`V$E{wx5X_hX3$M1xpo*U>MU`EfHdy2o2u zUpXb8IGsd&wcR}t(xyCj!Bq%&vN`RG)-2qi>;KXz>a0ovWyWl2UGO!)-o2M2e!e+E zr_4OMx#F<9#ityV;_-hO=ED0nLu;YQqwyNZoRoD(j2wcsQQ4;DR$N*hvcQ9qzg1Ua($?(V z!M)nHzD7GP@q&h7t^CY%!aAJ}f?bMV&r_6>=BEXD#1AGSOx-Y1NHz#Y#iH`RFcBI( z+Q8B5R<2&Kz$fpZV9`@6wTGV<){M268w@hU^H&IBbKuz}f#xi0`lqkZ2Bc*tuj41SqRL7osK#=WJ*c2`J*-kN7c>V` z4u;cFR_|+IuNr5RYT8a@uy~yGZmhyy5+OjmSY!6BgFNGSNht_q8^*!1agZ?d_Uiu! zX+f60XtM~hlw!Hghg>jGkTFB_byAcPnpXn3l0k|Z*NEsRUB{IpCO!8Z7-(>R^xso4p@sDxdWZ>`MIr%2}OZZjtLwt+;X`ZVLG?UhT z4d4%x&ppKV;b<0J)#_KSRNx_~ae!1%?2ayKmPk6}jz|8mDiMZ3QDb3K_B3@lXPE_z zB91agG6hhuIMfKhlD`{yFN6$2U=T#HDln~y1f}d78YIX>jRnJTl38Z)%`7LGG0SXb znK6%9Cgw5A97HD7TT`bBiRKMqX&-}`hv5MnQ}E0kHHJ5q&`I-Qp=Z9h7#M@*^bUrY z!{BCqgvK#n3=Ac&6L!1^sV<9{^ zycjfKVj5y%f-nq&W-cDfZn3*e6ixX7Iyq{;VwEP}CAXP>gz&^Np3RUki1;e_%WNGO zgP1V}F)?EdVwxeyG(-CTA`{aL5j+K}09>QK!5!iy1~3(_uh$I>5eNyS%#~*W2Ea#A z`zDID-itD`-i?6)Fvf^?qNr?O$N;9?;T549g1Jaio4kv>PJ(ykPcL}Fm{k;^z6r=6 z(*iZrp%2=Hc`y&A3*!yP3&$IVM?5{`@j^kMCV`sNg$Dh?e8YTUe#rQc@gc{@9KOQv z4IbZQ7V|69l#CSy`IJjkl)3>%a5Ke%@j}q#lalm;vDgrPv7zze;l;>`BiR@hjK#+A0CS<40~p>|4B*C#0c{1Llqg4KRo-x{HeuWNcu#@nQfA4dD@Sbfb}8 zH$B@4sJntM3?&Odt*bJ8^{0B5BC+}`0X0{n00f5m8l#7VeOa#^Xtya7UH!cg z!yp6kiO)qRUL=gNV!*@@gsHp33>dG~ML>b5Hz+eqC>2vhK*3y;%F7#Nd3u9~H@W*Iu78=w3w0ro%#Re>tJxxxJRp;j z`66P13Hg0O-lQh^gghjVsE^4cSMrGZ7+3O``UPH1QZn#E{1)3Qd6UhRyhX0$k8|-A z^7pX*F6)1d75FWd;4kBw#LB>(No$|+H(NUwH9NC|DciiPX%a#(5D$fdNQ4I!hYD~A z1n@vC@&Lk%3;`&H02~PpvFh;)6(qQ1dBN4p9iWCla+Oll6fd^?7MjJcfe;D|;-N4U zUb5a&GaNJKWy*{hGiGPrOw4i;-#AWX!UfP+jJeQQXgnMSF_%b3FcyN%TmYC09wSRB zWik9>*ckcG!-DZ}WAVldjmKPohr@%$gTPGjf}xpQ@Ck2j^)A%eEy$}0G_|hMVA7u|c^bnYz{G^!6hPUtf`>s&8DoH8 z5XEJfAp;Ww6J!*yLrQ zxhw+{7Z5G@ra`#E2`&o(E+ZZ70$hdQ9Hb^0^hqDgFkcui9LF3l8E$xb#M5K$zr@X# zx%mdyH}pZm1zsVy>FR-3gSt@AAJ8Ar9@3xCF7&d#Rny@wxiQIpnQl9GY{9E;y%VP&8V%cTtbY`%8X1F<39XLL(6A7| zf>DEbP%wf81PU5g6NGs9 zIF%W*%sAmxX3Uu7RA$UL$&7i-SeAc{I?FPQ85l2W=8^?YGHQ|8!XXiiISh;!8V^UP zBo7-en7LqpVFa&5WyQwfcj)nO!C>YBJiO3&abP0yHfZ8e?ge9bu~7hn$ZEVSEZL2O zra5iE90bv#bVXek-ZQt0n6C{{^{uxH0LQrOLgwonJj>4L3Z4nHH#v`lJuquy)Zrm;c%Q5#|#He{yz=IJ03I!@IsTt7R#qNH5VdC%^M=Cyfz;}R9N~8u#u(s=xqvHxFkcg&FBb58 z5DcO~6z@F?P(H&CVvK&5A_Re&<69MPe4IUtD!b& zFkcvN7>7GP(C|RRV;-OI@D}&K#Lcg8ccEWMQJ%!)Uf?k`$qRBrASDAeHg`ikB%hK8 zlvrQy<4p=O$ushhdQ6^?D|t-)0bYGbuH;K(lE0BH_${{Y<4WElS0Xa-1^G8v)}*y> zksqSTKv_fNv(BWo<5(}BCE(NOQ0R-VArOKEP~wrq&|zWd(y!+j;Q#^w7=RdRyhF%X zXpl&SF-zu?wXgvcHi#Mr0@|7es6pCw6expLyhG#TBpYqy&pA16PUR#sW=!Gp@d7Ln z#>^dhEK~4Ar)>eb!Ynon!@v+;Y&;wc4>w>gjK-H4hKH9$DP>*h2oJ-H7u_chVtrz@ zS?)Cl8^R-UUkk&)V7x32BmawFJiO>05abo{xv}u>CefM=CQo3=s`o|J&q1>xsWnNV zPRJZ6no4e6#M91>g*DsBpdG-SYg_OaUMz+yuzBHV2xtXCKK~0|&K&nr#w|g_iZD6s z*2YI)KxXZzO>glRLFq6mE>^4-*^tR$^;7L`fI$?zq_7^3mm8?>rhklb5D5SR)W>7Y zds$2awciSs)dz5#F~*FEIR?OtTpT1m;)o=1P6I^BO~J&UEJJuLEUtu6|0$)-K?BA@ zL<&XK)mW0<;teX(dzxUqjzM?VD>LyptMD4&WdM+=0m_Ll2PhhR9sqn2qSQ3=H0-T{ z^x??dq5x7p@ri+ffp?4yf2hYtJba1Ux48WVSC1L5nB+nrgSwE) zlDtqi^g(|}e@uHwyU=q55tV_@2_$4-&EdbHAfH0l5fK^qF&PVm1p%LsKh2AeiORsml8!%tDXo1u1rtK5g{FIpfX4)U zC(Reg&%+Ose~K1-j?tInC&&W=uE>|+>i>Lnx*$f(W@1i^ArQg?Q4>B(4PgNYO`WD$ z1$b@(fs7Y5cGQCa2SHeX;e{Ju$?DkAAdY!+a!zF)Gfr`e8K=%{PH}SPal$Mo%)^VC z2s1EVXuPPIOWt9uxG*dpYCLLn*@Dv=;l!vQ73~tr0!EgmIW&pQd=S9KqiB-)^`eb7q|t8Yd8-Rh zP9e4pM>R6BhWjinwSyd@v!E&@cnE)R;sr1Fd3<*l8OHA5b{<(~tgDk?@>s!` z%~(>B)k`(l9vIq9;$Cq8X?~=ENJ11(wFbrp55&dV+;@d}2E*4FzQ!Q) z)q196O`3&#N}f=VvcF{J>?dTBM`V&`$!g9kCVr zT6E8bj&|&HfcXv{?2KC4mt^Uja^Qn;kOP)2FTSxPRp+?GZfpgCwaAw^g~C88_R`0K zA^kChA;_(%yuLGye3dIY;dRBAE}35IC8Dg|a>$OHz=n7B3rL$Z&Q!89>r$~DFS zV!BSuaSebO!ZI-drqph7J82=Yu)3ye)HbD6Q{w5n(<75(E(;^SvA0HowyKNq7I;bq zzKF!OBtL;5bz8!(tg$i(-^IIlHwM7KJ2CJy1_qwS7y|=O$H2f-yj?D1;OQ73p5mPa zj2L(q?~L?56%C3Ee3moD2=FYM0q|koJut=qAj*`33<3s40yU_=_en8Qu>k9d5-!&}^cjk|Ai{g6J%OFW`p;zG&1wHM@u zyg;QW!1*1XUB3op-pNB6H@T24*0axS! z`3kz9qc|sntL*yew2kt6PH}Q( zbLz}E$%F%Ap&{n57!D5_!{XsEJk(CI%%Q_ zv|4SWsk!!#CjNwLu5mF#WLo}IPs&rtdg_i&yGb}tm0ejX1rH1XrReGnRM`db)v=C< zKkHYuz1Ugh+)1ZWAdx+VfILH0ZH(9 z_A8OAXgzXIi5~|5AICr)0EdW|N@QTU!;1pnjZ$}SHv?c`EF-`ePca5~iUCkODDrPa zz3$x@7$`X?{P%t?FJpiJX_2K26#jfWUs>c_SxS&eAN0vQXqOquc;Wc)>@Uy$0gn%P zc+CA*x%nzrZ}>Rie=cN_D+YBTSL#Aa22ScR?J?~_e@LqpL@F{@c333`d`fi6$Q#ro zAp>hMwMiaP&+v!>ll+j~B!7U*U!?vRm%mK?dA7gI<{d8nAQxBiHs^0cW#AuS`6*Eu z2);vHlH_Lrz-Q>8|1i-?pCJIWIJ#SWZt$3Vp1~XB7vX!!1Jb##kK=7J$X7A>UZ#UQ zC0|V5CxeI#BJ!LJ^6hL6A|mpVe1wEfx~9BAuE{m!4bt)14Y{E_B70=I6A?L4M7jP@ zz5Fx~<<*CJQcUHPImHz98CKkt`5|NY^OdXSTJ=x7xBKbG$HvRO#e*;3u|NDje{zG< z54myX&5d)qoZ=Lxa*7!z@mM<99s|omjTbe35DdeEVE}@S2e2W$u!+Rn(%R~hZ4ANC;K@@NK65N4#+O2BRqF|B2`Ts6U`7Avoao^h#8C)eh8N*@ zFg36W&9M|~fe&K1VBNi^^5wT)vWy+ju(zMZg}MFAM*5&!<>*z0yR#}r{B;f z{la`hd%*aB=^@9*9N%Pki{Tg8LoU=yT&P+_

    yJf@zLTE(agu}{gDs87ixwSLHz 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_undraw_push_notifications.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_undraw_push_notifications.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c3c9dee48ac444a7b215cc002cd665c362261e6 GIT binary patch literal 30682 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

    GH$M)9x=EHVI5r?O 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_video_lock.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_video_lock.webp new file mode 100644 index 0000000000000000000000000000000000000000..aca69879dc4972d5a5ecaccdde6aae3fd6322e27 GIT binary patch literal 1574 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 F{{xo>q4EF# literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_free.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_free.webp new file mode 100644 index 0000000000000000000000000000000000000000..ae27168fdc84b0b30a1b9f80cb9df446935ce571 GIT binary patch literal 13660 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_bg.png b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d08b4f30150352bb77a028d8c0258517517dc8 GIT binary patch literal 13114 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_yes.png b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_item_yes.png new file mode 100644 index 0000000000000000000000000000000000000000..df7a848ecd8138ffa485dc97f0612cada4a91fa4 GIT binary patch literal 3141 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_member.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_member.webp new file mode 100644 index 0000000000000000000000000000000000000000..45c10f0b33a306e375cdb6af2321863d108092ee GIT binary patch literal 916 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_no_ads.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_no_ads.webp new file mode 100644 index 0000000000000000000000000000000000000000..636e273288242ab8fc8c5dfa85cc114b5acbc250 GIT binary patch literal 14430 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_only_coupons.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_only_coupons.webp new file mode 100644 index 0000000000000000000000000000000000000000..93ab3166efc1e657e9c25c7ec4f3461c6eccaae0 GIT binary patch literal 12358 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 ?^*f+v+{|BDcuA2T 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_vip.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_vip_vip.webp new file mode 100644 index 0000000000000000000000000000000000000000..33fc40da3d9f73a07e4f210d6cdac65c4a71a14f GIT binary patch literal 10252 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_home_play_n.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_home_play_n.webp new file mode 100644 index 0000000000000000000000000000000000000000..cd909597b949ed6826c8ac2bd511a3a0b1c70cc0 GIT binary patch literal 1178 zcmWIYbaR`;!oU#j>J$(bU=hK^z`$St#MWTs>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9z}R45N=sv4__UmXfj5$YLHGg#16MRy4oKi|n*vZu2I#JQ zAWUb-VMt|AVDMzfV@PJu1G0>Ok!r|b28>~!#Y_wg`ql^d1lSiZ$dx|!$8)>2!n68+ zqT6zBw>gyiGddPFl%;SmFllfoa4=~!EKt4?&(P4!rfn(C$FM+IqJilJ!wP3hwsTX? zHL$&qkkI(i-_*pXUAxA8KcmC0-00)?LJD6U+ZK9!h4htcGr!kMp8alj{`VAn=V|A8(pb&pp3 zcbc2_dA-uB*!9n{x9s|@xai&2L{;lreWgWpNn177AOEwmr142jSo^;&xvkb;o}ZaD zW5qL@w=dmZ3qD=3^~}f6DXhu6?UMyLhs{-F!DUjTJr0#S@QZ+D#Xq|L??}wABR@8rhuE z*WWvJ#4*&z=8VJD?{_MGyi}i*edD6X>hGy+TH*_HpIzK;vR?dd?;5px=?WWP>z!SG z`2O!sH$UU~MiZu-n)-Kp=h0s#S5IWTtY$M(I{e~uR@{9tDbBU7Y(`&d(+phSd_Pb$ z^UP+Kw2c{)_m)g9Vvao{wc^ISIp=OqZrxJw*KwKHsf-V4>)2NB%QTDs&HeM%`Y#;w zjgrruczkNc!$ literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_loading.gif b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/iv_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..727de664f221a77e7be1fe78777b7d97c3c18444 GIT binary patch literal 91357 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 z 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/values/attrs.xml b/Android_Mireo/app/src/main/res/values/attrs.xml index 78554f9..8954cf9 100644 --- a/Android_Mireo/app/src/main/res/values/attrs.xml +++ b/Android_Mireo/app/src/main/res/values/attrs.xml @@ -1,5 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/values/colors.xml b/Android_Mireo/app/src/main/res/values/colors.xml index c170210..00c6eeb 100644 --- a/Android_Mireo/app/src/main/res/values/colors.xml +++ b/Android_Mireo/app/src/main/res/values/colors.xml @@ -11,6 +11,61 @@ #BBBBBB #ECECEC #7C7C7C + #00000000 + #FF757575 + + #FFFFFFFF + #F2FFFFFF + #E6FFFFFF + #D9FFFFFF + #CCFFFFFF + #BFFFFFFF + #B3FFFFFF + #A6FFFFFF + #99FFFFFF + #8CFFFFFF + #80FFFFFF + #73FFFFFF + #66FFFFFF + #59FFFFFF + #4DFFFFFF + #40FFFFFF + #33FFFFFF + #26FFFFFF + #1AFFFFFF + #0DFFFFFF + + #FF000000 + #F2000000 + #E6000000 + #D9000000 + #CC000000 + #B000000F + #B3000000 + #A6000000 + #99000000 + #8C000000 + #80000000 + #73000000 + #66000000 + #59000000 + #4D000000 + #40000000 + #33000000 + #26000000 + #1A000000 + #0D000000 + #121418 + + #FF808080 + #FFFF0000 + #FFFFD700 + #FFFFFF00 + #FF008000 + #FF0000FF + #FF800080 + #FFFFC0CB + #FFFFA500 #007AFF #F44336 @@ -22,5 +77,9 @@ #999999 #d9d9d9 + #121418 + #D2D2D2 + #2B292A + \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/values/integers.xml b/Android_Mireo/app/src/main/res/values/integers.xml index 0e4da0e..0cfa479 100644 --- a/Android_Mireo/app/src/main/res/values/integers.xml +++ b/Android_Mireo/app/src/main/res/values/integers.xml @@ -1,6 +1,7 @@ 200 + 400 4 \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/values/strings.xml b/Android_Mireo/app/src/main/res/values/strings.xml index 122cb0f..cc81c36 100644 --- a/Android_Mireo/app/src/main/res/values/strings.xml +++ b/Android_Mireo/app/src/main/res/values/strings.xml @@ -94,10 +94,10 @@ File md5 verification failed - Empty + Request failed. Please try again. - Network error. Please try again. - Retry + Network anomaly + Reload Please select a region Please select @@ -243,7 +243,7 @@ REWARDS ME The service is abnormal. Check the network. - Watch Now + Play Now Watch Continue Watching login @@ -272,11 +272,11 @@ Delete Account Feedback Please log in first - 1886904725382038 - fb1886904725382038 - b63e62471e03fc8a1ba13219ebd06363 + 1412578806724790 + fb1412578806724790 + 7dd592739f01bfe1bdc4e5766affcdcc XW2aulJv9urKD4MIIFT1xcSCuyTHaDZ9qUbDqygnTLS04GkdX7WMQJviGP5vDRWGsk4OJJIyLGRV3mbLqOWx0W - guyantv + mireotv No record of spending at the moment Top Up Retry @@ -289,7 +289,12 @@ Google Pay Error Google Pay Canceled Theater - 2. Paid content can be unlocked using coins or subscription. Member-only content is only accessible after subscribing.
    3. Bonus coins expire after one month.
    4. Coins will be used first when unlocking episodes. If the balance is insufficient, bonus coins will be used automatically.
    5. During the subscription period, you will have unlimited access to all episodes on GuyanTV.
    6. Subscription renewal will be automatically deducted from your Google account within 24 hours before your current subscription expires.
    7. If you want to cancel your subscription, please go to your Google Play account and cancel your subscription at least 24 hours before the end of the current subscription period.
    8. If the recharge payment is successful but your balance is not updated, please try to click Restore to refresh your balance.
    9. Our subscription prices will be converted to the region where you pay.
    If you want to manage your GuyanTV subscription, go to Google Subscription Management.]]>
    + Log out + Are you sure you want to log out? + + 1. Mireo offers free and paid content for everyone. \n 2. Paid content can be unlocked using coins or subscription. Member-only content is only accessible after subscribing. \n 3. Bonus coins expire after one day. \n 4. Coins will be used first when unlocking episodes. If the balance is insufficient, bonus coins will be used automatically. \n 5. During the subscription period, you will have unlimited access to all episodes on Mireo. \n 6. Subscription renewal will be automatically deducted from your Google account within 24 hours before your current subscription expires. \n 7. If you want to cancel your subscription, please go to your Google Play account and cancel your subscription at least 24 hours before the end of the current subscription period. \n 8. If the recharge payment is successful but your balance is not updated, please try to click Restore to refresh your balance. \n 9. Our subscription prices will be converted to the region where you pay. \nIf you want to manage your Mireo subscription, go to Google Subscription Management. + Please select a payment item + Network abnormality, please check your network \ No newline at end of file diff --git a/Android_Mireo/app/src/main/res/values/styles.xml b/Android_Mireo/app/src/main/res/values/styles.xml index d159236..9d05770 100644 --- a/Android_Mireo/app/src/main/res/values/styles.xml +++ b/Android_Mireo/app/src/main/res/values/styles.xml @@ -102,5 +102,51 @@ 14sp @color/white + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android_Mireo/build.gradle b/Android_Mireo/build.gradle index b5a430f..d2946c0 100644 --- a/Android_Mireo/build.gradle +++ b/Android_Mireo/build.gradle @@ -1,24 +1,46 @@ -apply from : 'configs.gradle' +apply from: 'configs.gradle' buildscript { - apply from : 'maven.gradle' + apply from: 'maven.gradle' repositories { + google() + mavenCentral() + maven { url "https://artifact.bytedance.com/repository/pangle" } + maven { url "https://artifacts.applovin.com/android" } + maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" } + maven { url "https://jitpack.io" } + maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" } + maven { url "https://android-sdk.is.com" } + maven { url 'https://maven.aliyun.com/repository/google' } + maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } addCommonMaven(repositories) } dependencies { - classpath 'com.android.tools.build:gradle:7.1.3' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20' - classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10' + classpath 'com.android.tools.build:gradle:8.2.1' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0' + classpath 'com.google.gms:google-services:4.4.2' + classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.2' + classpath 'com.google.firebase:perf-plugin:1.4.2' } } allprojects { repositories { + google() + mavenCentral() + maven { url "https://artifact.bytedance.com/repository/pangle" } + maven { url "https://artifacts.applovin.com/android" } + maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" } + maven { url "https://jitpack.io" } + maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" } + maven { url "https://android-sdk.is.com" } + maven { url 'https://maven.aliyun.com/repository/google' } + maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://repo1.maven.org/maven2' } addCommonMaven(repositories) } diff --git a/Android_Mireo/common.gradle b/Android_Mireo/common.gradle index d9a49a1..58da13b 100644 --- a/Android_Mireo/common.gradle +++ b/Android_Mireo/common.gradle @@ -2,12 +2,13 @@ apply plugin: 'kotlin-android' android { + namespace = "com.localee.mireo.shortapp" compileSdk 34 defaultConfig { minSdk 24 targetSdk 34 - versionName '1.0.0' - versionCode 1 + versionName '1.1.0' + versionCode 8 } compileOptions { @@ -37,18 +38,18 @@ android { } } -afterEvaluate { - if (android.defaultConfig.applicationId == null && "umeng" != getName()) { - generateReleaseBuildConfig.enabled = false - generatePreviewBuildConfig.enabled = false - generateDebugBuildConfig.enabled = false - } -} +//afterEvaluate { +// if (android.defaultConfig.applicationId == null) { +// generateReleaseBuildConfig.enabled = false +// generatePreviewBuildConfig.enabled = false +// generateDebugBuildConfig.enabled = false +// } +//} dependencies { implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.4.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0' @@ -56,4 +57,6 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0" implementation "androidx.fragment:fragment-ktx:1.6.0" + + } \ No newline at end of file diff --git a/Android_Mireo/gradle.properties b/Android_Mireo/gradle.properties index 8419537..83cb849 100644 --- a/Android_Mireo/gradle.properties +++ b/Android_Mireo/gradle.properties @@ -18,4 +18,10 @@ org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 # 表示使用 AndroidX android.useAndroidX = true # 表示将第三方库迁移到 AndroidX -android.enableJetifier = true \ No newline at end of file +android.enableJetifier = true + +# ?????????????? +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=8800 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=8800 \ No newline at end of file diff --git a/Android_Mireo/gradle/wrapper/gradle-wrapper.properties b/Android_Mireo/gradle/wrapper/gradle-wrapper.properties index e7e2af3..647558b 100644 --- a/Android_Mireo/gradle/wrapper/gradle-wrapper.properties +++ b/Android_Mireo/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper/dists distributionBase = GRADLE_USER_HOME distributionPath = wrapper/dists -distributionUrl = https\://services.gradle.org/distributions/gradle-7.6-bin.zip \ No newline at end of file +distributionUrl = https\://services.gradle.org/distributions/gradle-8.2-bin.zip \ No newline at end of file diff --git a/Android_Mireo/library/base/build.gradle b/Android_Mireo/library/base/build.gradle deleted file mode 100644 index 888cf74..0000000 --- a/Android_Mireo/library/base/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -apply plugin : 'com.android.library' -apply from : '../../common.gradle' - -android { - - defaultConfig { - consumerProguardFiles 'proguard-base.pro' - } - - sourceSets { - main { - res.srcDirs( - 'src/main/res', - 'src/main/res-sw', - ) - } - } -} \ No newline at end of file diff --git a/Android_Mireo/library/base/proguard-base.pro b/Android_Mireo/library/base/proguard-base.pro deleted file mode 100644 index d076383..0000000 --- a/Android_Mireo/library/base/proguard-base.pro +++ /dev/null @@ -1,61 +0,0 @@ -# 基于 sdk/tools/proguard/proguard-android-optimize.txt 修改 --optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* --optimizationpasses 5 --allowaccessmodification --dontpreverify --dontusemixedcaseclassnames --dontskipnonpubliclibraryclasses --verbose - -# 不要删除无用代码 --dontshrink - -# 不混淆泛型 --keepattributes Signature - -# 不混淆注解类 --keepattributes *Annotation* - -# 不混淆本地方法 --keepclasseswithmembernames class * { - native ; -} - -# 不混淆 Activity 在 XML 布局所设置的 onClick 属性值 --keepclassmembers class * extends android.app.Activity { - public void *(android.view.View); -} - -# 不混淆枚举类 --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} - -# 不混淆 Parcelable 子类 --keepclassmembers class * implements android.os.Parcelable { - public static final android.os.Parcelable$Creator CREATOR; -} - -# 不混淆 Serializable 子类 --keepclassmembers class * implements java.io.Serializable { - static final long serialVersionUID; - private static final java.io.ObjectStreamField[] serialPersistentFields; - !static !transient ; - !private ; - !private ; - private void writeObject(java.io.ObjectOutputStream); - private void readObject(java.io.ObjectInputStream); - java.lang.Object writeReplace(); - java.lang.Object readResolve(); -} - -# 不混淆 R 文件中的字段 --keepclassmembers class **.R$* { - public static ; -} - -# 不混淆 WebView 设置的 JS 接口的方法名 --keepclassmembers class * { - @android.webkit.JavascriptInterface ; -} \ No newline at end of file diff --git a/Android_Mireo/library/base/src/main/AndroidManifest.xml b/Android_Mireo/library/base/src/main/AndroidManifest.xml deleted file mode 100644 index 47d69f1..0000000 --- a/Android_Mireo/library/base/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Android_Mireo/library/base/src/main/res/values/colors.xml b/Android_Mireo/library/base/src/main/res/values/colors.xml deleted file mode 100644 index 04e8e4f..0000000 --- a/Android_Mireo/library/base/src/main/res/values/colors.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - #00000000 - #FF757575 - - #FFFFFFFF - #F2FFFFFF - #E6FFFFFF - #D9FFFFFF - #CCFFFFFF - #BFFFFFFF - #B3FFFFFF - #A6FFFFFF - #99FFFFFF - #8CFFFFFF - #80FFFFFF - #73FFFFFF - #66FFFFFF - #59FFFFFF - #4DFFFFFF - #40FFFFFF - #33FFFFFF - #26FFFFFF - #1AFFFFFF - #0DFFFFFF - - #FF000000 - #F2000000 - #E6000000 - #D9000000 - #CC000000 - #B000000F - #B3000000 - #A6000000 - #99000000 - #8C000000 - #80000000 - #73000000 - #66000000 - #59000000 - #4D000000 - #40000000 - #33000000 - #26000000 - #1A000000 - #0D000000 - #121418 - - #FF808080 - #FFFF0000 - #FFFFD700 - #FFFFFF00 - #FF008000 - #FF0000FF - #FF800080 - #FFFFC0CB - #FFFFA500 - - \ No newline at end of file diff --git a/Android_Mireo/library/base/src/main/res/values/integers.xml b/Android_Mireo/library/base/src/main/res/values/integers.xml deleted file mode 100644 index e3ffc79..0000000 --- a/Android_Mireo/library/base/src/main/res/values/integers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 400 - \ No newline at end of file diff --git a/Android_Mireo/library/base/src/main/res/values/styles.xml b/Android_Mireo/library/base/src/main/res/values/styles.xml deleted file mode 100644 index f622eee..0000000 --- a/Android_Mireo/library/base/src/main/res/values/styles.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Android_Mireo/library/widget/build.gradle b/Android_Mireo/library/widget/build.gradle deleted file mode 100644 index 45a82b3..0000000 --- a/Android_Mireo/library/widget/build.gradle +++ /dev/null @@ -1,6 +0,0 @@ -apply plugin : 'com.android.library' -apply from : '../../common.gradle' - -dependencies { - implementation project(':library:base') -} \ No newline at end of file diff --git a/Android_Mireo/library/widget/src/main/AndroidManifest.xml b/Android_Mireo/library/widget/src/main/AndroidManifest.xml deleted file mode 100644 index b084981..0000000 --- a/Android_Mireo/library/widget/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SlantedTextView.kt b/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SlantedTextView.kt deleted file mode 100644 index 1c934af..0000000 --- a/Android_Mireo/library/widget/src/main/java/com/hjq/widget/view/SlantedTextView.kt +++ /dev/null @@ -1,308 +0,0 @@ -package com.hjq.widget.view - -import android.content.Context -import android.content.res.TypedArray -import android.graphics.* -import android.text.TextPaint -import android.text.TextUtils -import android.util.AttributeSet -import android.util.TypedValue -import android.view.Gravity -import android.view.View -import androidx.annotation.StringRes -import com.hjq.widget.R -import kotlin.math.max - -@Suppress("RtlHardcoded") -class SlantedTextView @JvmOverloads constructor( - context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : - View(context, attrs, defStyleAttr) { - - companion object { - - const val ROTATE_ANGLE: Int = 45 - } - - private val backgroundPaint: Paint = Paint() - - private val textPaint: TextPaint - - private var text: String = "" - - private var gravity: Int = 0 - - private var triangle: Boolean = false - - private var colorBackground: Int = 0 - - private val textBounds: Rect = Rect() - - private var textHeight: Int = 0 - - init { - backgroundPaint.style = Paint.Style.FILL - backgroundPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_OVER) - backgroundPaint.isAntiAlias = true - textPaint = TextPaint(Paint.ANTI_ALIAS_FLAG) - textPaint.isAntiAlias = true - val array: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlantedTextView) - setText(array.getString(R.styleable.SlantedTextView_android_text)) - setTextSize(TypedValue.COMPLEX_UNIT_PX, array.getDimensionPixelSize(R.styleable.SlantedTextView_android_textSize, - resources.getDimension(R.dimen.sp_12).toInt()).toFloat()) - setTextColor(array.getColor(R.styleable.SlantedTextView_android_textColor, Color.WHITE)) - setTextStyle(Typeface.defaultFromStyle(array.getInt(R.styleable.SlantedTextView_android_textStyle, Typeface.NORMAL))) - setGravity(array.getInt(R.styleable.SlantedTextView_android_gravity, Gravity.END)) - setColorBackground(array.getColor(R.styleable.SlantedTextView_android_colorBackground, getAccentColor())) - setTriangle(array.getBoolean(R.styleable.SlantedTextView_triangle, false)) - array.recycle() - } - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - textPaint.getTextBounds(text, 0, text.length, textBounds) - textHeight = textBounds.height() + paddingTop + paddingBottom - var width = 0 - when (MeasureSpec.getMode(widthMeasureSpec)) { - MeasureSpec.EXACTLY -> width = MeasureSpec.getSize(widthMeasureSpec) - MeasureSpec.AT_MOST, MeasureSpec.UNSPECIFIED -> width = - textBounds.width() + paddingLeft + paddingRight - } - var height = 0 - when (MeasureSpec.getMode(heightMeasureSpec)) { - MeasureSpec.EXACTLY -> { - height = MeasureSpec.getSize(heightMeasureSpec) - } - MeasureSpec.AT_MOST, MeasureSpec.UNSPECIFIED -> { - height = textBounds.height() + paddingTop + paddingBottom - } - } - setMeasuredDimension(max(width, height), max(width, height)) - } - - override fun onDraw(canvas: Canvas) { - drawBackground(canvas) - drawText(canvas) - } - - private fun drawBackground(canvas: Canvas) { - val path = Path() - val width: Int = canvas.width - val height: Int = canvas.height - when (gravity) { - Gravity.LEFT, Gravity.LEFT or Gravity.TOP -> { - if (triangle) { - path.lineTo(0f, height.toFloat()) - path.lineTo(width.toFloat(), 0f) - } else { - path.moveTo(width.toFloat(), 0f) - path.lineTo(0f, height.toFloat()) - path.lineTo(0f, (height - textHeight).toFloat()) - path.lineTo((width - textHeight).toFloat(), 0f) - } - } - Gravity.NO_GRAVITY, Gravity.RIGHT, Gravity.RIGHT or Gravity.TOP -> { - if (triangle) { - path.lineTo(width.toFloat(), 0f) - path.lineTo(width.toFloat(), height.toFloat()) - } else { - path.lineTo(width.toFloat(), height.toFloat()) - path.lineTo(width.toFloat(), (height - textHeight).toFloat()) - path.lineTo(textHeight * 1f, 0f) - } - } - Gravity.BOTTOM, Gravity.LEFT or Gravity.BOTTOM -> { - if (triangle) { - path.lineTo(width.toFloat(), height.toFloat()) - path.lineTo(0f, height.toFloat()) - } else { - path.lineTo(width.toFloat(), height.toFloat()) - path.lineTo((width - textHeight).toFloat(), height.toFloat()) - path.lineTo(0f, textHeight.toFloat()) - } - } - Gravity.RIGHT or Gravity.BOTTOM -> { - if (triangle) { - path.moveTo(0f, height.toFloat()) - path.lineTo(width.toFloat(), height.toFloat()) - path.lineTo(width.toFloat(), 0f) - } else { - path.moveTo(0f, height.toFloat()) - path.lineTo(textHeight * 1f, height.toFloat()) - path.lineTo(width.toFloat(), textHeight.toFloat()) - path.lineTo(width.toFloat(), 0f) - } - } - else -> { - throw IllegalArgumentException("are you ok?") - } - } - path.close() - canvas.drawPath(path, backgroundPaint) - canvas.save() - } - - private fun drawText(canvas: Canvas) { - val width: Int = canvas.width - textHeight / 2 - val height: Int = canvas.height - textHeight / 2 - val rect: Rect? - val rectF: RectF? - val offset: Int = textHeight / 2 - val toX: Float - val toY: Float - val centerX: Float - val centerY: Float - val angle: Float - when (gravity) { - Gravity.LEFT, Gravity.LEFT or Gravity.TOP -> { - rect = Rect(0, 0, width, height) - rectF = RectF(rect) - rectF.right = textPaint.measureText(text, 0, text.length) - rectF.bottom = textPaint.descent() - textPaint.ascent() - rectF.left += (rect.width() - rectF.right) / 2.0f - rectF.top += (rect.height() - rectF.bottom) / 2.0f - toX = rectF.left - toY = rectF.top - textPaint.ascent() - centerX = width / 2f - centerY = height / 2f - angle = -ROTATE_ANGLE.toFloat() - } - Gravity.NO_GRAVITY, Gravity.RIGHT, Gravity.RIGHT or Gravity.TOP -> { - rect = Rect(offset, 0, width + offset, height) - rectF = RectF(rect) - rectF.right = textPaint.measureText(text, 0, text.length) - rectF.bottom = textPaint.descent() - textPaint.ascent() - rectF.left += (rect.width() - rectF.right) / 2.0f - rectF.top += (rect.height() - rectF.bottom) / 2.0f - toX = rectF.left - toY = rectF.top - textPaint.ascent() - centerX = width / 2f + offset - centerY = height / 2f - angle = ROTATE_ANGLE.toFloat() - } - Gravity.BOTTOM, Gravity.LEFT or Gravity.BOTTOM -> { - rect = Rect(0, offset, width, height + offset) - rectF = RectF(rect) - rectF.right = textPaint.measureText(text, 0, text.length) - rectF.bottom = textPaint.descent() - textPaint.ascent() - rectF.left += (rect.width() - rectF.right) / 2.0f - rectF.top += (rect.height() - rectF.bottom) / 2.0f - toX = rectF.left - toY = rectF.top - textPaint.ascent() - centerX = width / 2f - centerY = height / 2f + offset - angle = ROTATE_ANGLE.toFloat() - } - Gravity.RIGHT or Gravity.BOTTOM -> { - rect = Rect(offset, offset, width + offset, height + offset) - rectF = RectF(rect) - rectF.right = textPaint.measureText(text, 0, text.length) - rectF.bottom = textPaint.descent() - textPaint.ascent() - rectF.left += (rect.width() - rectF.right) / 2.0f - rectF.top += (rect.height() - rectF.bottom) / 2.0f - toX = rectF.left - toY = rectF.top - textPaint.ascent() - centerX = width / 2f + offset - centerY = height / 2f + offset - angle = -ROTATE_ANGLE.toFloat() - } - else -> { - throw IllegalArgumentException("are you ok?") - } - } - canvas.rotate(angle, centerX, centerY) - canvas.drawText(text, toX, toY, textPaint) - } - - fun getText(): String { - return text - } - - fun setText(@StringRes id: Int) { - setText(resources.getString(id)) - } - - fun setText(text: String?) { - val finalText = text ?: "" - if (!TextUtils.equals(finalText, getText())) { - this.text = finalText - invalidate() - } - } - - fun getTextColor(): Int { - return textPaint.color - } - - fun setTextColor(color: Int) { - if (getTextColor() != color) { - textPaint.color = color - invalidate() - } - } - - fun getTextSize(): Float { - return textPaint.textSize - } - - fun setTextSize(size: Float) { - setTextSize(TypedValue.COMPLEX_UNIT_SP, size) - } - - fun setTextSize(unit: Int, size: Float) { - val textSize: Float = TypedValue.applyDimension(unit, size, resources.displayMetrics) - if (getTextSize() != textSize) { - textPaint.textSize = textSize - invalidate() - } - } - - fun getTextStyle(): Typeface? { - return textPaint.typeface - } - - fun setTextStyle(tf: Typeface?) { - if (getTextStyle() !== tf) { - textPaint.typeface = tf - invalidate() - } - } - - fun getColorBackground(): Int { - return colorBackground - } - - fun setColorBackground(color: Int) { - if (getColorBackground() != color) { - colorBackground = color - backgroundPaint.color = colorBackground - invalidate() - } - } - - fun getGravity(): Int { - return gravity - } - - fun setGravity(gravity: Int) { - if (this.gravity != gravity) { - this.gravity = Gravity.getAbsoluteGravity(gravity, resources.configuration.layoutDirection) - invalidate() - } - } - - fun isTriangle(): Boolean { - return triangle - } - - fun setTriangle(triangle: Boolean) { - if (isTriangle() != triangle) { - this.triangle = triangle - invalidate() - } - } - - private fun getAccentColor(): Int { - val typedValue = TypedValue() - context.theme.resolveAttribute(R.attr.colorAccent, typedValue, true) - return typedValue.data - } -} \ No newline at end of file diff --git a/Android_Mireo/library/widget/src/main/res/values/attrs.xml b/Android_Mireo/library/widget/src/main/res/values/attrs.xml deleted file mode 100644 index 7286715..0000000 --- a/Android_Mireo/library/widget/src/main/res/values/attrs.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Android_Mireo/settings.gradle b/Android_Mireo/settings.gradle index 09ee302..e7b4def 100644 --- a/Android_Mireo/settings.gradle +++ b/Android_Mireo/settings.gradle @@ -1,3 +1 @@ include ':app' -include ':library:base' -include ':library:widget'

{RM_Fx+qtw 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�?>~~ABbj$ka5gzE{|deR zR|f@4cA_N>UEI5Is+U~#Rgc5oX}GVae4oB;`#o)X{67|hHn7jh#w+?XL{4Bm$9=`} zrC~UQW4_*o0vEZ-&lzlE*1)_%vh@4MxE&zNAMTqxovZ6px2gxy$%m(ZoK|!CIc&26 zg?E*FFu(4aG~aRY`=qBHL}H2IOdVPCAy;tjkXP>T-&3aYvI&DA;GloX?0tL}hNW*x z8gCmYxIQ;phO}-LEyrhRUzn?HTQ877jePjGNJAh-f;k)YF^81(Vbs{WXO2p*ut%;A zd_einF1*-v8kRy12^|#${AB++7Gx#VUy@*iI+vC!eoK-ZL8oi{T<3RS=a9lQkW_6B zTaTfK5^&%f31ss-kQ}S3lqielWuk97mhhnUJ=P%0&=3j}L_xxQ)+B4D{Zj^eqiy)< zV0FR?ZX7IzP1pS4a@w_qFp0)%9j!= zy3eaaXP+KZSjmNBiveT_1T`&bPzgtD1R<=FO;) z_S^D;eBrBc4&Ga9i-z}G{%2x1gs|$zpBob4MBZtk6l+AcKu~5pSJYvaJaUIO`%os} zj}XM~HUq(-5~|=3dzQ<;SLx^4kd52T`&uG+Q@U^*{C`}78RT$}#HEkwc$~MdnK|d} zrM2PeG*tI)`{t#oCUjq-?%anBFPk?-GbFxa*ruPkADPKx^xAPR4Q(*Gl)pZx812p{ zvNb_^yrVz3#7{fiSWhvirF#nUOj)NCD+4Ux&~Z0TOL@;rPnF>`Y0+DSuAQ5Z8V#u^cc~O{3?GpaR{X2zARFyU8^rCmOYRhAfHIQ+1>OT2*E`=(SQboXvGk;|1bdHQ3D$#D{r-Q94gkz)*E1z^a+ z@0jLPp*7vDTec1^SY=+{OeCW$5tpLiPM2Oret#w6667yKa-Y^09GN}4_B|Od#Eo?5 zyjv>%o=NvIpMccNWhxT;rak%?bUc6U3dAoW>R4Ld>%l-7;q`T7rMiGi;;*IL zIALVYZ_4A=rEMMx7iVRTUk14Kwr7;d-!6h$2ai7QiLDzW^tPIt-L|@t0#v5_IeVK; zGM_PdAGRw{7MCr{e9-cKo-x>n^nTL3(Jl2Q#&+|H#}@ z=0?w6_`ue!pGG;3>A3h#DhlZjQ|}rqh)m{9p0h~HnD4ZMk)&lZRo_A4N?=UAc`uS@ zA+EoQ6`{72+GsV*WP4=wpJRNPq&adMwMkKl&7ynsWh^}&11)6R5c-btHQ)d8cHz#- zS&M-roQn^J;34Ix^075eL!b^2Rr61+{SS9@`EkH9`EtM=7KXB9dA{K+hwP-*`wL3Z zM4V1r0SUi`N+SvwtHNuZY)gHcVrBJ}T>31Gr9piPGH4p-SMyB5*fC^6DT!?f_ro{> zg~MG0E#w5k&i;93KcRON4+=r5fQj*`7A*j*F#+B)&>^tGhj8TtqRRgFp)&3+Q6(jV z70D2E*mvY&CioZEw^-(slbVUeA?Pf;10!K*zP_Em_u;+=5ivbZ0$ma<Hw5V=9I23b$NjBO_ zIf2!}j)m+ML1si?d7$UMu)T-RQtk3J8lI@fYpglkF4-y+Ev5<%j7>4S`yA&r&r#sQ zNQRWZKc8uKL&v+=Eg#7_WC_g-5`ILNHkiC_9o=zNUnP2B0#+`Iu+e6S5~l$zXu#oR(Nx3eXC&L*pBrlrCxtBqsy;fd4-xsqBC&l4qH1 z4DwU~NOaFL(B|)b3n!u-fjv2HXm{8>7tU_yaNeXHjj?h1ro*FHb^2*s7@O7LgbpH| zrkx8#5<}-LX1C#dpRS%7&BuloJ5alOvtx`_xK!x2*HN~|*8jDLn5ou;{}RdXQUfg* z16w9s9K`yV8ens;(f+_olILiB&%wPyid%$+i#>tF_)mOkI2WZZNDP#RN2cUOP_FyVGH{xc~*-XKFBdz90)^^ zDe8h~+(c4N;6I!2p?`hG)T^0^se*v7RDCtF?B;aiEMzs4ax}x7@y*uvMYfLkzN_ zCY|3*MI7pr5L@?;*N%Gr!xYDO*7Gs7$QeteJmvc2V9uRErvt&vz$DG8^`@hXJALT1 z;}3yGUB$P0+^2?3>&+#>V>*m4ID;KbvNc8)5%NP!2i=d0q@&WtHyB$yS`*PKeJCyE z*YS!d-<&OjC_I=7HOaoh}d?g_=Lw8UiN{e&L0{L zKt`yRf$K(9kijqIZp6NFPngiwUx$PYwFATJ?#&qcCs6T{1)W#EM);u{pGK z(5$jO`l~`>a1W_!8n({b=s)91LGc5w zm8GWMjAsaSUk@#wqz&W%G#L7tx?CB2z&W#CuTL4VNJz+YL>lTd5=7o_(yP3`GLm)u zpYsc{)V%`h{08#TNI0znsRS|+rsGs}+?xgJyW>^ILnu?yb5D^b&|9wkCq)2#%D!Kq z8^v=-T19h;SH#kfY5bE-hmP~p4wZGnCaciOq19|eWF*efvwhGM;Z!CZ#=Tw{{ML(} z9_dzU_@J6NX1(eNofWh*RRP>LiAiR~(J1tK1kQ4(I+;~BFpb%d^HHB+yKFAGK<%^( znS#}$UmNg_fPbi4X2VQqHjzBxKVut{9Istyrp>=@L~YE4W+2$E60x&(D==4{xTp2? z@BR(Zy5s_b_QcxP8-*|X^2GyMj!(W_FDiAW7W`NUvs9+og`OHEcy1$*Ye;ImFPeka zde*of0UTn&Gw1zq!2H(h9ICxw(jx&95QP(EPyMyZ6hZ=Ld($kJ$s5xFVEN^AQ1X4L z46;M37;<8Y7P4`mJf19nhyGdzj2hCuzVCikPyBC4B#UCobhb$s<-LB>_Y#G|FkA7A zzoYSv+Yk=b>yE*9dfw*0_9x64PNvBW^%E z)OjtB!Ao0p0Fd+>{1JpC{5Yt7#jmDg1d)Mq&YprBF-Kuf30K>y4$c$D#tX1RD{6~# zY}7J8Lj~49a>7`9aVEZQ{1V)X^631}d@B^V38dqHew<#198ay>w{L1^c@O*x-O?wz zFR2p{q;SyaM$sv7i>?7*!`u@Ks`_64TnvBY<^$VaWC)XBbo1MxKe5Yqe(*o=&*S@` zXgcAo6U6SC#3d+wTp%Yil%BtY5>x8t&}w8352c#jiF0YbMy!poT^%b|5>v5UzahvJ z;rizxOd6pX{cN@m>ro3vT3>?F)U*lP(|%Ym2UiNzC-lthVoUV`Gqvq})Ak)je4+c& z&AW3*X^y|+SqDwB#Lsdjdi|)yL#d0Z5zQ8!R{a17Pz}4CXT`^Vczwc z0!}aL!ALtxDJVZQyB?nUk^fpQS<`^2jtua+mc`)MKNC;Fe~Rr9)>-R;OQgn7U!s3e z4&h5eEwu&%s^$^^j3vJ7h}BaaZ-n#$cYlvx47?t)-+uCYMHKo(w|z_8HAQZnt6tF; zWhUh*13+a!9;EC)4pifaZoS?)y>YQke|zCFV{CE*^j4~%n_s-&&R-uMRc76woZHQJ zm258RZTVR=e#I|*`5<{u%m$j{B>sGk5THJ~kgq*sbJ@v2x08^vBit%y{?<$6Ck~f4 zX8Na&C$@%y2VI^9A9nD{4LRQ^ZuhT7$eQI*$j@%3 zsLEVcmPf*ywL5pLhbK^98~QmKAAF%$cCeOgb++n6Tijg20D?PUZEvFg1@|K}C$|t6 z62n%Adt^~!zJeMqUrmWh06ek2foNdE#7lTv*J}ZQLvJ`xhsZPJ4bMm0=cJSugmGf9 zDnlv_OGv5((S#DgDgQ`ylOP%1$qcOdPk68n`j9Ev^vR+@jjw{1r;8zr0a-gsUOKlA zkHzZmBCb0BF(}Dh{R}GvfB%D~BK)NE3g?$fuHkRknR3^(`@Z^nOT1lQtFED4|4sz? zGshP)d#tj?CYWs1x~`08`dg@lJHNw-Z+}0D31erm*5lHr^;4S_gU*;VpMBh9eWdRb zKBWE`mf0y}m1r5UysV~fib3`1fe<;MQ0FD0LMmvpZ|3b50p%H)DAievVnF&0k`Bi=yB@-~XA`W|xi-X0x z`vNZx*&!QIGcgJgnr7;g1OW6H`$@{mMEp;C_x;Y*8~*`3LQ=>|go>m{N`>sU6p3si zM0T<_pF&8IRdz~bXT5DQ5?R^%Z6teSkL2t7%lCiyUf1*dbbdJ3eck7ApZi?*xzByS zUd)-31142T3etsd1$uS0j*ha9elwAOd@O_PJ;SajQD1`4R{p85+|mOh{NDprM717@#CnIkA4dRI9ZzqK)Celn{v+H9`mBT%x(jOt=b-6DV3!aD^ulK!=St`kn;Vz$%*@i#{$A*1`K5StD7z`E{Nr>{ zmfgcrpu5)*8TSUs{kt@{+Men3H z8yzo7YV|#$wWpji=DZKt?#eyx_IX)rV=NJW# z)k>f0$tzt1=RTU$DTCh6wKO}sx@FqFxO~&;IacL(X76#qH5>Uvg6n{Z)2xb*Ot&bR zLCKcgs*i#1-zPekiTs86m!h2{6j)-iQc9P6Gd#!(|A_=QGUn!~MkGEfB(FQbNX(RD zWNQr6k-Zi5`70^K?@bc!fN(}OcFOqL<^m5{Y1J%e8uH&}M=FYkSWi{$yVN1FQPL~+ z;CP#=gaye@<{Exk$Nw(K1(+%0ACyyo>_`K_3oBB?t= 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 z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< L00I#Be<$!i7Q_4d literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_ads_episode.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_ads_episode.webp new file mode 100644 index 0000000000000000000000000000000000000000..b8c5329f98fc52649e66721b459417b1a4ed3fe3 GIT binary patch literal 1510 zcmWIYbaT7M%D@or>J$(bU=hK^z`$St#MWTs>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-be-p;R_55T+v`TAc4be3P33tpu6&c zFr6WXA(cUa!IL46A(=rB$T9*(sv(0JFou2JGcz#gTOZ&PC||lDSNh~1&-eQm8~p#g zenakUGghsa0k^mDPBy!2smunoP=cX_ks(LBtwDf+jZx~TqQV)D3%hPK?c3uUJMY?D z3HP@9x1LIVdDJ8PU2xkW+bixL8~)#8T2PidThUYM_BLC?ZD%8-lW%WJ&T;v^Ei!QG z*E{AQu4RN;M>O@~>))k;OSN8^)kaM(`nfE2{juq4 zE6#8Cjo&u?bfo6r?9BIDH@Q`X>UBpgDNpu_k~^zWy)K3=_N>-tcg?D_>mFN|#aQL! zPF>YLb;0whu!|q}rN&!)ShwWy-0oE~?<<+E@qDmMy6H=zo1yOCJda%$*DI*j+xsv1 z@-EMH%bMH?QDRfpZF#?=m%VR}Md70(ox<0fLuxawuZ!JX_V(7+Y!Kty-To!BcC1RS zzSj3HGG$irrmcokr>b~Pf}edt=FQmF^P9Ke%mcRv(&M0+ftFeGp}k}c7LDo(QNhpuw$+^ z(`T8hNejH5y(If%`c;qbZYrlA?7lSpoh9qzRZFE~y92k~T;~d3>zs{@X`@8$|mL!Gm z`&AnNp0!Vm75eT}^Mzym_wRmpxMTmFd2(%0_5I$r0gUhUKL)LcGGF4H zR2iDHWnbyv*D1xDZdls>`zdLC&-=Qy>Y3D&{oPY@N-r&5c+&5$yoc$>{AVjeb}KP* zO_vD0w0K90?pv>TnaNK~9{EJ|N^@W3@eMaSJ3G0@@R$T9k@jxcY2B_ozLTp%r`1kc zv@PrX-tYISF^PSvbSK&Ay^UB9Q}eZ4K`l(>sMGJSe-3TEx$;>^QTAJ3_2*(MnSS~I idU>h#`JCc&mKa2J&BNoJf4#Pe6O~i`v)dOkFaQA6^eB}8 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_close.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_close.webp new file mode 100644 index 0000000000000000000000000000000000000000..e1c99aaba5f99859d150a26e2ebe7dd818b10c3d GIT binary patch literal 4510 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 b$@5KDtE}Yw4c^vfNMD*|HvH#xMgaI1a+eR_ literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_history_play.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_dialog_history_play.webp new file mode 100644 index 0000000000000000000000000000000000000000..e86e1583516469f0948eb4c2c5f9ff6b5525d3ff GIT binary patch literal 2906 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_feedback_list.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_feedback_list.webp new file mode 100644 index 0000000000000000000000000000000000000000..81269b7bcc2a640e7ecf787bcbbf5ab9c0c2a9fe GIT binary patch literal 468 zcmV;_0W1DeNk&G@0RRA3MM6+kP&il$0000G0000r001=r06|PpNKyd+00EF=TidZc z_ix+(3~c+a@^x_rpb^-%ZQJf_kHAUy+tw-G@5TM3N~(yM015KF9YcTMaZ`{u4%&{X zyPWwjcaEdCz(|jJ_ZaZi(HIObtxzxC3^YeO0eZ?sKNo08c2n{HQGk0RV%8qq?|N;r z0r&CpaIjipnA zFPVDM2b>5Mk<2f^xl({H^Q$V9i?0BjpWU?J3qWo7BY^Q9^&tzxeG>prA|(3{#{bC@ zk*p`CJ<1kqMBVxC=CqtC3l|YqP&gn|0000`1pu7^DmDN%06ujrkVmAVp`kndxB!q2 ziD>`;h~`q<{%DgJg5i*%7fsX*EZ`_b7ytnN{r53H|A9aL5B{by|Et+|_(T95zyH9W K{#t+Dt^ff4tk)F) literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_h.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_h.webp new file mode 100644 index 0000000000000000000000000000000000000000..1fe4bdab6c8548b33d34c29b07d981a5d88ab279 GIT binary patch literal 80238 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 U00;m9AOHk_01yBI{~rtd8>23sjQ{`u literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_v.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_loading_v.webp new file mode 100644 index 0000000000000000000000000000000000000000..dca4f1e3a9373a3c2cfc19b54986fd89b1005979 GIT binary patch literal 18560 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_lock_episode.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_lock_episode.webp new file mode 100644 index 0000000000000000000000000000000000000000..42c649244f60f168b304328b2a580aec8ebdbeb9 GIT binary patch literal 1330 zcmWIYbaT^UWnc(*bqWXzu!!JdU|=u+Vrww+baoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktl79h!#md3#FX*mM}ZzKbQ@C612u4u3vkig+K1)!7+&|UdJ zn9h*HkjkLI;K`83kj$V5WElY?)sVpq7{fj`%nS_r)(7|m#Fs3{l|J^z^ZgcuXZ8O? zx8>eGrl7q#^!7I1&C3Jw&oBVBaWpZoFfuIgo49vAHyaaAg|C1`&g(}F{2EGZqGm4J znHD9vGmF?YaO{~Q5y(+fVH)bKxTw}eoiSkdHrrffUgO~JvT1I6Pp?T#OPi-zyt?S~ zo&7cCLZ`1jI^OZmxb8OR+`3i33b5jD5wYILB(s%6nH&WzT1K5BAzTDacE6 z=@bxgCC7Mnkd*A7n%va6jQ6MT1HA-6YdNn>QJ>b^I9Gm2(e3uRGiz_Ijm&(rW;Yu6 zebX@W+qF$ux7e1J=YE~6nEWG7>Wsv^DaZC}Pf6phlbPNZHalk0uWx5`-LxmK_umzu zTNL{0#*Fi)ANwy~K3^_=+SQvk6l3Qazs@(^{_N{l*UZi@-Ive$#K#29JNs6&wxGDO zFXZb%<)Hc3mqdqO=$(KE|QZ}#qe*Vb1jUf?H z$5YGamuOl?T{i#Bwf5IO&zpjKb6u)7ZR5$F@1cC#=xpJ3#jW+ZX=vbE>Fz5#W=Ge( zeXnIXz4Yz*(1V8#CqMnR@i2GxnP1ACGOXK Mk?sC}_4K{wfh_X&>!9Vp5OcaKIeVE&pGcohhU1uM!*5EH#WfA;ZHdT z001-~Kf3#w8XDreV9*r6x;T*=DpCA`0|_PuNC!tElJ^~eL1Wik-Gc)5=%*1u)32+T`-Cd3wid>g31MsCB03k;J#QOmdaN4aw z;XisqLL~&$mp?Q}z!!J|BrpYjz#XVVbOL(R;{XG_FfIjJ|Jczs0g;jl4J-aO_m?Uef{+`D#E@rx~C{u9`6`Nk`rk`Nw zqcNK)#6Wt|WTQ)xk4zoN_fitUi{W_CJmNNdSQ|dBq`)r;fS-=k=R%>SgZ1f5+t*V1 z-gFdyIyc(5pT){{%~89K=Sk1}U=Rb)g56p!_^NIs|H4iK5hjUdYVgaM4B&hc;pF2= znXn_#iHUKO*$S|Yru;cUgS38bFM8as=S4sl9pMszozG1fX4sPcW>7|}hoLZ=^YwTLg$B@qi}^y;-VZ&doRvg(8Y+~HHuOs zV*a8|_Wh*zcybiJJh@m+vN|!IJX1u3$sHMh4=j?cnFK1lBxU9B1!=wT_L49;Ar*Zo z0T!8MA%BMp0MomeQlY$u79IRrl`)+s9%+M;`G~ELG=kaFsHM1@yIi<*MH(HsKDmG3}il3bWWeSadp_IOP3~P%ns7JAN5sW)KbKa8;9xJAA!*3=H zo5vc$^Q)Mjre2mCJjmmarzvhIRVI5A_RjaN2zJ4iJ2ge|_w5|tvahnU$k<<+c}w$-N98deDN zvIGT1cu;m4x!LZ@=a}l_tEtzl0i#0rK(=5t_x(66&-ko@Sc>I{npnR3AC_OrhPLhb z>R**h>aM*?UVbM>Tafg`wRRzjv&PtQ21JXEtr1d{*&2IEwYNhug{LvyE~MtWhHhBU zx7P?g>2_6t>+2S>uZoSeYrbzsu5Q@`rPlhY#NOR9`HZF%TQy*V>nc93FKG1`Xw5tS obJVkjKdC>#n-s-7GjjW-+GykBCf-iW^!T`jdVj|ofkXiQ1*Cd)T>t<8 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_facebook.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_facebook.webp new file mode 100644 index 0000000000000000000000000000000000000000..5b29f355a221b1946ffacb9d256c4a294455f6d3 GIT binary patch literal 1206 zcmWIYbaPwB!oU#j>J$(bU=hK^z`$St#1>%W>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|Afz zVLC$&Ln?y;gC|2CLo$ONkYxmnR6_0sZDC2hBHP%RB|3@~CQ@7pb#oq3ZZ&*=dyRCBVizmzs zExrAoQvx5qp5M^?X{X%w>xU&DEICv5XxqK7?_aH26K$m)wSM-w&W&X~t9M4MN!~Qu z{Xk~rnb&2z4sMWMDVv+IExKO#-qVlwgRJKIEx-J-q%3;t-CeKz#TQ-s9eDEx+d|W` z@go28I$yosztcVP!neymUfPRp6j4%Jp19~1w~C(4_H4cLs-Jk5PjcjCt8$V2mBc>j zedMIZeM_4oUO67}3b^^q>FNJR5b$a1zNPIUp(a&-+!c=(x4d$2iQhXzF5ka7RJ>x3 z?b>;}+_x{d9sgL!ui)i|>c4gS@4pxKoO|v4_p7~gPJg^1`2Wm~?bgdxdZMc>OWPj( zc$T@^@20`+^9`Kl?e}KrZhJN9(Bzx$GvanWt(^C~(z0~1r2pMxuYT90tF51Nobh;D zdKdG)i&u23o=E=Omps?{%(dX(o$L4#SU1nlxcf(RO3m~A6Ap7;XVgvK>2f-9mTF#| z=f?DtXE!M7dnZ0gT`VM!6v`Ca{cS?x>C4IcecyI$SUI=DH~#H8l^L(|<}7}}5+Ne% z@BGPdt(n=^S)tcrwiX$#xVCQo+R5hkXJnM^nmJvwSgt5_T}9OAFO{bfeidEgwD|E` gqnA(4WQ#$a!K%W4b~pZ8H($NH+VYlQ#eZuS0O+!*-2eap literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_google.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_google.webp new file mode 100644 index 0000000000000000000000000000000000000000..b179546675b50545e9e3bcd85db89861dc842033 GIT binary patch literal 2976 zcmcImdpML^7k?dfL@uFpA?c)$%ea=pj9lhWXO1z1A>=Ycm?6U%_lXF(mg^w8A(SaH zt}|0oBtix;L`_T=x5n*bnE77yd{5_(^L_t)Ywxx8Z?E-x-o4h^&$FKwWetbtZwCNJ zOEaVc($Gl^003=J4Zlxob8}>e5V!?|IyUVVFoeU01fza8Q*uH(D~U`1Lg4r=9$ti? zALt(~$XXu!!R^=lN5=nlih5%RULa*2ROMjsa4@HxAl~Wo1FLRg&mY)$6B9#%LO>33 z69?O)%t7o8VpX5NVb8x|ub|*fek#Z@#s!3Kp0z2P)rn*9XYIgs8>k8Z0YCx217@4` zgL_Z{Z-dQR0s!I6pFU4A0MsV{z@CwxKINMLAQcY))SjQdpFIik2=@5?xh0gThX1G# z1ptU4Ah|;#^x$oQP*V*~{d!TfE}^ZfOQYUZZC{)3lD4yF2ANzcbsmew=Kc}hmHK?O z`WktK*3~P5jPqta#!a5%6)n(lEGlkcFHKNL#qsI`SjSwbIQJRak^OI}2$n;k{|%pL zkif!v7hVII8;26W@WQmo;a)1PY2ft2o0bNIdw1X_<@g7ccoN57IeTTNJWu9XdIh2tAl#asB1|X0My~2FkXgk6OFz zmHupQy5sQ6d|&CmFi-()x%+M?{anaY{}6TR!YXdf+4C4-4#1?wh3$~h@3cRK$%jt~ zrrY1uc?{|<)R|zNMxukL&J2^l!Ty1k}>QeTuSy@U!^ z6+t0>IbctCd&UmyYV#!;kJ^lJ}Jc#iy3nKw7&l%V}*BFpV^jB zCT?%A2LN6YPn)>I@_B)L?Hg7=hZBOX!Y+eFyAyp>{)t(O{E zd^M{-os#c~kj(57X@=nrej`CE*pid^$W92xgTF?Sn2zE;*&3iT_)3E#@$QrSr*jr5ZEO+4$iCB+5`a9PSK_f&mskps zb2+h)Jd;6`;@KS%0v^gx;J9Y?Q#*%{Q1WT?-h)Cw=1{d~24y@icZ?`$gCnF)al&_> zy$mQO^aUcwIqyC{g2P!62p7S!*T?ILTJyBJ+2ZORhj*wVeOVcIMHt(*o^#96K2ZPR zJEVK>bd^+m6n#1ZHjXB6+;sXdJqqK)x~VTQL)CZMZCHFcS@6NZH-#3Ve6wsr*xU_R z42v+TsS=aXXpg8*@_d=BRp7A7g^Tu_`dAo4zCM698T4K{T4I^DsDSQoB>!)KKBqEvkAC*;QGUA&^*p z?8eG9NXvpwpkuhX)dQ~DzFLmbZ=P&M#B=<3XDm@M*1qkE**MzGvgJOP*8FYlfX3Tw zro^uX>ull_q!&g=xvi6z!?h+;T;sQrEk*6hKJK|U>60_pYWMnE#p%P$`|5kt7ZuN` zMb1AF>wNk(#U`zkKy56m%V^-g&a&SK57w+w8_FLALu6|ukK;(LP1nOiu=$6mk zbAW&2qhRH#gsZ@nky}LF!W36Jn&!&OWB8T7P%CjOADwzNH)!fHH-f2axp!Q9Y1wEt zk2+cnU!9yL3810=-JeRI+att3DW}7Nrk+XgT|#0bt=%C}vjHAoDRg*TpckHG8RYmiObm|dQ{|8 znL$!*y$10{?Los2eR)O1B0&>YQ=rn6rxEY{TpR%n@wFtVy1+Of|I_RVlM~XZ)WP zLcm}1zwK}J*^+rsrfm&j=a9IokRL*73z|BN8`mUV9w?{?_xmNKp=r5ezIa>E=Tp25 z(!?TfA)b6>{E~5BGH})+7VZ@JNqyt>+??z;w(jo2E4BA`;B2=7rZFA2*4y-#B;B;ts7-}~T*uBS(9=kIOc z$4T!FJ?{ukMK;VRzGf+IU}5ht3SCXtXWC19c-o)4jXsRdRG$tAZjlZC_MS(N*i0*1 z&jy+~py4mwnG1Q`IwByg`{WUcC5@kwY$!~VJ`yx&kbUcx&Q+PqnW!p2@9Azi4R`Ki{qBl#ij0*Z!5ka>Q~Nj3kRd?; literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_icon_de.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_icon_de.webp new file mode 100644 index 0000000000000000000000000000000000000000..a9544444e9576f3048a6ce281522481a85395018 GIT binary patch literal 10616 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 WA&HSMfsro-v;e)c=+Q?*1pFT|NPAQO literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_tiktok.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_login_tiktok.webp new file mode 100644 index 0000000000000000000000000000000000000000..22b1ec693070d9d69c4854446d25202ca56eb86b GIT binary patch literal 3076 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 literal 0 HcmV?d00001 diff --git a/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_conins.webp b/Android_Mireo/app/src/main/res/mipmap-xxhdpi/ic_me_conins.webp new file mode 100644 index 0000000000000000000000000000000000000000..441d5ac779c26d94c57606b2c6a5e0fcc2adbbe5 GIT binary patch literal 4114 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