From 959a79b187f5d4b4b91557a9baefde45b93e0aba Mon Sep 17 00:00:00 2001 From: PualGeorge <2792601046@qq.com> Date: Wed, 25 Mar 2026 14:48:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Android=E3=80=91Version=204.0=20Releas?= =?UTF-8?q?ed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/app/build.gradle | 10 +- .../tencent/uikit/app/main/MainFragment.kt | 42 +- .../tencent/uikit/app/main/TRTCMainAdapter.kt | 45 +-- .../uikit/app/main/call/GroupCallActivity.kt | 2 + .../uikit/app/main/call/SettingsActivity.kt | 1 + .../app/src/main/res/drawable/app_avatar.png | Bin 62337 -> 13676 bytes .../src/main/res/drawable/app_ic_avatar.png | Bin 62337 -> 13676 bytes .../src/main/res/layout/app_activity_live.xml | 4 +- .../app/src/main/res/layout/app_main_item.xml | 14 - .../app/src/main/res/values-en/strings.xml | 2 +- .../app/src/main/res/values-ja/strings.xml | 1 + .../app/src/main/res/values-zh/strings.xml | 1 + .../app/src/main/res/values/strings.xml | 1 + application/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- atomic_x/build.gradle | 9 +- .../LanguagePickerDialogFragment.kt | 2 +- .../{ai => AITranscriber}/LanguageProvider.kt | 2 +- .../TranscriberSettingsDialogFragment.kt | 4 +- .../{ai => AITranscriber}/TranscriberView.kt | 2 +- .../trtc/tuikit/atomicx/callview/CallView.kt | 84 +++- .../tuikit/atomicx/callview/CallViewStore.kt | 39 ++ .../AudioAndVideoCalleeWaitingView.kt | 2 +- .../AudioCallerWaitingAndAcceptedView.kt | 2 +- .../VideoCallerAndCalleeAcceptedView.kt | 4 +- .../public/controls/VideoCallerWaitingView.kt | 2 +- .../public/multi/MultiCallWaitingView.kt | 8 +- .../SmartCellularRecommendationDialog.kt | 176 +++++++++ .../public/transcriber/CallTranscriberView.kt | 59 +-- .../deprecated}/AISubtitle.kt | 17 +- .../atomicx/floatwindow/FloatWindowManager.kt | 248 ++++++++++++ .../floatwindow/FloatWindowObserver.kt | 7 + .../karaoke/service/MusicServiceFactory.kt | 4 +- .../atomicx/karaoke/store/KaraokeStore.kt | 297 ++++++++------ .../karaoke/view/KaraokeControlView.kt | 189 ++++++--- .../karaoke/view/KaraokeFloatingView.kt | 103 ++--- .../tuikit/atomicx/karaoke/view/PitchView.kt | 4 +- .../atomicx/karaoke/view/SongRequestPanel.kt | 30 +- .../view/adapter/KaraokeOrderedListAdapter.kt | 5 +- .../view/adapter/KaraokeSongListAdapter.kt | 5 +- .../alertdialog/AtomicAlertDialog.kt | 3 + .../widget/basicwidget/avatar/AtomicAvatar.kt | 46 ++- .../widget/basicwidget/button/AtomicButton.kt | 35 +- .../tuikit/atomicx/widget/utils/BlurUtils.kt | 337 ---------------- .../atomicx/widget/utils/DisplayUtil.kt | 22 -- .../atomicx/widget/utils/ImageLoader.kt | 185 --------- .../atomicx/widget/utils/ImageOptions.kt | 69 ---- .../color/switch_thumb_bg.xml | 5 - .../color/switch_track_bg.xml | 5 - .../drawable/bg_advance_setting_button.xml | 5 - .../drawable/bg_advance_setting_panel.xml | 6 - .../drawable/switch_thumb.xml | 15 - .../drawable/switch_track.xml | 17 - .../layout/advance_setting_button.xml | 16 - .../layout/advance_setting_panel.xml | 53 --- .../layout/item_advance_setting.xml | 24 -- .../res-advance-setting/values/colors.xml | 8 - .../res-advance-setting/values/strings.xml | 14 - .../res-advance-setting/values/themes.xml | 6 - .../layout/callview_ai_transcriber.xml | 17 +- .../layout/callview_root_view.xml | 2 +- .../karaoke_song_order_button.png | Bin 23188 -> 0 bytes ...karaoke_audio_effect_dialog_background.xml | 6 - ...ct_settings_item_not_select_background.xml | 5 - .../drawable/karaoke_bg_karaoke_tag_blue.xml | 4 - .../drawable/karaoke_bg_karaoke_tag_green.xml | 4 - .../drawable/karaoke_function_bg.xml | 5 - .../karaoke_settings_item_select_bg.xml | 8 - .../layout/karaoke_control_view.xml | 62 +-- .../main/res-karaoke/values-ar/strings.xml | 6 +- .../main/res-karaoke/values-ja/strings.xml | 6 +- .../res-karaoke/values-zh-rTW/strings.xml | 6 +- .../main/res-karaoke/values-zh/strings.xml | 6 +- .../src/main/res-karaoke/values/strings.xml | 6 +- .../common_ic_switch_off.xml | 2 +- .../common_ic_switch_on.xml | 0 atomic_x/src/main/res/values-zh/strings.xml | 2 +- call/tuicallkit-kt/build.gradle | 6 +- .../tuikit/tuicallkit/TUICallKitImpl.kt | 58 ++- .../tuicallkit/common/data/Constants.kt | 6 - .../common/utils/PermissionRequest.kt | 51 +-- .../tuikit/tuicallkit/manager/CallManager.kt | 42 +- .../tuikit/tuicallkit/manager/UserManager.kt | 2 +- .../manager/bridge/CallKitService.kt | 39 +- .../bridge/TUIAudioMessageRecordService.kt | 2 +- .../manager/feature/CallingBellFeature.kt | 1 - .../tuikit/tuicallkit/state/GlobalState.kt | 2 +- .../tuicallkit/view/CallMainActivity.kt | 98 ++++- .../incomingbanner/IncomingFloatBanner.kt | 21 +- .../IncomingNotificationBanner.kt | 4 +- .../component/joiningroupcall/JoinCallView.kt | 2 +- .../component/recents/RecentCallsFragment.kt | 10 + .../recents/RecentCallsItemHolder.kt | 2 +- .../component/recents/RecentCallsManager.kt | 10 +- .../layout/tuicallkit_activity_call_kit.xml | 25 ++ .../src/main/res/values-ar/strings.xml | 35 +- .../src/main/res/values-en/strings.xml | 33 +- .../src/main/res/values-ja/strings.xml | 35 +- .../src/main/res/values-zh-rHK/strings.xml | 35 +- .../src/main/res/values-zh-rTW/strings.xml | 35 +- .../src/main/res/values-zh/strings.xml | 35 +- .../src/main/res/values/colors.xml | 1 - .../src/main/res/values/strings.xml | 33 +- live/tuilivekit/build.gradle | 8 +- live/tuilivekit/src/main/.DS_Store | Bin 6148 -> 0 bytes live/tuilivekit/src/main/AndroidManifest.xml | 5 +- .../trtc/uikit/livekit/common/Constants.kt | 37 +- .../com/trtc/uikit/livekit/common/Debug.kt | 10 - .../uikit/livekit/common/ErrorLocalized.kt | 11 +- .../uikit/livekit/common/LiveKitLogger.kt | 2 +- .../uikit/livekit/common/PackageService.kt | 5 +- .../uikit/livekit/common/PermissionRequest.kt | 4 +- .../livekit/common/ui/RoundFrameLayout.kt | 2 +- .../audiencelist/AudienceListView.kt | 3 +- .../view/AudienceListPopupDialog.kt | 2 +- .../view/adapter/AudienceListIconAdapter.kt | 2 - .../view/adapter/AudienceListPanelAdapter.kt | 3 - .../component/barrage/BarrageStreamView.kt | 21 +- .../component/barrage/view/BarrageSendView.kt | 2 +- .../component/barrage/view/EmojiLayout.kt | 2 +- .../component/beauty/BeautyPanelDialog.kt | 1 - .../beauty/basicbeauty/BeautyListPanel.kt | 2 +- .../beauty/tebeauty/TEBeautyManager.kt | 6 +- .../component/beauty/tebeauty/TEBeautyView.kt | 2 + .../dashboard/StreamDashboardDialog.kt | 74 ++-- .../dashboard/view/CircleIndicator.kt | 2 +- .../livekit/component/gift/GiftListView.kt | 263 +++++++++++-- .../livekit/component/gift/GiftPlayView.kt | 59 +-- .../gift/view/GiftBulletFrameLayout.kt | 117 ++++-- .../gift/view/GiftCategoryViewPagerManager.kt | 16 +- .../gift/view/GiftTabLayoutManager.kt | 18 +- .../component/gift/view/ImageLoader.kt | 82 ---- .../gift/view/adapter/GiftPanelAdapter.kt | 170 +++++--- .../gift/view/adapter/GiftViewPagerAdapter.kt | 24 -- .../gift/view/animation/ImageAnimationView.kt | 153 ++++++-- .../gift/view/animation/SVGAAnimationView.kt | 2 +- .../view/animation/TCEffectAnimationView.kt | 2 +- .../animation/manager/GiftAnimationManager.kt | 98 ++--- .../component/gift/view/cell/GiftBaseCell.kt | 58 +++ .../component/gift/view/cell/GiftBatchCell.kt | 252 ++++++++++++ .../gift/view/cell/GiftCellConfiguration.kt | 10 + .../component/gift/view/cell/GiftComboCell.kt | 362 ++++++++++++++++++ .../gift/view/cell/GiftSingleCell.kt | 75 ++++ .../view/like/GiftAbstractPathAnimator.kt | 2 +- .../gift/view/like/GiftHeartLayout.kt | 10 +- .../component/gift/viewmodel/GiftConstants.kt | 2 +- .../component/gift/viewmodel/GiftModel.kt | 19 +- .../component/giftaccess/GiftButton.kt | 4 +- .../component/giftaccess/GiftSendDialog.kt | 20 +- .../giftaccess/service/GiftCacheService.kt | 7 +- .../giftaccess/view/GiftBarrageAdapter.kt | 2 +- .../features/anchorboardcast/AnchorView.kt | 29 +- .../store/AnchorBattleStore.kt | 47 +-- .../store/AnchorCoHostStore.kt | 32 +- .../anchorboardcast/store/UserStore.kt | 44 ++- .../battle/panel/AnchorEndBattleDialog.kt | 4 - .../battle/panel/BattleCountdownBackView.kt | 62 +-- .../battle/widgets/SingleBattleScoreView.kt | 42 +- .../panel/AnchorCoGuestManageDialog.kt | 6 +- .../view/coguest/panel/AnchorManagerDialog.kt | 40 +- .../coguest/panel/ApplyCoGuestFloatView.kt | 2 +- .../cohost/panel/AnchorCoHostManageDialog.kt | 10 +- .../cohost/panel/AnchorConnectingAdapter.kt | 2 - .../view/settings/SettingsListAdapter.kt | 2 - .../view/settings/SettingsPanelDialog.kt | 8 +- .../anchorprepare/store/AnchorPrepareState.kt | 14 - .../anchorprepare/store/AnchorPrepareStore.kt | 107 +++--- .../view/function/PrepareFunctionView.kt | 2 +- .../view/function/PrepareVideoSettingPanel.kt | 4 +- .../view/liveinfoedit/LiveInfoEditView.kt | 6 +- .../LiveCoverImagePickAdapter.kt | 5 +- .../livetemplatepicker/LiveTemplatePicker.kt | 9 +- .../audiencecontainer/store/IMStore.kt | 46 +-- .../audiencecontainer/store/ViewStore.kt | 2 +- .../store/observer/RoomEngineObserver.kt | 20 +- .../audiencecontainer/view/AudienceView.kt | 67 ++-- .../view/LiveCoreViewMaskBackgroundView.kt | 8 +- .../view/battle/widgets/Battle1V1ScoreView.kt | 2 +- .../view/battle/widgets/BattleInfoView.kt | 1 - .../view/coguest/panel/AnchorManagerDialog.kt | 36 +- .../settings/AudienceSettingsPanelDialog.kt | 2 +- .../view/userinfo/UserInfoDialog.kt | 15 +- .../view/doublecolumn/DoubleColumnItemView.kt | 6 +- .../view/singlecolumn/SingleColumnItemView.kt | 7 +- .../livestream/BackgroundLaunchDetector.kt | 166 ++++++++ .../livestream/VideoLiveAudienceActivity.kt | 10 +- .../livestream/VideoLiveListActivity.kt | 2 +- .../voiceroom/VoiceRoomListActivity.kt | 4 +- .../battle/SingleBattleScoreView.kt | 2 +- .../cohost/InteractionManagerView.kt | 7 +- .../interaction/common/CoHostView.kt | 9 +- .../common/CoHostViewManagerPanel.kt | 100 +---- .../common/InteractionInvitePanel.kt | 8 +- .../livekit/voiceroom/store/PrepareStore.kt | 34 +- .../voiceroom/view/TUIVoiceRoomFragment.kt | 24 +- .../voiceroom/view/VoiceRoomActivity.kt | 4 +- .../voiceroom/view/VoiceRoomRootView.kt | 64 ++-- .../voiceroom/view/basic/ExitSeatDialog.kt | 41 -- .../livekit/voiceroom/view/basic/Switch.kt | 92 +++++ .../view/bottommenu/AnchorFunctionView.kt | 26 +- .../view/preview/AnchorPreviewFunctionView.kt | 4 +- .../view/preview/AnchorPreviewView.kt | 12 +- .../view/preview/LiveInfoEditView.kt | 2 +- .../view/preview/PresetImageGridAdapter.kt | 22 +- .../voiceroom/view/preview/SettingsDialog.kt | 15 +- .../view/seatmanager/SeatActionSheetDialog.kt | 2 - .../seatmanager/SeatApplicationAdapter.kt | 12 +- .../view/seatmanager/SeatInvitationAdapter.kt | 1 - .../view/seatmanager/SeatInvitationDialog.kt | 2 +- .../view/seatmanager/SeatManagerDialog.kt | 27 +- .../view/settings/SettingsListAdapter.kt | 4 +- .../livekit/voiceroomcore/SeatGridView.kt | 43 ++- .../impl/SeatLayoutConfigManager.kt | 56 +-- .../voiceroomcore/view/SeatInfoView.kt | 9 +- .../voiceroomcore/view/VoiceWaveView.kt | 1 + ...chor_prepare_live_stream_default_cover.png | Bin 17670 -> 358393 bytes .../livekit_activity_video_live_list.xml | 7 +- .../livekit_activity_voice_room_list.xml | 28 +- .../audience_list_count_arrow.png | Bin 439 -> 0 bytes .../audio_effect_return_arrow.png | Bin 2486 -> 0 bytes .../audio_effect_dialog_background.xml | 6 - live/tuilivekit/src/main/res-common/.DS_Store | Bin 6148 -> 0 bytes .../color/common_radio_color_selector.xml | 4 - .../src/main/res-common/values-ar/strings.xml | 8 + .../src/main/res-common/values-ja/strings.xml | 8 + .../main/res-common/values-zh-rTW/strings.xml | 8 + .../src/main/res-common/values-zh/strings.xml | 8 + .../src/main/res-common/values/strings.xml | 8 + .../src/main/res-common/values/styles.xml | 8 - .../res-gift/drawable-xxhdpi/gift_ic_like.png | Bin 9216 -> 0 bytes .../res-gift/layout/gift_layout_animator.xml | 4 +- .../res-gift/layout/gift_layout_bullet.xml | 40 +- .../layout/gift_layout_gift_panel.xml | 11 - .../layout/gift_layout_panel_recycle_item.xml | 2 +- .../drawable-xxhdpi/livekit_ic_back_white.png | Bin 239 -> 0 bytes .../drawable/livelist_tab_bg_selector.xml | 14 - .../drawable/livelist_widget_item_bg.xml | 5 - ...ive_list_double_column_category_layout.xml | 12 - .../layout/livelist_layout_refresh_footer.xml | 13 +- .../src/main/res-network-info/.DS_Store | Bin 6148 -> 0 bytes .../network_info_device_temp_overheat.png | Bin 931 -> 0 bytes .../drawable/room_info_button_follow.xml | 5 - .../drawable/room_info_button_unfollow.xml | 5 - .../room_info_detail_button_unfollow.xml | 2 +- .../drawable/room_info_follow_bg.xml | 5 - .../res/color/livekit_switch_thumb_bg.xml | 5 - .../res/color/livekit_switch_track_bg.xml | 5 - .../src/main/res/drawable-xxhdpi/.DS_Store | Bin 20484 -> 0 bytes .../drawable-xxhdpi/livekit_bg_video_view.png | Bin 374649 -> 0 bytes .../livekit_connection_exit.png | Bin 507 -> 533 bytes .../livekit_connection_toast_icon.png | Bin 954 -> 0 bytes .../livekit_function_dashboard.png | Bin 5229 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart0.png | Bin 2391 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart1.png | Bin 2527 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart2.png | Bin 2471 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart3.png | Bin 2530 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart4.png | Bin 2503 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart5.png | Bin 2531 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart6.png | Bin 2502 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart7.png | Bin 2530 -> 0 bytes .../drawable-xxhdpi/livekit_gift_heart8.png | Bin 2526 -> 0 bytes .../livekit_gift_ic_avatar.png | Bin 62337 -> 0 bytes .../drawable-xxhdpi/livekit_gift_ic_like.png | Bin 9216 -> 0 bytes .../livekit_gift_ic_like_png.png | Bin 2686 -> 0 bytes ...livekit_anchor_audio_effect_background.xml | 5 - .../res/drawable/livekit_anchor_live_info.xml | 5 - .../drawable/livekit_bg_confirm_dialog.xml | 4 +- .../res/drawable/livekit_bg_gift_give.xml | 5 - .../res/drawable/livekit_bg_gift_show.xml | 5 - .../drawable/livekit_bg_start_live_stream.xml | 6 - .../res/drawable/livekit_btn_grey_edge_bg.xml | 8 - .../res/drawable/livekit_follow_button.xml | 2 +- .../livekit_gift_bg_bottom_dialog.xml | 11 - .../drawable/livekit_gift_icon_normal_bg.xml | 6 - .../livekit_gift_icon_selected_bg.xml | 6 - .../livekit_git_barrage_bg_msg_item.xml | 5 - .../livekit_live_info_button_follow.xml | 5 - .../livekit_live_info_button_unfollow.xml | 5 - ...vekit_live_info_detail_button_unfollow.xml | 5 - .../livekit_live_room_preview_mask.xml | 8 - .../drawable/livekit_room_info_follow_bg.xml | 5 - .../livekit_round_button_background.xml | 17 - .../livekit_seekbar_process_drawable.xml | 25 -- .../livekit_seekbar_process_thumb.xml | 16 - .../res/drawable/livekit_seekbar_progress.xml | 28 -- .../res/drawable/livekit_seekbar_thumb.xml | 14 - .../livekit_selector_item_invite_user.xml | 5 - .../livekit_stream_dashboard_dialog_bg.xml | 8 - .../res/drawable/livekit_switch_thumb.xml | 8 + .../res/drawable/livekit_switch_track_off.xml | 9 + .../res/drawable/livekit_switch_track_on.xml | 9 + .../livekit_switch_track_selector.xml | 5 + .../livekit_user_info_button_follow.xml | 5 - ...vekit_user_info_detail_button_unfollow.xml | 5 - .../livekit_voiceroom_start_pk_button_bg.xml | 5 - .../main/res/layout/item_live_category.xml | 15 - .../layout/livekit_alert_confirm_dialog.xml | 2 +- ...it_anchor_prepare_layout_video_setting.xml | 2 +- .../livekit_anchor_settings_video_config.xml | 208 ---------- .../res/layout/livekit_connection_toast.xml | 21 - .../res/layout/livekit_fragment_anchor.xml | 11 - ...layout_anchor_connection_manager_panel.xml | 15 +- ...out_anchor_link_mic_panel_item_request.xml | 2 +- ...livekit_layout_anchor_preview_function.xml | 87 ----- ...layout_voiceroom_item_seat_application.xml | 32 +- .../res/layout/livekit_recycle_item_music.xml | 48 --- ...ivekit_voiceroom_anchor_preview_layout.xml | 2 +- ...kit_voiceroom_interaction_manager_view.xml | 4 +- ...vekit_voiceroom_item_seat_action_sheet.xml | 7 +- .../livekit_voiceroom_preview_settings.xml | 41 +- ...ekit_voiceroom_seat_action_sheet_panel.xml | 10 +- .../livekit_voiceroom_seat_manager_panel.xml | 12 +- .../tuilivekit/src/main/res/values/dimens.xml | 5 - .../tuilivekit/src/main/res/values/styles.xml | 15 - 314 files changed, 4131 insertions(+), 3491 deletions(-) rename atomic_x/src/main/java/io/trtc/tuikit/atomicx/{ai => AITranscriber}/LanguagePickerDialogFragment.kt (99%) rename atomic_x/src/main/java/io/trtc/tuikit/atomicx/{ai => AITranscriber}/LanguageProvider.kt (98%) rename atomic_x/src/main/java/io/trtc/tuikit/atomicx/{ai => AITranscriber}/TranscriberSettingsDialogFragment.kt (98%) rename atomic_x/src/main/java/io/trtc/tuikit/atomicx/{ai => AITranscriber}/TranscriberView.kt (99%) create mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallViewStore.kt create mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/smartcellularswitchrecommendation/SmartCellularRecommendationDialog.kt rename atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/{aisubtitle => transcriber/deprecated}/AISubtitle.kt (91%) create mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/floatwindow/FloatWindowManager.kt create mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/floatwindow/FloatWindowObserver.kt delete mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/widget/utils/BlurUtils.kt delete mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/widget/utils/DisplayUtil.kt delete mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/widget/utils/ImageLoader.kt delete mode 100644 atomic_x/src/main/java/io/trtc/tuikit/atomicx/widget/utils/ImageOptions.kt delete mode 100644 atomic_x/src/main/res-advance-setting/color/switch_thumb_bg.xml delete mode 100644 atomic_x/src/main/res-advance-setting/color/switch_track_bg.xml delete mode 100644 atomic_x/src/main/res-advance-setting/drawable/bg_advance_setting_button.xml delete mode 100644 atomic_x/src/main/res-advance-setting/drawable/bg_advance_setting_panel.xml delete mode 100644 atomic_x/src/main/res-advance-setting/drawable/switch_thumb.xml delete mode 100644 atomic_x/src/main/res-advance-setting/drawable/switch_track.xml delete mode 100644 atomic_x/src/main/res-advance-setting/layout/advance_setting_button.xml delete mode 100644 atomic_x/src/main/res-advance-setting/layout/advance_setting_panel.xml delete mode 100644 atomic_x/src/main/res-advance-setting/layout/item_advance_setting.xml delete mode 100644 atomic_x/src/main/res-advance-setting/values/colors.xml delete mode 100644 atomic_x/src/main/res-advance-setting/values/strings.xml delete mode 100644 atomic_x/src/main/res-advance-setting/values/themes.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable-xxhdpi/karaoke_song_order_button.png delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_audio_effect_dialog_background.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_audio_effect_settings_item_not_select_background.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_bg_karaoke_tag_blue.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_bg_karaoke_tag_green.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_function_bg.xml delete mode 100644 atomic_x/src/main/res-karaoke/drawable/karaoke_settings_item_select_bg.xml rename atomic_x/src/main/res/{drawable-xxhdpi => drawable}/common_ic_switch_off.xml (92%) rename atomic_x/src/main/res/{drawable-xxhdpi => drawable}/common_ic_switch_on.xml (100%) delete mode 100644 live/tuilivekit/src/main/.DS_Store delete mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/common/Debug.kt delete mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/ImageLoader.kt delete mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/adapter/GiftViewPagerAdapter.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/cell/GiftBaseCell.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/cell/GiftBatchCell.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/cell/GiftCellConfiguration.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/cell/GiftComboCell.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/component/gift/view/cell/GiftSingleCell.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/livestream/BackgroundLaunchDetector.kt delete mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/voiceroom/view/basic/ExitSeatDialog.kt create mode 100644 live/tuilivekit/src/main/java/com/trtc/uikit/livekit/voiceroom/view/basic/Switch.kt delete mode 100644 live/tuilivekit/src/main/res-audience-list/drawable-xxhdpi/audience_list_count_arrow.png delete mode 100644 live/tuilivekit/src/main/res-audio-effect/drawable-xxhdpi/audio_effect_return_arrow.png delete mode 100644 live/tuilivekit/src/main/res-audio-effect/drawable/audio_effect_dialog_background.xml delete mode 100644 live/tuilivekit/src/main/res-common/.DS_Store delete mode 100644 live/tuilivekit/src/main/res-common/color/common_radio_color_selector.xml delete mode 100644 live/tuilivekit/src/main/res-common/values/styles.xml delete mode 100644 live/tuilivekit/src/main/res-gift/drawable-xxhdpi/gift_ic_like.png delete mode 100644 live/tuilivekit/src/main/res-gift/layout/gift_layout_gift_panel.xml delete mode 100644 live/tuilivekit/src/main/res-livelist/drawable-xxhdpi/livekit_ic_back_white.png delete mode 100644 live/tuilivekit/src/main/res-livelist/drawable/livelist_tab_bg_selector.xml delete mode 100644 live/tuilivekit/src/main/res-livelist/drawable/livelist_widget_item_bg.xml delete mode 100644 live/tuilivekit/src/main/res-livelist/layout/live_list_double_column_category_layout.xml delete mode 100644 live/tuilivekit/src/main/res-network-info/.DS_Store delete mode 100644 live/tuilivekit/src/main/res-network-info/drawable-xxhdpi/network_info_device_temp_overheat.png delete mode 100644 live/tuilivekit/src/main/res-room-info/drawable/room_info_button_follow.xml delete mode 100644 live/tuilivekit/src/main/res-room-info/drawable/room_info_button_unfollow.xml delete mode 100644 live/tuilivekit/src/main/res-room-info/drawable/room_info_follow_bg.xml delete mode 100644 live/tuilivekit/src/main/res/color/livekit_switch_thumb_bg.xml delete mode 100644 live/tuilivekit/src/main/res/color/livekit_switch_track_bg.xml delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/.DS_Store delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_bg_video_view.png delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_connection_toast_icon.png delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_function_dashboard.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart0.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart1.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart2.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart3.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart4.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart5.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart6.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart7.png delete mode 100755 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_heart8.png delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_ic_avatar.png delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_ic_like.png delete mode 100644 live/tuilivekit/src/main/res/drawable-xxhdpi/livekit_gift_ic_like_png.png delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_anchor_audio_effect_background.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_anchor_live_info.xml rename atomic_x/src/main/res-karaoke/drawable/karaoke_panel_bg.xml => live/tuilivekit/src/main/res/drawable/livekit_bg_confirm_dialog.xml (55%) delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_bg_gift_give.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_bg_gift_show.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_bg_start_live_stream.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_btn_grey_edge_bg.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_gift_bg_bottom_dialog.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_gift_icon_normal_bg.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_gift_icon_selected_bg.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_git_barrage_bg_msg_item.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_live_info_button_follow.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_live_info_button_unfollow.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_live_info_detail_button_unfollow.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_live_room_preview_mask.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_room_info_follow_bg.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_round_button_background.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_seekbar_process_drawable.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_seekbar_process_thumb.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_seekbar_progress.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_seekbar_thumb.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_selector_item_invite_user.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_stream_dashboard_dialog_bg.xml create mode 100644 live/tuilivekit/src/main/res/drawable/livekit_switch_thumb.xml create mode 100644 live/tuilivekit/src/main/res/drawable/livekit_switch_track_off.xml create mode 100644 live/tuilivekit/src/main/res/drawable/livekit_switch_track_on.xml create mode 100644 live/tuilivekit/src/main/res/drawable/livekit_switch_track_selector.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_user_info_button_follow.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_user_info_detail_button_unfollow.xml delete mode 100644 live/tuilivekit/src/main/res/drawable/livekit_voiceroom_start_pk_button_bg.xml delete mode 100644 live/tuilivekit/src/main/res/layout/item_live_category.xml delete mode 100644 live/tuilivekit/src/main/res/layout/livekit_anchor_settings_video_config.xml delete mode 100644 live/tuilivekit/src/main/res/layout/livekit_connection_toast.xml delete mode 100644 live/tuilivekit/src/main/res/layout/livekit_fragment_anchor.xml delete mode 100644 live/tuilivekit/src/main/res/layout/livekit_layout_anchor_preview_function.xml delete mode 100644 live/tuilivekit/src/main/res/layout/livekit_recycle_item_music.xml delete mode 100644 live/tuilivekit/src/main/res/values/styles.xml diff --git a/application/app/build.gradle b/application/app/build.gradle index c2e31d66..21e6a0ee 100644 --- a/application/app/build.gradle +++ b/application/app/build.gradle @@ -3,12 +3,12 @@ apply plugin: 'kotlin-android' android { namespace 'com.tencent.uikit.app' - compileSdk rootProject.compileSdkVersion + compileSdk 34 defaultConfig { applicationId "com.trtc.uikit.livekit.example" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion + minSdkVersion 21 + targetSdkVersion 34 versionCode 1 versionName "1.0" } @@ -30,6 +30,10 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } } dependencies { diff --git a/application/app/src/main/java/com/tencent/uikit/app/main/MainFragment.kt b/application/app/src/main/java/com/tencent/uikit/app/main/MainFragment.kt index 7a80d538..de93d24a 100644 --- a/application/app/src/main/java/com/tencent/uikit/app/main/MainFragment.kt +++ b/application/app/src/main/java/com/tencent/uikit/app/main/MainFragment.kt @@ -3,7 +3,6 @@ package com.tencent.uikit.app.main import android.content.Intent import android.os.Bundle import android.text.TextUtils -import android.util.DisplayMetrics import android.util.Log import android.view.LayoutInflater import android.view.View @@ -14,20 +13,14 @@ import androidx.fragment.app.Fragment import androidx.navigation.Navigation import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.tencent.imsdk.v2.V2TIMManager -import com.tencent.imsdk.v2.V2TIMValueCallback import com.tencent.qcloud.tuicore.TUIConstants import com.tencent.qcloud.tuicore.TUICore import com.tencent.qcloud.tuicore.TUILogin import com.tencent.qcloud.tuicore.TUIThemeManager import com.tencent.qcloud.tuicore.interfaces.ITUINotification import com.tencent.uikit.app.R -import com.tencent.uikit.app.main.call.GroupCallActivity -import com.tencent.uikit.app.main.live.LiveActivity -import com.trtc.uikit.roomkit.RoomHomeActivity import io.trtc.tuikit.atomicx.widget.basicwidget.avatar.AtomicAvatar import io.trtc.tuikit.atomicx.widget.basicwidget.avatar.AtomicAvatar.AvatarContent -import org.json.JSONObject class MainFragment : Fragment() { private var userCenter: AtomicAvatar? = null @@ -71,7 +64,7 @@ class MainFragment : Fragment() { userCenter?.setOnClickListener { v: View? -> navController.navigate(R.id.mine_fragment) } val trtcMainData = TRTCMainData() trtcMainAdapter = TRTCMainAdapter( - isSmallScreenDevice, TUIThemeManager.getInstance().currentLanguage, + TUIThemeManager.getInstance().currentLanguage, trtcMainData.itemDataList as MutableList, object : TRTCMainAdapter.OnItemClickListener { override fun onItemClick(mainItemData: MainItemData?) { mainItemData?.let { item -> @@ -80,7 +73,6 @@ class MainFragment : Fragment() { intent.putExtra("TITLE", getString(item.itemTitle)) intent.putExtra("TYPE", type) startActivity(intent) - observerTUI(item.itemTargetClass) } } }) @@ -95,36 +87,6 @@ class MainFragment : Fragment() { userCenter?.setContent(AvatarContent.URL(TUILogin.getFaceUrl(), R.drawable.app_ic_avatar)) } - private fun observerTUI(activity: Class<*>?) { - var type = 0L - if (activity == GroupCallActivity::class.java) { - type = 1303 - } else if (activity == LiveActivity::class.java) { - type = 1119 - } else if (activity == RoomHomeActivity::class.java) { - type = 1205 - } - - val param = JSONObject().apply { - put("UIComponentType", type) - }.toString() - V2TIMManager.getInstance() - .callExperimentalAPI("reportTUIFeatureUsage", param, object : V2TIMValueCallback { - override fun onSuccess(t: Any?) { - } - override fun onError(code: Int, desc: String?) { - Log.e(TAG, "reportFeatureUsage failed: $code $desc") - } - }) - } - - private val isSmallScreenDevice: Boolean - get() { - val displayMetrics = DisplayMetrics() - requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) - return displayMetrics.widthPixels <= 720 - } - private fun registerEvent() { TUICore.registerEvent( TUIConstants.TUILogin.EVENT_LOGIN_STATE_CHANGED, @@ -165,7 +127,6 @@ class MainFragment : Fragment() { holder.icon.setImageResource(item.iconRes) holder.title.text = item.title holder.subtitle.text = item.subtitle - holder.tag.text = "" holder.itemView.setOnClickListener { onItemClick() } } @@ -174,7 +135,6 @@ class MainFragment : Fragment() { class SimpleVH(itemView: View) : RecyclerView.ViewHolder(itemView) { val icon: ImageView = itemView.findViewById(R.id.img_main_icon) val title: TextView = itemView.findViewById(R.id.tv_main_title) - val tag: TextView = itemView.findViewById(R.id.tv_main_tag) val subtitle: TextView = itemView.findViewById(R.id.tv_main_subtitle) } } diff --git a/application/app/src/main/java/com/tencent/uikit/app/main/TRTCMainAdapter.kt b/application/app/src/main/java/com/tencent/uikit/app/main/TRTCMainAdapter.kt index 2b70400c..46ae534a 100644 --- a/application/app/src/main/java/com/tencent/uikit/app/main/TRTCMainAdapter.kt +++ b/application/app/src/main/java/com/tencent/uikit/app/main/TRTCMainAdapter.kt @@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView import com.tencent.uikit.app.R class TRTCMainAdapter( - private val isSmallScreenDevice: Boolean, private val currentLanguage: String?, private val itemDataList: MutableList, private val onItemClickListener: OnItemClickListener @@ -24,7 +23,6 @@ class TRTCMainAdapter( if (position == itemCount - 1) { return ITEM_TYPE_FOOTER } - val item: MainItemData = itemDataList.get(position) return ITEM_TYPE_ITEM } @@ -46,7 +44,7 @@ class TRTCMainAdapter( override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is ItemViewHolder) { val item: MainItemData? = itemDataList[position] - holder.bind(isSmallScreenDevice, currentLanguage, item, onItemClickListener) + holder.bind(item, onItemClickListener) } else if (holder is WebViewHolder) { val item: MainItemData? = itemDataList[position] holder.bind(item, currentLanguage, onItemClickListener) @@ -65,11 +63,10 @@ class TRTCMainAdapter( private val imageIcon: ImageView = itemView.findViewById(R.id.img_main_icon) private val textTitle: TextView = itemView.findViewById(R.id.tv_main_title) private val textSubTitle: TextView = itemView.findViewById(R.id.tv_main_subtitle) - private val textTag: TextView = itemView.findViewById(R.id.tv_main_tag) private val constraintItem: ConstraintLayout = itemView.findViewById(R.id.cl_main_item) fun bind( - isSmallScreenDevice: Boolean, currentLanguage: String?, mainItemData: MainItemData?, + mainItemData: MainItemData?, onItemClickListener: OnItemClickListener ) { if (mainItemData == null) { @@ -80,10 +77,7 @@ class TRTCMainAdapter( mainItemData ) } - val category: MainItemData.Category? = mainItemData.category - textTag.visibility = if (category === MainItemData.Category.UNDEFINED) View.GONE else View.VISIBLE - textTag.setText(R.string.app_main_item_category_kit) - textTag.setBackgroundResource(R.drawable.app_bg_main_category_kit) + constraintItem.setBackgroundResource( if (mainItemData.category === MainItemData.Category.KIT) R.drawable.app_bg_main_kit_item @@ -93,21 +87,6 @@ class TRTCMainAdapter( textTitle.setText(mainItemData.itemTitle) imageIcon.setImageResource(mainItemData.itemResId) textSubTitle.setText(mainItemData.itemSubTitle) - val layoutParams = if (TextUtils.equals(currentLanguage, ENGLISH_LANGUAGE_CODE)) { - LinearLayout.LayoutParams( - dp2px(ENGLISH_TEXT_WIDTH_DP.toFloat()), - dp2px(ENGLISH_TEXT_HEIGHT_DP.toFloat()) - ) - } else { - LinearLayout.LayoutParams( - dp2px(DEFAULT_TEXT_WIDTH_DP.toFloat()), - dp2px(DEFAULT_TEXT_HEIGHT_DP.toFloat()) - ) - } - textTag.setLayoutParams(layoutParams) - if (isSmallScreenDevice) { - textTag.visibility = View.GONE - } } } @@ -115,7 +94,11 @@ class TRTCMainAdapter( private val textTitle: TextView = itemView.findViewById(R.id.tv_main_title) private val textSubTitle: TextView = itemView.findViewById(R.id.tv_main_subtitle) - fun bind(mainItemData: MainItemData?, currentLanguage: String?, onItemClickListener: OnItemClickListener) { + fun bind( + mainItemData: MainItemData?, + currentLanguage: String?, + onItemClickListener: OnItemClickListener + ) { if (mainItemData == null) { return } @@ -131,7 +114,11 @@ class TRTCMainAdapter( dp2px(DEFAULT_TEXT_HEIGHT_DP.toFloat()) ) } - itemView.setOnClickListener(View.OnClickListener { v: View? -> onItemClickListener.onItemClick(mainItemData) }) + itemView.setOnClickListener(View.OnClickListener { v: View? -> + onItemClickListener.onItemClick( + mainItemData + ) + }) textTitle.setText(mainItemData.itemTitle) textSubTitle.setText(mainItemData.itemSubTitle) } @@ -148,7 +135,11 @@ class TRTCMainAdapter( private const val DEFAULT_TEXT_WIDTH_DP = 32 private const val DEFAULT_TEXT_HEIGHT_DP = 18 private fun dp2px(dp: Float): Int { - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().displayMetrics) + return TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + dp, + Resources.getSystem().displayMetrics + ) .toInt() } } diff --git a/application/app/src/main/java/com/tencent/uikit/app/main/call/GroupCallActivity.kt b/application/app/src/main/java/com/tencent/uikit/app/main/call/GroupCallActivity.kt index d0b88180..d5192e60 100644 --- a/application/app/src/main/java/com/tencent/uikit/app/main/call/GroupCallActivity.kt +++ b/application/app/src/main/java/com/tencent/uikit/app/main/call/GroupCallActivity.kt @@ -7,10 +7,12 @@ import android.view.View import android.widget.EditText import android.widget.RadioGroup import android.widget.RelativeLayout +import com.tencent.qcloud.tuicore.TUILogin import com.tencent.qcloud.tuikit.tuicallkit.TUICallKit import io.trtc.tuikit.atomicx.widget.basicwidget.toast.AtomicToast import com.tencent.uikit.app.R import com.tencent.uikit.app.main.BaseActivity +import com.trtc.tuikit.common.util.ToastUtil import io.trtc.tuikit.atomicxcore.api.call.CallMediaType import io.trtc.tuikit.atomicxcore.api.call.CallParams import java.util.Arrays diff --git a/application/app/src/main/java/com/tencent/uikit/app/main/call/SettingsActivity.kt b/application/app/src/main/java/com/tencent/uikit/app/main/call/SettingsActivity.kt index 07c28fa2..42218f9e 100644 --- a/application/app/src/main/java/com/tencent/uikit/app/main/call/SettingsActivity.kt +++ b/application/app/src/main/java/com/tencent/uikit/app/main/call/SettingsActivity.kt @@ -144,6 +144,7 @@ class SettingsActivity : BaseActivity() { SettingsConfig.isIncomingBanner = isChecked createInstance(application).enableIncomingBanner(isChecked) } + switchAISubtitle?.setOnCheckedChangeListener{ buttonView: CompoundButton?, isChecked: Boolean -> createInstance(application).enableAITranscriber(isChecked) } diff --git a/application/app/src/main/res/drawable/app_avatar.png b/application/app/src/main/res/drawable/app_avatar.png index 4ab41bae740a8a7f107903f35593778f46cbee3d..f3afc4c2b215384705f9dd627fc52e91dc875944 100644 GIT binary patch literal 13676 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

dQ$N-}DEb0@!7cB=4TBMbe>o zO~DM(Sd~*WtN)XEH}5Xg+ytLZ>wKsHVPwwWkrohd;hUc`-uA1Eo&|AV5Jb0pb+q@Xz{Lz-&-6av!2OBmT~_W43CBXw~JAEsN2u0bxS_;m4;HC=>_D%n!~ z0QYJVRRS}T5NW-5_T9{?#<1q-P;n+S15pO7%4L^b8oPFGiCb>Ik$%c@eBsMqfsiE# zGAN4xQ6<_a#Pif}?~7Vy50iEx#lkT{GKR|Aba1$N4A|S~@ZI^QH^zJ3eoy@NC)w9Q zP1Yk#pQZ9+i&Jsw@?;$U)>HA=g9l>orMt3ffB62#;tOATKK|Oze<;Sc?TXP$u8z4w zN8{9UC*mwi-(Pdbt?}5Wz8xnIPRDEaUlK>zD{{r|-Eo`)@{S#yj)}FY=(+Qd4%C~j zeOKZvt=R4kLe9fa=-L_^i(LK1PPl&Pu|idF@D@tiQDsWeS2JlH|y zsBOB$Cv2cl3G#<2#Sc>A^W%=Tc4(HLaPOia(hc$Rla)^@2a$8VR+mseNg{LYoXY0f zFeN#J-3f$+N9esypE^bR{X`r&_A<*o7&&qqEzJ>^otwgyv2`%C3*Cx<64NZTagu%v z!Emn#djnZWDDkye?(3M0qbFGTOU=HWT4QW^Iwn~I2GH2X@j=&Zy&^6r)xB@t8~bk9 z9%re^KK|=pjBBpm&4F~MVj6*-eerwo#QmR*Ti^6r_vvVPQjAk+_1xsj zP;B&UExEKQ8FYS`A*7@-`wO}syati*-6%^!%+B)#VRtpgW}**BmU9Hoi03L;?z4;n zF)aZTVKD@9w%F!KiUi4Wy%vICVFp4$0i8B-#AoN$$ylDJ2?b6ItLzNyajq4|2|aV@ zNc_`Z{MC5h+iznT)yX(~g7dT%`>}_uvRCas75i>pi-Xh-doRC~B{55J$Gi8$o*ny0 zyEktAkvGSqU;NEDaq8hXx5OODB|GDL&p$%V6!E&(y*^f-{Z1Udt{?kvxjc^1lv;UV zHm<$px_EhdHvZ`0Z_`wqq8#*0MwxJA*m8`{ySwUg6cDlvItvHNBHrUWw4W7toM%#rDAggAo z525Nff4WU2OusI`E+`tb?)4}Aba4fNBaKF8n$0Fv4Y$Ga4O1XPU-?IIE(W6WS|^)I zD2IKGW>uYqP9dNPWgAo)7;1H^)k!PTA(scMQHmwjNxkizcgIJ6@=wR#`@4TXmS^W# z_eE1{Y$2v5XINOcJ+9ijJAUSG{B-=^|MZ{4P1oHVmrkw58*gC2+}=y#&^fICwU@`< zeS6|hz4b?_y{?Ja`r0^i>iO9F#=Bzo{@Y^L4L8x`+7^3X|AtsNHp8Cyxj6mpXXDn_ zzCGUfr~fQU_i-k-9*+kedpgcid-X@RBj6J(KeEi6Ps|97$E_+B!?fK@v0?h=;6+Dc z$zSQ91$4-_AwKD6lVz~*k=R+6QoGvlazv<_XufqoH)Wpu=|bgC#>}i<31fkDn91C9 zCK8%6ID{(v@YT7XTuqFUH~~01*3}Hea{;QW5p05K8S>09n~Z54Qe*OY7?Y%f6+_E5 z^Y$mD3Hc#+vlfZwcrN;Nci#ycj?$v`Z@TjxA0yYUc);qOOKU}?yJT`cZUmG2D2!#G z;q5u^`MM!2XHWr=o1_Fqy6ro6Ci9Y*f~kx^7%XH`PO!OAiqrTwq8bD9dMoqHS{7bQAp$({_?nCTd<6i-!O4~m4`IgT+Yo=)fdf^7nxM{Aaa{WW5jWWeR7Jq z5z>?uRb?A;=2ZxtkD9TR3iIwFRn+_)C`>C-138ETg^1*uL73@Jh4_3vxIwD!p+Vj3 z|0>=);3?QdpW@73*DQIgr<}7`E&nVR)+Bcg+HPftaD`5{Lxn3?8*3C5)C0)uqZ~YP zJbwBA`nA}{+Nuw|=ia#O>TBW)U;H8m1FXcG-ncckubqlxk3ST*-FH`vT(&L7Ss{G- z#Bc4VR)G;ZHT_D zoN4w4q{DX*prA6HtjrGQ4bdCrp;jg!N@4*Sv^RWZ!fs}p&iTB$eZ zbn*9L%)6pikuILZftJeXf<^nmad?HSDyUhhRz8pY(bAZe!VYb+>E(NN;;22=R0b4d znHg3$)p#!NsvUXeS;QMX$whCDPEG9C6(?8b<2Qcy6LHtA`{SqI`{p?C(i3t0-fc0p zdn&Ge?H#eS%J&8-FDp{pQ1Q?NwK>tY&*0KYTVm z{YT%7&;IeZ;+*p`p6ns6S=x0{tq-d_7L z8y|+78j9g?OQpffW*ceRd&BblJJ^_o`NPw}Y`SSX1re9L(74=Mtv?Fmg3vRZlIiF4 z%*dhqDQb=_7@aXD5Jfs+3}tE=8vaAx7kw1}EQ7GRSnYnXMA-*v#JX6df1m#D)Dzo_ zA({$<26#x^0-I@OS(5IFCN5@kKE-eMxe(5A^f5a!Sf;Hk{TQ2=iIrL-xZJ2!_b_#j`15K)l*v8TZEF8>Q;vC+z zU!K`S9v(cgGQ!ua4nD`avNQ3v_r5Q7-}r{ubNMxK;KY0!Ja#fp96!oD%D3Vq0}g9D zcE&>gQbuCH%|1Yuv`Q=8Yw1iiyVmJU+|DI=q)#(>oqr0V(2_vq*#xHei830t$qg&o zrl7&=K1$}TzYCnjcSTDk4k zcWE-ohAFq@PO|*O1&yZ6qLQYtGVQByKTzcJ;jshs!VvTwEZRyg;nV1y{gE!6VHa_> zBXtTzV@&S(DDMjE@=pRIMAbGHCbkR!?)G!tmP?)&SSs&!TMw&tv728g(n_w{P=tCT z3yeU$=EnHx_y0&7e(^yT5l+OLfAmh8M32YV)z@<(;y#es%HEW!4cws7bJCH$<=8A3 zhH^NEAx>P&E834Ow1XK!UY&=@EMz2&&AV;a-4eI$x-5R@-~3km#=reFCIacO&!EUa z+fMB%G{-G;#+!m@AI_-kib!2X+Ghe+|u)GAPU zIttliYpq9%)@USi9~d)3d%41)QzmH%f9EiM8a<7h2)qAd3$;fb6Xc|-4J%R;W*NmZ zWy(Cw8aF6cy_R3@JT#2*88O?5EyYm8d@R_*zBcu;1{wDJ|K%B+CA5FT&JhhyFUfv~ z%_}<4^R!dlm!2P;lwfeV_|}VU?CqFk#`@VOza8&+$L(?X6^umn=VR}cZ;E;PA!A#Y zSqw*!>G#-)&K*p49$20t*L!>#*-x;oAgnJ@9v#v@#-ERP@Igp~Wg@cB5%DA)wk?D-|Fl*lUM#n?1l z{#SZ#N?ag?i3q6>CQ>UXhqoL~t}IhXY6Ni|a$C^1?n4?)HEtmA3L?NXZU*H*OILt4 zq?>t@e-1j(ys|THCp?d_WzNMuMjo^vofDo01I1zCqMdW+u(Iz#J}QQ@>a~-w;bY#Y z0gAf8wX$vSBn|IPi8qPWrkJn%>Ime;-37Ub=PPRB#labp#Py*O*oRH|3BvYkEsVw|JNwr!M&!*d5Xj`Umc)qnfV z_}0VBj5DFR{n8$DCFiI`ICpjyf$;MN98J1oYCBd^J6{ZzSz6#>=Nv-~zZy%+-k8!N zwtJVVDT088gjvB>DUzq=L-Yn|ke{G5sOJR?VpJ+%B_*Jf&0wR8|I`%?Us~&V8CTg z{${<>X+eh>zEv=Pvsv1eL+>QlAiTw^yL8NnS<(%=9K{;;cy-T7idPqPQ!K5$ZeRz7 zh+QPMU{zr{OPsUl*&%0%G|GYKVWl8sCnVBaX5@DS83|kMZ;3;vm*SUx^M1Ex#8aPp zDz3ZzOx%3qmguo#ZH>thXR`qU79u0DZF&?^3YXv476&_%03_9*F%n-^!l$^m;8nqirX2${|%nfy=>)?7klGa6xWs9Mib5OHXH z^I0br8Kv&|Tki$0%F<$Y!N6VjS$}GwlwtjG_^C1zt#q4A-i4Sv93^FM7+i<^2CwcV z3rsd?VHHW9#~|t|wT0*OuF`>9q3^+w;B=Z7=yx!=WP4bv%O8dY!6T8QUBF!JPsUkB zx4!%0>G+5L`0wQrGNUNY+_A$kc_|t*aRoE%DhTVbKs2|;QlsR0vBaZDKjPXH`yHGg zOPv+tea7Nlb7GS=qz#2fC~8>?@cjvsyBvFLlo?C46|@VXxdm#y(TzxTyBz^55J zpxc&rHC380mUzqF3%W*n1BZ!vp~%D)nn?!Gc#;0qoPqsmk*bd)IA7~-({zw3p|>}~ z^Vw@-E$2%;NgE(DWrl|*e_~PaIsUX0-!j~$@pn-_n=#QT8mEF ztb+IAoRfuSlK3YY8-EOH85`1-rQtUm*?5*|faq{wgF*PPvSbwUI8Q-}nL;CamuWFG za~Sv!+IKB8faxk_J#YMN={NdT77|{of}Ox)luq83ZCm2Z@fj8sLcnD@<$PwXkD%vA z6#EDiExjpqva8lC$YHZK$USg9|Rh;k}MfA`Sh}5v!2W@eUVj z6CiacnR|O_GFyK2YkB>Wt-h{qm29AEpRBk|@tu8sSC=0Aw%PRzuc?zuZ&IzAU)e&~B~ z>@*Cw24r}03(c$r1jTO)R(TbH&ZS3tA!~R(kjhPA#u^B0m!x%8HwbUWBM1LG3ucau zC(4<9f#FjY4I3Cc=qMXXm{gL&R@6HA%-mfJ0LhG)uAysAZiedR3fL0LJ_|(KIbB+c zHTR{vTMz}Y+2rm@`yFn*9ngl5oJdBQO|#0WmH8QLBADesRCpfXUZ`Yv_c*w1P=Zc4 zJJbPKxmGQ+j)947DY2Dk5H$f-l+ttwv)NU94um_*)?9A>L%7U!W7ZH7A$1u#&8q36 zXJg02SR6ZhIu6k`202iy%N7J%9Wj;QBd8}dWovqC#3ANGU63f+Du*hComdl@t%)-M2N93G1v&bnrr4dQFcFd12(%fIaw)E65#nxYk^lJ4cR@Aa9C@5sS`TX=FZveaS6s)e`L=9+oO=10*u|;sw5agw z#U3UB&z?HY<|~$}Y@uVl95<*S{S5Z`d0zvG!|qY)9O5 z>n-uRJMQ4K*PrD80zb6F2`CCl$HPHAA~7UH3P4$Gqjb@DD%wh;^`@`UD~31eJ4|*G zrK>ol6nTag(QK~dDJU08V5(ts3d{w5&0EFcw;n5D_nYVd$2{}INBSF8BFe8UP!{L4 z{L+*)hhfVYoeBDGYb%Txszi=z*jLGxLd~V9FxAThM&eIAT$VrY{^(OqooHdrZ@>UN zT3EX$j-7C>`+>^MZ+-j61^{?iFOEs10QZg|5+sSDw|?z1UX%PTzKWBxuOMx7Fv@p# z+Bs5`qeU{TTaS}>6r;y-^%a^_P97b2>7}@Zk7u4a@d7ig)FfIX)-&aVTf!Bx4=W4} zj>h}meP2BC=(o9^g3g@GM_ip%c@7(js zH{Z*zUU^AAR64P$asknF{N*44yf1&0gXcN|h(3ygFw`DIq86ulYjc;C3@&8M!>irG zj9)fc$%?v(KOmtv+II2wFP(XaPIr~3VO-#n28!nm;l?$h(GtUa^Cg|Qq9Cm19daqu z?Okfsldi`DgjoVvZwBzxmLE)FiCi zMPU}~)YIPm>7RUGyzA~;;@|$^{W0_MG4^&m7U!5*pPZmMw|!4+8DT3dv+Qe=J30Ap znf^*Y7Qe@aDE4oR-*`v#ckiR7IT7<`kHzG+9WnjX;~Wt*&CbCSae@`YdsyEUY=k<= zM5Lc`8)F8T8ADEwgeFc9!b>}#<2-n9b&_w0tm5vg&6k{Hs~9O@mau!RJHH(Wo~j`> z;E6GKkuFjs58tCX;>UCB9Q%bSXR`+|Qx(m*r7>OS%p`H_aN<2<>b;IYJ!gg)fbtTL z8p8pTEDtq-ez_%q@~1!d4m6p`!4&x%4(`$HRYCeJ2u;Pn2<0#_v8Z#1jxv$j!4;q; zveK_PX#hh&yuV?Lfz!j>5@+~VJgNWyKmbWZK~(Scn)fc*dg?B0khmVsJJn>kxz=dW z;9DGBjm8vXYjVZJ%09Y{k8bizxt)P_Qvbul52LyRr{}xZP#4Q8N77tCtWy4 zhBLKSVasj~R6cVode1)>lQ&%zSH1pi3=-TN)6d*b|ASK&fBtSh1$|i@e)&Y4=2XQ$ z`tlQT>YIn-D5sjxQKEkWC)lXf6*bE%>9k`0Nrz&u)bxGGb#aCTak$DKin;!18sHE3 zM8;Zan>hA6JcfzKPI=aoz48+Jpdz3hr5Jq)+|mFQ>9#3<0jv z>1K&8L}2L%OjX&Y=&X&5G19@Qg^JP2*308lU-)Y5bQLYbvpZP)H#5ExFSECN)Wf1- zkf)|-muynau#>M3?EmI({ulA!A3qv@@QF{w```DPxa}=(i3dON$(TOA5Le!?k8QXM zvExckbAR@!xcbsPF?q#QEFL`*2RQTU(#w|O_=!{T&>#M@_~?JgzJ(j!fN)>J2@vcw ze8+oZ;rT<9ZD-u{n)k#AHQ}FdoOPTkzRfyBenZNJ zTh5$&0GdvG=vU;vau2YetPc4Oe>J(KGrFw-N7YQ1HHJ!tGUSLNYwdC=KmaXnL>Rzh9_oom=80{WL_%LrKe9v#>o%Q)O)r?`x`7K%8pz4f{n z*~b!&(M#eB-*}P|uEp-lx5wBTop)-LExQnAEY4YK4=dHq$#af+?Ae1;-F(cGU{jWg6hS6sFye*6FNQw68vXa3TbcQRJ$gyFm%%_H|}tg?vEd5RT=TGz1PPTsk` z#^u zoTIz4`|8+w>E1Z_@S}0~xkuy5>n@994}UGb`;`ac_dfklJa?1>mu(JkoGFb>tTu*& zA#i8?$LZHN`RS0S!lWy~lgb?vQ_xDFin$pre@X}|tUYIcg*2v4!-%l?s!+Iq`kj(9P-C)CgpcY~D6<8#NM#>V`*7Ds+cgR(aMs|RHm#3B?cTmK zZoBSUhI^;ujyJw8zVqlKIYT~u>}c#^^UPoWZ~uNaU%tu4q$QS=oThVrnzsKE!-iL} z!|yO>>^}G6A*}rljs>D-p`d4&mw4COgL854;MsW18-FzZ*)M)3W-tPGy_He0qtC{+tFMVizx25{^YlY8 zg(A(e_x+C^JjQ1o_(Bym$|}oPYI(MwnR8V@DTt?*I}eg=bD648N@IzOFenew+rRWr zKm9LqWjc9EZ2>=|Y1SObkj-Xm4{I}Q2{ccTWFYqnUS`OfLCS&;0|hZw3Z4q0a*(bN z%zMMB`DMQY0ay6j7TVkolC`P@17O18!E$%7G7o7oP!wq7z($rCghbqd1#6ldqGlk3 zS$OACtRtnJb4Yz^?oQRS`)-Do$tI}xQW+!fahXV9n1GEUE) zhyxgc-LJhRjy=OZdCtXBX*o+0d8l&vrbV*6c^C!dZ465$Aqv^h3;m zMrolsuaq6rVYRf34p6Mo-_fBLTn?KE!QUZH`lz1heV!}e1H+ify0lF}%y_dSifI(= z=7y6tzr=*}1;64t8k#kLcP^FNJwW1Tv#wk+yp5e7Fo*CO}#|HwTb8-(OTA?0t`n~uDAs7(Xqu;!RU;HWvA z>0U-bY&OX#YYHk!1l}Hk)uGy6g5urULW#(cEbhvKOm;Z%FwHB!F!bO959TD?oo|14 z96nX^A~Q3msG__f)k#c?bqNBxk`0)naKpal%#wo&=R`fR)G zlK9F4-(~Xdbj&g4zQpFJv8B;Cb@XVQVeVpueIzr?-hbusqj8A&jk65ft}@|x*N@yD z$6tIhPQLg!^C>&yN)Bo0ahTi~+j4*5Uwk$`@vS5A?dOg&%*>IeTDR;GQbq<0lJVjK zqdo0@wA(;bZF7i8m{%L|X_ncVCc_LS?PlS_8+xJp+*K?W_F04EpoYx~{H;B_XS2e{ z!r|TBfx7iMshw z*O6o1TXRbshMi={95g%x_4jXXVnHQ=m~68}aHhM55IA>XlWG+uS)vA6q9(E0OY~rd zN}G03#@KG8API|iCyqo8FA82tV~%S6itC_Y$_(d6u}C4NIR)etig4&Ob0bv4e(du_ zCi`A^@gPTnUK3yY+Sd_`9>?ua5Zb!5a5zyBv%Fi;RE zCVvz}37&LMh6$^9V1yDRsVi4xp(JH~gUe=>wbMXBh?8?5M6>IW+%~?6bmpa#`{oFI zRV!V~3xDw!ulzDrT4SR(Ta(T*X#Y;|(Gx2 zv-asMD~P#d8eAw|%+vI-KeB`Z*>RI9xlf$tnaz~#JJ{kmwmn`t!1^nca*PqLKlQ#h z#bq~M9sBS4(YSFR%iKrj7^7!$@aAh{-)*8+uv{p zpx>Gtr6zF!Xns1I*r1Z-DYHxDeAmxs3k43~R~>I&0jgr9GIYOGdx?iNm6<19vH$|( zLY_P&g+@Ezkrcv&Af6hj9Nz6{=g==CN}gL5Wuf{i(h_O{&p%z3F`r(=Pi7)RsQ#81 zQniC^!8|NsH2W3~!psGf!gYn+54CM|t7J7vj2Wugwmz!e*y)%f_`>Es?;ongy)Db7x!A_W3?~Ys^ggo7(~wWDp6BB^OL9&%UZ_ST8S}6Gv(y*V{zTpSF4K5WSZ-V5az47lJAX#htiW=gIIyVJx-G$$G*oM-g9FRonC4Zx4%j` z^H-qrlg)ln$n-ejwJRePUK!?($mV97OiQ(i6|lKL6~Vu&co8(#I-TUe>q~a-%Fdcc z0-a&s$k-$&l0XP&Wd$o;^PWG=Lr)0{eq8P(T%nel=d9jy^L+J|U4zdaJRG0++*f01 zob#?YKJ>SK^ABTXa&LU{{%7M$4;_#DA36{RW>@1F=QV!%(Zg{V9Iw3L8n;5CAP6x0 z7@kqqqNXkq)|grM^0nOSQ~{|W*HEvLv;cic0q*UPX9dhfobIoXURl#f@+3R)WeEA} zU(fjlFG}cB85(C2g~~%OaaA$OU>2t4FA<$3x3*ECyo_4{S9kfot`O$Geu;sXxTm4; zj!#}bcNfx}@kp6U;$6jRmxYv{nUI@Qbzp`nJzFOBj}r&ekk+PQf;1lZ=$Ej8k;;L8 znY8A%?*4`!^qU9 z9(*#Me(5mjs3}n5ak#YwE=_^wWY!#HO#TXUV`ANZC`S-#iE?45xhh1TGnEN90hSAnq^FDY@S>7Vvxy^)lM=@>7 z^&mR%lVbkl10XNj#7g>LAuPPjC7M+|1TQ~C*=3Z?Ae&kiQkZ67VbW@t#rE1dfHR*mLVnY;$KpL7xSNmejPNz8bMg3hUgpq- z*T<7D9proKTM;li=@^4alx;h;=oE@EMeRC4tuhAVa)gI_B9zvz5HXJ?iNp9MEeUBT zSB;|wvGLRxbtKL7RUyE8B_YC9kywOz-LxkXS6dLdbS}u zs0l^xsmKZ%lFUqU(g-ZH>X|X&Nl?Reh3gQUVR#kA-$rVg?*=3fLGvr9Q#7jTaBU`zKws++s$G*`)Ttc0gv+mYow(WL$kg0hp7K^jX|CaDzOJ=O z!M4xQ!Ocxl7#-h-YZKvYloRu)+=s);up-V7hAy|I1V?En4qS=2xcXircjDd412!0H z&lf_7H^Rmvm#TZu1Nw5+HER%hqE>#ro6idJ@|(gH0)psa~HB1#;2 z;A@{wSI#rA+fVB<#Vq$CHQEdtqtfaT$-Ym{tdg&sPi81YHa>@(6`VMGc=7`Ho#ITZ z?d%I-tvdLM8KxDCJ;f07yGDI+#ls%HBuIljHcJp#TiICO|`8DIYc`bxy=ed*NrtS|Lgv;F|(u zJj(9Gpr%n%iOXgYY4PF3vuKoaNV9Q>Yv+d2dRXr#*t-XwGR-)(%hm!pajEIZi~8eG-Pv@4{Qd=ZNQo zYvE`v=Nc|foe_4Q&+l1V*6=QA5(DBB)?TuomWaX2F8snb5;^=@BUtnUy3s4&vvWhZ z1s1r~U~}0Q!2)&=GmS2Tc7z# z9H(|VHA(+sau>si^K|B4j%%5R*|}{iwGVsFtuYW5KSrsAHG2iJCeXl7I%UCuO<==S zBz?}HhEJy5s5AztP}XkN2D#4y9J3}&`U})tbrN`^6PI)eR*qB+QIlwdC^&X*JEu^m zKm&^GvOM~!5ViumMo^OG%rVQMq9q=cpJ}{w19|Dnn@uQib+}grX-=!|97ehh46xs4XKMQ1hYmzdQRX#yAr=oDOB7oEK z=&f*6a27`lh~(Btl|o2as}Ly<3E-|#9%gh6+Z7?K5(MX7k7Z9pD~QtAzNRlA;tGUeR<#)qAjMDwk`D0_M*_K>bd)0&OF;^M^O7k!36)q>UXru$ z&C(`8`zj>xT_HR=4h;|_52J92$ih4mlg}TAfeeb!oEu@ewJYlllc@&|9O5+htKw;n z0`e?iXUxZ`9l^G04`8KWLgQkg6u~8a;*yje;z0$U_nU%{)B-lJNCu`93T6v3g%Tv? zrRKYXpLc>Aj~ic;4%7q+Y$}0q$fKGb@KxTBN&aOmRPV-B*hXAbsDkirIxpkG-i}}J z9UQDtjWetyWR*_(nJxzx;4zOl%T_eWNaBDzq{5{?wE!j0&0sPG`Jix_*5r9X0~%Hs zV{0W9giTlsLywG8^D{B*sO1WqVfDoc=;K-BMaQJckQmhMV5=wa`xal99G+lipV8G+tF?)8$+O&nplE6{i<0JS?r) zP+dR!y=US_-};s~G=2bqU_XkCfIfaRQN^$}mH2t7BptcEkt?8l;*!XD_qS6eQAlPf zfX1&d;amPpnau41D@ylUaC0cs#J)B{@Ty*>(s0ipLTwVdI#z)_&k?Dbk6ovnTGIE7 z*~J&v6`J6y@YV&Z?j^70rSu{n%G!ia_$F(e`E~!IS+*z`=*a$CmXY)#4GdcuxtCoU z6aqz`t}OD?J~DPQjiz^3QjF1IbG0=Jfa^~H^17iD6{H!@pF!S`iDWgomgP#m40%y3x5HgZ5l);X# z$Y;4sl9#_SIn@IpU@(AY!D$Y$-os+ZbF38`C+*aP?Oqg^A>dSWm{lpOu>N*r>dFsx zGQN3c9+a7PQ?B<@3gTzrEr3qErR5(g1X6x*JvSE zi2K{#bACWfR6m5@yP4z=BSp{lv`RsmHe!+G$73*B;yM`eAF+z&Aq@cWlPIZBMIbWG zd>skW@~BvebS5iiYds_=2ahDY6e!~(*5m9b6d&hW+|>t0iE?)IEki*|Tr6LeksQoN zd^1MDca0NuUirg-jEj_IGXPkXq-LzQFkv~tH}+1SJkCPLy>W!KX1}P#Jyw z$8fb$T)7LkEn=%aRl(O9m)Mmc3Do`9_OCp7ekULJlvePrm;^TkD>ga>r_n)Jx>Ue= z?0!km7)4_HG76!qRLg0ogo^-(GC{)3T7$b1l&pr9+4iT<#>sgo04R{@uX1!{O`?!i zVadgUVxR({3@VA`Yzop8CUFr}5?2|NhH}Lhl?xc874tj`i@eR>_$tV-ax}%r)fnV! z*_3c$=GEbC4oO4s%chn*!xfKJAo3(%N3n7qjZFW9i))|$g6peL!g-cN(F zA}obu$Z3LcMf?h?3?*_7ccHxsE^P_rJeiy@5Iij{`4X>*KtZ+ux`s5UQ@Cy!b!*^CK2q^<~waMm7_k?0zAgMB`yF8j@2spR*3W(X9hiH9^w!G;cn8Snb>rYKqx6~IbcrLcUa>{wFD z!HWu|rv^-Gt1F%x7m5gjEBg}0qr9nD87rfMiv|n$W`VzdDnwHz{c3eKB+t0jVrZT7 zCMVv7oizvdbiysbm5=FZAtVmO*NMAjHV+L3Kl~T&a@XT%SMkqbaLbum2i2(QdTh1q zIrPg&R}TM^t>qbZzEgv2^c;>b{47c`BAvtsk+fhPvJzvnYXktbB)Z`vc>+dhiG{U8 zm#cUsh#ipZ2^XXs4I)lc5^EYQ5hY529f1JZ*TM4H8P*CYxSlK`<2(Rj73Mn%rxSgZ zJNrevoZrlWp(vL785XmtRb|poFrc4KFggXk zS#6i53#){=6eI;rp~^f6`JK5_R3G29-T zZA%Hq`^t!fwi5-S+|4@+!MzbpBI+c%;jKL@Y%dw3!Z<(U9%UDCCL9Pg*hMD*QOhf_ z$+QWNbR@_on#yK*guC7hP@u4Kz*9-4z-NMYzaBLSBdlo_SsXVx$u~q;^;~5(LmV&3 zRPL2)d0*^zpt$A_PV(NqpD60m(&wFL5u8d*DP?!~c zeU`R~q&FER9l0B(*;od?&4>JS0M8yA?e?K|Ah+aFVR8!sca_4v#h6=wxz{`ZfU2~EK>e5h#DpN=$-W90dYNS+ttqHRR%#Cdhyof+U3VvSNi6$ z@h&ffB(SEjLMTG4-}SSAS(TYahI*s06N=7BJ6gvHKl^bhXn?Gh+ww}W#K{w$Q`mhcfBBQ6kU&lYNqAEd zqYx?a@CYJ#VojXG`P`E~DliI=7qrY2oxGT-rAuSWUE^Z@NdxXS8|7)TMP6r3qMtl~ z@A)o1;H;vURyngU@YRK!IpIwe4LY3x6@!aAhIvcSvg#t9K>6ju0uh!=O7u&Ozmh5P;|o;C@*Y-nuA%Ir3|qW6$zmdV`9HO0+%;*$VXLL!obf+*en za<2rd_$nr^2%yTLA#&NpvegLj>QFbZ1OH~kgeE_mQZ%7VN^DKMGQGQ7` zdEd!{`KM6u06K-I_^OoE)B_A9;0HMJSlQAq<8y1y(!62~(js~{qbz;`vljUOh&vA- zyOJwE-_DVFa*#BuU3;~F7X}Oih5`TofZ>G!TecNen%&Vv&XCP!vvczI{Z5_tUN@UF zl6PcAW$e=gF&AuiLzAy-LzA(krnA8_smXOH! z(fHIEt4l8P7?PJlv4-$P1=7ju*g?S#D(FKU_hSxdftMnPsimr_qT_GH>tRrfd8=3< z=|;}^gENo`YS#|A?Sv8OjD^R9>NseM6%ai|gB`koyhdbfo9#=rLO?oyBmX=eYG4Uq z1ej2PanF_q!i7ObTehdRNnG(kA;bhi>K`$=A4G}E2Ds7cqzj@Vt{c=Cvd)?XVsa>=ZN3e%@&NTyB(qL!72poMCj>RC>7V*8924u53I^Km=@lD6$ zJ{XU&MZ1yLG=PvfR0=C7fYzY3uS)BYqV$=u5g71Q1O?_w4NhHxC;b#awW+IhkzI&^mRMx9qo@a>y<9Sm;JMl?RWtR z#dqVm!Ir=HiFXyk5CySC+hj7{zVqXjNut6f?o_%>6z>RG=TD450tESFF1LuVeU>K5 z?Gmu_F?|a93(x_0TBWcJB?v{D1`rspTr9b};;WNB0x&>3IM$~$ugE;*qdG47NG5}S zWf+-hwh1q7B)R@rSO2I(ts`O!1(hXb2h0}Nm-SJCcshsLV}o*=5Y~aX7Q;b$wqOHa z^$9qvf3&5D^u4Vt-ltXbaWiyBq89(yr(V>%5sx5Tx{W}|Ab7Nqx4OXMN>|TWM`z#) zGYGfw^uaNPuNFIHp;|-L)i2r|j0_y4Vi92=&bvTMTwE?;qn;c2la;(F2X|1XFSKRt z%<|wydV36M#tP%vIO~zOI`|B@H|jSo3URdEdFR&wFOZ5;%NO892d8=)HmyzC82QX= z8HLV!Yx0`+O1K(k7DO#^J0ylbcETe?Jrhd-F|Q4&(X27kvpm~?AX=cnvu$*g-5%#WxK){9N0eh zBP!S1e@v|$^OWG4Shastym_pOh9!Z)86)Fd^iqVRQjH8gx_D?1mPOI#ImV=p%t(^A`j}#~ z`W3boAT5Y+%wVgmqoY+bewP5xkrilCvi}eh?=(_uA(rPnJv8quO zWT6rovg=aOX{Yv9@OK5%4%HG0R~qY(PLMyQjL4p02$G{cv$sHj-J>ySYV-6shY;Q-Mx{|wpYsnXop4;WqMclL_P)XpACv4TWy zuxW0MZ3(kA13~8(L7*SO8vsKKqiJtw+W}PYQAK8eE)syG8-bc;{b{CAnRxH!NLxw& zc$R_epTXI^tO*E&B4Ya}m}PbbEUofgcZB2`q4)5=Qx5&knOW4)n%+`|8Sd*bLKl_P zNG9Gs8H8!^Cu|W4(iPsGqL)D<&=j+OF82CLblfn(q@J$RdcAMq2)(V(c<`X;&GE-w zffB%l-Lmo=L?maq(5|1j8CD62fRG#o%`BezEGG;Urp(PC#_taFDB4_RmOxwsGz_W{ zw?08g$B>jFq7kFBa7?>XGF}g+BF)x0%36~0_zCN%KoZyocY3bTp2zg?NZSaC!opSNm-)nh2IwhEN$S(0a7jD$ zY~D)iMsD|OG=1ZeQvNY4bg#-vU~07?f|t^WK9Ba37RmrKJDoSSc|nLDhud922hWaL z#v5oMv#u~lYMlQuzS{}DMpDQ%?mNAhOLi28;0XkkwJr8i2yIV#xt-qpT8>P@%$vM% zmplkjD>V}XYvU#nMixX)YllbRt$bkCi3{U&tJnZ&SruR2Es=AjFLb@ejh8pd-A*Ic zJPTwgDo}J5>CNI(8YZsh%S(f`a40ym4sbN6)bc2!DIB^fZszmFCIzI3Sd3^J28FHy ztuP7DCO60^>8bi~cskBmkAAU7B)cEWHcbzcL!>(TMi)p#0E0y8A1;P@`JYf-sD}); zu}&-e)?ui11f6%W=p9PH`u!;(20%`mqJVp2s}}#(o!QK@c&+Sq}kc62Ae3|Ot- zTl;HJJs7kmPW5(M$pZod16h1=t;UY-i=%!M2rZCJ-^{`ZyL~0y{#vKGL#Nyq9=feL zuUMl&DE;}De+oyL5$ZD5zELN{xpX8BEsGE7eY}Mds^DE0fKavNHh*Roq=7JVLO~tC z6GyyPP)tMQSg1*+il(JenMc7WE#k{H`0`5W0N{2fW#DRC<`x_WZ6d}F2??E})eJ;= zvM%%cbB^8(;ENw3(+v^qPmFYsv5NUBU*)t&-TAlUQf3sb zc>e-Vb6hgi9|d+Oa^NQ}9AO$|R2(uZv{=QRTE%j#Y~ACnM~)=oS%3eG4<4OiaTO9d z#o`e*%16-*yj5#(h8ZG6;-m7$RkH07q<8SteIsAtUPWiH4*ti{x6N=CS9=4VY=dB# zf~C4>Y=15y0x8TRG#-5%&2l%Cndrlfi%W06O5;Hv;%pmpDUHL^;LGW5ux%kBB~20c z84f4^f(0o678{R-P%uFL6$54d@T24W$D7rYBMkv@6&zQ}71CG|%OD8Yk}#FRRA`|9 z%)J=GNC1*p%83j+y(lCCJ-mymmpxnxi|zR)VYWLfh*WIn^tI0soJ(ChYo^W%5CIAS z7)!zyjktb1`{77hoHqOnG>cUhD97E;*PjQ zEOh?9T5J8f^x}0e6xbIh!lX@$BFf?ep=pv z^MU!m-0qOAg+aZlzzD)-8K>8aHi-?SWl5?>=2M|a!<#{1=aJsYfd0Ji`gx=cXF4rS zTeLUZ7`Y%Mrj`{i_3LgbdXG;<|HuFE@23}>@%xXz z{{xzJX*%TVwAM?K{;pT@}Zv<1V)~6CddU>cPBU#={O*kRoLibj|)^|>4B0r z?z7%RJ6iCj+l?-zK=s-55{|-;Jkr6MQ+x7Mynlf{!TSgx*V&#hcr!bA`Ba5p7O3R} z^UW2mwHjh5s3c6D>iLsvlIQp0Y}RU}$yX`|YnsWyDC|b1OLKf)Ry&H6yPStjM*##P$E%b%|0=h zQh~TQ;Y3^z=ow8*IWP>Z!vPV_wddnC#P4iePe1$lFQ<*o6;4pxV)5@{djF%x(`WBL z;rk;;)31O31)JG$PY_a1L-YU!t%3xKRf7q^V)X=Af@eSyzGzUpX{fFxz9K45-`{n$ zPu*YBXMLV!mKuf60YUOa8L5zPW!E?=b(LdSR}hdTT`UAfX1Qc>_ngl;C>VaetSz){ zc<+h(z2Ixy06)0yd*SO}!)M<17K9`2r<&P1_!%;3Qw8{20@4nIGFV?9(>)!5b`+T4 z!#1;~g0ck8oT366YMq56MQ5d|tyn+Gw7|sm4Ht_y%B$R&l5(iv3c7BUe+}uiFsFQ? z_!DNEyI384*VPINAzTp#{mB*lc?Zr4MxE$QNpEpx)8GgVlN zRRv^Y7pCPnR%Z3wx$4@L`b|NR1R(=B)NRS)FVm=67vIAVz37xo-wfW@;D7Y7Xes*L z6|8IRI1_xJK&t=XK>U&4v7I4`vYD|^HQ2lIji}H$`2`dhuiSRT>{AYlqaz9u3wQL1 za`bI6sBB>_`h~)$?HIv8LN18~U+7V2ZEM1(TNN+hB$fGhv0kP&)WnOyLCvfH`RO+Q zsGPg3XLzQHT9xO_PQ|4XISyyY+wIB$ag{7T0)UjC=e63UzX@$k3Js~L%2AIx#;x$; zO(OWIXFor<#QVEU3$W;PI(_u+lj*}J?@l|s)wj!W{C-6A0k6RBzkCTC7t{0azMcN- zKm2Dt+IgSD=3Y+E_FqnCE4$M-93i^P$JzhWuRfbL{>{JQD^lNcQ1v&{mp|Z+F$*Lk ztwHFSMiTi#29e4K27J3B5fY5=d;38W|Js+g4;6}e^nqFMCM=ezI?S4Bbg4j|YKD8) zH(2~z<6vzES`^+69vDe3UAfxfRw7{y-t=nY`Q1%2pJq$j}Fj? z0DC5L9r$4RECOrsfmhTEXSIVO;HKQZ+*F&wrjivV@>cI{Z{9yM%B!=LbR#NQpfdV5 zMB(a|YWMR^oWQITr6Q@WQQOV~_ge3t| z0f}|t*@5{sFC}R*AM>e#H4wIT^<;W-k10(UDIY#yK>F>s-%kJS*H5S8;}Z^qJLa8n zUh@Uf>uY;F8^;ka>qoSQ*5Pw<|CSGNKIDW%XXAeHi%XxnnRw1^fgS~g8BWwaqo z2UB@<5m4nwYSJv*!V$c{6Q*T%y=9YY{>S*Y3B~Zm#0{Hu+1@piLfJ|$Oaf^_uj2BbXE+DWQ%x}xJnYJ<9QGO^80>-k{eB- ze{K%)FNW@5A(BJ@$|;6i%V(uN3b=VgtGId>XRoG5JG;}~H{VSs96OryL3(}jknI+V569p;>xGn07o20I z;61s&O_@DDhQl{U9zC8u{W-snKbkhF^Wnn>)63_3(<`h_y`ksq5&fp`VJhm%$t=#M zY2ML#jc#!f%n=bWiEJoFL=57XTan7FA9afK+(Sg?3NaIzDfFDEItSO8LMKGP!O9jy zW~`xw34NfEb%)?pkCxd%_yt=`e4|j|@E!e2gx%9vOqY4w)}95%5Zxa5BMcL7w1T7M z(6ws%*^kgUyg(*0h7If=Wuw8XrsNy9xnxmqA;K0*iKH5z_}L%p<-b>BxOYNlm4(!} zR*9wEq>uJtM)}bv6%L(DnM|f|Z`Sf=s?Dl7&7?N}$omLLJ$DA5qRl#jbTdL8F@%L< zAU?{(yhbB-=Bn%V-%b^&W$uUp=pfl!h#w;AbGoJhpV{69TI!ug_i>vxFg$1ZNPX%c zEmM}qhto0N^w{8&1fPHX&(r1c>Gbs%Urzf6oJzvxJQ;WY@YQt6j8+bApsiRdJ3z;4 z;caPp{_==VS)X&J)yA}c^c|l+crpF_=bugAeEIowf8(?1qbK*Krv*snL>OJ!HK@HpK45qJ)w{zCB{3uKnx<*=~&7_f_ zaKv^GhHm9t!V9kPI8+3gDFye|7AU!~#=GD%&e_ijcjXvKUb?};XvBqB8&pOs-F&lv zR8`+?K(be!m~RlQ(8YJv&m_1@wm^UgbW%6!!4_xXlK$%1GqfEa4Tbp}6YT8lgc);+ zI&c4-@@>Jdzk8a&^ACKQ`iG;_>4%qo&jf~KkiMz|et8(8JGO&``FTvan<;m7279Hkc#&{{Mod*eV=V82sHWEI5w7zu(2v z>}y4MnT1B!rjGzQqn2;0&_Vs(Frau-8)E_T!B2$4ui%Ok2a%a|0Z+>a2mpdhwO$Jq z1fDTRuuqS?7Owj?!hyB$U7icK@qiB%k#1E@j8LRQS7YHBGj<|ZqNSY*DsO-yAl`=` zNS?8g^#p(!G)dD^mcLNxoxep%E~+?V_{T%r;^51;)ID!2?L;xiiC{JvMkeA-j~j(+ zDt{I477m4C9!44JNSRsxacSFZr7=sWS-HfD)B4*A5v(b?(ra(|B*D9)eK z&7g0TVdH_z|-(H(OVX*$*gWa6KcnRDu*>dp$_v-Kv zjp|4JfMuDt?IcO|5}ogJoGB-lY;R28{L}CGG#gfGdk1&xF(1<5nm|j==nfrtN{K4UY0W#0nfD5KgZ?e$4kfsO#j6Po%-JNKu*;`i~xd(#I`9>RbS7i+ME1riuv0&`I+B!P*~f^bTG`mg;+TOmTBYy)GgW}RE9MbX5(~kgOhK3!;vMf9YS!j9Bb#DeghI>VI)~#8 zt#7Q`n+RsfHw56XS*xDXr#Hmej&6%Jh5;?UP<`l4zD%_6(0Tew7cDuftLs#p40rV{ z3FD6(Jr0M0z#aP2)b6o z|HGY5M@%!=sQ|_^^o@{YretWIq!Xv>f;yB@#EQ&eT_Di37qW; zGqCpx>#znxZm{klBcHHMWED%Ze{?W?$=KtFvBx>?)h}w9K4Aa=KmbWZK~x{VGyRI+ z&p&uHJ;V@gt|ADh`!FwV%mrTM$zgnG4n>R)T>w`=sJ{$q|F8t7Z0A>Sbb0Wx|CZ_F ze~nQ5z{hod_opwXKRtUsUF|)c9zOYSI-O3YmxoVrtsc}gD-bucTx%IzoTARSOk5R! z1dtfwV|DDKWk6djjCc=w@TYMKFyIQZlGbsxE7j+!Qm-y`GHKy8)8+`Pu9f4pQ}$u$ zGTL5_lC>2T0u^Y5Gx`~Tgs#N3hIhNauOR0jKVY%Zv=z9iLk6_0J+UJT!8Hu)H;+ov z5dPtstkO62B?%n(Xb$R4o>3o0xR(YhC;9w0V6g{zCw;V0u0M5yH!XFhoS}(}g=w!V z;aadK>q2bZuDYsdXvEh;B0!<6Q;kH|*_S+ftzYur@yCIjNX(20NK!})YN8;Qeuww* zo%Rp-LhXYGxKK>=Qu%AuI+43`(J)N zeen3*>Eri4oZjJ_Ts7t)N0~Bz!Gc)>n(*#bD82#QDr z(B*oXwPCX@c~iXVE!+;xx6XcMW>MfREMHSDaloCaUHFTe@O4`d`>i0RUkX2AdGM4c|tJA$}xM0r_5?9Y{`~2(grlPVyc*9LN`u5?5#emdCsiaQQ(7VVWL<#iNGw{He(hU@096c zwQsvj4$QZfw-9Osg7L`)$o>GUx6Ap$FBr2Nuk5h!xXvMN)Ctj@KCTyBVKS(ppeZQ2 zOX5{Gq8MCUl@`u{%iu)D5qaV-t|^u%1SBS`C3Uj~Bcq#%+K39v4?H`ASA%n|SVX6w z-BMDsSgJeeX|)AcN~bdG<44ea%4`*iNv|N$Bag5dj4S0wojmlIw)%*2ARYFf#oH-H zGQ?7!0Hp6IQVLi70jhdxBfzJk@Kxfx!$DN?}1u-(f*O7Nbq}xy7Ti7c%@T8(1M3`(g(`WM-#qd?3*8W^~9&?A9hw z5KhL{Y+tM0a5El0dIZw0rk8uqrx$!e;OMI_nKe4eSO7kggQh3!PJQs;K5G*U*s%{OLc|jKSpC-FeUAD>9rOBroKL9>j>_agfCcX6Q7zk z{a^-r^H{GFg3)Hoy~6E^8}8ldtM7O(pVgG5Emth3r7h0KVj%xu`w3qGauIQLIs#|c z5XwRS$~AoeO}k9ds#N@fmAo$*^qJ#ad6jUmfg*U6 zXaMcCU{=v;Y7ch|U^cKW+w8ycaH0d+UZ*|hvClxDeOi+W?ApCxYYNZ=S$^j**3L9y zu3m8EzJ$6oi%CnkeY<>{@Ux%&eA?c@l7QrMR_QO96nMo{?E$OtYnZPsX17kj#mVst zVB4Rzu_{Mwrqud9#Em?&Jp}v&f!o0iJYtPzTHT5}xx%Zj5 z*{;m2<8F@_H$UeW2N#0^9h&3-yYEi{h z-9wKgZ!DD+66}k?_GftZf%vpP(zqn3F5eg&tjQd7liCXT8R&tS@ROEVBm=8y+)}>jC!HO5BRnGK2toQCm!_KVMu*Oh7eKHDZx5LcdC1wLzdIzw4*fGBAt zva)-Tu3SJw2biHoX+|=uh%ZYl8>HpLw~MGL+n z|1xVJXRHXT9nVhAr)PZrOxAFws**&_V-+0Ff84AR5c^(>ZNyu!yN!ivve>d@34YI)uU3_Wjx-pJL;SQ?H(V zJAME4pQaPsMup_~=xX}m`M1$pn{1}kt^DenFBo$@fyr1YXI!+xm_|}6tZ_r=mylJk z7dJx~$EbmL`xG2QAL--*rGs>FB_kS_?JyK6mj&F@#A3~sx9xVByG5G-#W#Yub6b52 zh>6m+HL?5>@U=pN_7OmyZRZjNqkH5xCXHV z3{`O=fDBk^B}!a{X}ujUtZx%muiNY`bl%%&mNp@3R3gi-m0*(5T()X6S`;cA>wZjJnh`)FqbF6C(A;r$2G#S!myz?6^Q ze-}-@p1o0rtd+QVPkz3{1=A%uff;`whb1Hw3-w2@=)Z(Fb^yn_rV{QFiZpN zp{iu(p0)(N+$iHj_lQfrLE8y^?1J^5a>pD-eN<0t>@KTwuZ3Q;PmXPeY8J>bW8f? z)st)M9v3FCP&M?GE9DVG#v(-NY9@+4i9>lzMI$5IW)GqRuk-=l z?&FecJ>bRnbjX_e^CBNwQNGbt>vvJoDE0OXp>-&CZySC@Knm%;KcFuQw?$K5W449L z@0d%te9xR@nM%en2!zD(EL+DG&eF6Q^^`r4xQ+(OYoe6VosrqyPjbdq68%`e)+FQj z&bcRhD;$@+8Fz@~ajX0W^=vR}bstCPhz*8;g?i5!;2%kIHA?m{AtY5i?b>!$s1YFd zK4qqb`hDL-VS;_~%exVj%aKLEAyc2?M{BL@r3;m|>1>=9Z-bS4cg(8gKl=Ei>FZyA zKkYIo-{H5$nB!aCM@j9}sq5%F^Y`xGXBY9)>DmAKEihkCpM3U91nQk>=b_Wzel7Pt zC;`tfjTn~8obD7Ia!iOV4b-MY#$WfDd)=y9|8Rk@lmtZz7ZfkFruno@!C-cYko z^&Ezye{?u*wQiLzRX{Rx74eQxj4W*UJM2r-zKbV4jLKTyj1<=ezpyLdv3LT7MN@!% zw(0@-=wFp_3f)hVCp$&#?+VlHPQPDZMO+Ndct)Y-pGQP3AvE$;wHvVb^V8wY0wNJ; zcp1XgM@KZ*3P*L+h8v+^z%gw)W|K2w!EhqDJ}5I71I^)zxB_s@tdpnj=@;h}S&-%0 zhvj8-*CkHXG-ze5f`r^+$E{k$_p5E+w+NSDK=vClW3vrBQ+;zp>Z6LsZ%3$9% z13YkFV|C6Dw)p5=wH})+tM4*9_3-|^X@@bweGYNhW^rp%z-jGe zu|*yhXEP=tRXSG1sV&wbTWx^TuLrx`CS_nYcNWB&Xoad&1jTeRRR!`4GLs`X zPr6&;%rV|2_tH_`;wFz?ns4hK#OU9rp zSHOzLB24PeI!g#fN3nC2$~ zN_y)nOft8@?tR+ETD&}%KIIUG zcbFl1k9}HC*hqMPdkOaiVPS0J8C_HsxGf)IgGgt~bp3*D(lH2m7ky{EuIn!1+C(Ws zYd{(7@;hhs{fvc68F-29=39>+A(?+QeaSTMZ$JNh+Ijrmw8y4Nt*!%l7YR>Z9!^(h z%%ZWc%O z1nZIxU#+P_;-OitBxKjG?heeF*MGt3CEDE`&*Cxx*qx%)?@>S$X|=6W*7hmxWBOmM zwxA?igrfw+ZA3MWv_5c1nmZV7svc|Qo^X!6b^}@Z=CHYY5|@jRHJ#dnuBfi?qZpTBdb5+9OlRsI#m=#1$HS@uYUo+|A&b zdVCi|0$#wxZhHyyI4ucW_Ds!Vx`N^F(L)3hVZ6Wl5I2wAytKEe>-fpV^k4q?$LZJs zEZWP(PRsj2&`T`TF=ZVuoucJf84*F#Hg3pctkt_%uH9e#?estX_=oA~ci&ACul zUq5L<(sjz`I)Id6L_rweN=Xzrpadx4fWaMqpplG|STeTb4}*C;OyNEQSjQZvtZ^vy zZa<0ZB-+tL3dAYt2{6++?XFuV%zDoI8TW97&JUQ)TF2FLzzw73ooma(Bv)+EbH!zK z*|ilc2|=8%bD~Lv6hX^$F_Q*`aF8m&44Mt#agpotihWrK_d5?CO&_?Mm$eQLU)#q* zET5>cCe}Qj=Y9AcT)b~z?oBU!U!HeOo;}~6-sN5SQ#N2a4EMe8xNE>GBk#O(kFmz~ z^z~QYPUqn0uYUPA(|`Y8znT8*=rm=2uLA`eKxtTjUCye}of8k?&!ItfRDW zC?NFRS88QAU9DJu=#t5|`a6Aezb9E6`NV8r>erGbR6Pr}^!O#(1$|WClqYkJ$Vns>nX$c|C=lYpmI7l?H zdN&as+-hHy5I!f7(1is5}$4hV>i5E^;hHUa|6kYd3RaGOwXVbHiERtcn&4nVVF z3Tz^y>l0v2zCz=`+`9EiPna?_?fB#Z=cIk`;q=R2{`K?)1NKvx`9s{TfBy2T z>GMDRfp<@~ruPv_^^gK{!Ax2-I|?Wh6T;0;0iRn9t+bYdej@0miR<)V1|9tr8M;(k zyqLDlBJC<;rutL?{=4okN(psLZs?BiT8Cva1x}q>z{TK<8vqtZ!S%9%6&k@>|^Rz%yh(I|C(05Dpvkj|f&}*^zR8%~#zQn3}259P3S1NQbzMUkpQO zF+{f7>g1H|=~@sN-@0>75)DSnq&S^NGSvQ8Xk;1U2%+$cPnqdrn)Lg<{j4{*hT;bs z&oSGv6$pnj9YT_|5AFlM&*>3_pdY$=^=@|cS>N@7wj2{_6&*UNfjL%dx?&gcDQ=Tx z#EXJ=eRYDBbHCHswDzKAxc=Q||C%uptNaMb3pP?dd-nZwx_dEw&j!e6tbh0>qY6Oc z9q|U_?|%PVroCTH_Zh6a3jKfq{(D%%ufF|i`pxfu9Xx%&@kDtAH>kxH>9>dIGEI<` zKjJ$+I528~OK66207qJN1uVis?-U4kBsgi}ptjdFtWxDC;~CP1IEEffP^I3Uij_Zt zTR~!6X1heBoQuEB*t(k5muXmpOLnG0=#7QM9aQ+k$PxZb`i4?Xw~FP{ z$JC!{d5jl>pxZA`0PQugku#SYWfv31{p@ z^iH`+*!|T@Q1)#IEM;oeN=Qc#4nmBC_rhQwaT9%?e}(!peVkmC(QMk1QM6Oi|9;?= z+iGN?sigUw3IG^PrlQ2CwSd#0b|`cTFeUhJoEcY3CCb${jG?UnH2EZ~y^lh$KU9H+J4C}t=){}sEdpv*Cni?# z`*}}y+NW`s1f`qTCbTV>YS#Q2cw{`8zTBp-di z+ldV3{X*?0pZJ#t179y`?+Sok&TsLzv!m%g@Kd!B_egfry-FNr3PFeR6%Ct*C zX)?lNCAPD|>(^pP?OgR@l| zbe1WV>5#Vu6_k6-_Q>e2%5OsGbCBZ}leKdQ4j~jSHBN{PEV)Yf{16;r<=)^muxb&2 zUE(Fb5*O?f*|)hemg1k<()1uwTu^HcmjhuJSiM7txI%wVC=O|`Ec(J~LWZvr(2)vo z-)DMv=`p7|GTpmOU)`JZl*1>)8^fOIo%cVO9zK2?cl3y<;$u#2aR(ovFV^&Hwt`uZTxEWYS1k__5jw07OIBDAU=W<+VQGToT1Rf zTU=0uFap3Bh&*nku|5SvL6WvnMu{y2qX^RwG2nyGQ+IHR-=L=;;u&oL7qx+JU0)${ z>R8t~7Hhzk&T=2Bz%LtHoG`hCV8A!a;2>WlkeUC207O;`IJX!+;8SUU3ggjHIs@xv zigh-#aI4XDnp~R3=n|@T*RCCuvClkZ1fg+CF*8;Ym-?631Lf{r5o%u!8JDQld<9kw z5x4AJ_(-GbS!iY;!z``@ zW&S9d;_Q0b%4!{{HYIoO=To>75 zGGm7y&4;NK3~}3I4C|K#)zFsB43H{y;6q#(ytb?4b9n-rY#8PJ7%ZLTrHL=TX~kVw zjf;gK)v9~xX#vUDHH=QndKdB49E0GN@hiGOZv;X<@-T~h#TOh!xdB|&?t#kgk2udah-06B+l+mBDM1i$^NSA*5rXQ3!YMO%3JmY2U_nIxCd$V%vt)&k$NXAW z>WN!4uIgM3FMuVV8%YgeROy5!Zx>5z4`LHCLuMLQB#VWNM^qZHXVT>ZCj(aLzjZmL z>w22z)}@0Nmpp?HIh@Elb zZ(Iyu1(DXCx~Ngzqfsg(;Hhaai@vfGe zyx)BDCF?(*63@XF#05C=uJ9_c^4sDX7potEcYILauStWu0041JBuoVFW*$ z23X({ZUu1|Ai#l?<#Cx1{f;SEDRweS%ib|4yKgyS<&Q&8R)&SajOK5XMbCa8C)Q2KiIuc!tGuy z8FmFtnD*?v2)1qR^=0$AB=;YG{Bi2IV8%xRh+NavG8mA^PVLNvSpeFFLnj0zxPVHm z@^S4nji+N;91+Fp^Qg{m@>Siu41;Y9=)CWIj_V5&*YYwam2z3_>;+wif z>VP+8ty5ZHseG0ftjnyDFN#~!$(q@cXNxggXMU?Ny)s(KpC9G|az|O~P6)6(K?E6H zX>Nprp8!&RxmpWhAiuAap3!-&joUMhIjGG87-T&+v&p1kNVJ+-OJ=lA5ny?P$d8Lf zntP)RBG5dqI8j8wazB$uUZOpx9(@ldJR(53 z3HIqL0>+;i(F9Fc^~HVD&}?xhc-D=C{}~W#-f0^R7WaxVf$z$TDa#+jq!^j$y^lU7 zA1)Y`EW0a!&56SMisMo zHgH$|&#{`9C6gCx9 zl#W;8UB~I|DY>UEzcnaLqBPYY-VUwfRZ)r4YA-RK$dE#T zz?*Qk%A;Bh)-A93@BbvcQ9!J=8C5Y9c#(B|0ii=|ZFDoWAW%Xs<0@e;aHAZwspZu^ zB0!TbLR6*tv?5-?^4|3liz`q|Xjt#{zg^9h0kij?w7nNE@Wb62!A@X^?jg>XxP2i$ z8reWoR3xKIjACNJD$;eOPXO@d~kdHrjZ+gtD!%vx=@=%E@`m&C)a13*d zP+YG2YBCmpI*)j^-Y1Wrq@O>q<9C}u=p!~tirW|9#GoML1t^siKZV;(f$5k11$?dd zF6&53xJntnA=E(_i7xaSq_YafnJ7xdf^52$K)gYXf65@r&)2CeGyVWaIGMS(jP1v@ zMJVM1T`1SMA{Yt-I5e1NQE?@mG6uj6Z3Nsr<*i6uemuJr`b91N~Imm)$ zNeCZX>@Ns!6p(-sPMg=7={%6MjF6aQXF3EKsLu;Wp>#T0T{x3bt?G;l;6wBbz)7=w ztcabbq6i9Cna+HUFKp8-9Wj+;%JvT86^Ijv?4lU8L=a{cQz#m@d_4VZXGbv z@th0-XX}bcM2W5TS9pBZr}aQH>7s`5^uA4IBHFc*K*DpukvdCg!w?JRbnn!Idyg^} zdCA~bE49gHyB+G^K@fLwN5E(R6ef2emm46&h4LJg4{Qp8K`j{Ju%FcD;bAgXPUNEw zHFb|)03A5_vJ;H$tHqLR9Vw7`-J3P7oW;-Aq9}Zq5YG313w};BVR3VrZ+o2a-og

K$%4_5qEmV)Gq*R(r3>Qb`dZZ0Jaj3 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

dQ$N-}DEb0@!7cB=4TBMbe>o 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

K$%4_5qEmV)Gq*R(r3>Qb`dZZ0Jaj3 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 + android:textSize="@dimen/text_size_20" + android:fontFamily="sans-serif-medium" /> - - - - Create Interactive Video Live with Live API for a Seamless Streaming Experience. Voice Room Enable Interactive Voice Room with Live API for an Enhanced Communication Experience. - + You cannot call yourself, please use a different user ID \ No newline at end of file diff --git a/application/app/src/main/res/values-ja/strings.xml b/application/app/src/main/res/values-ja/strings.xml index 447dd9f6..675aa500 100644 --- a/application/app/src/main/res/values-ja/strings.xml +++ b/application/app/src/main/res/values-ja/strings.xml @@ -99,5 +99,6 @@ ライブAPIを介してインタラクティブなビデオライブストリーミングを構築して、明確でスムーズなライブストリーミングエクスペリエンスを提供します。 言語チャットルーム Live APIを使用してインタラクティブな音声チャットルームを構築して、低レイテンシと高品質のエクスペリエンスを提供します。 + 自分自身に電話をかけることはできません。ユーザーIDを変更してください \ No newline at end of file diff --git a/application/app/src/main/res/values-zh/strings.xml b/application/app/src/main/res/values-zh/strings.xml index cdf8effa..fdf21929 100644 --- a/application/app/src/main/res/values-zh/strings.xml +++ b/application/app/src/main/res/values-zh/strings.xml @@ -106,4 +106,5 @@ 开启高性能模式 关闭高级特性 开启测试环境 + 您无法向自己发起通话,请您更换新的用户 ID \ No newline at end of file diff --git a/application/app/src/main/res/values/strings.xml b/application/app/src/main/res/values/strings.xml index 7035233d..b22afd27 100644 --- a/application/app/src/main/res/values/strings.xml +++ b/application/app/src/main/res/values/strings.xml @@ -105,4 +105,5 @@ Enable High Performance Disable Feature Enable Test ENV + You cannot call yourself, please use a different user ID \ No newline at end of file diff --git a/application/build.gradle b/application/build.gradle index 8dc43e0d..44d819a6 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -6,7 +6,7 @@ buildscript { dependencies { def gradleMajorVersion = gradle.gradleVersion.tokenize('.')[0].toInteger() if (gradleMajorVersion >= 8) { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0" } else { classpath 'com.android.tools.build:gradle:4.2.1' @@ -20,13 +20,9 @@ task clean(type: Delete) { } ext { - compileSdkVersion = 34 - buildToolsVersion = "30.0.1" - minSdkVersion = 21 - targetSdkVersion = 34 liteavSdk = "com.tencent.liteav:LiteAVSDK_Professional:13.0.0.19676" - roomEngineSdk = buildEngineSource.toBoolean() ? project(":engine_source") : "io.trtc.uikit:rtc_room_engine:3.6.1.76" - atomicxCoreSdk = buildAtomicxCoreSource.toBoolean() ? project(":atomicxcore") : "io.trtc.uikit:atomicx-core:4.0.3.44" + roomEngineSdk = buildEngineSource.toBoolean() ? project(":engine_source") : "io.trtc.uikit:rtc_room_engine:4.0.1.97" + atomicxCoreSdk = buildAtomicxCoreSource.toBoolean() ? project(":atomicxcore") : "io.trtc.uikit:atomicx-core:4.0.1.90" imSdk = "com.tencent.imsdk:imsdk-plus:8.7.7201" common = "io.trtc.uikit:common:3.5.0.1332" } \ No newline at end of file diff --git a/application/gradle/wrapper/gradle-wrapper.properties b/application/gradle/wrapper/gradle-wrapper.properties index 131d8a4f..51f6b24f 100644 --- a/application/gradle/wrapper/gradle-wrapper.properties +++ b/application/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip diff --git a/atomic_x/build.gradle b/atomic_x/build.gradle index 9031d11e..acbbe922 100644 --- a/atomic_x/build.gradle +++ b/atomic_x/build.gradle @@ -10,8 +10,7 @@ android { defaultConfig { minSdk 21 - versionName "1.0" - versionCode 1 + } buildTypes { @@ -55,9 +54,9 @@ dependencies { api 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3' api 'com.github.bumptech.glide:glide:4.12.0' - api rootProject.getProperties().containsKey("atomicxCoreSdk") ? rootProject.ext.atomicxCoreSdk : "io.trtc.uikit:atomicx-core:4.0.0.110" - api rootProject.getProperties().containsKey("liteavSdk") ? rootProject.ext.liteavSdk : "com.tencent.liteav:LiteAVSDK_Professional:13.0.0.19676" - api rootProject.getProperties().containsKey("common") ? rootProject.ext.common : "io.trtc.uikit:common:3.3.0.1194" + api rootProject.getProperties().containsKey("roomEngineSdk") ? rootProject.ext.roomEngineSdk : "io.trtc.uikit:rtc_room_engine:4.0.1.71" + api rootProject.getProperties().containsKey("atomicxCoreSdk") ? rootProject.ext.atomicxCoreSdk : "io.trtc.uikit:atomicx-core:4.0.1.71" + api rootProject.getProperties().containsKey("liteavSdk") ? rootProject.ext.liteavSdk : "com.tencent.liteav:LiteAVSDK_Professional:12.8.0.19279" api rootProject.getChildProjects().containsKey("tuicore") ? project(':tuicore') : "com.tencent.liteav.tuikit:tuicore:8.8.7357" implementation 'androidx.appcompat:appcompat:1.3.1' diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguagePickerDialogFragment.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguagePickerDialogFragment.kt similarity index 99% rename from atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguagePickerDialogFragment.kt rename to atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguagePickerDialogFragment.kt index da39df7d..5127a007 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguagePickerDialogFragment.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguagePickerDialogFragment.kt @@ -1,4 +1,4 @@ -package io.trtc.tuikit.atomicx.ai +package io.trtc.tuikit.atomicx.AITranscriber import android.os.Bundle import android.view.Gravity diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguageProvider.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguageProvider.kt similarity index 98% rename from atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguageProvider.kt rename to atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguageProvider.kt index ff65ee2a..05171fda 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/LanguageProvider.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/LanguageProvider.kt @@ -1,4 +1,4 @@ -package io.trtc.tuikit.atomicx.ai +package io.trtc.tuikit.atomicx.AITranscriber import io.trtc.tuikit.atomicx.R import io.trtc.tuikit.atomicxcore.api.ai.SourceLanguage diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberSettingsDialogFragment.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberSettingsDialogFragment.kt similarity index 98% rename from atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberSettingsDialogFragment.kt rename to atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberSettingsDialogFragment.kt index 6872a90c..cfcf4958 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberSettingsDialogFragment.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberSettingsDialogFragment.kt @@ -1,4 +1,4 @@ -package io.trtc.tuikit.atomicx.ai +package io.trtc.tuikit.atomicx.AITranscriber import android.content.DialogInterface import android.os.Bundle @@ -121,7 +121,7 @@ class TranscriberSettingsDialogFragment : DialogFragment() { } companion object { - private const val TAG = "TranscriberSettingsDialogFragment" + internal const val TAG = "TranscriberSettingsDialogFragment" private const val ARG_SOURCE_LANGUAGE = "source_language" private const val ARG_TRANSLATION_LANGUAGE = "translation_language" private const val ARG_BILINGUAL_ENABLED = "bilingual_enabled" diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberView.kt similarity index 99% rename from atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberView.kt rename to atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberView.kt index 6e9b0d5a..609a0ab5 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/ai/TranscriberView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/AITranscriber/TranscriberView.kt @@ -1,4 +1,4 @@ -package io.trtc.tuikit.atomicx.ai +package io.trtc.tuikit.atomicx.AITranscriber import android.content.Context import android.graphics.Rect diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallView.kt index 5f4858c5..fb760c61 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallView.kt @@ -3,31 +3,38 @@ package io.trtc.tuikit.atomicx.callview import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import io.trtc.tuikit.atomicx.callview.core.CallViewFunction -import io.trtc.tuikit.atomicxcore.api.call.CallParticipantInfo -import io.trtc.tuikit.atomicxcore.api.call.CallStore -import io.trtc.tuikit.atomicxcore.api.view.CallCoreView -import io.trtc.tuikit.atomicxcore.api.view.CallLayoutTemplate -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch import android.widget.FrameLayout import android.widget.LinearLayout -import com.trtc.tuikit.common.util.ScreenUtil.dip2px +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.isVisible import io.trtc.tuikit.atomicx.R +import io.trtc.tuikit.atomicx.callview.core.CallViewFunction import io.trtc.tuikit.atomicx.callview.core.common.utils.CallUtils import io.trtc.tuikit.atomicx.callview.core.common.utils.ImageResourceCache -import io.trtc.tuikit.atomicx.callview.public.multi.MultiCallWaitingView +import io.trtc.tuikit.atomicx.callview.core.common.utils.Logger import io.trtc.tuikit.atomicx.callview.public.controls.MultiCallControlsView import io.trtc.tuikit.atomicx.callview.public.controls.SingleCallControlsView import io.trtc.tuikit.atomicx.callview.public.hint.HintView import io.trtc.tuikit.atomicx.callview.public.hint.TimerView +import io.trtc.tuikit.atomicx.callview.public.multi.MultiCallWaitingView import io.trtc.tuikit.atomicx.callview.public.transcriber.CallTranscriberView +import io.trtc.tuikit.atomicx.common.util.ScreenUtil.dip2px +import io.trtc.tuikit.atomicx.callview.public.smartcellularswitchrecommendation.SmartCellularRecommendationDialog +import io.trtc.tuikit.atomicx.widget.basicwidget.toast.AtomicToast +import io.trtc.tuikit.atomicxcore.api.call.CallParticipantInfo import io.trtc.tuikit.atomicxcore.api.call.CallParticipantStatus +import io.trtc.tuikit.atomicxcore.api.call.CallStore +import io.trtc.tuikit.atomicxcore.api.device.DeviceListener +import io.trtc.tuikit.atomicxcore.api.device.DeviceStore import io.trtc.tuikit.atomicxcore.api.device.NetworkQuality +import io.trtc.tuikit.atomicxcore.api.device.NetworkType +import io.trtc.tuikit.atomicxcore.api.view.CallCoreView +import io.trtc.tuikit.atomicxcore.api.view.CallLayoutTemplate import io.trtc.tuikit.atomicxcore.api.view.VolumeLevel +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope import java.io.File import java.util.concurrent.atomic.AtomicInteger @@ -45,8 +52,8 @@ class CallView @JvmOverloads constructor( var originalUrl: String, var cachedPath: String? ) - private var callMainView: CallCoreView? = null + private var transcriberContainer: FrameLayout? = null private var subscribeStateJob: Job? = null private val participantAvatarInfoMap: MutableMap = mutableMapOf() private val imageResourceCache = ImageResourceCache(context) @@ -55,9 +62,15 @@ class CallView @JvmOverloads constructor( private var layoutTimer: FrameLayout? = null private var layoutCallHint: FrameLayout? = null private var multiCallWaitingViewContainer: LinearLayout? = null - private var disableFeatures: List? = null + private var deviceListener: DeviceListener = object : DeviceListener { + override fun onSmartCellularSwitchRecommended() { + super.onSmartCellularSwitchRecommended() + showSmartCellularRecommendation() + } + } + init { initView() setIconResourcePath() @@ -72,10 +85,12 @@ class CallView @JvmOverloads constructor( addFunctionLayout() addTranscriberLayout() updateWaitingView() + DeviceStore.shared().addListener(deviceListener) subscribeStateJob = CoroutineScope(Dispatchers.Main).launch { supervisorScope { launch { observeSelfInfo() } launch { observeParticipantInfo() } + launch { observeNetworkType() } } } } @@ -83,12 +98,14 @@ class CallView @JvmOverloads constructor( override fun onDetachedFromWindow() { super.onDetachedFromWindow() callMainView?.removeAllViews() + deviceListener.let { DeviceStore.shared().removeListener(it) } subscribeStateJob?.cancel() } private suspend fun observeSelfInfo() { CallStore.shared.observerState.selfInfo.collect { selfInfo -> - if (selfInfo.status == CallParticipantStatus.Accept && callMainView?.visibility == GONE) { + val isAccepted = selfInfo.status == CallParticipantStatus.Accept + if (isAccepted && callMainView?.visibility == GONE) { updateWaitingView() } } @@ -100,6 +117,12 @@ class CallView @JvmOverloads constructor( } } + private suspend fun observeNetworkType() { + DeviceStore.shared().deviceState.networkType.collect { networkType -> + handleNetworkTypeChanged(networkType) + } + } + private fun initView() { LayoutInflater.from(context).inflate(R.layout.callview_root_view, this, true) multiCallWaitingViewContainer = findViewById(R.id.ll_callee_waiting_view) @@ -149,8 +172,8 @@ class CallView @JvmOverloads constructor( if (disableFeatures?.contains(Feature.AI_TRANSCRIBER) == true) { return } - val transcriberContainer = findViewById(R.id.call_layout_transcriber_container) - transcriberContainer.addView(CallTranscriberView(context)) + transcriberContainer = findViewById(R.id.call_layout_transcriber_container) + transcriberContainer?.addView(CallTranscriberView(context)) } private fun addFunctionLayout() { @@ -183,7 +206,7 @@ class CallView @JvmOverloads constructor( } for (participant in participants) { val participantId = participant.id - val currentAvatarUrl = participant.avatarUrl ?: "" + val currentAvatarUrl = participant.avatarURL ?: "" val existingInfo = participantAvatarInfoMap[participantId] if (existingInfo?.originalUrl != currentAvatarUrl) { participantsToUpdate.add(participantId to currentAvatarUrl) @@ -235,6 +258,30 @@ class CallView @JvmOverloads constructor( .mapValues { it.value.cachedPath!! } } + private fun showSmartCellularRecommendation() { + this.post { + try { + val dialog = SmartCellularRecommendationDialog(context) + dialog.onEnableSmartCellular = { + DeviceStore.shared().enableSmartCellularSwitchMode(true) + } + dialog.show() + } catch (e: Exception) { + Logger.e("showSmartCellularRecommendation failed: ${e.message}") + } + } + } + + private fun handleNetworkTypeChanged(type: NetworkType) { + val toastString = when (type) { + NetworkType.CELLULAR -> context.getString(R.string.smart_cellular_switched_to_cellular) + NetworkType.WIFI -> context.getString(R.string.smart_cellular_switched_to_wifi) + else -> return + } + AtomicToast.show(context, toastString) + } + + override fun setLayoutTemplate(template: CallLayoutTemplate) { val isPipView = template == CallLayoutTemplate.Pip layoutFunction?.visibility = if (isPipView) GONE else VISIBLE @@ -244,6 +291,7 @@ class CallView @JvmOverloads constructor( callMainView?.visibility = VISIBLE updateCallCoreViewTopMargin(template) callMainView?.setLayoutTemplate(template) + transcriberContainer?.isVisible = !isPipView } private fun updateCallCoreViewTopMargin(template: CallLayoutTemplate) { diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallViewStore.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallViewStore.kt new file mode 100644 index 00000000..d88b3e37 --- /dev/null +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/CallViewStore.kt @@ -0,0 +1,39 @@ +package io.trtc.tuikit.atomicx.callview + +import io.trtc.tuikit.atomicxcore.api.call.CallParticipantStatus +import io.trtc.tuikit.atomicxcore.api.call.CallStore +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch + +object CallViewStore { + + private const val DEFAULT_SHOW_TRANSCRIBER_PANEL = true + + private val _isShowTranscriberPanel = MutableStateFlow(DEFAULT_SHOW_TRANSCRIBER_PANEL) + private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate) + + init { + scope.launch { + CallStore.shared.observerState.selfInfo.collect { selfInfo -> + if (selfInfo.status != CallParticipantStatus.Accept) { + reset() + } + } + } + } + + val isShowTranscriberPanel: StateFlow = _isShowTranscriberPanel + + fun setShowTranscriberPanel(show: Boolean) { + _isShowTranscriberPanel.value = show + } + + private fun reset() { + _isShowTranscriberPanel.value = DEFAULT_SHOW_TRANSCRIBER_PANEL + } +} + diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioAndVideoCalleeWaitingView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioAndVideoCalleeWaitingView.kt index 4078e181..8ca86f63 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioAndVideoCalleeWaitingView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioAndVideoCalleeWaitingView.kt @@ -6,8 +6,8 @@ import android.widget.LinearLayout import android.widget.RelativeLayout import androidx.constraintlayout.utils.widget.ImageFilterView import androidx.core.content.ContextCompat -import com.trtc.tuikit.common.imageloader.ImageLoader import io.trtc.tuikit.atomicx.R +import io.trtc.tuikit.atomicx.common.imageloader.ImageLoader import io.trtc.tuikit.atomicxcore.api.call.CallStore class AudioAndVideoCalleeWaitingView(context: Context) : RelativeLayout(context) { diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioCallerWaitingAndAcceptedView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioCallerWaitingAndAcceptedView.kt index 91d24da7..21fb6f37 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioCallerWaitingAndAcceptedView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/AudioCallerWaitingAndAcceptedView.kt @@ -4,9 +4,9 @@ import android.content.Context import android.view.LayoutInflater import android.widget.RelativeLayout import androidx.core.content.ContextCompat -import com.trtc.tuikit.common.imageloader.ImageLoader import io.trtc.tuikit.atomicx.R import io.trtc.tuikit.atomicx.callview.core.common.widget.ControlButton +import io.trtc.tuikit.atomicx.common.imageloader.ImageLoader import io.trtc.tuikit.atomicxcore.api.call.CallStore import io.trtc.tuikit.atomicxcore.api.device.AudioRoute import io.trtc.tuikit.atomicxcore.api.device.DeviceStatus diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerAndCalleeAcceptedView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerAndCalleeAcceptedView.kt index 8be3a425..79fcc16b 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerAndCalleeAcceptedView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerAndCalleeAcceptedView.kt @@ -11,20 +11,20 @@ import androidx.constraintlayout.widget.ConstraintSet import androidx.core.content.ContextCompat import androidx.transition.ChangeBounds import androidx.transition.TransitionManager -import com.trtc.tuikit.common.imageloader.ImageLoader import android.graphics.drawable.Drawable import android.view.MotionEvent import com.tencent.cloud.tuikit.engine.call.TUICallEngine import com.tencent.cloud.tuikit.engine.common.TUICommonDefine import com.tencent.qcloud.tuicore.permission.PermissionCallback import io.trtc.tuikit.atomicx.callview.core.common.Constants -import com.trtc.tuikit.common.util.ScreenUtil import io.trtc.tuikit.atomicx.R import io.trtc.tuikit.atomicx.callview.core.common.Constants.BLUR_LEVEL_CLOSE import io.trtc.tuikit.atomicx.callview.core.common.Constants.BLUR_LEVEL_HIGH import io.trtc.tuikit.atomicx.callview.core.common.utils.Logger import io.trtc.tuikit.atomicx.callview.core.common.utils.PermissionRequest import io.trtc.tuikit.atomicx.callview.core.common.widget.ControlButton +import io.trtc.tuikit.atomicx.common.imageloader.ImageLoader +import io.trtc.tuikit.atomicx.common.util.ScreenUtil import io.trtc.tuikit.atomicxcore.api.call.CallStore import io.trtc.tuikit.atomicxcore.api.call.CallParticipantStatus import io.trtc.tuikit.atomicxcore.api.device.AudioRoute diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerWaitingView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerWaitingView.kt index 51698e41..7d1e536f 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerWaitingView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/controls/VideoCallerWaitingView.kt @@ -8,13 +8,13 @@ import androidx.core.content.ContextCompat import com.tencent.cloud.tuikit.engine.call.TUICallEngine import com.tencent.cloud.tuikit.engine.common.TUICommonDefine import com.tencent.qcloud.tuicore.permission.PermissionCallback -import com.trtc.tuikit.common.imageloader.ImageLoader import io.trtc.tuikit.atomicx.R import io.trtc.tuikit.atomicx.callview.core.common.Constants.BLUR_LEVEL_CLOSE import io.trtc.tuikit.atomicx.callview.core.common.Constants.BLUR_LEVEL_HIGH import io.trtc.tuikit.atomicx.callview.core.common.utils.Logger import io.trtc.tuikit.atomicx.callview.core.common.utils.PermissionRequest import io.trtc.tuikit.atomicx.callview.core.common.widget.ControlButton +import io.trtc.tuikit.atomicx.common.imageloader.ImageLoader import io.trtc.tuikit.atomicxcore.api.call.CallStore import io.trtc.tuikit.atomicxcore.api.device.DeviceStatus import io.trtc.tuikit.atomicxcore.api.device.DeviceStore diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/multi/MultiCallWaitingView.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/multi/MultiCallWaitingView.kt index 96a1c178..636953e4 100644 --- a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/multi/MultiCallWaitingView.kt +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/multi/MultiCallWaitingView.kt @@ -8,10 +8,10 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.constraintlayout.utils.widget.ImageFilterView import androidx.core.content.ContextCompat -import com.trtc.tuikit.common.imageloader.ImageLoader -import com.trtc.tuikit.common.util.ScreenUtil import io.trtc.tuikit.atomicx.R import io.trtc.tuikit.atomicx.callview.core.common.utils.CallUtils +import io.trtc.tuikit.atomicx.common.imageloader.ImageLoader +import io.trtc.tuikit.atomicx.common.util.ScreenUtil import io.trtc.tuikit.atomicxcore.api.call.CallStore import io.trtc.tuikit.atomicxcore.api.call.CallParticipantInfo import kotlinx.coroutines.MainScope @@ -56,7 +56,7 @@ class MultiCallWaitingView(context: Context) : LinearLayout(context) { CallStore.shared.observerState.allParticipants.collect { participants -> for (participant in participants) { if (CallUtils.isCaller(participant.id)) { - ImageLoader.load(context, imageCallerAvatar, participant.avatarUrl, R.drawable.callview_ic_avatar) + ImageLoader.load(context, imageCallerAvatar, participant.avatarURL, R.drawable.callview_ic_avatar) textWaitingUserName.text = participant.name } } @@ -101,7 +101,7 @@ class MultiCallWaitingView(context: Context) : LinearLayout(context) { imageView.round = 12f imageView.scaleType = ImageView.ScaleType.CENTER_CROP imageView.layoutParams = layoutParams - ImageLoader.load(context, imageView, user.avatarUrl, R.drawable.callview_ic_avatar) + ImageLoader.load(context, imageView, user.avatarURL, R.drawable.callview_ic_avatar) return imageView } diff --git a/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/smartcellularswitchrecommendation/SmartCellularRecommendationDialog.kt b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/smartcellularswitchrecommendation/SmartCellularRecommendationDialog.kt new file mode 100644 index 00000000..feeffe80 --- /dev/null +++ b/atomic_x/src/main/java/io/trtc/tuikit/atomicx/callview/public/smartcellularswitchrecommendation/SmartCellularRecommendationDialog.kt @@ -0,0 +1,176 @@ +package io.trtc.tuikit.atomicx.callview.public.smartcellularswitchrecommendation + +import android.content.Context +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Path +import android.graphics.RectF +import android.graphics.drawable.BitmapDrawable +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.widget.Button +import android.widget.ImageView +import com.google.android.material.bottomsheet.BottomSheetDialog +import io.trtc.tuikit.atomicx.R + +class SmartCellularRecommendationDialog(context: Context?) : + BottomSheetDialog(context!!, R.style.dialogStyleFromBottom) { + + var onEnableSmartCellular: (() -> Unit)? = null + var onKeepWiFi: (() -> Unit)? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.dialog_smart_cellular_recommendation) + + initViews() + setupClickListeners() + } + + private fun initViews() { + findViewById(R.id.iv_wifi_icon)?.setImageDrawable(createWiFiPoorIcon()) + findViewById(R.id.iv_cellular_icon)?.setImageDrawable(createCellularGoodIcon()) + findViewById(R.id.iv_arrow)?.setImageDrawable(createArrowIcon()) + } + + private fun setupClickListeners() { + findViewById