From 67be16ae7952f35959512d58ba9648db93fb4cc8 Mon Sep 17 00:00:00 2001 From: liyuhua <15626451870@163.com> Date: Wed, 10 Jan 2024 11:14:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4ui=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yinmeng-ios.xcodeproj/project.pbxproj | 468 ++++++++++++-- .../xcschemes/yinmeng-ios.xcscheme | 2 +- .../Contents.json | 22 + .../mew_Common_white_back@2x.png | Bin 0 -> 192 bytes .../mew_Common_white_back@3x.png | Bin 0 -> 318 bytes .../Contents.json | 22 + .../mew_common_sex_female@2x.png | Bin 0 -> 606 bytes .../mew_common_sex_female@3x.png | Bin 0 -> 1043 bytes .../Contents.json | 22 + .../mew_common_sex_male@2x.png | Bin 0 -> 569 bytes .../mew_common_sex_male@3x.png | Bin 0 -> 985 bytes .../Mew/Room/MewRoomTopRank/Contents.json | 6 + .../Contents.json | 22 + .../mew_room_top_rank_head_first@2x.png | Bin 0 -> 1768 bytes .../mew_room_top_rank_head_first@3x.png | Bin 0 -> 2064 bytes .../Contents.json | 22 + .../mew_room_top_rank_head_second@2x.png | Bin 0 -> 1702 bytes .../mew_room_top_rank_head_second@3x.png | Bin 0 -> 1978 bytes .../Contents.json | 22 + .../mew_room_top_rank_head_third@2x.png | Bin 0 -> 1753 bytes .../mew_room_top_rank_head_third@3x.png | Bin 0 -> 2097 bytes .../Mew/Room/MewShare/Contents.json | 6 + .../Contents.json | 22 + .../mew_share_room_qq_disable@2x.png | Bin 0 -> 698 bytes .../mew_share_room_qq_disable@3x.png | Bin 0 -> 1134 bytes .../Contents.json | 22 + .../mew_share_room_qq_normal@2x.png | Bin 0 -> 752 bytes .../mew_share_room_qq_normal@3x.png | Bin 0 -> 1349 bytes .../Contents.json | 22 + .../mew_share_room_qqzone_disable@2x.png | Bin 0 -> 769 bytes .../mew_share_room_qqzone_disable@3x.png | Bin 0 -> 1308 bytes .../Contents.json | 22 + .../mew_share_room_qqzone_normal@2x.png | Bin 0 -> 912 bytes .../mew_share_room_qqzone_normal@3x.png | Bin 0 -> 1624 bytes .../Contents.json | 22 + ...ew_share_room_wechat_circle_disable@2x.png | Bin 0 -> 779 bytes ...ew_share_room_wechat_circle_disable@3x.png | Bin 0 -> 1303 bytes .../Contents.json | 22 + ...mew_share_room_wechat_circle_normal@2x.png | Bin 0 -> 924 bytes ...mew_share_room_wechat_circle_normal@3x.png | Bin 0 -> 1715 bytes .../Contents.json | 22 + .../mew_share_room_wechat_disable@2x.png | Bin 0 -> 858 bytes .../mew_share_room_wechat_disable@3x.png | Bin 0 -> 1376 bytes .../Contents.json | 22 + .../mew_share_room_wechat_normal@2x.png | Bin 0 -> 1015 bytes .../mew_share_room_wechat_normal@3x.png | Bin 0 -> 1722 bytes .../mew_room_hot_icon.imageset/Contents.json | 22 + .../mew_room_hot_icon@2x.png | Bin 0 -> 848 bytes .../mew_room_hot_icon@3x.png | Bin 0 -> 1436 bytes .../Contents.json | 22 + .../mew_room_hour_list_enter_icon@2x.png | Bin 0 -> 1153 bytes .../mew_room_hour_list_enter_icon@3x.png | Bin 0 -> 1999 bytes .../mew_room_lock_icon.imageset/Contents.json | 22 + .../mew_room_lock_icon@2x.png | Bin 0 -> 356 bytes .../mew_room_lock_icon@3x.png | Bin 0 -> 491 bytes .../mew_room_morn_exit.imageset/Contents.json | 22 + .../mew_room_morn_exit@2x.png | Bin 0 -> 1332 bytes .../mew_room_morn_exit@3x.png | Bin 0 -> 1989 bytes .../mew_room_morn_mini.imageset/Contents.json | 22 + .../mew_room_morn_mini@2x.png | Bin 0 -> 1243 bytes .../mew_room_morn_mini@3x.png | Bin 0 -> 1902 bytes .../Contents.json | 22 + .../mew_room_morn_report@2x.png | Bin 0 -> 1497 bytes .../mew_room_morn_report@3x.png | Bin 0 -> 2453 bytes .../Contents.json | 22 + .../mew_room_morn_share@2x.png | Bin 0 -> 1131 bytes .../mew_room_morn_share@3x.png | Bin 0 -> 1773 bytes .../Contents.json | 22 + .../mew_room_notice_edit@2x.png | Bin 0 -> 351 bytes .../mew_room_notice_edit@3x.png | Bin 0 -> 441 bytes .../Contents.json | 22 + .../mew_room_notice_icon@2x.png | Bin 0 -> 743 bytes .../mew_room_notice_icon@3x.png | Bin 0 -> 946 bytes .../Contents.json | 21 + .../mew_room_secret_person@2x.png | Bin 0 -> 1101 bytes .../Contents.json | 22 + .../mew_room_top_gift_icon@2x.png | Bin 0 -> 492 bytes .../mew_room_top_gift_icon@3x.png | Bin 0 -> 718 bytes .../Contents.json | 22 + .../mew_room_top__setting@2x.png | Bin 0 -> 374 bytes .../mew_room_top__setting@3x.png | Bin 0 -> 198 bytes yinmeng-ios/yinmeng-ios/Base/Base.h | 22 + .../Base/Category/NSString/NSString+MewUtil.h | 3 +- .../Base/Category/NSString/NSString+MewUtil.m | 18 +- .../MVP/Model/UserModel/MewUserInfoModel.h | 6 +- .../MewBuryPointManager/MewBuryPointManager.h | 145 +++++ .../MewBuryPointManager/MewBuryPointManager.m | 170 +++++ .../MewBuryPointManager/MewBuryPointService.h | 35 ++ .../MewBuryPointManager/MewBuryPointService.m | 60 ++ .../Base/Tool/ThemeColor/MewThemeColor.h | 2 + .../Base/Tool/ThemeColor/MewThemeColor.m | 4 + .../Base/UI/MewBaseViewController.h | 16 +- .../Base/UI/MewBaseViewController.m | 65 ++ .../MewEmptyView/MewEmptyCollectionViewCell.h | 19 + .../MewEmptyView/MewEmptyCollectionViewCell.m | 79 +++ .../UI/MewEmptyView/MewEmptyTableViewCell.h | 17 + .../UI/MewEmptyView/MewEmptyTableViewCell.m | 71 +++ .../Base/UI/MewEmptyView/MewEmptyView.h | 17 + .../Base/UI/MewEmptyView/MewEmptyView.m | 72 +++ .../ClientConfig/MewClientConfig.m | 8 + .../ClientConfig/Model/MewClientDataModel.h | 22 +- .../ClientConfig/Model/MewClientDataModel.m | 4 +- .../ClientConfig/Model/MewClientWebUrlModel.h | 17 + .../ClientConfig/Model/MewClientWebUrlModel.m | 12 + yinmeng-ios/yinmeng-ios/Global/MewEnum.h | 593 ++++++++++++++++++ yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.h | 67 +- yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.m | 58 +- .../Main/IM/Model/MewAttachmentModel.h | 76 --- .../MewMessageFriendViewController.m | 2 +- .../MewDressupShopListViewController.m | 2 +- .../MewMineDressupCollectionViewController.m | 2 +- .../MewPersonalCenterViewController.m | 4 +- .../Friend/MewBaseTableViewController.m | 2 +- .../MewLimitsSystemPermissionViewController.m | 4 +- .../GiftWall/MewUserPersonalProfileGiftView.m | 2 +- .../yinmeng-ios/Main/Room/Api/Api+Room.h | 24 +- .../yinmeng-ios/Main/Room/Api/Api+Room.m | 33 +- .../Main/Room/Model/MewRoomInfoModel.h | 10 +- .../View/AnimationView/MewRoomAnimationView.m | 2 +- .../Model/MewMessageRemoteExtModel.h | 44 +- .../Tool/MewRoomMessageFilter.m | 36 +- .../Tool/MewRoomMessageParser.m | 2 +- .../MewRoomBgImageView/MewRoomBgImageView.m | 7 +- .../MewModel/MewRoomTopRankEnterModel.h | 29 + .../MewModel/MewRoomTopRankEnterModel.m | 12 + .../MewView/MewRoomNoticeView.h | 16 + .../MewView/MewRoomNoticeView.m | 79 +++ .../MewView/MewRoomTopRankEnterView.h | 17 + .../MewView/MewRoomTopRankEnterView.m | 266 ++++++++ .../Main/Room/View/MewRoomHostDelegate.h | 15 +- .../MewModel/MewRoomMornModel.h | 37 ++ .../MewModel/MewRoomMornModel.m | 12 + .../View/MewRoomMornView/MewRoomMornView.h | 32 + .../View/MewRoomMornView/MewRoomMornView.m | 196 ++++++ .../MewSubViews/MewRoomListCell.h | 16 + .../MewSubViews/MewRoomListCell.m | 129 ++++ .../MewSubViews/MewRoomListEmptyCell.h | 16 + .../MewSubViews/MewRoomListEmptyCell.m | 48 ++ .../MewSubViews/MewRoomTopOperationCell.h | 17 + .../MewSubViews/MewRoomTopOperationCell.m | 67 ++ .../Room/View/MewRoomTopView/MewRoomTopView.m | 575 ++++++++++++++++- .../MewSettingManager/MewSettingManager.h | 16 + .../MewSettingManager/MewSettingManager.m | 64 ++ .../MewSettingProtocol/MewSettingProtocol.h | 18 + .../MewSettingView/MewRoomHourListEnterView.h | 16 + .../MewSettingView/MewRoomHourListEnterView.m | 86 +++ .../MewSettingView/MewRoomPublishNoticeVC.h | 18 + .../MewSettingView/MewRoomPublishNoticeVC.m | 235 +++++++ .../MewSettingView/MewRoomPublishNoticeView.h | 19 + .../MewSettingView/MewRoomPublishNoticeView.m | 128 ++++ .../MewSettingCell/MewRoomActiveCell.h | 21 + .../MewSettingCell/MewRoomActiveCell.m | 373 +++++++++++ .../MewSettingCell/MewRoomHourListEnterCell.h | 17 + .../MewSettingCell/MewRoomHourListEnterCell.m | 105 ++++ .../MewView/MewMiniRoom/MewMiniRoomTool.h | 17 + .../MewView/MewMiniRoom/MewMiniRoomTool.m | 12 + .../MewView/MewMiniRoom/MewMiniRoomWindow.h | 16 + .../MewView/MewMiniRoom/MewMiniRoomWindow.m | 22 + .../Room/View/MewView/MewRoomViewController.m | 98 +-- .../RoomHeaderView/MewRoomHeaderView.h | 34 - .../RoomHeaderView/MewRoomHeaderView.m | 275 -------- .../Main/ShareView/Model/MewShareItemModel.m | 20 +- .../Main/WebView/MewRoomHalfScreenWebView.h | 19 + .../Main/WebView/MewRoomHalfScreenWebView.m | 182 ++++++ .../Main/WebView/MewWebViewController.h | 11 + .../Main/WebView/MewWebViewController.m | 535 ++++++++++++++-- 166 files changed, 6234 insertions(+), 609 deletions(-) create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_Common_white_back.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_Common_white_back.imageset/mew_Common_white_back@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_Common_white_back.imageset/mew_Common_white_back@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_female.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_female.imageset/mew_common_sex_female@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_female.imageset/mew_common_sex_female@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_first.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_first.imageset/mew_room_top_rank_head_first@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_first.imageset/mew_room_top_rank_head_first@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_second.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_second.imageset/mew_room_top_rank_head_second@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_second.imageset/mew_room_top_rank_head_second@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_third.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_third.imageset/mew_room_top_rank_head_third@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_third.imageset/mew_room_top_rank_head_third@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/mew_share_room_qq_disable@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/mew_share_room_qq_disable@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/mew_share_room_qq_normal@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/mew_share_room_qq_normal@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_normal.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_normal.imageset/mew_share_room_qqzone_normal@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_normal.imageset/mew_share_room_qqzone_normal@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_disable.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_disable.imageset/mew_share_room_wechat_circle_disable@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_disable.imageset/mew_share_room_wechat_circle_disable@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_normal.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_normal.imageset/mew_share_room_wechat_circle_normal@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_normal.imageset/mew_share_room_wechat_circle_normal@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_normal.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_normal.imageset/mew_share_room_wechat_normal@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_normal.imageset/mew_share_room_wechat_normal@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/mew_room_hot_icon@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/mew_room_hot_icon@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hour_list_enter_icon.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hour_list_enter_icon.imageset/mew_room_hour_list_enter_icon@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hour_list_enter_icon.imageset/mew_room_hour_list_enter_icon@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/mew_room_morn_exit@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/mew_room_morn_exit@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_mini.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_mini.imageset/mew_room_morn_mini@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_mini.imageset/mew_room_morn_mini@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_report.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_report.imageset/mew_room_morn_report@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_report.imageset/mew_room_morn_report@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_share.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_share.imageset/mew_room_morn_share@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_share.imageset/mew_room_morn_share@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/mew_room_notice_icon@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/mew_room_notice_icon@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/mew_room_secret_person@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/mew_room_top_gift_icon@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/mew_room_top_gift_icon@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_setting.imageset/Contents.json create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_setting.imageset/mew_room_top__setting@2x.png create mode 100644 yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_setting.imageset/mew_room_top__setting@3x.png create mode 100644 yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.h create mode 100644 yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.m create mode 100644 yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.h create mode 100644 yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.m create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.h create mode 100644 yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.m create mode 100644 yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.h create mode 100644 yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewModel/MewRoomTopRankEnterModel.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewModel/MewRoomTopRankEnterModel.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingProtocol/MewSettingProtocol.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.m delete mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.h delete mode 100644 yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.m create mode 100644 yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.h create mode 100644 yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.m diff --git a/yinmeng-ios/yinmeng-ios.xcodeproj/project.pbxproj b/yinmeng-ios/yinmeng-ios.xcodeproj/project.pbxproj index af4f0bc..6e7c9a8 100644 --- a/yinmeng-ios/yinmeng-ios.xcodeproj/project.pbxproj +++ b/yinmeng-ios/yinmeng-ios.xcodeproj/project.pbxproj @@ -27,6 +27,24 @@ 233757662B0CB577001D0B7F /* MewSessionAudioRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337574F2B0CB577001D0B7F /* MewSessionAudioRecordView.m */; }; 233757672B0CB577001D0B7F /* Api+Message.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757512B0CB577001D0B7F /* Api+Message.m */; }; 233757682B0CB577001D0B7F /* MewNIMMessageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757542B0CB577001D0B7F /* MewNIMMessageUtils.m */; }; + 2337F99D2B4D2359007C6326 /* MewMiniRoomWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F99C2B4D2359007C6326 /* MewMiniRoomWindow.m */; }; + 2337F9A02B4D2376007C6326 /* MewMiniRoomTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F99F2B4D2376007C6326 /* MewMiniRoomTool.m */; }; + 2337F9AD2B4D2906007C6326 /* MewRoomContentContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9AC2B4D2906007C6326 /* MewRoomContentContainerView.m */; }; + 2337F9B02B4D292E007C6326 /* MewRoomTopRankEnterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9AF2B4D292E007C6326 /* MewRoomTopRankEnterView.m */; }; + 2337F9B32B4D2B19007C6326 /* MewRoomTopRankEnterModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9B22B4D2B19007C6326 /* MewRoomTopRankEnterModel.m */; }; + 2337F9B62B4D30FF007C6326 /* MewClientWebUrlModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9B52B4D30FF007C6326 /* MewClientWebUrlModel.m */; }; + 2337F9B92B4D3EDC007C6326 /* MewRoomHalfScreenWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9B82B4D3EDC007C6326 /* MewRoomHalfScreenWebView.m */; }; + 2337F9BC2B4D50EC007C6326 /* MewRoomNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337F9BB2B4D50EC007C6326 /* MewRoomNoticeView.m */; }; + 236557622B4963C0008915E2 /* MewRoomListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 236557612B4963C0008915E2 /* MewRoomListCell.m */; }; + 236557692B496DC2008915E2 /* MewRoomListEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 236557682B496DC2008915E2 /* MewRoomListEmptyCell.m */; }; + 2365576D2B4B9BA5008915E2 /* MewBuryPointManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2365576C2B4B9BA5008915E2 /* MewBuryPointManager.m */; }; + 236557702B4B9BE9008915E2 /* MewBuryPointService.m in Sources */ = {isa = PBXBuildFile; fileRef = 2365576F2B4B9BE9008915E2 /* MewBuryPointService.m */; }; + 236557812B4BC97E008915E2 /* MewRoomActiveVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2365577C2B4BC97E008915E2 /* MewRoomActiveVC.m */; }; + 236557852B4BCAD0008915E2 /* MewRoomActiveCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 236557842B4BCAD0008915E2 /* MewRoomActiveCell.m */; }; + 236557892B4BD460008915E2 /* MewEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 236557882B4BD460008915E2 /* MewEmptyView.m */; }; + 2365578C2B4BD54D008915E2 /* MewEmptyTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2365578B2B4BD54D008915E2 /* MewEmptyTableViewCell.m */; }; + 2365578F2B4BD628008915E2 /* MewEmptyCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2365578E2B4BD628008915E2 /* MewEmptyCollectionViewCell.m */; }; + 2365579A2B4BFCE1008915E2 /* MewThemeColor+MewRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = 236557982B4BFCE1008915E2 /* MewThemeColor+MewRoom.m */; }; 237053142B1F3A3D00F5DE14 /* MewClientConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053132B1F3A3D00F5DE14 /* MewClientConfig.m */; }; 237053172B1F3A5300F5DE14 /* Api+MewMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053152B1F3A5300F5DE14 /* Api+MewMain.m */; }; 2370531A2B1F3A5D00F5DE14 /* MewClientDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053192B1F3A5D00F5DE14 /* MewClientDataModel.m */; }; @@ -34,7 +52,6 @@ 237053822B1F3AA100F5DE14 /* MewSocialMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053232B1F3AA000F5DE14 /* MewSocialMicroView.m */; }; 237053832B1F3AA100F5DE14 /* MewSocialStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053252B1F3AA000F5DE14 /* MewSocialStageView.m */; }; 237053842B1F3AA100F5DE14 /* MewRoomRightView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053292B1F3AA000F5DE14 /* MewRoomRightView.m */; }; - 237053852B1F3AA100F5DE14 /* MewRoomHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370532C2B1F3AA000F5DE14 /* MewRoomHeaderView.m */; }; 237053862B1F3AA100F5DE14 /* MewRoomMessageTableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370532E2B1F3AA000F5DE14 /* MewRoomMessageTableCell.m */; }; 237053872B1F3AA100F5DE14 /* MewRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053302B1F3AA000F5DE14 /* MewRoomViewController.m */; }; 237053882B1F3AA100F5DE14 /* MewRechargeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053332B1F3AA000F5DE14 /* MewRechargeViewController.m */; }; @@ -77,7 +94,6 @@ 237054852B1F3B3200F5DE14 /* NetImageConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 237053FE2B1F3B3200F5DE14 /* NetImageConfig.m */; }; 237054862B1F3B3200F5DE14 /* NetImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054022B1F3B3200F5DE14 /* NetImageView.m */; }; 237054872B1F3B3200F5DE14 /* MewButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054042B1F3B3200F5DE14 /* MewButton.m */; }; - 237054882B1F3B3200F5DE14 /* MewEmptyTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054082B1F3B3200F5DE14 /* MewEmptyTableViewCell.m */; }; 237054892B1F3B3200F5DE14 /* TTPopup.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370540B2B1F3B3200F5DE14 /* TTPopup.m */; }; 2370548A2B1F3B3200F5DE14 /* TTAlertConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370540D2B1F3B3200F5DE14 /* TTAlertConfig.m */; }; 2370548B2B1F3B3200F5DE14 /* TTAlertButtonConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054122B1F3B3200F5DE14 /* TTAlertButtonConfig.m */; }; @@ -120,11 +136,19 @@ 237054E72B204F1000F5DE14 /* MewUtility+MewApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054E62B204F1000F5DE14 /* MewUtility+MewApp.m */; }; 237054EA2B204F4500F5DE14 /* MewUtility+MewDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054E92B204F4400F5DE14 /* MewUtility+MewDevice.m */; }; 237054ED2B20550400F5DE14 /* NSObject+MewAutoCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054EC2B20550400F5DE14 /* NSObject+MewAutoCoding.m */; }; + 237ACD7B2B4D663700BA20B3 /* MewRoomMornModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD792B4D663700BA20B3 /* MewRoomMornModel.m */; }; + 237ACD7E2B4D66BE00BA20B3 /* MewSettingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD7C2B4D66BD00BA20B3 /* MewSettingManager.m */; }; + 237ACD812B4D66C700BA20B3 /* MewRoomPublishNoticeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD7F2B4D66C700BA20B3 /* MewRoomPublishNoticeVC.m */; }; + 237ACD852B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD842B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.m */; }; + 237ACD882B4E38C200BA20B3 /* MewRoomHourListEnterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD872B4E38C200BA20B3 /* MewRoomHourListEnterView.m */; }; + 237ACD8B2B4E393900BA20B3 /* MewRoomHourListEnterCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237ACD8A2B4E393900BA20B3 /* MewRoomHourListEnterCell.m */; }; 23E3FCF22B493C0F00D0B664 /* MewRoomBgImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF12B493C0F00D0B664 /* MewRoomBgImageView.m */; }; 23E3FCF62B493F3700D0B664 /* MewSVGAParserTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF52B493F3700D0B664 /* MewSVGAParserTool.m */; }; 23E3FCF92B4946AE00D0B664 /* MewRoomBgImageItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF82B4946AE00D0B664 /* MewRoomBgImageItemModel.m */; }; 23E3FCFC2B4957B800D0B664 /* mew_room_anchor_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23E3FCFB2B4957B800D0B664 /* mew_room_anchor_bg.svga */; }; 23E3FD002B495DA100D0B664 /* MewRoomTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCFF2B495DA100D0B664 /* MewRoomTopView.m */; }; + 23E3FD042B495EFF00D0B664 /* MewRoomMornView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FD032B495EFF00D0B664 /* MewRoomMornView.m */; }; + 23E3FD082B49615C00D0B664 /* MewRoomTopOperationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FD072B49615C00D0B664 /* MewRoomTopOperationCell.m */; }; 8C4D535A2AFD4CF600238AE6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D53582AFD4CF600238AE6 /* Main.storyboard */; }; 8C4D535C2AFD4CF700238AE6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D535B2AFD4CF700238AE6 /* Assets.xcassets */; }; 8C4D535F2AFD4CF700238AE6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D535D2AFD4CF700238AE6 /* LaunchScreen.storyboard */; }; @@ -238,7 +262,6 @@ 8CD780472B3527DE00F4CFF3 /* Api+MewSkillCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD780462B3527DE00F4CFF3 /* Api+MewSkillCard.m */; }; 8CD7804B2B35290F00F4CFF3 /* MewSaveSkillCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7804A2B35290F00F4CFF3 /* MewSaveSkillCardModel.m */; }; 8CD7804E2B35335700F4CFF3 /* MewUserPersonalProfileGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7804D2B35335700F4CFF3 /* MewUserPersonalProfileGiftView.m */; }; - 8CD780512B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD780502B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m */; }; 8CD780542B36173700F4CFF3 /* MewUserPersonalGiftWallCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD780532B36173700F4CFF3 /* MewUserPersonalGiftWallCollectionCell.m */; }; 8CD7805F2B36193200F4CFF3 /* MewUserGiftWallModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7805E2B36193200F4CFF3 /* MewUserGiftWallModel.m */; }; 8CD780632B36535B00F4CFF3 /* MewDynamicMomentModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD780622B36535B00F4CFF3 /* MewDynamicMomentModel.m */; }; @@ -564,6 +587,42 @@ 233757522B0CB577001D0B7F /* Api+Message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Message.h"; sourceTree = ""; }; 233757542B0CB577001D0B7F /* MewNIMMessageUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewNIMMessageUtils.m; sourceTree = ""; }; 233757552B0CB577001D0B7F /* MewNIMMessageUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewNIMMessageUtils.h; sourceTree = ""; }; + 2337F99B2B4D2359007C6326 /* MewMiniRoomWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMiniRoomWindow.h; sourceTree = ""; }; + 2337F99C2B4D2359007C6326 /* MewMiniRoomWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMiniRoomWindow.m; sourceTree = ""; }; + 2337F99E2B4D2376007C6326 /* MewMiniRoomTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMiniRoomTool.h; sourceTree = ""; }; + 2337F99F2B4D2376007C6326 /* MewMiniRoomTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMiniRoomTool.m; sourceTree = ""; }; + 2337F9AB2B4D2906007C6326 /* MewRoomContentContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomContentContainerView.h; sourceTree = ""; }; + 2337F9AC2B4D2906007C6326 /* MewRoomContentContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomContentContainerView.m; sourceTree = ""; }; + 2337F9AE2B4D292E007C6326 /* MewRoomTopRankEnterView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomTopRankEnterView.h; sourceTree = ""; }; + 2337F9AF2B4D292E007C6326 /* MewRoomTopRankEnterView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomTopRankEnterView.m; sourceTree = ""; }; + 2337F9B12B4D2B19007C6326 /* MewRoomTopRankEnterModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomTopRankEnterModel.h; sourceTree = ""; }; + 2337F9B22B4D2B19007C6326 /* MewRoomTopRankEnterModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomTopRankEnterModel.m; sourceTree = ""; }; + 2337F9B42B4D30FF007C6326 /* MewClientWebUrlModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewClientWebUrlModel.h; sourceTree = ""; }; + 2337F9B52B4D30FF007C6326 /* MewClientWebUrlModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewClientWebUrlModel.m; sourceTree = ""; }; + 2337F9B72B4D3EDC007C6326 /* MewRoomHalfScreenWebView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomHalfScreenWebView.h; sourceTree = ""; }; + 2337F9B82B4D3EDC007C6326 /* MewRoomHalfScreenWebView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomHalfScreenWebView.m; sourceTree = ""; }; + 2337F9BA2B4D50EC007C6326 /* MewRoomNoticeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomNoticeView.h; sourceTree = ""; }; + 2337F9BB2B4D50EC007C6326 /* MewRoomNoticeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomNoticeView.m; sourceTree = ""; }; + 236557602B4963C0008915E2 /* MewRoomListCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomListCell.h; sourceTree = ""; }; + 236557612B4963C0008915E2 /* MewRoomListCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomListCell.m; sourceTree = ""; }; + 236557672B496DC2008915E2 /* MewRoomListEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomListEmptyCell.h; sourceTree = ""; }; + 236557682B496DC2008915E2 /* MewRoomListEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomListEmptyCell.m; sourceTree = ""; }; + 2365576B2B4B9BA5008915E2 /* MewBuryPointManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewBuryPointManager.h; sourceTree = ""; }; + 2365576C2B4B9BA5008915E2 /* MewBuryPointManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewBuryPointManager.m; sourceTree = ""; }; + 2365576E2B4B9BE9008915E2 /* MewBuryPointService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewBuryPointService.h; sourceTree = ""; }; + 2365576F2B4B9BE9008915E2 /* MewBuryPointService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewBuryPointService.m; sourceTree = ""; }; + 2365577C2B4BC97E008915E2 /* MewRoomActiveVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomActiveVC.m; sourceTree = ""; }; + 2365577D2B4BC97E008915E2 /* MewRoomActiveVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomActiveVC.h; sourceTree = ""; }; + 236557832B4BCAD0008915E2 /* MewRoomActiveCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomActiveCell.h; sourceTree = ""; }; + 236557842B4BCAD0008915E2 /* MewRoomActiveCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomActiveCell.m; sourceTree = ""; }; + 236557872B4BD460008915E2 /* MewEmptyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewEmptyView.h; sourceTree = ""; }; + 236557882B4BD460008915E2 /* MewEmptyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewEmptyView.m; sourceTree = ""; }; + 2365578A2B4BD54D008915E2 /* MewEmptyTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewEmptyTableViewCell.h; sourceTree = ""; }; + 2365578B2B4BD54D008915E2 /* MewEmptyTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewEmptyTableViewCell.m; sourceTree = ""; }; + 2365578D2B4BD628008915E2 /* MewEmptyCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewEmptyCollectionViewCell.h; sourceTree = ""; }; + 2365578E2B4BD628008915E2 /* MewEmptyCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewEmptyCollectionViewCell.m; sourceTree = ""; }; + 236557982B4BFCE1008915E2 /* MewThemeColor+MewRoom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MewThemeColor+MewRoom.m"; sourceTree = ""; }; + 236557992B4BFCE1008915E2 /* MewThemeColor+MewRoom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MewThemeColor+MewRoom.h"; sourceTree = ""; }; 237053122B1F3A3D00F5DE14 /* MewClientConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewClientConfig.h; sourceTree = ""; }; 237053132B1F3A3D00F5DE14 /* MewClientConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewClientConfig.m; sourceTree = ""; }; 237053152B1F3A5300F5DE14 /* Api+MewMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+MewMain.m"; sourceTree = ""; }; @@ -579,8 +638,6 @@ 237053262B1F3AA000F5DE14 /* MewRoomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomViewController.h; sourceTree = ""; }; 237053282B1F3AA000F5DE14 /* MewRoomRightView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomRightView.h; sourceTree = ""; }; 237053292B1F3AA000F5DE14 /* MewRoomRightView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomRightView.m; sourceTree = ""; }; - 2370532B2B1F3AA000F5DE14 /* MewRoomHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomHeaderView.h; sourceTree = ""; }; - 2370532C2B1F3AA000F5DE14 /* MewRoomHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomHeaderView.m; sourceTree = ""; }; 2370532E2B1F3AA000F5DE14 /* MewRoomMessageTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomMessageTableCell.m; sourceTree = ""; }; 2370532F2B1F3AA000F5DE14 /* MewRoomMessageTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageTableCell.h; sourceTree = ""; }; 237053302B1F3AA000F5DE14 /* MewRoomViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomViewController.m; sourceTree = ""; }; @@ -665,8 +722,6 @@ 237054022B1F3B3200F5DE14 /* NetImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetImageView.m; sourceTree = ""; }; 237054042B1F3B3200F5DE14 /* MewButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewButton.m; sourceTree = ""; }; 237054052B1F3B3200F5DE14 /* MewButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewButton.h; sourceTree = ""; }; - 237054072B1F3B3200F5DE14 /* MewEmptyTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewEmptyTableViewCell.h; sourceTree = ""; }; - 237054082B1F3B3200F5DE14 /* MewEmptyTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewEmptyTableViewCell.m; sourceTree = ""; }; 237054092B1F3B3200F5DE14 /* MewBaseNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewBaseNavigationController.h; sourceTree = ""; }; 2370540B2B1F3B3200F5DE14 /* TTPopup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopup.m; sourceTree = ""; }; 2370540D2B1F3B3200F5DE14 /* TTAlertConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertConfig.m; sourceTree = ""; }; @@ -760,6 +815,19 @@ 237054E92B204F4400F5DE14 /* MewUtility+MewDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "MewUtility+MewDevice.m"; sourceTree = ""; }; 237054EB2B20550400F5DE14 /* NSObject+MewAutoCoding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MewAutoCoding.h"; sourceTree = ""; }; 237054EC2B20550400F5DE14 /* NSObject+MewAutoCoding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MewAutoCoding.m"; sourceTree = ""; }; + 237ACD792B4D663700BA20B3 /* MewRoomMornModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomMornModel.m; sourceTree = ""; }; + 237ACD7A2B4D663700BA20B3 /* MewRoomMornModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomMornModel.h; sourceTree = ""; }; + 237ACD7C2B4D66BD00BA20B3 /* MewSettingManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSettingManager.m; sourceTree = ""; }; + 237ACD7D2B4D66BE00BA20B3 /* MewSettingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSettingManager.h; sourceTree = ""; }; + 237ACD7F2B4D66C700BA20B3 /* MewRoomPublishNoticeVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomPublishNoticeVC.m; sourceTree = ""; }; + 237ACD802B4D66C700BA20B3 /* MewRoomPublishNoticeVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomPublishNoticeVC.h; sourceTree = ""; }; + 237ACD822B4D66D300BA20B3 /* MewSettingProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewSettingProtocol.h; sourceTree = ""; }; + 237ACD832B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomPublishNoticeView.h; sourceTree = ""; }; + 237ACD842B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomPublishNoticeView.m; sourceTree = ""; }; + 237ACD862B4E38C200BA20B3 /* MewRoomHourListEnterView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomHourListEnterView.h; sourceTree = ""; }; + 237ACD872B4E38C200BA20B3 /* MewRoomHourListEnterView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomHourListEnterView.m; sourceTree = ""; }; + 237ACD892B4E393900BA20B3 /* MewRoomHourListEnterCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomHourListEnterCell.h; sourceTree = ""; }; + 237ACD8A2B4E393900BA20B3 /* MewRoomHourListEnterCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomHourListEnterCell.m; sourceTree = ""; }; 23E3FCF02B493C0F00D0B664 /* MewRoomBgImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomBgImageView.h; sourceTree = ""; }; 23E3FCF12B493C0F00D0B664 /* MewRoomBgImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomBgImageView.m; sourceTree = ""; }; 23E3FCF42B493F3700D0B664 /* MewSVGAParserTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewSVGAParserTool.h; sourceTree = ""; }; @@ -769,6 +837,10 @@ 23E3FCFB2B4957B800D0B664 /* mew_room_anchor_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = mew_room_anchor_bg.svga; sourceTree = ""; }; 23E3FCFE2B495DA100D0B664 /* MewRoomTopView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomTopView.h; sourceTree = ""; }; 23E3FCFF2B495DA100D0B664 /* MewRoomTopView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomTopView.m; sourceTree = ""; }; + 23E3FD022B495EFF00D0B664 /* MewRoomMornView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomMornView.h; sourceTree = ""; }; + 23E3FD032B495EFF00D0B664 /* MewRoomMornView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomMornView.m; sourceTree = ""; }; + 23E3FD062B49615C00D0B664 /* MewRoomTopOperationCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomTopOperationCell.h; sourceTree = ""; }; + 23E3FD072B49615C00D0B664 /* MewRoomTopOperationCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomTopOperationCell.m; sourceTree = ""; }; 8C4D534C2AFD4CF600238AE6 /* yinmeng-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "yinmeng-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 8C4D53592AFD4CF600238AE6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 8C4D535B2AFD4CF700238AE6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -1014,8 +1086,6 @@ 8CD7804A2B35290F00F4CFF3 /* MewSaveSkillCardModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewSaveSkillCardModel.m; sourceTree = ""; }; 8CD7804C2B35335700F4CFF3 /* MewUserPersonalProfileGiftView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewUserPersonalProfileGiftView.h; sourceTree = ""; }; 8CD7804D2B35335700F4CFF3 /* MewUserPersonalProfileGiftView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewUserPersonalProfileGiftView.m; sourceTree = ""; }; - 8CD7804F2B36137C00F4CFF3 /* MewEmptyCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewEmptyCollectionViewCell.h; sourceTree = ""; }; - 8CD780502B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewEmptyCollectionViewCell.m; sourceTree = ""; }; 8CD780522B36173700F4CFF3 /* MewUserPersonalGiftWallCollectionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewUserPersonalGiftWallCollectionCell.h; sourceTree = ""; }; 8CD780532B36173700F4CFF3 /* MewUserPersonalGiftWallCollectionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewUserPersonalGiftWallCollectionCell.m; sourceTree = ""; }; 8CD7805D2B36193200F4CFF3 /* MewUserGiftWallModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewUserGiftWallModel.h; sourceTree = ""; }; @@ -1548,6 +1618,214 @@ path = Tool; sourceTree = ""; }; + 2337F99A2B4D233C007C6326 /* MewMiniRoom */ = { + isa = PBXGroup; + children = ( + 2337F99B2B4D2359007C6326 /* MewMiniRoomWindow.h */, + 2337F99C2B4D2359007C6326 /* MewMiniRoomWindow.m */, + 2337F99E2B4D2376007C6326 /* MewMiniRoomTool.h */, + 2337F99F2B4D2376007C6326 /* MewMiniRoomTool.m */, + ); + path = MewMiniRoom; + sourceTree = ""; + }; + 2337F9A52B4D259C007C6326 /* MewRoomContentContainerView */ = { + isa = PBXGroup; + children = ( + 2337F9A92B4D2906007C6326 /* MewModel */, + 2337F9AA2B4D2906007C6326 /* MewView */, + ); + path = MewRoomContentContainerView; + sourceTree = ""; + }; + 2337F9A92B4D2906007C6326 /* MewModel */ = { + isa = PBXGroup; + children = ( + 2337F9B12B4D2B19007C6326 /* MewRoomTopRankEnterModel.h */, + 2337F9B22B4D2B19007C6326 /* MewRoomTopRankEnterModel.m */, + ); + path = MewModel; + sourceTree = ""; + }; + 2337F9AA2B4D2906007C6326 /* MewView */ = { + isa = PBXGroup; + children = ( + 2337F9AB2B4D2906007C6326 /* MewRoomContentContainerView.h */, + 2337F9AC2B4D2906007C6326 /* MewRoomContentContainerView.m */, + 2337F9BA2B4D50EC007C6326 /* MewRoomNoticeView.h */, + 2337F9BB2B4D50EC007C6326 /* MewRoomNoticeView.m */, + 2337F9AE2B4D292E007C6326 /* MewRoomTopRankEnterView.h */, + 2337F9AF2B4D292E007C6326 /* MewRoomTopRankEnterView.m */, + ); + path = MewView; + sourceTree = ""; + }; + 236557632B4963E3008915E2 /* MewModel */ = { + isa = PBXGroup; + children = ( + 237ACD7A2B4D663700BA20B3 /* MewRoomMornModel.h */, + 237ACD792B4D663700BA20B3 /* MewRoomMornModel.m */, + ); + path = MewModel; + sourceTree = ""; + }; + 2365576A2B4B9B9A008915E2 /* MewBuryPointManager */ = { + isa = PBXGroup; + children = ( + 2365576B2B4B9BA5008915E2 /* MewBuryPointManager.h */, + 2365576C2B4B9BA5008915E2 /* MewBuryPointManager.m */, + 2365576E2B4B9BE9008915E2 /* MewBuryPointService.h */, + 2365576F2B4B9BE9008915E2 /* MewBuryPointService.m */, + ); + path = MewBuryPointManager; + sourceTree = ""; + }; + 236557712B4BA9D1008915E2 /* MewSetting */ = { + isa = PBXGroup; + children = ( + 236557802B4BC97E008915E2 /* MewSettingApi */, + 2365577F2B4BC97E008915E2 /* MewSettingManager */, + 2365577A2B4BC97E008915E2 /* MewSettingModel */, + 2365577E2B4BC97E008915E2 /* MewSettingProtocol */, + 2365577B2B4BC97E008915E2 /* MewSettingView */, + ); + path = MewSetting; + sourceTree = ""; + }; + 2365577A2B4BC97E008915E2 /* MewSettingModel */ = { + isa = PBXGroup; + children = ( + ); + path = MewSettingModel; + sourceTree = ""; + }; + 2365577B2B4BC97E008915E2 /* MewSettingView */ = { + isa = PBXGroup; + children = ( + 2365577D2B4BC97E008915E2 /* MewRoomActiveVC.h */, + 2365577C2B4BC97E008915E2 /* MewRoomActiveVC.m */, + 237ACD802B4D66C700BA20B3 /* MewRoomPublishNoticeVC.h */, + 237ACD7F2B4D66C700BA20B3 /* MewRoomPublishNoticeVC.m */, + 237ACD832B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.h */, + 237ACD842B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.m */, + 237ACD862B4E38C200BA20B3 /* MewRoomHourListEnterView.h */, + 237ACD872B4E38C200BA20B3 /* MewRoomHourListEnterView.m */, + 236557822B4BCABB008915E2 /* MewSettingCell */, + ); + path = MewSettingView; + sourceTree = ""; + }; + 2365577E2B4BC97E008915E2 /* MewSettingProtocol */ = { + isa = PBXGroup; + children = ( + 237ACD822B4D66D300BA20B3 /* MewSettingProtocol.h */, + ); + path = MewSettingProtocol; + sourceTree = ""; + }; + 2365577F2B4BC97E008915E2 /* MewSettingManager */ = { + isa = PBXGroup; + children = ( + 237ACD7D2B4D66BE00BA20B3 /* MewSettingManager.h */, + 237ACD7C2B4D66BD00BA20B3 /* MewSettingManager.m */, + ); + path = MewSettingManager; + sourceTree = ""; + }; + 236557802B4BC97E008915E2 /* MewSettingApi */ = { + isa = PBXGroup; + children = ( + ); + path = MewSettingApi; + sourceTree = ""; + }; + 236557822B4BCABB008915E2 /* MewSettingCell */ = { + isa = PBXGroup; + children = ( + 236557832B4BCAD0008915E2 /* MewRoomActiveCell.h */, + 236557842B4BCAD0008915E2 /* MewRoomActiveCell.m */, + 237ACD892B4E393900BA20B3 /* MewRoomHourListEnterCell.h */, + 237ACD8A2B4E393900BA20B3 /* MewRoomHourListEnterCell.m */, + ); + path = MewSettingCell; + sourceTree = ""; + }; + 236557862B4BD452008915E2 /* MewEmptyView */ = { + isa = PBXGroup; + children = ( + 236557872B4BD460008915E2 /* MewEmptyView.h */, + 236557882B4BD460008915E2 /* MewEmptyView.m */, + 2365578A2B4BD54D008915E2 /* MewEmptyTableViewCell.h */, + 2365578B2B4BD54D008915E2 /* MewEmptyTableViewCell.m */, + 2365578D2B4BD628008915E2 /* MewEmptyCollectionViewCell.h */, + 2365578E2B4BD628008915E2 /* MewEmptyCollectionViewCell.m */, + ); + path = MewEmptyView; + sourceTree = ""; + }; + 236557902B4BD9C9008915E2 /* MewUserInfoCard */ = { + isa = PBXGroup; + children = ( + 236557912B4BD9C9008915E2 /* MewUserInfoCardApi */, + 236557922B4BD9C9008915E2 /* MewUserInfoCardProtocol */, + 236557932B4BD9C9008915E2 /* MewUserInfoCardManager */, + 236557942B4BD9C9008915E2 /* MewUserInfoCardModel */, + 236557952B4BD9C9008915E2 /* MewUserInfoCardView */, + ); + path = MewUserInfoCard; + sourceTree = ""; + }; + 236557912B4BD9C9008915E2 /* MewUserInfoCardApi */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardApi; + sourceTree = ""; + }; + 236557922B4BD9C9008915E2 /* MewUserInfoCardProtocol */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardProtocol; + sourceTree = ""; + }; + 236557932B4BD9C9008915E2 /* MewUserInfoCardManager */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardManager; + sourceTree = ""; + }; + 236557942B4BD9C9008915E2 /* MewUserInfoCardModel */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardModel; + sourceTree = ""; + }; + 236557952B4BD9C9008915E2 /* MewUserInfoCardView */ = { + isa = PBXGroup; + children = ( + 236557962B4BD9F6008915E2 /* MewUserInfoCardCell */, + 236557972B4BD9F6008915E2 /* MewUserInfoCardSubViews */, + ); + path = MewUserInfoCardView; + sourceTree = ""; + }; + 236557962B4BD9F6008915E2 /* MewUserInfoCardCell */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardCell; + sourceTree = ""; + }; + 236557972B4BD9F6008915E2 /* MewUserInfoCardSubViews */ = { + isa = PBXGroup; + children = ( + ); + path = MewUserInfoCardSubViews; + sourceTree = ""; + }; 237053202B1F3AA000F5DE14 /* RoomStageView */ = { isa = PBXGroup; children = ( @@ -1579,8 +1857,6 @@ 2370532A2B1F3AA000F5DE14 /* RoomHeaderView */ = { isa = PBXGroup; children = ( - 2370532B2B1F3AA000F5DE14 /* MewRoomHeaderView.h */, - 2370532C2B1F3AA000F5DE14 /* MewRoomHeaderView.m */, ); path = RoomHeaderView; sourceTree = ""; @@ -1767,6 +2043,7 @@ 237053F32B1F3B3200F5DE14 /* UI */ = { isa = PBXGroup; children = ( + 236557862B4BD452008915E2 /* MewEmptyView */, 8CD782762B3E354D00F4CFF3 /* UpdateVersion */, 8CD780822B36611200F4CFF3 /* InputView */, 8CD780242B33DBB800F4CFF3 /* SDPhotoBrowser */, @@ -1777,7 +2054,6 @@ 237053FB2B1F3B3200F5DE14 /* MewBaseViewController.m */, 237053FC2B1F3B3200F5DE14 /* UIImageView */, 237054032B1F3B3200F5DE14 /* Button */, - 237054062B1F3B3200F5DE14 /* EmptyView */, 237054092B1F3B3200F5DE14 /* MewBaseNavigationController.h */, 2370540A2B1F3B3200F5DE14 /* TTPopup */, 237054252B1F3B3200F5DE14 /* MewStackManager.h */, @@ -1808,17 +2084,6 @@ path = Button; sourceTree = ""; }; - 237054062B1F3B3200F5DE14 /* EmptyView */ = { - isa = PBXGroup; - children = ( - 237054072B1F3B3200F5DE14 /* MewEmptyTableViewCell.h */, - 237054082B1F3B3200F5DE14 /* MewEmptyTableViewCell.m */, - 8CD7804F2B36137C00F4CFF3 /* MewEmptyCollectionViewCell.h */, - 8CD780502B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m */, - ); - path = EmptyView; - sourceTree = ""; - }; 2370540A2B1F3B3200F5DE14 /* TTPopup */ = { isa = PBXGroup; children = ( @@ -1955,24 +2220,25 @@ 237054422B1F3B3200F5DE14 /* Tool */ = { isa = PBXGroup; children = ( - 8CD782162B3A4FA900F4CFF3 /* SystemTool */, - 8CD7820E2B3A4B5700F4CFF3 /* YYSpriteSheetImage */, + 2365576A2B4B9B9A008915E2 /* MewBuryPointManager */, 8CD780042B33799C00F4CFF3 /* CATransitionAnimation */, - 8CD77FF82B32727800F4CFF3 /* MewAlertView */, - 237054432B1F3B3200F5DE14 /* YYUtility */, - 2370544C2B1F3B3200F5DE14 /* Safe */, - 237054512B1F3B3200F5DE14 /* File */, 237054542B1F3B3200F5DE14 /* CountDown */, - 237054572B1F3B3200F5DE14 /* TimeInterval */, - 2370545A2B1F3B3200F5DE14 /* Security */, - 2370545F2B1F3B3200F5DE14 /* MewHUDTool.m */, - 237054602B1F3B3200F5DE14 /* Timer */, 237054632B1F3B3200F5DE14 /* EncryptTool */, + 237054512B1F3B3200F5DE14 /* File */, 237054672B1F3B3200F5DE14 /* GCDHelper */, - 2370546A2B1F3B3200F5DE14 /* ThemeColor */, 2370546D2B1F3B3200F5DE14 /* IAPHelper */, - 237054702B1F3B3200F5DE14 /* Reachability */, + 8CD77FF82B32727800F4CFF3 /* MewAlertView */, 237054732B1F3B3200F5DE14 /* MewHUDTool.h */, + 2370545F2B1F3B3200F5DE14 /* MewHUDTool.m */, + 237054702B1F3B3200F5DE14 /* Reachability */, + 2370544C2B1F3B3200F5DE14 /* Safe */, + 2370545A2B1F3B3200F5DE14 /* Security */, + 8CD782162B3A4FA900F4CFF3 /* SystemTool */, + 2370546A2B1F3B3200F5DE14 /* ThemeColor */, + 237054572B1F3B3200F5DE14 /* TimeInterval */, + 237054602B1F3B3200F5DE14 /* Timer */, + 8CD7820E2B3A4B5700F4CFF3 /* YYSpriteSheetImage */, + 237054432B1F3B3200F5DE14 /* YYUtility */, ); path = Tool; sourceTree = ""; @@ -2080,8 +2346,10 @@ 2370546A2B1F3B3200F5DE14 /* ThemeColor */ = { isa = PBXGroup; children = ( - 2370546B2B1F3B3200F5DE14 /* MewThemeColor.m */, 2370546C2B1F3B3200F5DE14 /* MewThemeColor.h */, + 2370546B2B1F3B3200F5DE14 /* MewThemeColor.m */, + 236557992B4BFCE1008915E2 /* MewThemeColor+MewRoom.h */, + 236557982B4BFCE1008915E2 /* MewThemeColor+MewRoom.m */, 8CD7833D2B48C46500F4CFF3 /* MewThemeColor+SkillCard.h */, 8CD7833E2B48C46500F4CFF3 /* MewThemeColor+SkillCard.m */, ); @@ -2160,6 +2428,69 @@ path = View; sourceTree = ""; }; + 237ACD8C2B4E42EE00BA20B3 /* MewSendGiftManager */ = { + isa = PBXGroup; + children = ( + 237ACD8D2B4E42EE00BA20B3 /* MewSendGiftManager */, + 237ACD8E2B4E42EE00BA20B3 /* MewSendGiftManagerModel */, + 237ACD8F2B4E42EE00BA20B3 /* MewSendGiftManagerView */, + 237ACD962B4E42EE00BA20B3 /* MewSendGiftManagerProtocol */, + 237ACD972B4E42EE00BA20B3 /* MewSendGiftManagerApi */, + ); + path = MewSendGiftManager; + sourceTree = ""; + }; + 237ACD8D2B4E42EE00BA20B3 /* MewSendGiftManager */ = { + isa = PBXGroup; + children = ( + ); + path = MewSendGiftManager; + sourceTree = ""; + }; + 237ACD8E2B4E42EE00BA20B3 /* MewSendGiftManagerModel */ = { + isa = PBXGroup; + children = ( + ); + path = MewSendGiftManagerModel; + sourceTree = ""; + }; + 237ACD8F2B4E42EE00BA20B3 /* MewSendGiftManagerView */ = { + isa = PBXGroup; + children = ( + 237ACD902B4E42EE00BA20B3 /* MewCell */, + 237ACD952B4E42EE00BA20B3 /* MewSubViews */, + ); + path = MewSendGiftManagerView; + sourceTree = ""; + }; + 237ACD902B4E42EE00BA20B3 /* MewCell */ = { + isa = PBXGroup; + children = ( + ); + path = MewCell; + sourceTree = ""; + }; + 237ACD952B4E42EE00BA20B3 /* MewSubViews */ = { + isa = PBXGroup; + children = ( + ); + path = MewSubViews; + sourceTree = ""; + }; + 237ACD962B4E42EE00BA20B3 /* MewSendGiftManagerProtocol */ = { + isa = PBXGroup; + children = ( + ); + path = MewSendGiftManagerProtocol; + sourceTree = ""; + }; + 237ACD972B4E42EE00BA20B3 /* MewSendGiftManagerApi */ = { + isa = PBXGroup; + children = ( + ); + path = MewSendGiftManagerApi; + sourceTree = ""; + }; 23E3FCEF2B493BC700D0B664 /* MewRoomBgImageView */ = { isa = PBXGroup; children = ( @@ -2195,6 +2526,30 @@ path = MewRoomTopView; sourceTree = ""; }; + 23E3FD012B495EF500D0B664 /* MewRoomMornView */ = { + isa = PBXGroup; + children = ( + 236557632B4963E3008915E2 /* MewModel */, + 23E3FD052B49612D00D0B664 /* MewSubViews */, + 23E3FD022B495EFF00D0B664 /* MewRoomMornView.h */, + 23E3FD032B495EFF00D0B664 /* MewRoomMornView.m */, + ); + path = MewRoomMornView; + sourceTree = ""; + }; + 23E3FD052B49612D00D0B664 /* MewSubViews */ = { + isa = PBXGroup; + children = ( + 23E3FD062B49615C00D0B664 /* MewRoomTopOperationCell.h */, + 23E3FD072B49615C00D0B664 /* MewRoomTopOperationCell.m */, + 236557602B4963C0008915E2 /* MewRoomListCell.h */, + 236557612B4963C0008915E2 /* MewRoomListCell.m */, + 236557672B496DC2008915E2 /* MewRoomListEmptyCell.h */, + 236557682B496DC2008915E2 /* MewRoomListEmptyCell.m */, + ); + path = MewSubViews; + sourceTree = ""; + }; 4A6518CB5E73E536AD820F47 /* Pods */ = { isa = PBXGroup; children = ( @@ -2343,15 +2698,20 @@ 8C9C82F72B0C697A00A601BC /* View */ = { isa = PBXGroup; children = ( - 23E3FCFD2B495D9500D0B664 /* MewRoomTopView */, + 237ACD8C2B4E42EE00BA20B3 /* MewSendGiftManager */, 8C9C84912B0D659800A601BC /* AnimationView */, 8C9C82FA2B0C697A00A601BC /* MenuContainerView */, 8C9C830D2B0C697A00A601BC /* MessageContainerView */, 8C9C82F82B0C697A00A601BC /* MewMicroQueueProtocol.h */, 8C9C849F2B0D6BCF00A601BC /* MewRoomAnimationProtocol.h */, 23E3FCEF2B493BC700D0B664 /* MewRoomBgImageView */, + 2337F9A52B4D259C007C6326 /* MewRoomContentContainerView */, 8C9C830B2B0C697A00A601BC /* MewRoomGuestDelegate.h */, 8CAB96F22B1A729300ED8639 /* MewRoomHostDelegate.h */, + 23E3FD012B495EF500D0B664 /* MewRoomMornView */, + 23E3FCFD2B495D9500D0B664 /* MewRoomTopView */, + 236557712B4BA9D1008915E2 /* MewSetting */, + 236557902B4BD9C9008915E2 /* MewUserInfoCard */, 8CAB973B2B239F4A00ED8639 /* MewView */, 8C9C82FD2B0C697A00A601BC /* StageView */, ); @@ -2785,6 +3145,8 @@ children = ( 237053182B1F3A5D00F5DE14 /* MewClientDataModel.h */, 237053192B1F3A5D00F5DE14 /* MewClientDataModel.m */, + 2337F9B42B4D30FF007C6326 /* MewClientWebUrlModel.h */, + 2337F9B52B4D30FF007C6326 /* MewClientWebUrlModel.m */, ); path = Model; sourceTree = ""; @@ -2884,6 +3246,7 @@ 8CAB973B2B239F4A00ED8639 /* MewView */ = { isa = PBXGroup; children = ( + 2337F99A2B4D233C007C6326 /* MewMiniRoom */, 237053262B1F3AA000F5DE14 /* MewRoomViewController.h */, 237053302B1F3AA000F5DE14 /* MewRoomViewController.m */, 2370532A2B1F3AA000F5DE14 /* RoomHeaderView */, @@ -2899,6 +3262,8 @@ children = ( 2370531C2B1F3A6E00F5DE14 /* MewWebViewController.h */, 2370531B2B1F3A6E00F5DE14 /* MewWebViewController.m */, + 2337F9B72B4D3EDC007C6326 /* MewRoomHalfScreenWebView.h */, + 2337F9B82B4D3EDC007C6326 /* MewRoomHalfScreenWebView.m */, ); path = WebView; sourceTree = ""; @@ -4317,6 +4682,7 @@ 2337575C2B0CB577001D0B7F /* MewSessionMessageCell.m in Sources */, 8CD781FC2B3682D100F4CFF3 /* MewDynamicPhotoMomentModel.m in Sources */, 8C9C821F2B0C694900A601BC /* AppDelegate.m in Sources */, + 2337F9B32B4D2B19007C6326 /* MewRoomTopRankEnterModel.m in Sources */, 8C92A8182B0EF3E9008F362C /* MewMineModifPayPwdView.m in Sources */, 8CD782412B3BC78F00F4CFF3 /* MewPersonalCenterFeatureItemCollectionCell.m in Sources */, 8CD783262B476B7300F4CFF3 /* MewMineDressupModel.m in Sources */, @@ -4330,21 +4696,23 @@ 8CD7823E2B3BC76E00F4CFF3 /* MewPersonalCenterFeatureFlowLayout.m in Sources */, 8CD7802E2B33DBDB00F4CFF3 /* SDPhotoBrowser.m in Sources */, 2370547F2B1F3B3200F5DE14 /* UIView+MewFilletCorner.m in Sources */, + 236557852B4BCAD0008915E2 /* MewRoomActiveCell.m in Sources */, 8CD7814D2B36611200F4CFF3 /* QKeyboardManager.m in Sources */, 23E3FCF62B493F3700D0B664 /* MewSVGAParserTool.m in Sources */, + 236557812B4BC97E008915E2 /* MewRoomActiveVC.m in Sources */, 8CD7800F2B33BFE600F4CFF3 /* MewCustomNavView.m in Sources */, 8CD782212B3B493200F4CFF3 /* MewPersonalCenterHeaderView.m in Sources */, 8CD782372B3B9DBE00F4CFF3 /* MewPersonalCenterMoreItemModel.m in Sources */, 8CD781462B36611200F4CFF3 /* QInputBarView.m in Sources */, 8C9C84462B0C697A00A601BC /* MewMineSettingViewController.m in Sources */, 8CD780412B351CB800F4CFF3 /* MewProfileSkillCardCollectionCell.m in Sources */, - 237054882B1F3B3200F5DE14 /* MewEmptyTableViewCell.m in Sources */, 237054AA2B1F3B3200F5DE14 /* MewGCDHelper.m in Sources */, 237054872B1F3B3200F5DE14 /* MewButton.m in Sources */, 8CD782C92B44EF9600F4CFF3 /* MewInputTeenagerPasswordView.m in Sources */, 237053142B1F3A3D00F5DE14 /* MewClientConfig.m in Sources */, 8CD7800B2B33B79500F4CFF3 /* MewUserPersonalDetailViewController.m in Sources */, 8CD783422B48C80200F4CFF3 /* MewSkillCardContentModel.m in Sources */, + 2365578C2B4BD54D008915E2 /* MewEmptyTableViewCell.m in Sources */, 8CD780722B365AA400F4CFF3 /* MewDynamicMomentsToolBarView.m in Sources */, 8C9C843D2B0C697A00A601BC /* MewMineCollectRoomPresenter.m in Sources */, 8CD783132B47220700F4CFF3 /* MewMineDressupTableViewController.m in Sources */, @@ -4355,10 +4723,15 @@ 8CD77FFF2B32832C00F4CFF3 /* MewAlertModel.m in Sources */, 2370539C2B1F3AA100F5DE14 /* MewVoiceDiscView.m in Sources */, 23270C292B0E037300B9303B /* MewMessageConentAudioView.m in Sources */, + 23E3FD042B495EFF00D0B664 /* MewRoomMornView.m in Sources */, + 2337F9BC2B4D50EC007C6326 /* MewRoomNoticeView.m in Sources */, + 236557692B496DC2008915E2 /* MewRoomListEmptyCell.m in Sources */, 8CD782072B3900EB00F4CFF3 /* MewPushShareModel.m in Sources */, 8C9C84892B0D286F00A601BC /* Api+Gift.m in Sources */, + 2337F9AD2B4D2906007C6326 /* MewRoomContentContainerView.m in Sources */, 8CD780232B33D23100F4CFF3 /* MewUserInfoPhotoModel.m in Sources */, 237053902B1F3AA100F5DE14 /* MewSessionListViewController.m in Sources */, + 237ACD812B4D66C700BA20B3 /* MewRoomPublishNoticeVC.m in Sources */, 8CD782662B3E023F00F4CFF3 /* MewLimitsSystemPermissionViewController.m in Sources */, 8CD782242B3B49B400F4CFF3 /* MewPersonalCenterChargeTableCell.m in Sources */, 237054A72B1F3B3200F5DE14 /* MewHUDTool.m in Sources */, @@ -4384,6 +4757,7 @@ 237053962B1F3AA100F5DE14 /* Api+MewParty.m in Sources */, 237054812B1F3B3200F5DE14 /* MewStackManager.m in Sources */, 8C92A80E2B0EEF3A008F362C /* MewLoginBindPhoneViewController.m in Sources */, + 236557892B4BD460008915E2 /* MewEmptyView.m in Sources */, 237054902B1F3B3200F5DE14 /* TTActionSheetView.m in Sources */, 8C9C84432B0C697A00A601BC /* MewWalletInfoModel.m in Sources */, 8CD782922B3F984600F4CFF3 /* MewFriendVisitorViewController.m in Sources */, @@ -4448,6 +4822,7 @@ 8CD782D32B45E9A100F4CFF3 /* MewOrderRecordListViewController.m in Sources */, 8C9C84402B0C697A00A601BC /* MewMineSettingItemModel.m in Sources */, 8CD7824A2B3CB40800F4CFF3 /* MewVerBindLoginPhoneViewController.m in Sources */, + 2337F99D2B4D2359007C6326 /* MewMiniRoomWindow.m in Sources */, 8CD782A22B41FC8700F4CFF3 /* MewFooterMarkModel.m in Sources */, 8CD782C62B44EEAE00F4CFF3 /* MewOpenTeenagerPasswordViewController.m in Sources */, 237054AE2B1F3B3200F5DE14 /* NSObject+MEWExtension.m in Sources */, @@ -4455,6 +4830,7 @@ 8CD782302B3B4DFA00F4CFF3 /* MewUserAvatarAnimateView.m in Sources */, 8C9C84212B0C697A00A601BC /* MewMicroQueueModel.m in Sources */, 8C9C844F2B0C697A00A601BC /* MewLoginFullInfoPresenter.m in Sources */, + 237ACD852B4D6A2E00BA20B3 /* MewRoomPublishNoticeView.m in Sources */, 8CD7833F2B48C46500F4CFF3 /* MewThemeColor+SkillCard.m in Sources */, 8C9C84222B0C697A00A601BC /* MewMicroExtModel.m in Sources */, 8CD781F92B366BB200F4CFF3 /* NSMutableAttributedString+MewUtil.m in Sources */, @@ -4476,6 +4852,7 @@ 8C9C84242B0C697A00A601BC /* MewRoomMessageContainerView.m in Sources */, 8CD782722B3E326A00F4CFF3 /* MewUpdateVersionModel.m in Sources */, 237054BA2B1F3BF600F5DE14 /* MainPresenter.m in Sources */, + 237ACD882B4E38C200BA20B3 /* MewRoomHourListEnterView.m in Sources */, 237054B02B1F3B3200F5DE14 /* MewHttpRequestHelper.m in Sources */, 8CD77FF72B325C4F00F4CFF3 /* MewMessageFindNewFirendViewController.m in Sources */, 8CD77FC82B3118AA00F4CFF3 /* MewMessageFriendViewController.m in Sources */, @@ -4483,11 +4860,13 @@ 237053172B1F3A5300F5DE14 /* Api+MewMain.m in Sources */, 2370538D2B1F3AA100F5DE14 /* MewLoginNumberViewController.m in Sources */, 8CD782FB2B462AF100F4CFF3 /* MewDressupShopListCollectionCell.m in Sources */, + 2365578F2B4BD628008915E2 /* MewEmptyCollectionViewCell.m in Sources */, 8C9C84252B0C697A00A601BC /* MewMessageInfoModel.m in Sources */, 8CD781472B36611200F4CFF3 /* QEEmotionImageView.m in Sources */, 8CD7830C2B464B0100F4CFF3 /* MewDressupSendSearchTableViewCell.m in Sources */, 8CD781482B36611200F4CFF3 /* QKeyboardBaseManager.m in Sources */, 8CD7814C2B36611200F4CFF3 /* QEmotionAttachment.m in Sources */, + 2337F9B62B4D30FF007C6326 /* MewClientWebUrlModel.m in Sources */, 8CD782AA2B44985300F4CFF3 /* MewMineWalletViewController.m in Sources */, 237054A62B1F3B3200F5DE14 /* MEWBase64.m in Sources */, 237054912B1F3B3200F5DE14 /* TTPopupService.m in Sources */, @@ -4499,6 +4878,7 @@ 8CD77FB62B30D68B00F4CFF3 /* NIMManager.m in Sources */, 8C9C84492B0C697A00A601BC /* MewMineAboutUsViewController.m in Sources */, 8CD783362B48BD5100F4CFF3 /* MewSkillCardHeaderView.m in Sources */, + 2337F9B02B4D292E007C6326 /* MewRoomTopRankEnterView.m in Sources */, 8CD782E52B46162600F4CFF3 /* MewDressupShopListViewController.m in Sources */, 8CD782982B3FA0B600F4CFF3 /* MewFriendVisitorModel.m in Sources */, 8CD7804E2B35335700F4CFF3 /* MewUserPersonalProfileGiftView.m in Sources */, @@ -4514,6 +4894,7 @@ 8CD7822A2B3B49EE00F4CFF3 /* MewPersonalCenterMoreFeatureTableCell.m in Sources */, 8CD77FDB2B3132B700F4CFF3 /* MewMessageSessionHeaderCollectionCell.m in Sources */, 2370538B2B1F3AA100F5DE14 /* MewLoginPhoneView.m in Sources */, + 23E3FD082B49615C00D0B664 /* MewRoomTopOperationCell.m in Sources */, 8CD77FBB2B3100F900F4CFF3 /* MewSessionMessageManager.m in Sources */, 237054C92B2027E000F5DE14 /* MewBaseModel.m in Sources */, 237054A32B1F3B3200F5DE14 /* MEWCountDownHelper.m in Sources */, @@ -4528,6 +4909,7 @@ 2337575D2B0CB577001D0B7F /* MewSessionToolbarView.m in Sources */, 8CD782A62B44917500F4CFF3 /* NSDateFormatter+MewUtil.m in Sources */, 233757612B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m in Sources */, + 2365579A2B4BFCE1008915E2 /* MewThemeColor+MewRoom.m in Sources */, 8CD783162B47222700F4CFF3 /* MewMineDressupCollectionViewController.m in Sources */, 8CD7831C2B47266200F4CFF3 /* MewMineDressupBubbleCollectionCell.m in Sources */, 237053872B1F3AA100F5DE14 /* MewRoomViewController.m in Sources */, @@ -4554,12 +4936,12 @@ 8C9C84522B0C697A00A601BC /* MewThirdUserInfo.m in Sources */, 8C92A81F2B0EF4D2008F362C /* MineLoginPasswordPresenter.m in Sources */, 8C9C84472B0C697A00A601BC /* MewMineCollectionTableViewCell.m in Sources */, + 2337F9A02B4D2376007C6326 /* MewMiniRoomTool.m in Sources */, 8C9C844E2B0C697A00A601BC /* MewLoginPresenter.m in Sources */, 8C9C84842B0D25EF00A601BC /* MewGiftInfoModel.m in Sources */, 8C9C84272B0C697A00A601BC /* MewNetImageLabel.m in Sources */, 2370538E2B1F3AA100F5DE14 /* MewLoginViewController.m in Sources */, 8CD782832B3E7CE200F4CFF3 /* MewPayForgetPasswordViewController.m in Sources */, - 8CD780512B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m in Sources */, 23E3FCF92B4946AE00D0B664 /* MewRoomBgImageItemModel.m in Sources */, 8CD782582B3D0EDF00F4CFF3 /* MewPersonalNoticationRemindTableCell.m in Sources */, 8CD780812B365F3100F4CFF3 /* MewDynamicReplyCommentModel.m in Sources */, @@ -4572,6 +4954,7 @@ 8C9C84902B0D439800A601BC /* MewRoomMessageFilter.m in Sources */, 237054E42B204ED000F5DE14 /* MewUtility.m in Sources */, 8C92A8072B0EEDD0008F362C /* MewLoginVerifBindPhoneViewController.m in Sources */, + 236557702B4B9BE9008915E2 /* MewBuryPointService.m in Sources */, 237054AB2B1F3B3200F5DE14 /* MewThemeColor.m in Sources */, 8CD782AD2B44A11A00F4CFF3 /* MewPayModel.m in Sources */, 8CD782C02B44E56900F4CFF3 /* MewTeenagerModeViewController.m in Sources */, @@ -4586,13 +4969,15 @@ 2370538A2B1F3AA100F5DE14 /* MewRechargeSubView.m in Sources */, 8C9C841B2B0C697A00A601BC /* MewRoomPresenter.m in Sources */, 237054832B1F3B3200F5DE14 /* MewBaseViewController.m in Sources */, - 237053852B1F3AA100F5DE14 /* MewRoomHeaderView.m in Sources */, + 2337F9B92B4D3EDC007C6326 /* MewRoomHalfScreenWebView.m in Sources */, + 2365576D2B4B9BA5008915E2 /* MewBuryPointManager.m in Sources */, 8CD782952B3F986A00F4CFF3 /* MewFriendVisitiorTableViewCell.m in Sources */, 8CD7823A2B3BC25A00F4CFF3 /* MewMoreFeatureSubItemTableCell.m in Sources */, 2370539D2B1F3AA100F5DE14 /* MewHomeFilterView.m in Sources */, 237053922B1F3AA100F5DE14 /* MewPartyModel.m in Sources */, 8C9C84452B0C697A00A601BC /* MewMineCollectRoomViewController.m in Sources */, 2337575F2B0CB577001D0B7F /* MewSessionInfoViewController.m in Sources */, + 237ACD7B2B4D663700BA20B3 /* MewRoomMornModel.m in Sources */, 233757572B0CB577001D0B7F /* MewMessageMenuModel.m in Sources */, 237053A02B1F3AA100F5DE14 /* MewShowVoiceView.m in Sources */, 237053932B1F3AA100F5DE14 /* MewHomeRecommendRoomModel.m in Sources */, @@ -4623,11 +5008,14 @@ 2370539B2B1F3AA100F5DE14 /* MewPushExclusiveVoiceView.m in Sources */, 8CD7814A2B36611200F4CFF3 /* QExtendBoardView.m in Sources */, 237054802B1F3B3200F5DE14 /* UIImage+MewUtils.m in Sources */, + 237ACD7E2B4D66BE00BA20B3 /* MewSettingManager.m in Sources */, 8C92A8142B0EF1D8008F362C /* MewMineLoginPasswordViewController.m in Sources */, 8C9C84942B0D65C300A601BC /* MewRoomAnimationHitView.m in Sources */, 8CD7828E2B3F828100F4CFF3 /* MewFriendInfoTableViewCell.m in Sources */, + 237ACD8B2B4E393900BA20B3 /* MewRoomHourListEnterCell.m in Sources */, 8CD783462B48D07D00F4CFF3 /* MewSkillCardContentTableCell.m in Sources */, 8CD7825F2B3DF0A800F4CFF3 /* MewBlackListTableCell.m in Sources */, + 236557622B4963C0008915E2 /* MewRoomListCell.m in Sources */, 237053A22B1F3AA100F5DE14 /* MewHeaderView.m in Sources */, 8CD7828A2B3F590B00F4CFF3 /* MewFriendAttentionViewController.m in Sources */, 8CD7829F2B41FB7F00F4CFF3 /* MewFooterMarkTableViewCell.m in Sources */, diff --git a/yinmeng-ios/yinmeng-ios.xcodeproj/xcshareddata/xcschemes/yinmeng-ios.xcscheme b/yinmeng-ios/yinmeng-ios.xcodeproj/xcshareddata/xcschemes/yinmeng-ios.xcscheme index 55ea517..347a377 100644 --- a/yinmeng-ios/yinmeng-ios.xcodeproj/xcshareddata/xcschemes/yinmeng-ios.xcscheme +++ b/yinmeng-ios/yinmeng-ios.xcodeproj/xcshareddata/xcschemes/yinmeng-ios.xcscheme @@ -31,7 +31,7 @@ #dn!-`XGxG> zFvE-mbHDe#ztQ^Z$NCvSK@U$C#}JM4$r54?Dh#tVKKroe9GYdkab?;pOTpbqjf%@7 zgjOf9oqx%5BUCzpf6vJ!8tHQ^Iopd`4=#ye*j>cF=G0*+i8fURh8g^lONu{i{0%gd N!PC{xWt~$(696>KQGx&f literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_Common_white_back.imageset/mew_Common_white_back@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_Common_white_back.imageset/mew_Common_white_back@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4c120a33f0714d704560fc4702f7f2f95c1f42 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|3?#2~eYgdrJOX?|T!Hj|YJlez6&rwNiI)WV z1v3c!e0HeJaZ0OUUo6%P~Wf6ib$Z6K2I0Nkch)?r#K2VD+sWNtLSB1 zV=;O7-#)aaVfsQZ{>%I?X6@?{aN4zCwXdJRKIgUD8rzzgBs300021P)t-s00030 zq0awwum6p||Dw+Sc(MO?u>Yvj|DnzQcCY`W&Hs3?|Dw+StJME*s{gCh|B=D}ioO4D zs{g6d|Cz}Dfw%v0tN)zJ|C7W2hrIuAtN)e6|8J`QtJMF7y8nc^|CGf4o5}x$x&M#A z|NsC0pv?b!vj2Cl|9`drrO^L!tpAI?|EbddiM;=}*Z=wa|MU3&+3Nqu;Q!L*|Ksof z>hu4x)BoP>|HIuHJxX){001C#QchC&L}ZR3Rbx`1t4N=jYhi*x1Ly!orG* ziHSb+gjeeT00BZtL_t(2&uz|!vVt%WK+&KS5qs}KSbh3vq3ZvCnVW=WIWxFx?!bgJ zl%p{o4#&n(A>Vp)zc%lE#J+KVWAxiqQSTpArBw%)FN3=G)z-1&l#5z@f9=$YG zxv$GRH#Gw;ddh$D{)<*+NfE{XvM`DUc!eOfR( zAv|0@H<%}G$pL1|t$<9-3FfXmvRyj@NA3xvVs?4ge3q-719s}!Za^z%f|fT# zbI4QPZ;d74OtGgAmnHyqE1N{nujoec31j@N=tQ!#>kpbmN}azSIvA?1eMSvy!_xoX s=oWcru9~#^R)cayO)BmW^|8=eZ zc(MQg|NnQe|C7W2e6;_M!T*}b|AM#wioXAcyZ@oi|DMbLmd5{bt^cLa|ESXc`~3g( z`Txq{|JCUKuiF2r)c>T*|K05W#NPk7*#GJC|K{=k?)LxU@BiBB|GnD((B=QI(onXg zod5s;Hgr->Qvm)FAo%t3@#5mQx1F7Pa&Kc}L>L$e`26?u^YZNM+1b_Aqoa|Lii(AW za&2H>SXf3yGBP9~vdv=v00M_eL_t(I%YBsxd$KSPfT69s!&@2^=j4`#Gq-4WG#J$c<(osyw4m#>6=KU20WsozKC zXDGzcZQG8d_2-Gayq{3@&e-+3Dg<(9e>t=-^%!<k!GWF4-*$ z`@A0Otb*kX-LBVypf9`E&&B4b!z01RN2fh-h8+snT@0DjgDrE5<^R9R*(JVJET!uLjERM2k#Z}Aui(9O3a3C-AShZ5~st0 zcx4OhM`<%3k2qr)GivvVqq3m7@(A_@3o+sRgWfDeZxP3m$p+Z#OhQ%87_8b44R2TB zg)+&yZ<_(UMLcT4a}m`P&^{p^1`H(M-jJmZ!M5fPfvNI99>I`qN^mAmTqF!%`GDCD z=q^r1{l%BVrOcmj1^2kXbp7sD%in*X0%IPshby>z#N#@%21MX=&53>FZ}Afh4gcUH ze=_vnKx}Vr7zUQ{dZHkA+z@bF5S)y`nQl?jh{ErJ9UG2*;fzsd#x$n*k-G?**UUbF zU4e7&Gf3fxz%P`5N(yR#0ei$YIO-k@05C2|RTROM7~wqzWzf-F%VM$*lclo@=S)f&@i zXCKOJO1UXHS6c87SS)O7n(V4=7m7>DBC3_wn?f$Loyiq$UMtl^^*=)OKj(;+wOIfF N002ovPDHLkV1jTHM6>_^ literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/Contents.json new file mode 100644 index 0000000..695949b --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_common_sex_male@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_common_sex_male@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..63bc51ae6cb716bd9478f46017d7716425f3510c GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s3?yAI>n{URa{_!qT!Hk$Q~xVA{O{fSe-V(e z{(s@>{|it2FI)eA$?5+U>p&u_FZ|D61tKTz|KGJ6#9n#+|I8!*8@GWJFFpHz&hh^> zn?MRCAN=3G^Z(RCQ1xv){r{&1-eh6B*-tA!Orf->(@s^LKGE$ z{`m162yOtu@#Du29Xiz2)!CV9^mID|1EY?oi(`n!`P>Peo0<%GT$z;~?Rzi1ZRsYP zkT3uLzg1nhMfvf}b1{>Q&n{^=y8Dg#;)^Nu9~b!Me@u`3vM;25a?Qq<*3VfzyANzW z_pRmfv2V;Dn-|R6BWi#1)4XjyuE#{Wyl+*`G+W_yT_i@YQ2P0lDiPOj7p;Qte0Z>g z$Mav!v(B2A{9eyk*pHrwF`inN)@yTMOW{-IU}Eozng>M^n$GlY42{F9z*@ z3zmCy`k!1I&FD~~d_m|%9X!1&cHBc@O1TaS?83{ F1OQ_9JDval literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Common/mew_common_sex_male.imageset/mew_common_sex_male@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1e37ca9f53199a51dabcbbd8b1df7b7e8bc606 GIT binary patch literal 985 zcmV;~119{5P)j&N&i|Rj|AMyvaH{{R&i`(z|NsC0gSY>QyZ?8v|9`aqhq?cAt^c0L|Cz=AjlKV& z%Kw(b|9i3jk-z_`&;Ojp|D(+RlfeI_&Hv-?|E|#g_4)ta?Em}y|LgSs^+`Lr_+JU7_iC7(r+ryl3C<7IFNF-U}E%FQUhwT@@X zVX}`EP9~E+BMiSSCkl8qQO!d$gEdD9-z45W# zaK}Z;2gM=!rH{~@a#e)5d7MnCq$S8PY`k_SBVvm5>)sP z!(iDNM75VIGDaaLk_ueO;5$MzQGJBou{XC2BDsS54?}>3Dv4ABCmSF4(3C2Fqzomi zL~Vllfg{9g;TWBjz`<#V3ffsb7s-+Vo-8Y)o@oHjav@5fi!)gX&==OlVDRr}0B9ZQ z5m*$~HVm5=c82vdM=f9!e>YRtCDb$EB5-oaM(PskS>iU=FuD=CPQ6cdwLPkLGZ+oo zGKyVEn;ngHCT1z-AtqPows+7iq`IuSTU8;2TG(zD)RpdD)c9-bOl3v92^Ct6!p}8^=!CSN?8>o!^*13{ZfvvW{e0{ zs6Y}2`tjiJXw@`cJsm22>86~*OP=jivM~xl5Ht}a8^Y+sB@|e5h2<@NV!zVw0aR4g z$X@LbUj3dZXZrvpRrag@HR#OauZ2RX4*|L4X$tXID<(#68>PBfbhy5I?eqID3JZ0+uMyu(#?%B#5z}qHbIVfq7hpOT zOvQllC|&!LF<>GJ2%;s=odGy3?Q>n~vIAq0a_-)hK~M2hN5Bb(#&OW7pN!=t?e`Ef zoxpSqEGT39EI-)>W@3RPS~sf&qWT>X%n>v!JlwKY;4ka-ln=T~m^;BNUO9~iQ$b2W zkZK@6%lFlcU{?NemppZr_t?Wj0MOR}qG*Q+^1eN)0hinv!;j!^j-DA#h(Msm`;rZx zb$%*+Gc;Hk=;!0S!`{LKsTOv3)YX<1e({N7e)wf+)=?^vfcN!uMSrFeiQe(o-WbcDA3HnLrRElg$f-Gc!|@ z0>Q*6yZ0Hh=TXP)wzfZ7FVioTpDivtm6M%*gc=)u03Yh_zYpW- zy29wPDvw{g(BWF!p=!vu1!%)1_X~5g>SEjiGtVuL_a$WbC7#^X;u!dPQ`K>edpu*( z^80#f(=sHwe-|1$5?V0ixUS{SkI$L2uB_s_^q6Dof1!xet|}Hku0By{j*dVH2yOf2 zM(b*F3ct}rk3Ep7E7w>sj$UQVHrT&!5rRrKxKBYGd& z9N%=xH&v+gYP74b53I7-8MHC_hdzA#cg^~?6E zu9`XV11IeH`{o}UHoyBY)0;tR9nX#1Y}nktFwC_^^|y&Dcr#ypb93kk(?p7x#mLOp z{(jIU#5-eYD(r`CMYc{i7>`p~cMO(~zB<${yA{%WnrYFf=bQhUNG}v#y?W8JYEAKV zTgKje{;hSbz>X2}KhQT1U z(zABwuGcWTqn7>}Jc)me&r)|Abs` zG9M$V3&g**NsiYe4Tb!kV!H-uK2uZ4Hw^lDtE+>@Af_7aH0qBy^-=4A$LnegA`EF( y!G#`S*s?vF{WctEsJ9Njv3$UoE!?drg!JFFDo#!W6R*I(4@5AI;C};qu<##uc;-I< literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_first.imageset/mew_room_top_rank_head_first@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_first.imageset/mew_room_top_rank_head_first@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..27ef2f97d6e5cb982e59179464d0db25a60fc48d GIT binary patch literal 2064 zcmYLJ30P9;8m7fG%_Y}#OfyTzOcZf92Q~K;5ioK=%`9_CQ<*!{Ue? z;bB2&@QwqoLt5)V993m=A&|9>s7P!u_y`POSHGY^RP+Y5W#r4u1SswW^xQqE!J>?lB%sD2y5WIowWO!Ee}DQMph{oFRpaASq=0X(?6CY!6UjKNJ z_O8?-a@KZOQ3#AuN^u!sjBGt*{^sdN5%Ux+;CA8pZH5V*w`;4(1~KMPZL>)wGlh0~ zVQI932&eKlymKR1oaW6xk_yTD(Ka_?2NcW%+jS@D$d8O^MMx=kul0`S#`o8iXI<(x zKX~j>1#{0};D^Dl-NTXCi=O93rkTlguQJwq!^T`AX!|y`nTYu{t=t!Jf6&i7X%7f@ z$R{H2WrT>9t$#oebF%S6ndiPpwS~f3U8JQl5`U||VI^YHcROR^Smx|#?Z~IVDoUCm zT{^^DSU9lTw9jZ``T6qH8yQ?$wtWD@H!{NgHuvzcVND0P6nbEKs<{5>DTR{Nyo&rUvpTeHYNxmn**uKUE=W3l`X`DaW+r%;)?`)hK8fvq5gy)gKzp{g0GUEg%5ka zly1AFS+j>@YV`ne6|WPB4dY!TAO_3k;f%EO8|@Fu@p!iR?3VN*0~46@fZl9xm!0TN zG4~u%)!tZmHW>Yfu8Kg*Q8nutZ?+$QN%SvmM%xFtjYAwZlFFh3?Co}1bzU1-X5l=R zJ&u-Ou4&ep?sW_rSbk2^4|ua-v~b84mR6&IVb`0@pZd%&=GZt~aLKuQ#bOHcYs>5I zLqRSkHdk)~SuaDF9?wg(5*Q{~PH88GD2Xmpw$1F04SBC`x4Tg5pMJgtWWuYNmkw^z@~u1I zy0OB}#<=3wFsI629R9kVNW9{U%TYxOOA@|B>@N$pa-`+y+v+S#j5=HU-|=1Aj)2a# z>GWOjEa1aGNPA(EjL?rWB2z}C_;l^8Phs)#H(N8AV+~QlW94qSIgSS6qpf7E z)FxA0o0;vL(E-wnHLRF3ekpf`y8LVB7@A#~eHurwljf{OcRd2B6@R|TeT@v8Y;BOK z3$fKX?~sgncaa424fw&u&`9zj%$bkaTDQqzuI0&kc@oFc)yI=tqwmmqw?>!=-MEQk zXbRcv9XeZ3YqX{NOm97BfF6x}(Kns>vwn-k$hy)+r|jPcCjY!HzK6u+I`0t_Lg%f! zPd!Xp^gF>Dax7tEr`P9o6<02?uwO0o{*_^#_UF3sLveZqm6rA0US(^N{_{iLHsn60 zJX`-Q`EvA5Z`}T~=&g{%l9q9jNjMaTY^@&mN=0>VHfm07Oz?DSD=I|M{PuqGb8Mt% z`glJej~9%UaGtxnJx@OSI=`~ua4ifmP3gDBy}bMa@w-OJ>)5vUSw6W785maWC62_{ p-G?!lvXH+OJQH&T`8kT?%se%C{Bo9a+5)?reC9;Z$ zKv{+@fI!I3E-`FkfkFbKf+%7D9n==b(yT9e^J3?m|1SS`zW@8bd(S;L*B^Vv)Y!%t zfk2r0V9JAStBLjFoZ24^$0

4-#6$qoL*{GL~=IBTos9}h~aDiJPo`jbKp>t z*$NUz0dO_?6bALUQXgCuz)>c^Gw&nt83%Z3fU72R6#p;e!ZbBmUkKJsY2t-ooInHc zKP!J0k7dImF#j)_5>_L#<#Bvv%M1t`fSJuRYC!Knq4&d4G9@rsZvZCz)uKtNW=b@0 zAskhcAc-f}^SMeu0LF6U_0!t=+4X--K%uQryg*kysYwuOKPxEX_#nMc*Cf&0eFP@= z==8=os+L(TiLESo1Oi-T*@QNh4Y!szNmV4SqFJgT>+eKC=BXNfRg*dtP1DLIiK>2F z)i4FM%xEho!Al%%vlI-v4_)g6+vjxIVqN+JkR;GC#2~H(O6>z%{|z#w>f57wsS6#@ zjX`aTRFglVC2>{7BkE?UmfQh10t1?$%mFCl0hBkSDIb$l_}Z}hU}8T+?S!P_jGEYt7s1rJ&xK1dr8OF8wV^Bng?tHuMhFE)jK%3O9 zrF3bp^@AzBU{nXlUVxgPKs8b*xCOf0qbnH$bB92H4>m|NF>Ez&32J=;)k&ed;}A^* z1-C;)fv)TqFiQl&M<^K9R86QE!%)gYC`|+3DBX4i4+>p;mladOj>3U^doOl@_EE z2;o6L9{=u$ql1}=TA^59|M33Zo7I)Y+0kw;tG>20FO{C0OeOkZj(=sNQ_9~hF3!!4 zih2cn*1h7qTa24osZ>f-xZjUx&wn`Vk4m`n3j$$~?SnoUgcx;?j_EN`U+&GOIFa!&X?!wvHrZ#O&$nuxZ~)O#aHl zrub|vz3$IPj#h&Lx0*kkTVn-H1Haczhd8f0zI{2`anpk?0hSFTucht0PofWz-q9^OfPd zN())0Y-uG3IuZVgcEs`9L#{sNgWG0z6~(L&2@AUEFi*KHws2`_W8B=>oMyh$5+6>8 z9&t1B9CHin3!mEk5ap=o;jQgCVzU>xGm`jfXQFn**1;~+lF;|hN=A#TIRD(r@|Pih zq{b#i0M~%W9``>;0?no#r}*u-iryACeVlw%qgFquY~yc#@w#WwWgrS$R5oARfVnq^ z5foW&RJGMsblTC072mN!E4F8y+Vldy)$*s3pXo^gv$t;;rl*KEi729 zr>sSp)T22xid8cEH0sW;!K?`6p{sjc3J8sDA5$*w!`k=VVYLs`-7H+$F0^7=APa~7 zerxAi_VUueBeZR%NbMG(-e+`b37ci}$g0HExgBC_KHfG%)y-YmD zFzCt`MKCikj5ESc`x;qkl!0nbEsp9detInTsG$<+{*)>@L6u3id|{aAXj1QQR7BkM zxAzB(z4tz-5j{o^+WUMsmDgDl{k^2e=9_bQ$cxc4w9SlkThxht_GgQIE8U4+Y4ZWj zMYF`iC9ExFh9CF!?|C~8W!i5Z+&F95`R?$3^p4;qL+79i@i}$X(;R;)^W3Lb*AcrG WS0@i$$1cF%1j6Su7R~mG$oe0*MzYKR literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_second.imageset/mew_room_top_rank_head_second@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewRoomTopRank/mew_room_top_rank_head_second.imageset/mew_room_top_rank_head_second@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ed275cb25a8909e7118f12734b3d97fd9720e752 GIT binary patch literal 1978 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 YSgPDP( z6f}>DUZKXW)I9wekKM|R7f{eYX*UrNc+_}7E(-AOs=EZ(|1Bb*VCM)=gn9qB@X2T% z2_>ZL0sw-4w!`p9NIor#O+g7rXhAiJ2NbCRI8u;<6_Bui<$sa8DXeGFJPL9bOeGO; zF_IokBn7kc69v`T6G>2jFH#c)wCsu0;58ChgYS}I7UV?|RYTbjYj zLQbW@fNFzbx2Dp=7O6?IgeYK^c>n;7B%qO(3e$wUeKErbA6^BKQ<(Y_Fp5v342F9N zYbevWP+mEqKhzyaT+B~gDoh=Ha)(otJ_x@xLyVpwMAA`y^T3{K$O{=^K>8RKG7##{ zDS5g;#*D`Jva(_r36Ey8kz;6oK`lv0BhzCcL*5$-^8hd`S71xzV}32`=xJlWgHf$1XffKAG4C&m`#j_{eF6tJAJxrXk30XanwFjXz}-fLGs$Gur`)-wf8wz8=EnLWYi7Eyx4W~W zp{9x)i3kma2L0(^q<8-O#@gyKXMw>O9Uc7gx%pLHZAC@db3$T#aDbnay}s_X?*u6j zNKE~P*)?Z>#uCxZPSHW;I(PZoNU_4SItC(nLp9wPd0X{>iNtY)bc=?*C1HgTsdDc9 zh_mT@OY98uo;+4rBA{lt8Om_g$k|?|_bLa!|E*_Y`KB!<#m@`H)$+%0eb12cm2 z3ZosQcOuB+UdtS-PD5XwqwFig&;1!4{-OG3b*il5PxdUR(N3HaZ%NGaT5kD>!1sSt z>pRoG8IkSUTyR2DFG0}uU8?;can0$vuAbS>w@$Bi6&JTJBCEKE$?s&lnH4tH-HQ@+ z+b5X5BnnZuUcA1|c;m8pt0^Ya1^>b?hESXQmOhoi~|H( zm5ueE)^hxVU(?;0qCv9z*VBv7GY8Dd@YeyiZeIUn)%)jHs7&eeOaf#Zahk z=j|+=t@bgppRNtqd5P`q-0^qoL_S|5h)WiA>}YMx@4Z?T3e!^LzV)=Nbp8>tlU>UZGp6_4xVt@TE~%+z zW&V_ITY{|*^DrNG!!!fW* z+Lc#_O3KSKRngrHt`C!Ip{zVU!YOyYF4c8N!ati}kYv%<3vO$&kdB>%47zVUf1?-* zi-3t&MXQ}B1goXTZitxeJ^q;Ro5|d_>n^yyS^i%>4_#}~Bj##;7d}`@{2JTXAk@L( z)`P(J%aSjKEU^nTwDJoEvB}+;_go=AHukL?t;{ zG6h>JomHd5hP9`WiAs#cHuZe);e?#7FCtiI=bZr)P)xgx<6e74%CvWJDmvkKPaRI& zxG?D|>h$5(j`)hxYkRe9DClSClC0H>sQm!>ETnylVtMu;3_vB zfP6b4z95o@TmL0cS!+b~M9^7yCi$|AxyXjK?AS!!8|~hUk7{O})r|AgWo5C4u?e?D zyiD@&?tKA)T*u0O)OyB(yALvjISq75pMrkZ4G(>eJ`nk70w%EaZRS_JByBx8PdZA9b zLsYBBiPkyx5*(x zDPXu+em1a)t4qv3S)-`w+_ZW$>7zt_`yXnUg$9G}i>mlP%vv7H;y=Th7^l24_^0S~ zwy#~C--;Pz+6dzc1L;F4q_~EaVAmI`gEw)n%eaSzFD%VOAH!P(8FCD!Hx1y#OX~G@ zb{^H_ov20PYDjgn|0>cufKNZOxbCgT0o#?}CtL4}#hjy1OjMQTa!%Wdw0BmbPgy9;DS;J{A~x?yf>Ml-pM{s-jxbOrzb literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/Contents.json new file mode 100644 index 0000000..a865c91 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_share_room_qq_disable@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_share_room_qq_disable@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/mew_share_room_qq_disable@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_disable.imageset/mew_share_room_qq_disable@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..44715f2de211cdd4daee8833abc582807191a3f6 GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2J}0X`wFK>Ey?Gw05o1Cl^+`t)fa zdG_pCWD>%?apML^1rqrG|NoC4KR$i>^!)krt5>hSef##}#f!IZ-+uJy(G}K7YCxlf zOM?7@84gQ)bl_ipYRlA`qEHXE3s2VF@2%dU&cML<-_yl0#N+tV@YhwV6$D(?&dT!j zoyN*~|G%aG-<-TNGQRfD`n!4#$Hhb(4&;x$+&9(3bepgFm1ntAY85%V_SJO%DirFv zeBAJ>BA3Rum#NCTGs?vNhn{3yrGL2a-xTu?mCG(NW?Od6nsNKo>>qlL(~B*wFWQNJ zVi#Fo*1Vo?&o?3EpUU%;!Z!WzySH-dt3O8`{VllV%5d7>^+B#R zF)QVgZRzx=>3o)}&!n10Z}mTJ6J4ImCJ}wD^T$C}HNIuSi<&f#o|v1-@^-V+-wBHh zb!VC@SE|M5oaNZh@=<(ys)^{uhzWZpc!al|DRO#n!kjm1P2yrf^icK=B4&5sIw8Yrit4yfls$#+|zGZBO#X=L&mg|@T=%amtJSqvH2RmKhm|YTIu)?m$H)m znnCwpYHW~n_q5z)|S0H@`49=cC3t_-XG!Zl| zT-oWH(xxI?MZzfsHV?c`f}3E9;54Drb%Z6xx{-luUq1tDQ)Yoy!GzYOQ-yw zUDxt_F!}amDVDpzlED%0bc!l>DK=-HeY`$u!i}g`GP@V6o#{L5moxiWK&CQ>&7o-} zC*SY!w`E$uUhz^&OK6_lmGl=jp1Z>j&9X5POI+#Oe&_Px!pF(4zxJ^&UiHz*@z8-u zs})NlHri^r`ta&11FXe3EMc`#a&e8`mu_NZ44ggZsMH298(0>k=0!mL6l0 z5Lwp7%_O!cG5f)bJYFdd#bR~Aox-I|ZTG^s*|WBEv??sP=6bg=oI7%ZO~xLb1W8+w zX!Fu)_0w&eCC-YQR|QR+A-ckT$HJ3xQ#TuX#wvS#m(adBZ%)_ZglGNdr%14V-LI2W zGR5^!mPCSuM2yK1hVG)Ss7}A^E9#q z&TR*nc9f=vf9jpu5U?c9yhLH^+4bc?r^V#Gyql`#{0-AK)mk{qBwg^K^2)6ZS#7r_ zUpvBFx!A7Wpify-dqvXrH&NNC@0ff3Ix+>zU-($R!K`h~!b@VBPuG2nbzRNyx#9AU zRZksE%$1+Ui>=-j8ev!2`|iToX}_CR)ZXLXdOyGG*11|omRD@d;oQu6k!^q0hIec$ zTz_nx(z+SVThAPPI(PaRX7hN_&)@1}cYi)DZRafTp}V#2+YIUJcbR79=l=|7b@lwY z#>(<%j@2KV8EcLn{H;6RNWNpw?PH!b-;}oT+)fb>+LAb7$;I`5Zsb0!4vl(d`2Tn3 jyyKNK!|t*8|6w#NS;QN^?5ra&3p04S`njxgN@xNA%I+<) literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/Contents.json new file mode 100644 index 0000000..df3f4f8 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_share_room_qq_normal@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_share_room_qq_normal@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/mew_share_room_qq_normal@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qq_normal.imageset/mew_share_room_qq_normal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..00abdecd5d449dab1cae4f1d2213793e9329b548 GIT binary patch literal 752 zcmV}Q1SWrXZzgY9O7?q-ASXM*fzgY5tR z|L^ntbB*rj?EHV1@A&%u%+~qh=={de__V_IrnmIi-};iL^7Z%r-Q@ex+WEW4_llwM znyvEpId_c!000qmQchCX7ryI)Rw3U2uRY=gT46-#L0006XNklw1DP z3~fQYOl3<-i-=tH{hx87`_%OWVe9!Ls7K%BQ+b#ohA=@ zx12>?Y)HgrF-_Gp3jLnGOz16=H=EzbG=X?O#{Hlf_>iNcX%=)Oa91=FpOM76`2g=eHn-dYbIsglztn4)Ygjhq*$%8n zSXxW2ccNT|E8kSHktB;yYUa|nmGZt*u$`DMzU{(%f`zHtlHdhXO4to;6_&h?8v-<_ z10`xD=yf0=0y)@LY7Iw1+9CDAx2#nxq}K__Cn3_Y8ecX2pFp;3GKriSwm^=-aY-Ud za2=~Pb=7*|yZVo@F@I#gOLGH%LoqsqIKRxrO)~I*xr)TPuJIb6Oc1E2~ zPE`bvDy?xCC|eq~P)f9~HiN9PSwk6e1z%zCuv}3%C_@pEPp@jIF4aJVT|?>Z#r({S zpLrXp=yxyVx_%*dQqf1riqk#MEwlZ3EF`(mb=@#?Q?$kK`|{Y-=onk<#XOqpp?fr1 zbAc8sHutQ&we_|?UuEvwTZ=CeklvO4t@i_^uf~ySflO$0000}G@PW`pfzgY9O5>}G@QW`gZxg6(C4>}7-PWrOTygY9F3 z?q!1PWrOTxg6w94?PY`QW`pfzg6w63>}G@P|NsB?`2K2#>~M_j@ACbvz4hSc`@6{Z zr?~WineWls`N7Tjo38VFl<(Ky`seHXv%&U{r18tu_;--*#?knovh#_b@Rh0Zc?7z> z0000RbW%=J0M`m2FBYKl;q2$DP)N_amVXaGj#@ZzYGJeL=QN=J00ccrL_t(o!_8Ug zdZIuOWEcfe40t7)mizWT-v8Z}*2FJn=>{~LZ|ffn6hlpQ_Z&(+)UKSo*_P<*0D50o z_S;Z)Rpn_&b2NC-;Tv=@7@6`JUUjGm0|*#G8>$cTc4se81F?8Sna)T+1Bhv-C2@D! zgNEqYvX#aHT0od;V=XjjiNT~9`Ak4-^cG4z##49*cDFV}2Jj%PPL0e09){?!%sqGl z{Rz$d`T|cuOqf1Di5{Ve6!0{9veI<}_yJf|9-P9Dz^;fv_#rG>58-~B$3YP1+kHz5 zsx=vD8->2JEaCX;Y+IA7#&^_1;80}CJM0n{7?^jNpYxp;te4;5ZwfAQx((go9jQQ;-ewpFJve_W5W4|9(1R@6)|Eia)-3sLap=k5sh}Lv^p9x z1`6Y|p7qBVw)*^jS&$M(YukN|WyO z{L(wL|E8Gp*gy>Tw0qc)d>?c1!oTbu@WWixNQ0&h%a8+L#9q_XdPkW6YmkVc<^$4X zMiC-DD$Wl3QzONu8%sU>gh`6)QV}j`TXbXDs}vYuji6gCg)vC^<^g~gjLA?+pEK7o zFIR1yWz)`{+Kn{YAK@7ajyOI)7(Wbr@r&i<8@RJOO0k5MBX-!;~+ks zliTOc$MQy;Z@s2_lneMF%x}iyUD6)fFK!_|zwya$s&@L%GWTD9eUllvpW7NAs{d%) zz4!VH#}EX%_Je-zD)m@AU=(Bi8wXW9#-?aBezS3#LqW}Gtc523m!r%Qs+`v!z|N)m z=&|vjr&F|g|J_vo$HVRqzsSyTq*=nyOHM;r+Q{t42A=o>&h4w|!_9TR00000NkvXX Hu0mjf1T3>U literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/Contents.json new file mode 100644 index 0000000..ef60ad8 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_share_room_qqzone_disable@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_share_room_qqzone_disable@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4339ba5e2cf6211ff3501438546c929d8171df70 GIT binary patch literal 769 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2IO0X`wFK>Ey?GiSlz^y$+;HV{A< z7cX9fa3Qil_Kh1iAR=(`|Ns9$WzU{H`}pzW?c2A%fB$~<>ec)A@4tET#>S0h9nf@< zk|4ieh9eGV`8O?>elPlXYEh^M+rG~=wT@g1fsSEv@^o;Ejl#B?DyE*fW3QOhEtBJD{RnA&>pPKf0ThHe5$s0~rgb3bOTqQT%XMYgi z#JazEQXdr-6@PX==09<+Mf~$W;!jKuSJ?h!wTU;dzW+yPpX0r*8SySLG8G$jx7{n; zKjD1h`R#?tYnN;gTD|S0U|N8a247(H)`{#L>ttWxC_VqbZA>paUg*MyjZ^DtmhTi88>{pvil6fGLJHzSS5eGVTDuC#QlrE zJDwCe^6E@NcKG+ubQz6lEvEY>z6@EvcE&|r$=?TF)kPeQUXu8}*M;TMO7RxoXLU2o zKXoKLUsf{D`<_M0#`vHk>b)=7Bz+7Qu`r;;bQ(LY3|#k4<Goi5MkIGw`BU|$#=IjnR;v# z;j2|`30{5tviaLK{(Je0n&UPfTr_J&;RNo$^Qlj51fOZD^&e?p@ib%C+9#2W#T^nk z@5*?}_!qA|GTVCf&-z7d?6X!^+_Um(WPb2e`N7=BkMHxZ3oLqm;?MKLRnhnNsNLDW q;Ld)jyZfg+e4P-(_v>l;^@H_+l@I=Uu-*qHZ3a(QKbLh*2~7Y%gMnNC literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_qqzone_disable.imageset/mew_share_room_qqzone_disable@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4be5ef0c39412943cf0b27102c36f80ac10db6c3 GIT binary patch literal 1308 zcmV+%1>^dOP)+zZa3K+-gL2!6XZY=-_Geo-u!ey0LuFm zWmel51t31IK9%@*K!G?^*+&|e=mW%?G+2up`Vh-S82KqiALDS3VC;`*5~>_x&X#B* zzIJ}*U5O?mUU?H3qZvpRZsx@W%|h(t-ojYvM7WPByaR~`pmz@X;yL>6K2nd?L&BDXNJ}YX-h&oo%`xU}6)Gm#&3YI~(NwUu4 zNr+ucq-{`>Do#)8D;RSZbS?V2W5_s1PtU`QQXvRwnvP52UbWP`X$WZrrHtY6?Pee4 z7mJgM_DLu?uMI>`9s|y$YzPq)+pft9J7qTHpvY}-IuLtjRW%)aLaK$c{(D6GBa}gF zb?vK*x_L5oN@8bryKJ;Xe}mMHWMa&4K~brkrv7*ftP4NU+iSSEZLaVqhhqvH7e(pw7Bg;rsg$K zYha^Rj}UTmld-=NJY;s%kb_z~hgdpsYQM(;OAzN;ajP_PuFMw1-BLBTA?lYHll@%V zX)J+JjI*~G1ot*#KQoFg%h={&S{*5v;l|RceakWxw7t|+tJ*c`w-p(<{jPycMs12r z@d2Bp~7hu#m`bQir`;jq0J|SJ$`%u2U4uID@J-cXk|E6atYv=lx{tS)7c{wX|PrrbqH{{vyP;uP3YuF z+S>()88gAlh05hc1>WM3t=)6ca08G3Kg0|2$Ny-9Y%r6(5n$@vc2DqC3s-x% z6PWPP2DRM77eq`@eHJkc)_q---!SC#Du2gjzHvj+vqDe$SR7l6Am)m-(Fc5`<+N!Oh?W}||2zWlc|Lg4tDiH@{ zm;a703>j8tRuaK8T+Bw}>5^zU9gk*s?jLFR|>Q+4Ez+k9sDa3xWV!;u*9n9RW!KcnylTPaGnX`nSW@ zsT=zD44jB|fYZ?5MO_ll8gPjupor&MrE`AB1=gg=fitnpo8+qUje&KeWJ9hx;^^>D zN&$)IxXf!qu`pA0yyT?P44TIpIVcH2b<$rkDsCZW)x!}LhE90~gG=@POc<8uLzAT{ zucs;XZ*1~1rLAFy!Y~2Huf&m2l> z?Bum#iefqYSo8ah_0k$XfVF$GfFvu^f02uuI)ElL%v$CE>WU56Emi{9dbJ`^s44c_ zu(^i;Q%z17N`7+}HvK0ybD-(Uch94g$>fLV&qqK$x;eK0!L|R9x%**#Y4^S+^uM6= mzZ&(wl=0U=t>0(cb?_g2@ZAg3jwUPs0000=w`@2xDM>2JJ97g^GQK>L7s4Iz7u_hCMwu`FSptl zb;3l^gG?93NmC385!z zP0nLa9zRx7tC0qcJ;l$Pcdb?FF0_KPR{9p!t(J|cE}=#&_h9$BVz=d+*gWd!GBN$6 znL}a?G`ZbQnVW!4VN_XT(lrd~0gHQMf<@;XOFnIEd?qE;;LX?r=0IYWRI&lP_f|=M zZ&%{6(mV$l%-}{&V|0yEvjs6i2#m_~0Exnc3@O6`$?Q{PC7_O%S>$p~v&->WPni*~ z4@72O94x=c6k4R+EVgt~G-3nvVL}r$86T?U!m~|$hG~R;V0o09!wltV!fjs$67};DXuCW=6392!IPK+Q4-?P)5eI_TEA3?MO8aaeE;%C(e=vh-W_zwqYZIq|ULL6q zf)lmIIlr8vVCmR-Q13Hx`U7{aeB=+o1cvFwsRIIW0mmX=bLEQg4|qL=Gq8sVummXv z?2GPbY!|0K;3fRgU7B+O#Mcpt_Bo^JCL}KQ2)79$E+-$~1qV_%IFG?!C<2 zr@wy54BYo!jZgp7wR`{R-+YDubZ(4q?Nt(E-oHWS_kaAM3Pc&oSNZRyBeh3I>$cWH zQ~#GwnG`+sT@ez$skeUKoj&#l%vrSmIPCq8AG-^5)Y)*XeaOWpdig^e4`*tNnD_-- WGtgc0-?cmd00007?AoCSl^r%yw;K*ss= z=aHp=>>D?307;-iAo>6Q|6jj;UAuPe+qZA8U%!6#?AiPG?;k#Vc;Ui@d-v|$x^;{1 zUWyFRbfJC2jmS1PUhyV4T19X-IM;@xXxJf2$R%h1yHEX+c+y1Aij`o^$E&DUA9PVGS`>sCsLFN5i^@YJI)_Y@vtvsv#eiD7V(dyGa z=V!`7d%ia(?V5M?e$T^wi)XNxxCs8$5%KXCbWC2_w`6rkWv!>m^-a2#Z2yjIU2Go} zcTU3Y{2%(dHZr^B^0?@v%Ny^_59b!7 zNJ{amJW~DWaEN=Y@zqDY$9;4DPTSjj>ch3Qs}is1ct4BSQ@KR6t?~M*hAU5M7X~$b@4BJ?`AK$Mv2pH_Rfi^-e^lsi-u2+p)JsJZSlhlnc`!fe(55X)j>n|C z?`J>c@%=wNE?1N1umR7pf8o>IJ&XQV_vPlb^xP7uVQ@@(oyzw7oBR}Z|5cVBnhzYW zklo=E`Dt@y!u`@e^G+n3=w@?UZPfJErMFS>>yg!yR5osR4p&zR{K8`TX64J4c|j7N z-_C3gnPad=#c+9`@U_LNE6*_eVKdw!xqgTe~ HDWM4f8ZC+q literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_disable.imageset/mew_share_room_wechat_circle_disable@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_circle_disable.imageset/mew_share_room_wechat_circle_disable@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7be74f5b14d7390871d306e89a538dc16732dc GIT binary patch literal 1303 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 JPDHLkV1fd#Np1iD literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/Contents.json new file mode 100644 index 0000000..7bb8d2a --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_share_room_wechat_disable@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_share_room_wechat_disable@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8b97a6b6bed5b732ae2f17bfa1a7e0d663b09553 GIT binary patch literal 858 zcmV-g1Eu_lP)%*@Qp%*@Qp%*@Qp z%*@Qp|NsB{`}^gwv(*Voh2)8F6UOd5K<0000JbW%=J z0K*vZK+O-Tw3TvINCtf5-=uxvk|cHj00NdtL_t(Y$E8<`&a)s46`gYzclmy#1)TH! z-|`m%RxEKQo-ENYkFD)#DMcRV_SuM6C1v%hn`e72cB8xrxq`TryQrs&%;IwTO(mlY zVw+z6$xZxiIDfC?4^;OekH=N+!1a;Mj*z<`GI=X&xf6BC>=O4kdu97UKJS1?zdMbU zHegXHg%*s?MlH#aT%ZTl5fluPW0A3Pk>9UXj)LHT{vN(O-xRclR*jmTCTF#=Zox2i zGwYewfEya@wDw`_sB@8UM@b-W7+b6jn~9qXPp`r|x#`OsD@9z+*6aHApJK)kB!(n*H&N9MwD5K@h zL`qoHiu-*o+W8*i-#ub{5DFRsaL@tp7J-8ld!|0|kJ^7msA6(X1nxhZPqHleqQ zs*98B;zi`u-x_>P*-%})JYEG=Bc!R+F5S?_>Ox)~Rk3g~WS6)&B;~&X#7-(K}on@Ol zjTJe34LFS2jSQ6fI~!a6K3T`pNdN!<07*qoM6N<$f(q=u82|tP literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_disable.imageset/mew_share_room_wechat_disable@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d3638699495bea3078bf2a16beeb3146babbfb16 GIT binary patch literal 1376 zcmV-m1)utfP)rPE!EZ>I&Z=7W9}uGonzttA8yJZ;oSINY1f1tkll{00e|d zL_t(o!_8Uenwu~Xq#A5+2`)LE3KHf0Uon)JMW_M(Qsx)FL&Ivesd#RLhxk~eXFo^~ zN&^3!7RUGydLQGEUoU=w7D)WdHIF~x4Ud^0AOiwFdxblB56_>-0spZ_nbXxrD-hjJ zTP40nXeFXF-lQ>DyoNjvS8I`>jkp}wkv}7}8PQ_}@sB&&h4kQJjxT5@&Nn;r%}2Z8 zpR5jy&<6;PX6EBh^bvd`_boynA~I+agUMv*CNm2reu19?-LBk*8}j!}$SKbnZ~yJqgxoQCx< zXS1GUFuWp0Po5?pUXcWj`++8-K(NNhorZd)OT#er^Nl^<)oh`L$*Q7Z?#P=^E~Ts= z(@wIIMNkspwpiegiX7#!z0v&rqoTB)4Hp%y*xZ*!SHA}8Oct>>20qiF2Ie86#q3RL zTs~-=*x7>1+2G+P{BK4_sKx9c?sGhlLKZ`Gbg~avP=AA0%t4YoJL*EwgCUpIUzI`3g6Y$zk?ilSbDpxu~eMP22&x&HaCS|?8WkK;v44Z2DeZr zw?$MV(9+z5`xeYaIR+y$SM6d8HDOZ|?prXoQD40jIRycwmo3;L2+F)O{IEN{)O2AR z_1S}5v^!nUk!ondLa^#Bj4*|WC*`8qGyFGiJFivPW_RF0?AbDmjcvSCmO$q2o_Nc@ zG`gC@F%)qLEjDWc)Rt0NVl{A}{Fxl@CAxRn`j%Fj{+W1zVz$!s7#ODGHn=j7f)7e3 zEw%F~>uK2o&s<-&eebN7kG4`Nr7$6Z7SE*8PU^f&bSTSwu7`kDP^0BD(<+jA1yaEz z?xr^i=o%zHkET?b@^sV|;vuBSq)$b_pA5;*;~Q8ls?Z8lO*&6;GUR7HO=n<(XPAN7 z3ZQ{0uEf1AxaOd*0t>YtL)%po0nlurhHXcorH0yUT}qp^zQYnn(Ryf76vI-)h*lFJ z$y2kBfz@3jI`cV$W#fj%9>lPmRNkgS$wn2%Z2W?aof6ngk`k=a&#)od4PK~Gq$J8> z-ljC>`lY+~KxVk>b){Rn6tGP)z`b!IjV^$qSlZk<_ghrxU8u@|($Ib~q;67cvScRx zH<|5lAw^E^F^3o-6K%;b=Gwr_l;fOi-lsP#4#Y1M`{_JS{75<@P_vrMuuOR@3o$;L>JU1S}4w;L8 zc2Nb1nQyyZdrGy=sd%tji!A@xy%qTf}>>cVCwvG0`T$S04V4m)*bPCBEg? i*%f_u&2RCFnD_-*J9o-#IWF=50000KE%5S;t&&u-Kv+T?A{PxfD-oEbAG|P0}_vohR!aL1* zXxNut){%+fu7lsId)}o{(}+pYfGl-fIW%N2HPjx2W;P3 zFY)=I=XBjPR>dmMN+nd8MVrtWHIgG{U=a({5W&*Ho*H5{^1I9Ag~EdsANFc7hDO)ZRGh9EASA&HBa9|hY0MsoUz`7YSU%$lFJf;A7n|TB(Z$g29S@6A~ zel8JL;o;?dfqBWlS>-pk$wP0fpA{nZHv*LQr?DYTfuup%&0?;U;`z!!?s)^la&D)W zOWYxwZV$YXezsQ?1`?1e&a3JYw#Y_aU5z=!-0TS4DCT0t(GYmoGn|w-7?XfUB|s85RFUi(Sa3@x|P9ch5N^-|0oZTJAQ6}{@FuR%5ds^pm@&HIIJHx!A4 znAP$w<|)LIhKrh}UP?ekr;D-uDi&NIB1xuOtc^{HGlVKtiZjTHdt`HWAw23PCU^>D zWOFCS3MclfB+v81DP-GN)~TP;1I-gyX!2XTqZC2^^D&1W0V(@=ZkvN^nU`>Rp=OIfSy;4gDz*6mhFBV7Oh002ovPDHLkV1kS)>{$Q+ literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_normal.imageset/mew_share_room_wechat_normal@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/MewShare/mew_share_room_wechat_normal.imageset/mew_share_room_wechat_normal@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b0536524544fb3b8ba90ffad6cb95bcbabfda9b3 GIT binary patch literal 1722 zcmV;r21WUaP)!%N#%CeMXClXEA;xAQ#%3bMXClUDBF1MT#%CeM zW*)|4A;o7R$7mwPXCTIBBF1PV#%LqPX#fBJ`TqMU$ZYcb_A$zGLeGBE^x%u(usO_k z+4bei^4qNH#_0L)P0@v1)sTSRsNVPKdflXN+MQ|Gm{Ze=!tm9R|Nnp8gkeesC_Z#O-+tJc!mvdPa*WAw>y!uko-JGw>t^lgF65 zB6u3Du27D*IjDruTN!hI04k!>FJZ2O$`F4QINSqZ4NuN884 z%U!6f9W~>VV`LA;!FnPD8$&=q%ZOF?W`_R8UoTIKlwMw}i)vLq<)@^{{x0D)Og;A| z+kMQgo(fdys(L1-+lO*XFjOVWP1bn(9Y&) z(e~(N8O*e3>I!f$PW8weeUhQh{yib}{Jy$%=Pt6K-eAPE2aT39Yc}>`as2V~&OvFb5W*jv6h?iPW1g*#|8%w8#BPP1>Ozfhl*%fV+IQU2z6q%|C!~>jW^&gA zlH|y!Im$9-rrW#X$K34Fim0g~5)d37B;W*&Zr}n&fDk098@O!Xif42Bx3}PQo0`z1 zvX^Rl=Pw+QG&U%@4=gv*^ExV>f%n5`^d3XIyjfxKI*5 z;F7z%uPp+5=JX%lOclVmq>+D99MFzDI0uhQKF9;c({?%qKvFAr>5I3(~n>SRlwlSc6_bp z$%sQ^ttKZK!;MYf=|$8&BSLE3WH6&~LH@sm3h-8u9mh2viiskXHJAxA)))X2@T%c$ z0>Fo6Flyfb55WWudtBeG1-6QX3#*3o@aRs!`zdaOhk3Tr^v?AL_jpbpL2L^EUN4{r zt}#B47GtAw4^Gw=MG{%eTM~V^l-4rb&mCz>yTFS9DRN}HIIqO`>npfeDPw~y;UQQ7lP5-i$@%YKTqwIo*py{4} zS*}9g)3x|+Bp~PDu|Q!2DnUE#qg*3rUm;e5zA3vx6#61~8Ld9&y0-Z$bMyT#UNU3u z*RIB=f9l%3_5Qa%LtwNk#`jPX%F%6Bka_&CK2%}6^~9(A*L@QnM|=3NDz%yPzkJGs zXh`FFDe+jU`gwOcX!1WBHwV4O|M;;x!JE|YeGWTf@`+yT3_p8)>4BK|4Z6&x!*Dw_ Q^8f$<07*qoM6N<$f(2Pr)&Kwi literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/Contents.json new file mode 100644 index 0000000..c7cfb0d --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_hot_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_hot_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/mew_room_hot_icon@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_hot_icon.imageset/mew_room_hot_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3da01b9dea8f54f01294356ff03b26ba7314a0b GIT binary patch literal 848 zcmV-W1F!svP) z{f{&MX$k&x7XFSe{={(ow_*FEM*Xx|{I_5HwOjnCP5)#D|6l<8uvPuUZ~tZn{lIJe zgeCu90Q{Uj`>|I2u2KD5?rt5E)(KL3z2|8*7q!E64mQ~!=F|92SvX9@kKN&l2I|9~IFj(#puXxS)+=VOUT%Ha0Q+{Q2|p=G@!Z(#pQP zxUjCMpqZDJlaF<7ZemtdOhhLT-|dCL0004pNkl&0poCNB3c~FW6@wimX{;Joo&mTQQ)Rn zjy~k5ShRQYAUi%}-z-x=Z;?G4A{Oj&*)B|j6?i`Ixhn-(E)*dAT!Zjwz@DF`YsL2~ zOG^;y8+|)>3gItN45Kks`PKD{K5z|Tg%~&tgGu81gyehnXI%ss9o%kXJkRWJhG7J_s@2RyLR7@UU zSXD)d|5_I{r|M{}6a)4gRaG^&WX=IF+tRd_SW7Y>MK33cC5ev#kn1*SmjTIyX-bmG z?{ffrNS#(cV8C46@_3&2Vzh6Yv{>FE1J*r3uq^Ag)3@rDB?v+cFu6pC{)~6(Yh4f! znwelhdDEPFp#2^6WGjPEn(NRc1?g4Lm+z~zm!sc%m(M)J!Jz!C<~XpOnvHQ_ al=%a|E>$;JU;VdU{e&j`uvY(G0sN~^{kvrTziIz$ z3;nZM|78aKwORjX2LEIN{k~@Xx@7-s4F1J!{%;HXzi9ulR{5Ml|8f!hu~z?h5d5)N z|6&CFwp{(YWd3gv{)j67T><}i82!R+{I_2JY770eS^j(;|7QvRbrt=xSpQ!E|7;HZ zwOs#X2K}Hy{e>t0c^Ut66#TVY{Hjmh3I2;L{>5q_IQ_h3{h~(ybrJt(2mG#2{HIL(lQ;XFJpXzb|6Bn7 zU;_VS1pk2||7r^UtyBMJ2>*H+|8*1pa1s8gPXC@j{=8-WqelO34*j}f{kQi{QCCv>fW!HiF|f!W?)uRN;M=L6%!Br{QCFy^z!lW z>FDC(;oscc+u7FB(a_Av#=E+yotBY+V^>K+Kri|E^z-xQN~%fP?AtErHVgMoT- zZfj^>R8u@MukDh@0009INkl|L+--fIE`2#^K| zkY-IoE7TOmzVPIf@YVo`%OE273;Sf3TpP-yFI z$_Cgfx3NRn5G~~_%T}~xaZD8l!63Vumj&QE2(sn7HwJc}?)wf{+wzTprlI|PUy$w9 zAjp@SJVWhA-@ejf6+!CfZ!o*&#U)UrL2`PEuJ2LL9{A*`ZG{a;>#%*Q^%{T9u#F7{ zgEpJpUX`aQvUe?aT&}gO{&XSrdC$8zSgW2gcfx32f3LQ>Y$yH-) z-En}N9{BQtES2OK%O1!Q zdf2M|1j;-n5BQlxGIc_dC%nKhA&VsxVwm4*{4_ za-R_p86aEPiKr-d(r}^b%Y?2E1v{wpJEE%Q0cE+M_A=gZ6BoczraxF+=|8~eC9tH= z_>K8gAn&+Zd(jXB0QePUq)a^~OAW>`opK1XGBEJ68M#vJbt}_-@ABbpvmY~$y>Eou qYm}d>`_m3*Hd{Q`sMjL5Kz{*RH7v%wYuZZy0000%|Rm%qvcrY$9x?o z>Y)^4K>}q1+Hx?&#q(SYl|xa2fg(tX(Z|OW7tLu{sD+A!u{JFJ4RtBrRA8cqXQlREzvIVLqXn%d*MsG;`z#CPW4Sh zzO>k`HEUXJI{HE@NSmt`?ktjBnwb_J<}<5hHW8R|yEPrB-SIBy$QUi*qrAvB-rZjs zerHF1LZI9-Gv;bOyZdAekz(>Z)r2q-PZ`oig7uGCN)=vvI`thklN|JWh;21l9Bt-R z@;^yRV;^$x)!#`*QZGjFHN#H}&gD?E1HS9GY^rC{Y4&|*DJq504#kC7uZK-Hc~?jw zw@93u<87j6PTy2pTi24)ZEV@YW-8|1FC0`sb@LW_gQtxLWwB56(!QRcXr$_GG@{2E z&^~6(O}�%Z0*wHTw*ELRU4ssbh2Nza`J=&nM5kbvLJ`Z;h-Q8C~2L>A1K{i=jcc za`lua`b7laXHm)Xb=%T!Jk78xleKTAt41^n#B zUFZ`TxaA#gyzb@l%Z5ew19pAi=c^l9$n#yB;zbity^nIg`JZuiHa51lR#tP@46w1c8{1&`(^P|LF3Gi7Au(@YRZ@H+64>BTd63X?Nw*t*88SlGV|d+V5reF39A8 z=P%HH8nIqs_?U->cUHAfv?S-7=lpa-%r{I^)9J(a^q4wvUkZJ1_io*EaSvS>XR4#I zurBwJ)_S(oQrjvmH26HV$F!vM7N!L@yL6Ye~IqDV6fj>M_}qdhcZoHTJP)8++L@ z&oai?8H_EmjIoTZMWp-m$M^fr{pX&0?)lF5+}Q98QA9?BKp+tH^>j>Ew${pMtl?kb z=%x^D0)g*@@wp4SD-xqE=uSs>5gJP|Q;EJ}kbTkn7VooBlZV=D(6Z1?1uFwRMQG0e z?>z=HG5;Q=sVGUqY&p2apyi<<9jqkKv(T4}fiyIfpez(MacGG_VH{|wXi7n6JSx-B z8Hd&+6z750jIMYL(omj?9t!I7F;ju5W-y{L(++k#dgH-(i#jscMfmXv3mqUo!W0uT zZQ!+Hyb-mLsH31S0pk&v%Eo6VsKHnsLy{l9urS?(#ZTZdFxrTrT8z=rm5tsL~AaplTnd?_hj%2k@OP0vR{P^(J+t!b}3r&e`V{#jOQ4w}=_2Zj@Lvw{(@~s;lz5~>qCOn)!5DdpFgrAx0}~jj zMZGryyztfy%@4qKL52$o9P!}}>KxE<8`;-UY>R4Zq+P|24)m9Rl>%SVaJz^9$^p4O zFf}wI2nmW1iR%S732zjak=iCFE4*7&W%mYY>3!P|A5u{e(LH+jz;5kRN(Xj0SQs2X zra1KSrkSa}me$_6ndZc(@cYJRwU(zj!+m{h7Na5|+K1%oY-?+A>bLK6yvZ?EOG80; zcvxV7osIeNubjb7R%1;?Npb8`-zR@wKI!ToMIZ>!^>u!~phuqy?=+J!k*-!K5f!~l z(c7paAn@wi-)c1>{eSm;?ss=e43Jj~*Rh)}Oa2z~LG`2M>5$dox9ksuu5R+xTy8x2 zQFYQXH&u5zA|&9Gj*H%oV7*)$nYee>8}ubd#qBrAi!BQmS)4q)&Ms0(MeLkcYzqH6 z{CS{l`g8AszQr3}Tf|=;q1hiZg{}&E!|>PmW7Bi#OzmRVJTsyu-8?6FcMWd-Y|y zmy`yPR4lSbUB;BTS?p}H|0B;ON#9m`f~btr09C|CNW(C|yCe7H@pHTBLY`-qB%fJL zQ#VUXUX*w4mlrZ@RbeW=+8x?5mLtI_;zazRayrGzDUT+RC?=(Tvgak`!Lj2#Hg6BR znP(UF9Ql5PJ;e<7_U%5+RqP6sF6Hxe%_K4BMlQ*2ZE{#Lb&uC-4t^aLCa~6=L(9A< zp&DvuKS25VEV}I$Bfqe_d*t>>&akX?CyVtexcuJ8+r%3k_vPd!<`#r2+wu$o5Y^Xn-Z|suJxUyx$KFy(d|Ta!O1lqDp@r87A5hYnq39&W=e;?Vq zmEkw%-AQmdV3p~#hNod+p4-uR)y%AI@;Ld`!-aEH+lKAw$6_er+oVoxa}`>szf$Yi z^|(UH%}>IioRlN%mcb5|9eg@>v`T8)Z@~Ecc~96S{`_gIC~(LyrFt~!KIu`-#JVR> z@>Eq-je@RRvA?;rs99>|uDoiNZ@%)o$@-ndQhND!)>4zN?_-bK&NK5%mo{gu+4ki} z{p@LG2WMK7D3)KSIl$`fKK9!Tw{O1T&vxrQ^>*(pm^(D@&rQ+yYioZSRagH!GStJ! zWN7RUtPYK8wapJRD(7;`mP_2+`$_xH7S_Jw*4PvS`)g0~xkB8of{a(LB&JRWb!_Th(AvV(ya*Y=Cw_`Gre zh41i4!|d!cy`ku63WZ{)pio)a)R8nd`%XfxTw1U~-sH07NZmdo<$ZlFDhKmYQ>oOr znaHh!!IjGSKGHw@sX~9m9Hd2)$yLhLQ-=O*6ZZf$2DHE(2&*}+$i6cLlyeVW_|d@?5{O>L5+0Lg23KuS5+vs#0_Ou1zQu%-OHY* zi4ENIn7%e&x@vnUS20|0os|kR-r2`UYMIO4S#3j%^O4l_wKcio$5ay|(+}$L5$lzl z#hKUD&zq?eRW8ugK9eFj{6Y`qtJcrPTHX$Gju)Z^ipc87(>#BcY};kIAjdD4Xe#KR x7?f}~>}OGvk&WO$*VYZs_4xQ6nLtl#m05>Ow*KOaoR!B)(APE8$vS1@^FI}xco+Zx literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/Contents.json new file mode 100644 index 0000000..64cdcd7 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_lock_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_lock_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1719578ac5af48243ac5c73171b46fcc18cb7d6f GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`*Z=?j1DQY)KQK6Q&;Y28 zrzFTP*qA|9i~W7>3BgJ3j>%D3?||YDJY5_^G|rb!GURJ=5OCcu(JH~^$mQK3$Iv70 zpr5d`m$i2;Yj3aUJZCQJ^9f0gi#ZGVpPtj1p(-8EWV~m?&G~a%-F?yzJUXP?Ejpu8 zyT-)Di=|Nemu9zVosK8V1&^gO0*r0m8m;OSQ8ZmDU>bVb`G7r#=dtVq)wdq~60m&V zV>s23cZ&3@DvcF8ADcwQ5|(MEU2tYhFGw`=y>^nS4rpSw7(%-#209FFD@T>4iQN7uASbrzmDCeh<4x!9yVH>O>mr#_`h TdbY9`(60=hu6{1-oD!M<4;zwx literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_lock_icon.imageset/mew_room_lock_icon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f2969dcf49c5dff6a542192c80a322eb08865f7e GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s#sNMduK)l42Qq;q@nFKI5Obg& zfs!DOQ+qPbXb9-)j#l0X4awK z_HXly?rM2mE38`gW{SRy5#y1?;+y$h7y>_>IecHXfNk+b&cDnBy?K)Rm~9S**95No88*bU^;t=g561-8@iP6_b zlXopcgoBSmml%Weju?C21KXy2@sB+m#pV>TTJb=1gUkU%u?Gj$9x#-%Phg!grHfVI zv7nB^^hvr3FW4qYzhq0A#k9+H^>RyrD>G)+uRW4A;q32&*8?N1^8()PSkU${=E&;D zb)^f}tXp$+>5rqg)*d;O6u-ktC*E(`dVBjvOBFY$P1X?t20w$RtDnm{r-UW|DIV!l literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/Contents.json new file mode 100644 index 0000000..08ef3d7 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_morn_exit@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_morn_exit@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/mew_room_morn_exit@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_exit.imageset/mew_room_morn_exit@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ccab3ea64381930972576536df9984e4986707bd GIT binary patch literal 1332 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 z zDe=Q>YpWF_TtB3hN%P^^C>u^}_rmG9t6l8|fG2T(MP?K2w!9iw|KD0gF zk0mYMs`P1@%qQ`p5X*W@( zu(`~vRLa3xq_CBiPEZz-h4cyWdQ4w6AZ!I9s3TDXl&d3IHYGINh{w6PuRd&wgr)#d zVSsA()iVepI>p(sfenD^8Q!QUhBgHBpFO-08WsH z(1xUy1Mmaox{Q4Jd)SnHS%IdQfi64s4hJ*$rM(;}Ll=vcv@&mM33o+ng`*lSE!pN z?yCL208V@7r@P&Rx@wJQk%h`AWEO7)eL%!-2(uZ1CWfn$9gEhwYtC@>cg0mg@Y?}I z;TxZIAo1(#Aw6ZXFF53B`3pCLP;Oo7ETIutxhV@{4fw|!WKi{j@cSeH!|i{VDGOt0 zlkTgtpy37`9(dao_F@jvC~Fb*ySzRgOupW1Q(;IPArD_1oxb0zf1y(8ZSitMo7YsP z1N-dAgoI0=-Y9Hed!@h>z}v%HjY9X{!yzw;UU^sK_WYVkD5^`&^mFN4^IWCP^2k~f zzrliH0Hw3@CvHM*H=NDKQvS%CU8_nu<4E~ol`IX!gy?sl=e~3u!F)^(QANe5*fRj( zt<=hG0Nl>X2+;leh(IJ>)wCBOw-obLX)?cavu45lUx%xTIb9=ZUfHKY$)&v;6~)rY z(F%&JbdAi@Cv=1j$8{YkK@PTc9m*HG;mv)P>!wU5+tGI16u9RF>zMJ_GUoD-i-4O< zp`MBLGf1PKX32xWgU6pGm>vXV+Sct(Q7~K|dCt=UoefWX;zFor_1gNya>w#C(t2F{ zai=(7j?JJ&mRl~s=uhfBPz-v}1x+C-(P%$oCVTP%S#5Kl{Da>h>06#MuVB?{V911a9w4Yz%EKiyzv6SY|9 zQN!yHiV!8|sm1DB=WlaiKstBseNlSkf*MqLUMR8pX#6om$L*1J=Q?{xrAkIgk2_5zvHK-D9w$)#@0A+gZ>gJiK{J;jX%LseRR(%Lgq*UZOJC&efhr ztg+L<(Z7P3h08N)F~N9SGD$FQHqvWMhjv<*BCOm^jEcXS2T%Rud8|y-9Yj!Y9>A)U zdfzekF=MT^^U>owT{J~$tV&!tE|eD~xIAv%wGdfgEv6%+@e}k{hYHZ*PTF?2BfsqM z$2PuaFMWJaTNcu0aJ)Px+=_*hq9KFA%FObH;M^r^+(5i_!RD;qQa)d#$-i?sR1XaT zA>{h@J6<0dcA#0l*Gol%gpwLwr1Hf?asVPT^-Kkc{Th~<4heMj<#jLS#7#yO=Ns^x j(FU(*q1UONsg^V`Peu$ihs>%x{7Dc2?}BSM=a=#y6A|>j literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_report.imageset/mew_room_morn_report@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_morn_report.imageset/mew_room_morn_report@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf22a5f32e34238a8f50970ebab8895244edb659 GIT binary patch literal 2453 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 CN0dnb literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/Contents.json new file mode 100644 index 0000000..6dad9e2 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_notice_edit@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_notice_edit@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b430ab314f458ca911fc37cd38da9b012ab2184f GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRp!3-o*pRS7lQh@l3)z*%nXkQJHRUtRPUH9_6boRgfbVY@HnDSq4G~}|*D`pz`njxgN@xNA2Eeks literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@3x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_edit.imageset/mew_room_notice_edit@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..98eb8233b5bb927fd3b5bd8cbe243ebac283b952 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^5&v1&_p!L6Ppi;II|C#r9bXzp1 zHeReR(kZn$u)b!BjPu)w3G-WT9{$hvLA8AE>UE4;b_;(v=bCW6=4<(Bi-MPLzUtDb@`3FG&iuCB^0lvQ%R7a&Nc5TQt5*C=t#eC<}2FBUdEyY=% z9bc^B;`#84PKKjeZ`KI?WBA|2 Wd6qHymH;r&7(8A5T-G@yGywp=+Tz9l literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/Contents.json new file mode 100644 index 0000000..98cf9f6 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_notice_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_notice_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/mew_room_notice_icon@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_notice_icon.imageset/mew_room_notice_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..376998a1b888b3965131ddc64fbaf3ca9d6e6910 GIT binary patch literal 743 zcmV?P))5UGm z#ca^RY0$xc2-ger{TGYgi z@#Ky4CoB!mH_}-lV6an>D)us)`RKP1h>tf|Ky7C z-hAWMi}B=I;o61k*i75lb=}Vaw#|s{;*f2-H+a$-*AH~s*_v)1V;&$)eb?)AL z;m?P076$+T06KJ1PE!DD{Ksnw`^U$}$7@0T`|s=O`uOzh&d$fh z#KWbdo|cwfWx`Kd%?{I zyVX+OSCNllU`b6P)t-s0001X z-OX^;#)#|Oe&f}0*~@Iw#B9*QaMi|m-OqO0&2H1ib=u5s(!_%0*m2#_dF9Y-(86=q z%7p0KY|z4d;L>Z+!)?;TY|+AO(8GD((TeWkeBjb-(Zhr0*?i#Bi|*rd*vf3s!hPY? zYtO@M(ZOlb!*SKean-+B)4hr9;da@}ZP3Dp>)(Cg(}?Zhd*IW7<=Beu;&|K6iS6KB z)52`e!iw+Wd*0G};M0rnC_Mk_Y?pC07P_BPE!CSB^~}D{ruwL8xG;&+7t=%;oH{B$+4W5 zH~aba^4-hG!?t{LVp0+Z_xJ1M;nmf|z`(b)s(gHOXJ=wzQA0s9Cn8!eiwFP!0nO!} z{Fboc1Rku|&(B-(9VR?45^+PAZnDH_E*Q;+gzY3mNSX(p*~YN~27#+so@#nv>fl;+PSzwd(4^{T^E$TS@nvb9p_ zgN*3=Vz+yK*nkdsN6|fp0x)u#V`tp^s*r9ItaTXjp?6hzuQ3`7Do} zl}D37z0Of}H0mGo`lCs`UPJ`T<3Ht3v3wa((M7O1K4|U)%i*BtgSiBkj549CU@cF&%a5b#0xJU(r+u>?F#X~0ZSqu?HWU|SKx@d*5 zhQB$YG>+&UV?BR#Md=2jU!i8R#}Av=#bujFJBXs2aHN}XuJK?)mNgs>i-jN2nOAr`nt*J%6B U4{%sxbpQYW07*qoM6N<$f>)mk5&!@I literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/Contents.json new file mode 100644 index 0000000..b8f6dbe --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_secret_person@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/mew_room_secret_person@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_secret_person.imageset/mew_room_secret_person@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc70e7b9e71fbce76bc9aad3aaaa98610925968 GIT binary patch literal 1101 zcmV-T1hV^yP)P)t-s#-abj zsQs;qLw{yK-ulG+O5!pYcOkj;Vugg%_TN!^(k;7N4 zUZecm627C+AC2@gT(o-%wG56BLlC@^9EJN9qGi1wQ9BNUB5cK(sNrHO4uUGsaI=_M zbzJm{U4E8+6qLa%?lS7*Ny|vT=dnP4F%b1j@N=%^UGA^3)-0YFp!WjL0hBF8$o{9lY88=&sRWTSfXDG$$7BV^xVxvIAQEV2; z94-yJyqCi#ZhFX3JB{7+Q0CfuG*1$@H#7nH;wFhZ+AO82n1&q_xhx{^S<2?aL@wtx zD92#irksY$*>Vo2={(1`z*^k1KztX$@nGSY*h(%jxIDSKZMazC{R0h~yXF@MoH$9` z$E$AF!SjQ2&okgXe7W$mb~4&|8-&5=Yykp_7KvY~dH*Nf+FErBCT2-?a_9QB?`^}loiR)u}z^?*p=0)mC4qT(`YFn&18frHT@S$hi;xj(q+7*Ml*E9xvV_I z%Rv7#ApdjpT&}x1aymuUG3p(#r^CsP&Q-kwxm;(#+`e`3g9J_|JB&>Gx|+zKn^DrI z;Y-)@l<;mMDbl+b=E*kGC75O$DP16oYf0(Sb(rUXv{f#Z6jyW^CpyYI)Zv}uuz?Ou zbdVQ!q<#wSB}?jbcBbSIh04dZz7(dZIx2fm6xyTE;&N2g!EOfn=@bt{MVHDxshbY* zKvZ;SWKgERbm>4;bj`@LemWkAijIs7_0!vdsOZ4rCo%+2=s@(>50e0(>^_M*BX>gl zhbZ&b)kkEP`kv0D_2{5OuxNcJa-o3*_PS_iNTz@L$=)>fy0EMxDIC`s8M&({g~)el zLcK06=qgX|{PjQSTK`QU-=ztq1G@0+3`607uF~o&q3+{}biGbKjW`x;sIuk{7)XMP T!vYND00000NkvXXu0mjf8Z$CL literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/Contents.json b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/Contents.json new file mode 100644 index 0000000..087d428 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_room_top_gift_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_room_top_gift_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/mew_room_top_gift_icon@2x.png b/yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_top_gift_icon.imageset/mew_room_top_gift_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c36554aae513e50d617683f148601f8916783459 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W3!3-pq^PAiUQuzTsA+A9BKOKSoWu}WjD^*H@ z{DK)iKKS}v=-jq)9=7At`a(44XZSiQyg9h4HYr+P`ufgwvzzkFUwceB$iTqJ;pyTS zqH(@-((_4&6?j_2V-DQiC~K`Z{nT&!$E=B`&dU5|Rm&;G3}&Ii;IIBupn z|C9J|HF`-I>*|@$IS*XyVK~({|4q^}u7;FSM&97_9*-if9NnWIJZ_<7gOX+K!EF7V`MG`w^R7={d&9iYIG;cB_{J z`2{ol5SIM>;v{bn=d~@19$wrvTmAO>4#kocRe3Sy?+!FLPn(dTli*{wisyxg@|fv3%0;9%{_sO+^{Z)d*y&zIiS(`9vh-+qJh>0*-@n%{f=>ejfo z&+v=l?}$rsVm3l13SM6gLnI~j%=;uYdpB@2th$-f`Ny+jspZ5V)3XB4181mDn{<^m zvW1JypC?iNrPD=`=F2i|m-m-cn3UHt3%q(PvG2-!eui_oLeu8YI{&L?3->8I_fqx4 zv58-PZul&cIQNu-g0q19q%G2S?0Y|`r+l&gw2;|E@2!&EOgsKBtd6XESZbZ~^@`_< z|M~3}CY`wM!{VtI|9;fdPG$>TQ-9xUCByq^+aws`V>?);ryTxbA#?N7tOLxOJa^vf zOA$Re^Qd56z??HW+m?TLz$LZwKHK zeY&b8&)YQ}J10F6j&oYb?5uY(%&)|K`Yx`vQ&S9F1IzTl>Uop9&+s#1{Q|&g*p``1ePq2j={-6Q3%_o_T(@{qhl)gEO5Y?XrH% z485>X=GLJnTeoQKVqR)HclBcv5%*tR#tXJ*i(h*sRBkx?!mgZf3I59grjZv}-?iqp z?UhN1*kN zV21k~PY$X}v3$6*V2*2kb2;BNzjyW1*KT0!%are_dtcAQY5CxTa-GSur;ZyA|G65ewDZhC(UT#9 zlMg9gjXmz7tzv!jNl!`bK9Nd(r`%iDt}NJ*S#-m2>4B446JNQB3eA(aJf%25F>-OT zQkLr>`JR3IQW9nbdCzRTY;waeeJ%5eohN*G>!#d`Fs%JA6QO#g=kt8m6nSsM2!TJF gU%T}mE~{Y(xGo^uc=qEapoC7sn8fmdKI;Vst01muN9{>OV literal 0 HcmV?d00001 diff --git a/yinmeng-ios/yinmeng-ios/Base/Base.h b/yinmeng-ios/yinmeng-ios/Base/Base.h index fcd9e86..85f8b44 100644 --- a/yinmeng-ios/yinmeng-ios/Base/Base.h +++ b/yinmeng-ios/yinmeng-ios/Base/Base.h @@ -40,4 +40,26 @@ if (@available(iOS 11.0, *)) {\ #import #import "TTPopup.h" #import +#import +#import "NSArray+MewSafe.h" +#import "MewBaseModel.h" +#import "MewAccountInfoStorage.h" +#import "MewRoomGuestDelegate.h" +#import "MewRoomHostDelegate.h" +#import "MewThemeColor.h" +#import "MewEmptyView.h" +#import "MewEmptyTableViewCell.h" +#import "MewEmptyCollectionViewCell.h" +#import "UIButton+MewEnlargeTouchArea.h" +#import "NSMutableDictionary+MEWSafe.h" +#import "MewApiHost.h" +#import "MewHtmlUrl.h" +#import "MewWebViewController.h" +#import "MewStackManager.h" +#import "UIImage+MewUtils.h" +#import "MewThemeColor+MewRoom.h" +#import "MewClientConfig.h" +#import "MewWebViewController.h" +#import "MewBuryPointManager.h" +#import "NSString+MewUtil.h" #endif /* Base_h */ diff --git a/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.h b/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.h index 2a54889..b54e500 100644 --- a/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.h +++ b/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.h @@ -35,7 +35,8 @@ NS_ASSUME_NONNULL_BEGIN /// 根据高度去获取内容的宽度 - (CGFloat)mew_getTextWidthWithHeight:(CGFloat)height font:(UIFont *)font; - +///数字转化为万 ++ (NSString *)mew_getDealNumOfTitle:(NSString *)string text:(NSString *)text; @end NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.m b/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.m index dfbd004..7a2a3c5 100644 --- a/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.m +++ b/yinmeng-ios/yinmeng-ios/Base/Category/NSString/NSString+MewUtil.m @@ -42,7 +42,23 @@ NSString *numString = [self Mew_ChangeDealNumberWithString:floatString]; return [NSString stringWithFormat:@"%@万",numString]; } - +///数字转化为万 ++ (NSString *)mew_getDealNumOfTitle:(NSString *)string text:(NSString *)text{ + if (string.floatValue <10000) { + return [NSString stringWithFormat:@"%@", string]; + } + if(string.floatValue > 9990000){ + return @"999w+"; + } + NSDecimalNumber *numberA = [NSDecimalNumber decimalNumberWithString:string]; + NSDecimalNumber *numberB = [NSDecimalNumber decimalNumberWithString:@"10000"]; + //NSDecimalNumberBehaviors对象的创建 参数 1.RoundingMode 一个取舍枚举值 2.scale 处理范围 3.raiseOnExactness 精确出现异常是否抛出原因 4.raiseOnOverflow 上溢出是否抛出原因 4.raiseOnUnderflow 下溢出是否抛出原因 5.raiseOnDivideByZero 除以0是否抛出原因。 + NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO]; + /// 这里不仅包含Multiply还有加 减 乘。 + NSDecimalNumber *numResult = [numberA decimalNumberByDividingBy:numberB withBehavior:roundingBehavior]; + NSString *strResult = [numResult stringValue]; + return [NSString stringWithFormat:@"%@%@", strResult,text]; +} /// 数字字符串转换成万字符串并且链接特定字符串 + (NSString *)Mew_DealNumberToJoinString:(NSString *)floatString join:(NSString *)join { if (floatString.floatValue < 10000.0) { diff --git a/yinmeng-ios/yinmeng-ios/Base/MVP/Model/UserModel/MewUserInfoModel.h b/yinmeng-ios/yinmeng-ios/Base/MVP/Model/UserModel/MewUserInfoModel.h index ff8f631..6b8aa92 100644 --- a/yinmeng-ios/yinmeng-ios/Base/MVP/Model/UserModel/MewUserInfoModel.h +++ b/yinmeng-ios/yinmeng-ios/Base/MVP/Model/UserModel/MewUserInfoModel.h @@ -15,11 +15,7 @@ NS_ASSUME_NONNULL_BEGIN -typedef NS_ENUM(NSInteger, MewUserLevelType) { - Mew_UserLevel_Normal = 1,///普通人 - Mew_UserLevel_Offical = 2,///官方 - Mew_UserLevel_Robot = 3, ///机器人 -}; + @interface MewUserLevelVo : NSObject @property (nonatomic , copy) NSString * experUrl; diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.h b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.h new file mode 100644 index 0000000..fd51db6 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.h @@ -0,0 +1,145 @@ +// +// MewBuryPointManager.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//StatisticsServiceHelper +@interface MewBuryPointManager : NSObject +UIKIT_EXTERN NSString *const MewBuryPointManagerAppLaunch; +#pragma mark - 登录模块的 +UIKIT_EXTERN NSString *const MewBuryPointManagerOneClickLoginSuccess; ///一键登录成功 +UIKIT_EXTERN NSString *const MewBuryPointManagerLoginPhoneClick;///手机登录 +UIKIT_EXTERN NSString *const MewBuryPointManagerLoginQQClick;///QQ登录 +UIKIT_EXTERN NSString *const MewBuryPointManagerLoginWXClick;///wx登录 +UIKIT_EXTERN NSString *const MewBuryPointManagerLoginRepariSuccess;///注册个人资料保存成功 + +#pragma mark - 贵族 +UIKIT_EXTERN NSString *const MewBuryPointManagerVipOpenClick;///开通贵族点击 +UIKIT_EXTERN NSString *const MewBuryPointManagervipEntranceRoomClick;///贵族房间入口点击 +UIKIT_EXTERN NSString *const MewBuryPointManagervipEntranceGiftClick;///贵族礼物面板入口点击 +UIKIT_EXTERN NSString *const MewBuryPointManagervipEntranceFaceClick;///贵族表情面板入口点击 +UIKIT_EXTERN NSString *const MewBuryPointManagervipEntranceMeClick;///贵族我的页面入口点击 + +#pragma mark - 首页个播tab +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_card_show;///最近在看卡片曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_card_click;///最近在看卡片点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerGebo_tab_click;///个播页二级tab分类点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_show ;///首页曝光统计 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_bar_click ;///底部工具栏bar统计 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_tab_click ;//首页顶部tab切换点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_search_click ;///首页顶部搜索框点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_rank_click ;///首页顶部全服榜单点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_myroom_click ;///首页顶部我的房间点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_resource_click ;///首页顶部资源位点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_moregame_click ;///首页顶部更多游戏跳转点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_inform_click ;///首页轮播通知的跳转点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_banner_click ;///首页banner的跳转点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_room_click ;///首页房间的跳转点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_moregame_tab_click ;///更多游戏二级页顶部游戏分类点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_top_match_click ;///首页房间的跳转点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRecent_homepage_moregame_user_click;//首页用户主播卡片点击 +#pragma mark - 礼物 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoomNugivePopShow; ///房间礼物赠送弹窗曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoomNugivePopClick; ///房间礼物赠送弹窗关闭 +UIKIT_EXTERN NSString *const MewBuryPointManagerNugiftPopShow; ///新人专享礼物弹窗曝光(不统计后续个人中心入口的曝光) +UIKIT_EXTERN NSString *const MewBuryPointManagerNugiftPopClick; ///新人专享礼物弹窗充值点击,点击时统计用户所选择的购买档位,(需统计后续个人中心入口的点击) +UIKIT_EXTERN NSString *const MewBuryPointManagernugift_pop_finish_click; ///新人专享礼物充值成功后弹窗(需统计对应充值tab档位) +UIKIT_EXTERN NSString *const MewBuryPointManagerNugiftPopCloseClick; ///新人专享礼物弹窗关闭点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerUsercenterNugiftPopShow; ///新人专享礼物入口曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerUsercenterNugiftPopClick; ///新人专享礼物入口点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerPersonalshowTopCardShow; ///个播展示卡片曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerPersonalshowTopCardRoomClick; ///个播展示卡片进入房间点击,点击时统计房间id +UIKIT_EXTERN NSString *const MewBuryPointManagerPersonalshowTopCardVoiceClick; ///个播展示卡片播放语音点击 + +#pragma mark - 个人中心 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_recharge_card_show; ///个人中心充值卡片曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_recharge_card_click; ///个人中心充值卡片点击(跳转充值页) +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_noble_card_show; ///个人中心贵族卡片曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_noble_card_click;///个人中心贵族卡片片点击(跳转贵族页) +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_function_show; ///个人中心功能板块曝光,曝光时统计功能的名称 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_function_click; ///个人中心功能板块点击,点击时统计功能的名称 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_quick_entry_show; ///个人中心快捷进房曝光,曝光时统计房间的id +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_quick_entrysuccess_click; ///个人中心快捷进房点击成功匹配,点击时统计房间的 +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_quick_entry_click; ///个人中心快捷进房点击未匹配成功,点击时统计房间的id +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_banner_show; ///个人中心banner模块曝光,曝光时统计banner的id +UIKIT_EXTERN NSString *const MewBuryPointManagerusercenter_banner_click; ///个人中心banner模块点击,点击时统计banner的id +#pragma mark - 活动任务 +UIKIT_EXTERN NSString *const MewBuryPointManagertask_toast_show; ///任务完成toast曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagertask_toast_click; ///任务完成toast点击(跳转活动页 +#pragma mark - 房间 +UIKIT_EXTERN NSString *const MewBuryPointManageruser_visit_room; ///用户访问房间(进入时统计房间的ID,该房间的停留时长) +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_return_click; ///房间返回按钮点击(右滑返回不统计在内) +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_online_list_click; ///房间在线列表点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_collect_icon_click; ///房间收藏按钮点击(统计收藏房间的ID) +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_more_icon_click; ///房间更多按钮点击(统计用户展开面板后的行为:● 举报房间● 收起房间● 退出房间● 分享房间● 为你推荐(统计用户跳转后的房间ID)) +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_giftlist_click;///房间榜单点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_ranklist_click; ///房间小时榜点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_mike_show; ///房间麦位曝光,只统计该房间在麦上的用户及ID +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_mike_click; ///房间麦位点击,统计用户展开面板后的行为:● 送礼物● 私聊● 关注TA● @TA● 关闭● 资料卡 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_banner_show; ///房间banner曝光,统计曝光banner的ID +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_banner_click; ///房间banner点击,统计点击banner的ID +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_pop_show; ///房间pop曝光,统计曝光pop的名称,如新人充值、糖果树、航海冒险 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_pop_click; ///房间pop点击,统计点击pop的名称,如新人充值、糖果树、航海冒险 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_chatbox_click; ///房间聊天框点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_music_click; ///房间音乐点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_privateletter_click; ///房间私信点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_noble_click; ///房间贵族点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_gift_click; ///房间送礼点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerroom_more_tool_click; ///房间底部更多工具栏点击,统计用户展开面板后的行为 +#pragma mark - 收藏房间列表 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_editbutton_show; ///管理按钮曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_editbutton_click; ///管理按钮点击 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_editbutton_complete_click; ///完成按钮点击 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_entry; ///我的收藏页面访问,统计用户默认落入的tab分类 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_selectall_click; ///全选按钮点击 +UIKIT_EXTERN NSString *const MewBuryPointManagercollection_delete_click; ///删除按钮点击 +///许愿礼物 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_wishlist_pop_show; ///礼物心愿气泡曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_wishlist_pop_click; ///礼物心愿气泡点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_wishlist_panel_show; ///礼物心愿面板曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_wishlist_panel_click; ///礼物心愿面板赠送点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_wishlist_panel_close_click; ///礼物心愿面板关闭点击 +#pragma mark - 首页搜索 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_allinsearch_entry_click; ///词条点击-统计点击时对应词条的名称 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_allinsearch_entry_room_click; ///统计点击时对应房间的名称 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_search_input_click; ///统计用户输入搜索框并搜索的内容 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_search_intercept_pop_show; ///统计弹窗奖励内容的名称 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_search_intercept_pop_click; ///搜索劫持结果弹窗关闭 +#pragma mark - 打招呼弹窗 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_sayhi_pop_show; ///打招呼弹窗曝光-统计弹窗主播的id +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_sayhi_pop_find_click; ///打招呼弹窗去找TA点击-统计进房房间的id +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_sayhi_pop_voice_click; ///打招呼弹窗播放声音秀点击 + +#pragma mark - 主播评级 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_grade_profit_pop_click; ///主播评级入口点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_grade_profit_pop_show; ///主播评级入口曝光 +UIKIT_EXTERN NSString *const MewBuryPointManagerRoom_grade_profit_close_click; ///主播评级弹窗关闭点击 +#pragma mark - ID复制 +UIKIT_EXTERN NSString *const MewBuryPointManagerID_mycenter_copyid_click; +UIKIT_EXTERN NSString *const MewBuryPointManagerID_mydata_copyid_click; ///个人资料页ID复制点击 +UIKIT_EXTERN NSString *const MewBuryPointManagerID_datacard_copyid_click; ///房间资料卡ID复制点击 +/// +/// 埋点事件 +/// @param eventKey key ++ (void)mewBuryPointWithKey:(NSString *)eventKey; + +/// 埋点事件带参数 +/// @param eventKey key +/// @param eventAttributes 参数 ++ (void)mewBuryPointWithKey:(NSString *)eventKey buryPointAttributes:(NSDictionary * _Nullable)eventAttributes; + +/// 统计时长 开始 +/// @param eventKey key ++ (void)mewBuryPointStartWithKey:(NSString *)eventKey; + +/// 统计时长 结束 +/// @param eventKey key ++ (void)mewBuryPointEndWithKey:(NSString *)eventKey; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.m b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.m new file mode 100644 index 0000000..39bd6e2 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointManager.m @@ -0,0 +1,170 @@ +// +// MewBuryPointManager.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewBuryPointManager.h" +#import "MewBuryPointService.h" +@implementation MewBuryPointManager +NSString *const MewBuryPointManagerAppLaunch = @"app_launch"; +#pragma mark - 登录模块的 +NSString *const MewBuryPointManagerOneClickLoginSuccess = @"one_click_login_succeed"; +NSString *const MewBuryPointManagerLoginPhoneClick = @"login_phone_click"; +NSString *const MewBuryPointManagerLoginQQClick = @"login_qq_click";///QQ登录 +NSString *const MewBuryPointManagerLoginWXClick = @"login_wx_click";///wx登录 +NSString *const MewBuryPointManagerLoginRepariSuccess = @"login_repari_success";///注册个人资料保存成功 +#pragma mark - 贵族 +NSString *const MewBuryPointManagerVipOpenClick = @"vip_open_click";///开通贵族点击 +NSString *const MewBuryPointManagervipEntranceRoomClick = @"vip_entrance_room_click";///贵族房间入口点击 +NSString *const MewBuryPointManagervipEntranceGiftClick = @"vip_entrance_gift_click";///贵族礼物面板入口点击 +NSString *const MewBuryPointManagervipEntranceFaceClick = @"vip_entrance_face_click";///贵族表情面板入口点击 +NSString *const MewBuryPointManagervipEntranceMeClick = @"vip_entrance_me_click";///贵族我的页面入口点击 +#pragma mark - 首页直播模块 +NSString *const MewBuryPointManagerRecent_card_show = @"recent_card_show";///最近在看卡片曝光 +NSString *const MewBuryPointManagerRecent_card_click = @"recent_card_click";///最近在看卡片点击 +NSString *const MewBuryPointManagerGebo_tab_click = @"gebo_tab_click";///个播页二级tab分类点击 +NSString *const MewBuryPointManagerRecent_homepage_show = @"homepage_show";///首页曝光统计 +NSString *const MewBuryPointManagerRecent_homepage_bar_click = @"homepage_bar_click";///底部工具栏bar统计 +NSString *const MewBuryPointManagerRecent_homepage_top_tab_click = @"homepage_top_tab_click";//首页顶部tab切换点击 +NSString *const MewBuryPointManagerRecent_homepage_top_search_click = @"homepage_top_search_click";///首页顶部搜索框点击 +NSString *const MewBuryPointManagerRecent_homepage_top_rank_click = @"homepage_top_rank_click";///首页顶部全服榜单点击 +NSString *const MewBuryPointManagerRecent_homepage_top_myroom_click = @"homepage_top_myroom_click";///首页顶部我的房间点击 +NSString *const MewBuryPointManagerRecent_homepage_top_resource_click = @"homepage_top_resource_click";///首页顶部资源位点击 +NSString *const MewBuryPointManagerRecent_homepage_top_moregame_click = @"homepage_top_moregame_click";///首页顶部更多游戏跳转点击 +NSString *const MewBuryPointManagerRecent_homepage_inform_click = @"homepage_inform_click";///首页轮播通知的跳转点击 +NSString *const MewBuryPointManagerRecent_homepage_banner_click = @"homepage_banner_click";///首页banner的跳转点击 +NSString *const MewBuryPointManagerRecent_homepage_room_click = @"homepage_room_click";///首页房间的跳转点击 +NSString *const MewBuryPointManagerRecent_homepage_moregame_tab_click = @"homepage_moregame_tab_click";///更多游戏二级页顶部游戏分类点击 +NSString *const MewBuryPointManagerRecent_homepage_top_match_click = @"homepage_top_match_click";///首页房间的跳转点击 +NSString *const MewBuryPointManagerRecent_homepage_moregame_user_click = @"homepage_moregame_user_click";//首页用户主播卡片点击 + +#pragma mark - 礼物 +NSString *const MewBuryPointManagerRoomNugivePopShow = @"room_nugive_pop_show"; ///房间礼物赠送弹窗曝光 +NSString *const MewBuryPointManagerRoomNugivePopClick = @"room_nugive_pop_click"; ///房间礼物赠送弹窗关闭 +NSString *const MewBuryPointManagerNugiftPopShow = @"nugift_pop_show"; ///新人专享礼物弹窗曝光(不统计后续个人中心入口的曝光) +NSString *const MewBuryPointManagerNugiftPopClick = @"nugift_pop_click"; ///新人专享礼物弹窗充值点击,点击时统计用户所选择的购买档位,(需统计后续个人中心入口的点击) +NSString *const MewBuryPointManagernugift_pop_finish_click = @"nugift_pop_finish_click"; ///新人专享礼物充值成功后弹窗(需统计对应充值tab档位) +NSString *const MewBuryPointManagerNugiftPopCloseClick = @"nugift_pop_close_click"; ///新人专享礼物弹窗关闭点击 +NSString *const MewBuryPointManagerUsercenterNugiftPopShow = @"usercenter_nugift_pop_show"; ///新人专享礼物入口曝光 +NSString *const MewBuryPointManagerUsercenterNugiftPopClick = @"usercenter_nugift_pop_click"; ///新人专享礼物入口点击 +NSString *const MewBuryPointManagerPersonalshowTopCardShow = @"personalshow_top_card_show"; ///个播展示卡片曝光 +NSString *const MewBuryPointManagerPersonalshowTopCardRoomClick = @"personalshow_top_card_room_click"; ///个播展示卡片进入房间点击,点击时统计房间id +NSString *const MewBuryPointManagerPersonalshowTopCardVoiceClick = @"personalshow_top_card_voice_click"; ///个播展示卡片播放语音点击 + +#pragma mark - 个人中心 +NSString *const MewBuryPointManagerusercenter_recharge_card_show = @"usercenter_recharge_card_show"; ///个人中心充值卡片曝光 +NSString *const MewBuryPointManagerusercenter_recharge_card_click = @"usercenter_recharge_card_click"; ///个人中心充值卡片点击(跳转充值页) +NSString *const MewBuryPointManagerusercenter_noble_card_show = @"usercenter_noble_card_show"; ///个人中心贵族卡片曝光 +NSString *const MewBuryPointManagerusercenter_noble_card_click = @"usercenter_noble_card_click";///个人中心贵族卡片片点击(跳转贵族页) +NSString *const MewBuryPointManagerusercenter_function_show = @"usercenter_function_show"; ///个人中心功能板块曝光,曝光时统计功能的名称 +NSString *const MewBuryPointManagerusercenter_function_click = @"usercenter_function_click"; ///个人中心功能板块点击,点击时统计功能的名称 +NSString *const MewBuryPointManagerusercenter_quick_entry_show = @"usercenter_quick_entry_show"; ///个人中心快捷进房曝光,曝光时统计房间的id +NSString *const MewBuryPointManagerusercenter_quick_entrysuccess_click = @"usercenter_quick_entrysuccess_click"; ///个人中心快捷进房点击成功匹配,点击时统计房间的id +NSString *const MewBuryPointManagerusercenter_quick_entry_click = @"usercenter_quick_entry_click"; ///个人中心快捷进房点击未匹配成功,点击时统计房间的id +NSString *const MewBuryPointManagerusercenter_banner_show = @"usercenter_banner_show"; ///个人中心banner模块曝光,曝光时统计banner的id +NSString *const MewBuryPointManagerusercenter_banner_click = @"usercenter_banner_click"; ///个人中心banner模块点击,点击时统计banner的id +#pragma mark - 活动任务 +NSString *const MewBuryPointManagertask_toast_show = @"task_toast_show"; ///任务完成toast曝光 +NSString *const MewBuryPointManagertask_toast_click = @"task_toast_click"; ///任务完成toast点击(跳转活动页 +#pragma mark - 房间 +NSString *const MewBuryPointManageruser_visit_room = @"user_visit_room"; ///用户访问房间(进入时统计房间的ID,该房间的停留时长) +NSString *const MewBuryPointManagerroom_return_click = @"room_return_click"; ///房间返回按钮点击(右滑返回不统计在内) +NSString *const MewBuryPointManagerroom_online_list_click = @"room_online_list_click"; ///房间在线列表点击 +NSString *const MewBuryPointManagerroom_collect_icon_click = @"room_collect_icon_click"; ///房间收藏按钮点击(统计收藏房间的ID) +NSString *const MewBuryPointManagerroom_more_icon_click = @"room_more_icon_click"; ///房间更多按钮点击(统计用户展开面板后的行为:● 举报房间● 收起房间● 退出房间● 分享房间● 为你推荐(统计用户跳转后的房间ID)) +NSString *const MewBuryPointManagerroom_giftlist_click = @"room_giftlist_click"; ///房间榜单点击 +NSString *const MewBuryPointManagerroom_ranklist_click = @"room_ranklist_click"; ///房间小时榜点击 +NSString *const MewBuryPointManagerroom_mike_show = @"room_mike_show"; ///房间麦位曝光,只统计该房间在麦上的用户及ID +NSString *const MewBuryPointManagerroom_mike_click = @"room_mike_click"; ///房间麦位点击,统计用户展开面板后的行为:● 送礼物● 私聊● 关注TA● @TA● 关闭● 资料卡 +NSString *const MewBuryPointManagerroom_banner_show = @"room_banner_show"; ///房间banner曝光,统计曝光banner的ID +NSString *const MewBuryPointManagerroom_banner_click = @"room_banner_click"; ///房间banner点击,统计点击banner的ID +NSString *const MewBuryPointManagerroom_pop_show = @"room_pop_show"; ///房间pop曝光,统计曝光pop的名称,如新人充值、糖果树、航海冒险 +NSString *const MewBuryPointManagerroom_pop_click = @"room_pop_click"; ///房间pop点击,统计点击pop的名称,如新人充值、糖果树、航海冒险 +NSString *const MewBuryPointManagerroom_chatbox_click = @"room_chatbox_click"; ///房间聊天框点击 +NSString *const MewBuryPointManagerroom_music_click = @"room_music_click"; ///房间音乐点击 +NSString *const MewBuryPointManagerroom_privateletter_click = @"room_privateletter_click"; ///房间私信点击 +NSString *const MewBuryPointManagerroom_noble_click = @"room_noble_click"; ///房间贵族点击 +NSString *const MewBuryPointManagerroom_gift_click = @"room_gift_click"; ///房间送礼点击 +NSString *const MewBuryPointManagerroom_more_tool_click = @"room_more_tool_click"; ///房间底部更多工具栏点击,统计用户展开面板后的行为 +#pragma mark - 收藏房间列表 +NSString *const MewBuryPointManagercollection_editbutton_show = @"collection_editbutton_show"; ///管理按钮曝光 +NSString *const MewBuryPointManagercollection_editbutton_click = @"collection_editbutton_click"; ///管理按钮点击 +NSString *const MewBuryPointManagercollection_editbutton_complete_click = @"collection_editbutton_complete_click"; ///完成按钮点击 +NSString *const MewBuryPointManagercollection_entry = @"collection_entry"; ///我的收藏页面访问,统计用户默认落入的tab分类 +NSString *const MewBuryPointManagercollection_selectall_click = @"collection_selectall_click"; ///全选按钮点击 +NSString *const MewBuryPointManagercollection_delete_click = @"collection_delete_click"; ///删除按钮点击 +#pragma mark - 心愿礼物 +NSString *const MewBuryPointManagerRoom_wishlist_pop_show = @"wishlist_pop_show"; ///礼物心愿气泡曝光 +NSString *const MewBuryPointManagerRoom_wishlist_pop_click = @"wishlist_pop_click"; ///礼物心愿气泡点击 +NSString *const MewBuryPointManagerRoom_wishlist_panel_show = @"wishlist_panel_show"; ///礼物心愿面板曝光 +NSString *const MewBuryPointManagerRoom_wishlist_panel_click = @"wishlist_panel_click"; ///礼物心愿面板赠送点击 +NSString *const MewBuryPointManagerRoom_wishlist_panel_close_click = @"wishlist_panel_close_click"; ///礼物心愿面板关闭点击 +#pragma mark - 首页搜索 +NSString *const MewBuryPointManagerRoom_allinsearch_entry_click = @"allinsearch_entry_click"; ///词条点击-统计点击时对应词条的名称 +NSString *const MewBuryPointManagerRoom_allinsearch_entry_room_click = @"allinsearch_entry_room_click"; ///统计点击时对应房间的名称 +NSString *const MewBuryPointManagerRoom_search_input_click = @"search_input_click"; ///统计用户输入搜索框并搜索的内容 +NSString *const MewBuryPointManagerRoom_search_intercept_pop_show = @"search_intercept_pop_show"; ///统计弹窗奖励内容的名称 +NSString *const MewBuryPointManagerRoom_search_intercept_pop_click = @"search_intercept_pop_click"; ///搜索劫持结果弹窗关闭 +#pragma mark - 打招呼弹窗 +NSString *const MewBuryPointManagerRoom_sayhi_pop_show = @"sayhi_pop_show"; ///打招呼弹窗曝光-统计弹窗主播的id +NSString *const MewBuryPointManagerRoom_sayhi_pop_find_click = @"sayhi_pop_find_click"; ///打招呼弹窗去找TA点击-统计进房房间的id +NSString *const MewBuryPointManagerRoom_sayhi_pop_voice_click = @"sayhi_pop_voice_click"; ///打招呼弹窗播放声音秀点击 + +#pragma mark - 主播评级 +NSString *const MewBuryPointManagerRoom_grade_profit_pop_click = @"grade_profit_pop_click"; ///主播评级入口点击 +NSString *const MewBuryPointManagerRoom_grade_profit_pop_show = @"grade_profit_pop_show"; ///主播评级入口曝光 +NSString *const MewBuryPointManagerRoom_grade_profit_close_click = @"grade_profit_close_click"; ///主播评级弹窗关闭点击 + +#pragma mark - ID复制 +NSString *const MewBuryPointManagerID_mycenter_copyid_click = @"mycenter_copyid_click"; ///个人中心ID复制点击 +NSString *const MewBuryPointManagerID_mydata_copyid_click = @"mydata_copyid_click"; ///个人资料页ID复制点击 +NSString *const MewBuryPointManagerID_datacard_copyid_click = @"datacard_copyid_click"; ///房间资料卡ID复制点击 + +/// 埋点事件 +/// @param eventKey key ++ (void)mewBuryPointWithKey:(NSString *)eventKey { + [self mewBuryPointWithKey:eventKey buryPointAttributes:nil]; +} + + +/// 埋点事件带参数 +/// @param eventKey key +/// @param eventAttributes 参数 ++ (void)mewBuryPointWithKey:(NSString *)eventKey buryPointAttributes:(NSDictionary * _Nullable)eventAttributes { + [MewBuryPointService mewBuryPoint:eventKey buryPointDescribe:[self mew_getBuryPointDescripWithKey:eventKey] buryPointAttributes:eventAttributes]; +} + + +/// 统计时长 开始 +/// @param eventKey key ++ (void)mewBuryPointStartWithKey:(NSString *)eventKey { + [MewBuryPointService mewBuryPoint:eventKey buryPointStart:[self mew_getBuryPointDescripWithKey:eventKey]]; +} + +/// 统计时长 结束 +/// @param eventKey key ++ (void)mewBuryPointEndWithKey:(NSString *)eventKey { + [MewBuryPointService mewBuryPoint:eventKey buryPointEnd:[self mew_getBuryPointDescripWithKey:eventKey]]; +} + +///埋点 只需要在这个里面 进行相应的配置 即可 key 和descrip ++ (NSString *)mew_getBuryPointDescripWithKey:(NSString *)key { + NSDictionary * dic = @{ + MewBuryPointManagerAppLaunch:@"应用启动", + MewBuryPointManagerOneClickLoginSuccess:@"一键登录成功", + MewBuryPointManagerLoginPhoneClick:@"手机登录", + MewBuryPointManagerLoginQQClick:@"qq登录", + MewBuryPointManagerLoginWXClick:@"微信登录", + MewBuryPointManagerLoginRepariSuccess:@"注册时候的个人资料保存成功", + MewBuryPointManagerVipOpenClick:@"开通贵族点击", + MewBuryPointManagervipEntranceRoomClick:@"贵族房间入口点击", + MewBuryPointManagervipEntranceGiftClick:@"贵族礼物面板入口点击", + MewBuryPointManagervipEntranceFaceClick:@"贵族表情面板入口点击", + MewBuryPointManagervipEntranceMeClick:@"贵族我的页面入口点击" + }; + NSString * decription = [dic objectForKey:MewBuryPointManagerAppLaunch]; + return decription; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.h b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.h new file mode 100644 index 0000000..54c4e50 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.h @@ -0,0 +1,35 @@ +// +// MewBuryPointService.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewBuryPointService : NSObject +/// 埋点数据 不带参数的 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointDescribe:(NSString *)describe; + +/// 埋点的 代参数的 +/// @param text key +/// @param describe 描述 +/// @param attributes 参数 ++ (void)mewBuryPoint:(NSString *)text buryPointDescribe:(NSString *)describe buryPointAttributes:(nullable NSDictionary *)attributes; + +/// 统计时长的 开始 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointStart:(NSString *)describe; + +/// 统计时长 结束 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointEnd:(NSString *)describe; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.m b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.m new file mode 100644 index 0000000..3c2fc5f --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/MewBuryPointManager/MewBuryPointService.m @@ -0,0 +1,60 @@ +// +// MewBuryPointService.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewBuryPointService.h" +#import +@implementation MewBuryPointService + +/// 埋点数据 不带参数的 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointDescribe:(NSString *)describe { + if (text == nil || text.length == 0) { + return; + } + + [self mewBuryPoint:text buryPointDescribe:describe buryPointAttributes:nil]; +} + + +/// 埋点的 代参数的 +/// @param text key +/// @param describe 描述 +/// @param attributes 参数 ++ (void)mewBuryPoint:(NSString *)text buryPointDescribe:(NSString *)describe buryPointAttributes:(nullable NSDictionary *)attributes { + if (text == nil || text.length == 0) { + return; + } + if (attributes.allKeys.count > 0) { + [MobClick event:text attributes:attributes]; + } else { + [MobClick event:text label:describe]; + } +} + + +/// 统计时长的 开始 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointStart:(NSString *)describe { + if (text == nil || text.length == 0) { + return; + } + [MobClick beginEvent:text label:describe]; +} + + +/// 统计时长 结束 +/// @param text key +/// @param describe 描述 ++ (void)mewBuryPoint:(NSString *)text buryPointEnd:(NSString *)describe { + if (text == nil || text.length == 0){ + return; + } + [MobClick endEvent:text label:describe]; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.h b/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.h index 203535b..e91f9d4 100644 --- a/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.h +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.h @@ -18,6 +18,8 @@ NS_ASSUME_NONNULL_BEGIN + (UIColor *)mewAppMainColor; ///强调色 #248CFE + (UIColor *)mewAppEmphasizeColor; +///强调色2 0xFB486A ++ (UIColor *)mewAppEmphasizeColor2; /// view的背景色 0xF3F5FA + (UIColor *)mewAppBackgroundColor; /// cell的背景色 0xFFFFFF diff --git a/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.m b/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.m index bb693e2..99a1131 100644 --- a/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.m +++ b/yinmeng-ios/yinmeng-ios/Base/Tool/ThemeColor/MewThemeColor.m @@ -16,6 +16,10 @@ + (UIColor *)mewAppEmphasizeColor { return UIColorMewFromRGB(0x248CFE); } +///强调色2 0xFB486A ++ (UIColor *)mewAppEmphasizeColor2 { + return UIColorMewFromRGB(0xFB486A); +} /// view的背景色 0xF3F5FA + (UIColor *)mewAppBackgroundColor { return UIColorMewFromRGB(0xF8F8FB); diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.h b/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.h index f274335..170d876 100644 --- a/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.h +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.h @@ -44,7 +44,21 @@ NS_ASSUME_NONNULL_BEGIN /*隐藏状态栏*/ - (void)mew_hideStatusBar; - +/// 添加文字 不可点击的时候颜色 +/// @param titles 文字的数组 +/// @param titleColor 文字的颜色 +/// @param isLeft 是否在左边 +/// @param target 目标 +/// @param action 点击 +/// @param tags tag +- (void)mew_setNavViewWithTitles:(NSArray *)titles titleColor:(UIColor *)titleColor isLeft:(BOOL)isLeft target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags; +/// 添加图片 +/// @param imageNames 图片的数组 +/// @param isLeft 是否在左边 +/// @param target 接受事件的 +/// @param action 点击 +/// @param tags tag +- (void)mew_setNavViewWithImageNames:(NSArray *)imageNames isLeft:(BOOL)isLeft target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags; @end NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.m b/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.m index 0a80b63..a90fe5b 100644 --- a/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.m +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewBaseViewController.m @@ -88,4 +88,69 @@ - (void)mew_hideHUD { [MewHUDTool mew_hideHUD]; } +/// 添加文字 不可点击的时候颜色 +/// @param titles 文字的数组 +/// @param titleColor 文字的颜色 +/// @param isLeft 是否在左边 +/// @param target 目标 +/// @param action 点击 +/// @param tags tag +- (void)mew_setNavViewWithTitles:(NSArray *)titles titleColor:(UIColor *)titleColor isLeft:(BOOL)isLeft target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags { + NSMutableArray * items = [[NSMutableArray alloc] init]; + //调整按钮位置 + UIBarButtonItem* spaceItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + //将宽度设为负值 + spaceItem.width= -10; + [items addObject:spaceItem]; + if (titleColor == nil) { + titleColor = [MewThemeColor mewMainTextColor]; + } + NSInteger i = 0; + for (NSString * title in titles) { + UIButton * btn = [UIButton buttonWithType:UIButtonTypeSystem]; + btn.frame = CGRectMake(0, 0, 30, 20); + [btn setTitle:title forState:UIControlStateNormal]; + [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; + btn.titleLabel.font = [UIFont systemFontOfSize:14]; + [btn setTitleColor:titleColor forState:UIControlStateNormal]; + btn.tag = [tags[i++] integerValue]; + [btn sizeToFit]; + UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:btn]; + [items addObject:item]; + } + if (isLeft) { + self.navigationItem.leftBarButtonItems = items; + } else { + self.navigationItem.rightBarButtonItems = items; + } +} +/// 添加图片 +/// @param imageNames 图片的数组 +/// @param isLeft 是否在左边 +/// @param target 接受事件的 +/// @param action 点击 +/// @param tags tag +- (void)mew_setNavViewWithImageNames:(NSArray *)imageNames isLeft:(BOOL)isLeft target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags { + NSMutableArray * items = [[NSMutableArray alloc] init]; + NSInteger i = 0; + for (NSString * imageName in imageNames) { + UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; + [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal]; + btn.frame = CGRectMake(0, 0, 30, 30); + if(isLeft){ + [btn setImageEdgeInsets:UIEdgeInsetsMake(0, -10, 0, 10)]; + }else{ + [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; + } + [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; + btn.tag = [tags[i++] integerValue]; + UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:btn]; + [items addObject:item]; + } + if (isLeft) { + self.navigationItem.leftBarButtonItems = items; + } else { + self.navigationItem.rightBarButtonItems = items; + } +} @end diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.h b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.h new file mode 100644 index 0000000..44a3b7a --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.h @@ -0,0 +1,19 @@ +// +// MewEmptyCollectionViewCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewEmptyCollectionViewCell : UICollectionViewCell +@property(nonatomic,copy) NSString *mewImage; +@property(nonatomic,copy) NSString *mewText; +/// 是否是礼物墙 +@property (nonatomic, assign) BOOL mewIsGiftWall; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.m b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.m new file mode 100644 index 0000000..4599d80 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyCollectionViewCell.m @@ -0,0 +1,79 @@ +// +// MewEmptyCollectionViewCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewEmptyCollectionViewCell.h" +@interface MewEmptyCollectionViewCell() +@property (nonatomic,strong) UIImageView *mewEmptyImageView; +@property (nonatomic,strong) UILabel *mewTitleView; +@end +@implementation MewEmptyCollectionViewCell +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self mewSetUI]; + [self mewSetUIConstraints]; + } + return self; +} +-(void)setMewIsGiftWall:(BOOL)mewIsGiftWall{ + _mewIsGiftWall = mewIsGiftWall; + if (!_mewIsGiftWall) return; + + [self.mewEmptyImageView mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(10); + }]; + self.mewTitleView.font = kFontRegular(13); +} + +#pragma mark - Private Method +- (void)mewSetUI { + [self.contentView addSubview:self.mewEmptyImageView]; + [self.contentView addSubview:self.mewTitleView]; +} + +- (void)mewSetUIConstraints { + [self.mewEmptyImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewEmptyImageView.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +-(void)setMewImage:(NSString *)mewImage{ + _mewImage = mewImage; + _mewEmptyImageView.image = kImage(_mewImage); +} +-(void)setMewText:(NSString *)mewText { + _mewText = mewText; + _mewTitleView.text = _mewText; +} +#pragma mark - Getters And Setters +- (UIImageView *)mewEmptyImageView { + if (!_mewEmptyImageView) { + _mewEmptyImageView = [[UIImageView alloc] init]; + _mewEmptyImageView.userInteractionEnabled = YES; + _mewEmptyImageView.image = [UIImageConstant defalutEmptyPlaceholder]; + _mewEmptyImageView.layer.masksToBounds = YES; + _mewEmptyImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewEmptyImageView; +} + +- (UILabel *)mewTitleView { + if (!_mewTitleView) { + _mewTitleView = [[UILabel alloc] init]; + _mewTitleView.text = @"暂无数据"; + _mewTitleView.font = [UIFont systemFontOfSize:16]; + _mewTitleView.textAlignment = NSTextAlignmentCenter; + _mewTitleView.textColor = [MewThemeColor mewSecondTextColor]; + } + return _mewTitleView; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.h b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.h new file mode 100644 index 0000000..a9b7b84 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.h @@ -0,0 +1,17 @@ +// +// MewEmptyTableViewCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewEmptyTableViewCell : UITableViewCell +@property(nonatomic,copy) NSString *mewImage; +@property(nonatomic,copy) NSString *mewText; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.m b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.m new file mode 100644 index 0000000..6c96840 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyTableViewCell.m @@ -0,0 +1,71 @@ +// +// MewEmptyTableViewCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewEmptyTableViewCell.h" +@interface MewEmptyTableViewCell() +@property (nonatomic,strong) UIImageView *mewEmptyImageView; +@property (nonatomic,strong) UILabel *mewTitleView; +@end +@implementation MewEmptyTableViewCell + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self mewSetUI]; + [self mewSetUIConstraints]; + } + return self; +} +#pragma mark - Private Method +- (void)mewSetUI { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.mewEmptyImageView]; + [self.contentView addSubview:self.mewTitleView]; +} + +- (void)mewSetUIConstraints { + [self.mewEmptyImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewEmptyImageView.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +-(void)setMewImage:(NSString *)mewImage{ + _mewImage = mewImage; + _mewEmptyImageView.image = kImage(_mewImage); +} +-(void)setMewText:(NSString *)mewText { + _mewText = mewText; + _mewTitleView.text = _mewText; +} +#pragma mark - Getters And Setters +- (UIImageView *)mewEmptyImageView { + if (!_mewEmptyImageView) { + _mewEmptyImageView = [[UIImageView alloc] init]; + _mewEmptyImageView.userInteractionEnabled = YES; + _mewEmptyImageView.image = [UIImageConstant defalutEmptyPlaceholder]; + _mewEmptyImageView.layer.masksToBounds = YES; + _mewEmptyImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewEmptyImageView; +} + +- (UILabel *)mewTitleView { + if (!_mewTitleView) { + _mewTitleView = [[UILabel alloc] init]; + _mewTitleView.text = @"暂无数据"; + _mewTitleView.font = [UIFont systemFontOfSize:16]; + _mewTitleView.textAlignment = NSTextAlignmentCenter; + _mewTitleView.textColor = [MewThemeColor mewSecondTextColor]; + } + return _mewTitleView; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.h b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.h new file mode 100644 index 0000000..8914572 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.h @@ -0,0 +1,17 @@ +// +// MewEmptyView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewEmptyView : UIView +@property(nonatomic,copy) NSString *mewImage; +@property(nonatomic,copy) NSString *mewText; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.m b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.m new file mode 100644 index 0000000..986a763 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Base/UI/MewEmptyView/MewEmptyView.m @@ -0,0 +1,72 @@ +// +// mewEmptyImageView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewEmptyView.h" +@interface MewEmptyView() +@property (nonatomic,strong) UIImageView *mewEmptyImageView; +@property (nonatomic,strong) UILabel *mewTitleView; +@end +@implementation MewEmptyView + +- (instancetype)initWithFrame:(CGRect)frame{ + if (self = [super initWithFrame:frame]) { + [self mewSetUI]; + [self mewSetUIConstraints]; + } + return self; +} +#pragma mark - Private Method +- (void)mewSetUI { + + [self addSubview:self.mewEmptyImageView]; + [self addSubview:self.mewTitleView]; +} + +- (void)mewSetUIConstraints { + [self.mewEmptyImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(150); + make.centerX.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewEmptyImageView.mas_bottom).offset(20); + make.left.right.mas_equalTo(self); + }]; +} +-(void)setMewImage:(NSString *)mewImage{ + _mewImage = mewImage; + _mewEmptyImageView.image = kImage(_mewImage); +} +-(void)setMewText:(NSString *)mewText { + _mewText = mewText; + _mewTitleView.text = _mewText; +} +#pragma mark - Getters And Setters +- (UIImageView *)mewEmptyImageView { + if (!_mewEmptyImageView) { + _mewEmptyImageView = [[UIImageView alloc] init]; + _mewEmptyImageView.userInteractionEnabled = YES; + _mewEmptyImageView.image = [UIImageConstant defalutEmptyPlaceholder]; + _mewEmptyImageView.layer.masksToBounds = YES; + _mewEmptyImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewEmptyImageView; +} + +- (UILabel *)mewTitleView { + if (!_mewTitleView) { + _mewTitleView = [[UILabel alloc] init]; + _mewTitleView.text = @"暂无数据"; + _mewTitleView.font = [UIFont systemFontOfSize:16]; + _mewTitleView.textAlignment = NSTextAlignmentCenter; + _mewTitleView.textColor = [MewThemeColor mewSecondTextColor]; + } + return _mewTitleView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/ClientConfig/MewClientConfig.m b/yinmeng-ios/yinmeng-ios/ClientConfig/MewClientConfig.m index fbac278..54be6ed 100644 --- a/yinmeng-ios/yinmeng-ios/ClientConfig/MewClientConfig.m +++ b/yinmeng-ios/yinmeng-ios/ClientConfig/MewClientConfig.m @@ -36,6 +36,14 @@ NSDictionary *initData = data.data; self.iosPhoneBind = [initData[@"iosPhoneBind"] boolValue]; MewClientDataModel *model = [MewClientDataModel mewModelWithDictionary:data.data]; + NSMutableArray *list = [NSMutableArray array]; + for (id obj in model.h5Uris) { + if([obj isKindOfClass:[NSDictionary class]]){ + MewClientWebUrlModel * m = [MewClientWebUrlModel mewModelWithDictionary:obj]; + [list addObject:m]; + } + } + model.h5Uris = list; self.configInfo = model; // 表情 diff --git a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.h b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.h index e4e9b83..a2e627e 100644 --- a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.h +++ b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.h @@ -6,23 +6,35 @@ // #import - +#import "MewClientWebUrlModel.h" NS_ASSUME_NONNULL_BEGIN @interface MewClientDataModel : NSObject -/// 首页tag 配置 +///首页tag 配置 @property (nonatomic,strong) NSArray *homeTabList; -/// 进入房间拉取N条聊天数据 +///房间表情的数据 +@property (nonatomic,copy) NSDictionary *faceInitData; +///是否隐藏房间公告 +@property (nonatomic,assign) BOOL appStoreAuditNoticeVersion; +//进入房间拉取N条聊天数据 @property(nonatomic, assign) NSInteger roomMessageCount; +///发现萌新展示等级 +@property (nonatomic,assign) NSInteger findNewbieCharmLevel; +///送礼物隐藏座驾动画的值 +@property (nonatomic,assign) double hideCarEffectGiftPrice; + +///红包配置 +//@property (nonatomic, strong) ClientRedPacketModel *redEnvelopeConfig; ///启动图 //@property (nonatomic,strong) AdvertiseModel *splashVo; ///官方消息Uid列表 @property (nonatomic, strong) NSArray *officialMsgUids; ///官方账号 小秘书 红包消息 @property (nonatomic,strong) NSArray *officialAccountUids; -///发现萌新展示等级 -@property (nonatomic,assign) NSInteger findNewbieCharmLevel; +///星座礼物顶部是否开启 +@property (nonatomic,assign) BOOL twelveStarSwitch; +@property(nonatomic,copy) NSArray *h5Uris; @end NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.m b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.m index 62673f5..c782e47 100644 --- a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.m +++ b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientDataModel.m @@ -8,5 +8,7 @@ #import "MewClientDataModel.h" @implementation MewClientDataModel - ++ (NSDictionary *)objectClassInArray { + return @{@"h5Uris":MewClientWebUrlModel.class}; +} @end diff --git a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.h b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.h new file mode 100644 index 0000000..4ea2319 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.h @@ -0,0 +1,17 @@ +// +// MewClientWebUrlModel.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewClientWebUrlModel : NSObject +@property(nonatomic,copy) NSString *code;///房间榜单 +@property(nonatomic,copy) NSString *uri;///首页榜单 +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.m b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.m new file mode 100644 index 0000000..7f667b4 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/ClientConfig/Model/MewClientWebUrlModel.m @@ -0,0 +1,12 @@ +// +// MewClientWebUrlModel.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewClientWebUrlModel.h" + +@implementation MewClientWebUrlModel + +@end diff --git a/yinmeng-ios/yinmeng-ios/Global/MewEnum.h b/yinmeng-ios/yinmeng-ios/Global/MewEnum.h index 9a28bae..cc2afd6 100644 --- a/yinmeng-ios/yinmeng-ios/Global/MewEnum.h +++ b/yinmeng-ios/yinmeng-ios/Global/MewEnum.h @@ -205,4 +205,597 @@ typedef NS_ENUM(NSUInteger, MewRoomPKAdverseAnchorMicStatu) { MewRoomPKAdverseAnchorMicStatu_Close = 0,//关闭 MewRoomPKAdverseAnchorMicStatu_Open = 1,//开启 }; +//RoomOnLineType +typedef NS_ENUM(NSInteger, MewRoomActiveType) { + ///所有的用户 + MewRoomActive_All_User = 0, + ///抱人上麦的用户 + MewRoomActive_Invite_User +}; +///UserEnterRoomFromType +typedef NS_ENUM(NSInteger, MewUserEnterRoomType) { + ///首页推荐 + MewUserEnterRoomType_Home_Recommend = 1, + ///跟随用户 + MewUserEnterRoomType_Follow_User = 2, + ///赛事详情 + MewUserEnterRoomType_Follow_Game_Detail = 8, + ///跨房PK + MewUserEnterRoomType_Different_Room_PK = 9, + ///新用户打招呼 + MewUserEnterRoomType_New_User_Call = 10 +}; +///UserLevelType +typedef NS_ENUM(NSInteger, MewUserLevelType) { + Mew_UserLevel_Normal = 1,///普通人 + Mew_UserLevel_Offical = 2,///官方 + Mew_UserLevel_Robot = 3, ///机器人 +}; +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgType) { + ///房间提示 + MewRoomCustomMsgType_Room_Tip = 2, + ///送礼物的接口 + MewRoomCustomMsgType_Gift = 3, + ///账户更新 + MewRoomCustomMsgType_Account = 5, + ///关注的主播上线 + MewRoomCustomMsgType_Member_Online = 6, + ///队列操作 + MewRoomCustomMsgType_Queue = 8, + ///表情 + MewRoomCustomMsgType_Face = 9, + ///推文 + MewRoomCustomMsgType_Tweet = 10, + ///全麦送 + MewRoomCustomMsgType_AllMicroSend = 12, + ///座驾进房动画 + MewRoomCustomMsgType_Car_Notify = 15, + ///踢出房间 + MewRoomCustomMsgType_Kick_User = 18, + ///小秘书消息 + MewRoomCustomMsgType_Secretary = 19, + ///房间信息更新 + MewRoomCustomMsgType_Update_RoomInfo = 20, + ///应用内分享 + MewRoomCustomMsgType_Application_Share = 22, + ///系统通知,自定义布局消息(带确认、取消) + MewRoomCustomMsgType_Message_Handle = 23, + ///用户升级 + MewRoomCustomMsgType_User_UpGrade = 24, + ///糖果树 + MewRoomCustomMsgType_Candy_Tree = 26, + ///排麦 + MewRoomCustomMsgType_Arrange_Mic = 30, + ///房间内PK + MewRoomCustomMsgType_Room_PK = 31, + ///家族 + MewRoomCustomMsgType_Hall = 32, + ///房间礼物值 + MewRoomCustomMsgType_Room_GiftValue = 42, + ///版本升级 + MewRoomCustomMsgType_Version_Update = 49, + ///公会超管 + MewRoomCustomMsgType_Hall_Super_Admin = 50, + ///动态 + MewRoomCustomMsgType_Monents = 52, + ///欢迎Ta + MewRoomCustomMsgType_Room_Welcome = 56, + ///收藏房间 + MewRoomCustomMsgType_Collection_Room = 59, + ///房间红包 + MewRoomCustomMsgType_RedPacket = 60, + ///福袋消息 + MewRoomCustomMsgType_LuckyBag = 61, + ///发现萌新 + MewRoomCustomMsgType_FindNew = 62, + ///塔罗 + MewRoomCustomMsgType_Tarot = 71, + ///相亲 + MewRoomCustomMsgType_RoomPlay_Dating = 72, + ///私聊风险提醒 + MewRoomCustomMsgType_Chat_Risk_Alert = 75, + ///首充奖励 + MewRoomCustomMsgType_First_Recharge_Reward = 76, + ///访客记录 + MewRoomCustomMsgType_First_VisitorRecord = 78, + ///航海 + MewRoomCustomMsgType_Room_Sailing = 81, + ///跨房PK + MewRoomCustomMsgType_Across_Room_PK = 83, + ///贵族VIP + MewRoomCustomMsgType_Noble_VIP = 85, + ///个播房观众点击空坑位,房主收到请求上麦提示 + MewRoomCustomMsgType_AnchorRoom_AudienceUpMic = 86, + ///技能卡 + MewRoomCustomMsgType_Skill_Card = 87, + ///个播小时榜 + MewRoomCustomMsgType_Anchor_Hour_Rank = 89, + ///个播粉丝团 + MewRoomCustomMsgType_Anchor_FansTeam = 90, + ///牌照房小时榜 + MewRoomCustomMsgType_Licnese_Hour_Rank = 91, + ///任务完成通知 + MewRoomCustomMsgType_Task_Complete = 92, + ///礼物合成 + MewRoomCustomMsgType_Gift_Compound = 93, + ///涂鸦礼物 + MewRoomCustomMsgType_Graffiti_Gift = 94, + ///心愿礼物 + MewRoomCustomMsgType_Wish_Gift = 95, + ///星级厨房 + MewRoomCustomMsgType_Starred_Kitchen = 96, + ///小时榜更新 + MewRoomCustomMsgType_Hour_Update = 97, + ///特权卡 + MewRoomCustomMsgType_Privilege_Card = 102, + ///发起邀请 + MewRoomCustomMsgType_Initiat_Invitation = 103, +}; + + +///first = MewRoomCustomMsgType_Room_Tip +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRoomTip) { + ///分享房间 + Mew_Room_Custom_Msg_Sub_Room_Tip_ShareRoom = 21, + ///关注房主 + Mew_Room_Custom_Msg_Sub_Room_Tip_Attention_Owner = 22, +}; + +///first = MewRoomCustomMsgType_Gift +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubGift) { + ///发送礼物 + Mew_Room_Custom_Msg_Sub_Gift_Send = 31, + ///全服发送礼物 + Mew_Room_Custom_Msg_Sub_Gift_ChannelNotify = 32, + ///发送 福袋 礼物 + Mew_Room_Custom_Msg_Sub_Gift_LuckySend = 34, +}; + +///first = MewRoomCustomMsgType_Account +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubAccount) { + //账户余额钻石变更 + Mew_Room_Custom_Msg_Sub_Account_Changed = 51, +}; + +///first = MewRoomCustomMsgType_Member_Online +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubOnLine) { + ///房主的主播上线了 + Mew_Custom_Message_Type_Attention_Member_Online = 61 +}; + +///first = MewRoomCustomMsgType_Queue +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubQueue) { + ///邀请上麦 + Mew_Room_Custom_Msg_Sub_Queue_Invite = 81, + ///踢下麦 + Mew_Room_Custom_Msg_Sub_Queue_Kick = 82, +}; + +//first = MewRoomCustomMsgType_Face +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubFace) { + ///发送 + Mew_Room_Custom_Msg_Sub_Face_Send = 91, +}; + +///first == MewRoomCustomMsgType_Tweet +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubTweet) { + ///推文的内容 + Mew_Room_Custom_Msg_Sub_Tweet_News = 101, +}; + +///first = MewRoomCustomMsgType_ALLMicroSend +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubAllMicroSend) { + ///全麦送礼物 + Mew_Room_Custom_Msg_Sub_AllMicroSend = 121, + ///非全麦 多人送礼 + Mew_Room_Custom_Msg_Sub_AllBatchSend = 123, + ///非全麦 多人送福袋礼物 + Mew_Room_Custom_Msg_Sub_AllBatchMicroLuckySend = 124, + ///全麦送 福袋 礼物 122老版本占用了 + Mew_Room_Custom_Msg_Sub_AllMicroLuckySend = 125, +}; + +///first == MewRoomCustomMsgType_Car_Notify +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubCar) { + Mew_Room_Custom_Msg_Sub_Car_EnterRoom = 159, //进房动画 +}; + +///first = CustomMessageType_Kick_User +typedef NS_ENUM(NSUInteger, Mew_CustomNotificationSubKick) { + ///拉黑 + Mew_Room_Custom_Msg_Sub_Kick_BlackList = 182, + ///踢出房间 + Mew_Room_Custom_Msg_Sub_Kick_BeKicked = 181, +}; + + +///first = MewRoomCustomMsgType_Secretary +typedef NS_ENUM(NSUInteger, Mew_CustomNotificationSecretary) { + ///跳转页面 + Mew_Room_Custom_Msg_Sub_Secretary_Router = 191, +}; + +///first = Mew_ CustomMessageType_Update_RoomInfo +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubUpdateRoomInfo) { + ///动画开关状态更新 + Mew_Room_Custom_Msg_Sub_Update_RoomInfo_AnimateEffect = 201, + ///公屏开关更新 + Mew_Room_Custom_Msg_Sub_Update_RoomInfo_MessageState = 203, + ///通用公屏提示文案, 公屏纯文本展示消息 data[@"tip"] + Mew_Room_Custom_Msg_Sub_Update_RoomInfo_Notice = 204, + ///红包开关通知 + Mew_Room_Custom_Msg_Sub_Update_RoomInfo_RedPacket = 205, + ///清空公屏 + Mew_Room_Custom_Msg_Sub_Update_RoomInfo_CleanScreen = 206, +}; + +///first = MewRoomCustomMsgType_Application_Share +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubApplicationShare) { + ///分享房间 + Mew_Room_Custom_Msg_Sub_Application_Share_Room = 221, +}; + + +///first = MewRoomCustomMsgType_Applica +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubMessageHandle) { + Mew_Room_Custom_Msg_Sub_Message_Handle_Content = 231, //文本 + Mew_Room_Custom_Msg_Sub_Message_Handle_Bussiness = 232, //业务 +}; + +///first = MewRoomCustomMsgType_User_UpGrade +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubUserUpgrade) { + ///用户等级 + Mew_Room_Custom_Msg_Sub_User_UpGrade_Exper = 241, + ///魅力等级 + Mew_Room_Custom_Msg_Sub_User_UpGrade_Charm = 242 +}; + +///first = CustomMessageType_Candy_Tree +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubCandyTree) { + //.自己可见 一级礼物(最小) + Mew_Room_Custom_Msg_Sub_Candy_Tree_Me = 261, + ///当前房间可见 二级礼物 + Mew_Room_Custom_Msg_Sub_Candy_Tree_InRoom = 262, + ///所有房间可见 三级礼物 + Mew_Room_Custom_Msg_Sub_Candy_Tree_AllRoom = 263, + ///所有房间可见+小秘书 四级礼物 + Mew_Room_Custom_Msg_Sub_Candy_Tree_AllRoom_Notify = 264, + ///五级礼物 + Mew_Room_Custom_Msg_Sub_Candy_Tree_InRoom_NeedAllMicSend = 265, + //暴击的没用 不写了 +}; + +///first = MewRoomCustomMsgType_Arrange_Mic +typedef NS_ENUM(NSUInteger, Mew_CustomNotiHeaderArrangeMic) { + ///队列从无人排麦到有人排麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Non_Empty= 301, + ///队列从有人排麦到无人排麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Empty= 302, + ///开启排麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Mode_Open= 303, + ///关闭排麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Mode_Close= 304, + ///将坑位设置成自由麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Free_Mic_Open= 305, + ///将坑位设置为排麦 + Mew_Room_Custom_Msg_Sub_Arrange_Mic_Free_Mic_Close= 306, +}; + +///first = MewRoomCustomMsgType_Room_PK +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRoomPK){ + ///从无人报名pk排麦到有人报名pk排麦 + Mew_Room_Custom_Msg_Sub_Room_PK_Non_Empty = 311, + ///从有人报名pk排麦到无人报名pk排麦 + Mew_Room_Custom_Msg_Sub_Room_PK_Empty = 312, + ///创建了pk模式 + Mew_Room_Custom_Msg_Sub_Room_PK_Mode_Open = 313, + ///关闭pk模式 + Mew_Room_Custom_Msg_Sub_Room_PK_Mode_Close = 314, + ///pk开始 + Mew_Room_Custom_Msg_Sub_Room_PK_Start = 315, + ///pk结果 + Mew_Room_Custom_Msg_Sub_Room_PK_Result = 316, + ///重新开始 + Mew_Room_Custom_Msg_Sub_Room_PK_Re_Start= 317, + ///管理员邀请上麦(只用在客户端) + Mew_Room_Custom_Msg_Sub_Room_PK_Manager_Up_Mic = 318, +}; + +///first=MewRoomCustomMsgType_Hall +typedef NS_ENUM(NSUInteger, Mew_Custom_Noti_Sub_HALL) { + ///申请加入厅 + Mew_Room_Custom_Msg_Sub_Hall_Apply_Join = 321, + ///管理邀请入厅 + Mew_Room_Custom_Msg_Sub_Hall_Manager_Invite = 322, + ///申请退出厅 + Mew_Room_Custom_Msg_Sub_Hall_Apply_Exit = 323, + ///模厅普通通知 + Mew_Room_Custom_Msg_Sub_Hall_Notice = 324, + ///设置为模厅 + Mew_Room_Custom_Msg_Sub_Hall_Become_Hall = 325, +}; + +///first = MewRoomCustomMsgType_Room_GiftValue +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRoomGiftValue) { + ///礼物值同步 + Mew_Room_Custom_Msg_Sub_Room_GiftValue_Sync = 421 +}; + +///first = MewRoomCustomMsgType_Version_Update) +typedef NS_ENUM(NSUInteger, Mew_CustomMessageVersionUpdateValue) { + ///版本升级 + Mew_Custom_Message_Version_Update_Value = 491 +}; + +///first = MewRoomCustomMsgType_Hall_Super_Admin +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubHallSuperAdmin) { + ///超管解除陪伴房的进房限制 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Remove_CP_Room_Limit = 501, + ///超管解除多人房的房间密码 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Remove_Room_Pwd = 502, + ///锁麦 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Lock_Mic = 503, + ///闭麦 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Mute_Mic = 504, + ///踢人下麦 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Kick_Down_Mic = 505, + ///拉黑 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Mark_Black = 506, + ///踢出房间 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Kick_Out_Room = 507, + ///踢管理员出房间 + Mew_Room_Custom_Msg_Sub_Hall_Super_Admin_Kick_Manager_Out_Room = 508, +}; + +/// first == MewRoomCustomMsgType_Monents +typedef NS_ENUM(NSUInteger, Mew_Custom_Noti_Sub_Dynamic) { + ///未读更新 + Mew_Room_Custom_Msg_Sub_Monents_Unread_Update = 521, + /// 违禁删除 + Mew_Room_Custom_Msg_Sub_Monents_Ban_Delete = 522, + /// 动态审核通过 + Mew_Room_Custom_Msg_Sub_Monents_Approved = 523, + /// app内分享动态 + Mew_Room_Custom_Msg_Sub_Monents_Share = 524, +}; + +///first = MewRoomCustomMsgType_Room_Welcome +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRoomWelcome) { + ///欢迎Ta + Mew_Room_Custom_Msg_Sub_Room_Welcome = 561, +}; + +///first = CustomMessageType_RedPacket +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRedPacket) { + Mew_Room_Custom_Msg_Sub_RoomGiftRedPacket = 601, //房间礼物红包 + Mew_Room_Custom_Msg_Sub_RoomDiamandRedPacket = 602, //房间钻石红包 + Mew_Room_Custom_Msg_Sub_AllGiftRedPacket = 603, //全服礼物红包 + Mew_Room_Custom_Msg_Sub_AllDiamandRedPacket = 604, //全服钻石红包 + Mew_Room_Custom_Msg_Sub_OpenRedPacketSuccess = 605,//抢红包成功 +}; + +///first = MewRoomCustomMsgType_Collection_Room +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubCollectRoom) { + /// 福袋礼物房间飘屏通知 + Mew_Room_Custom_Msg_Sub_Room_Gift_LuckBag= 610, + /// 福袋礼物全服飘屏通知 + Mew_Room_Custom_Msg_Sub_Room_Gift_LuckBag_Server = 611, +}; + +///first == MewRoomCustomMsgType_FindNew 发现萌新 +typedef NS_ENUM(NSUInteger, Mew_CustomMessageFindNewUserGreet) { + /// 打招呼 + Custom_Message_Find_New_Greet_New_User = 621, +}; +///跳转类型 +typedef NS_ENUM(NSUInteger, Mew_CustomMessageRouter) { + /// 跳转H5 + Mew_Custom_Message_Router_H5 = 2, +}; + +///first = CustomMessageType_LuckyBag +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubLuckyBag) { + ///收藏房间公屏提示消息 + Mew_Room_Custom_Msg_Sub_Collect_Room_Tips = 591, + /// 提醒用户收藏房间 + Mew_Room_Custom_Msg_Sub_Collect_Room_Remind_User = 592, +}; + +///MewRoomCustomMsgType_Tarot +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubTarot) { + /// 塔罗中奖消息 + Mew_Room_Custom_Msg_Sub_Tarot = 711, +}; + +///MewRoomCustomMsgType_RoomPlay_Dating +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubRoomPlayDating){ + ///选择心动用户 + Mew_Room_Custom_Msg_Sub_Room_Play_Dating_Pick_Heart= 721, + ///公布结果 + Mew_Room_Custom_Msg_Sub_Room_Play_Dating_Public_Result = 722, + ///选择了对象 但不是互选 客户端收到结果之后自动加到 公屏上 + Mew_Room_Custom_Msg_Sub_Room_Play_Dating_Result_Not_Mutual = 723, + ///互选的 客户端收到结果之后自动加到 公屏上 + Mew_Room_Custom_Msg_Sub_Room_Play_Dating_Result_Mutual = 724, +}; + +///first = MewRoomCustomMsgType_Chat_Risk_Alert +/// 访客记录 +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubChatRiskAlert) { + /// 私聊风险提醒 + Mew_Room_Custom_Msg_Sub_Chat_Risk_Alert= 751, +}; + +///first = CustomMessageType_First_Recharge_Reward +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubFirstRecharge) { + /// 首充完成 + Mew_Room_Custom_Msg_Sub_Room_First_Recharge_Reward= 761, + /// 新用户专享优惠充值完成 + Mew_Room_Custom_Msg_Sub_New_User_Recharge_Reward = 762, +}; + +/// 访客记录 +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubVisitorRecord) { + /// 访客记录 + Mew_Room_Custom_Msg_Sub_Visitor_Record = 781, +}; + +///first == CustomMessageType_Room_Sailing +typedef NS_ENUM(NSInteger, MewRoomCustomMsgSubSailing) { + //自己可见 一级礼物(最小) + Mew_Room_Custom_Msg_Sub_Sailing_Me = 811, + //当前房间可见 二级礼物 + Mew_Room_Custom_Msg_Sub_Sailing_InRoom = 812, + //所有房间可见 三级礼物 + Mew_Room_Custom_Msg_Sub_Sailing_AllRoom = 813, + //所有房间可见+小秘书 四级礼物(最大) + Mew_Room_Custom_Msg_Sub_Sailing_AllRoom_Notify = 814, + //开箱子开到全麦送 (服务端发) + Mew_Room_Custom_Msg_Sub_Sailing_InRoom_NeedAllMicSend = 815, +}; + +///first = CustomMessageType_Across_Room_PK +typedef NS_ENUM(NSUInteger, MewRoomCustomMsgSubAcrossRoomPK) { + /// 收到跨房PK邀请 + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_Invite = 831, + /// 拒绝跨房PK + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_Reject = 832, + /// 接受跨房PK + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_Accept = 833, + /// 面板消息 + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_Panel = 834, + /// 跨房PK结束通知 + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_End = 835, + /// 跨房PK结束飘屏 + Mew_Room_Custom_Msg_Sub_AcrossRoomPK_Result = 836, + + ///收到个播PK邀请 + Mew_Room_Custom_Msg_Sub_AnchorPK_Invite = 837, + ///拒绝个播pk + Mew_Room_Custom_Msg_Sub_AnchorPK_Reject = 838, + ///接收个播PK + Mew_Room_Custom_Msg_Sub_AnchorPK_Accept = 839, + ///个播PK面板消息 + Mew_Room_Custom_Msg_Sub_AnchorPK_Panel = 8310, + ///个播PK结束通知(收到后进入惩罚阶段) + Mew_Room_Custom_Msg_Sub_AnchorPK_End = 8311, + ///个播PK结束飘屏 + Mew_Room_Custom_Msg_Sub_AnchorPK_Result = 8312, + ///个播PK完成 + Mew_Room_Custom_Msg_Sub_AnchorPK_Finish = 8313, + ///收到预约PK倒计时 + Mew_Room_Custom_Msg_Sub_PK_BeginTime = 8314, + ///匹配个播随机PK等待超时 + Mew_Room_Custom_Msg_Sub_AnchorPK_Match_TimeOut = 8315, + ///个播pk禁用对方麦克风 + Mew_Room_Custom_Msg_Sub_AnchorPK_MuteOtherMic = 8316, +}; + +///first = CustomMessageType_Noble_VIP +typedef NS_ENUM(NSUInteger, CustomMessageSubNobleVIP) { + /// 开通贵族房内消息(公屏显示) + Mew_Room_Custom_Msg_Sub_Room_Open_Noble_VIP = 851, + /// 开通贵族成功通知消息 + Mew_Room_Custom_Msg_Sub_Open_Noble_Success = 852, + /// 贵族升级房内消息(公屏显示) + Mew_Room_Custom_Msg_Sub_Room_Noble_LevelUp = 853, + /// 贵族升级用户通知消息(弹窗) + Mew_Room_Custom_Msg_Sub_Noble_LevelUp_User = 854, + /// 贵族升级全服飘屏通知消息 + Mew_Room_Custom_Msg_Sub_Room_Noble_LevelUp_Suspend = 855, + /// 贵族升级全服房间公屏通知消息 + Mew_Room_Custom_Msg_Sub_AllRoom_Noble_LevelUp_Suspend = 856, + /// 贵族小喇叭房间消息 + Mew_Room_Custom_Msg_Sub_Room_Trumpet = 857, + +}; + +///first = CustomMessageType_Anchor_Hour_Rank +typedef NS_ENUM(NSUInteger, Mew_CustomMessageAnchorHourRank) { + ///个播小时榜 + Mew_Room_Custom_Msg_Sub_Anchor_Hour_Rank = 891, +}; + +///first = CustomMessageType_Anchor_FansTeam +typedef NS_ENUM(NSUInteger, Mew_CustomMessageAnchorFansTeam) { + ///开通粉丝团成功 + Mew_Room_Custom_Msg_Sub_FansTeam_Open_Success = 901, + ///开通粉丝团失败 + Mew_Room_Custom_Msg_Sub_FansTeam_Open_Fail = 902, + ///用户加入粉丝团成功 + Mew_Room_Custom_Msg_Sub_FansTeam_Join_Success = 903, + ///用户退出粉丝团成功 + Mew_Room_Custom_Msg_Sub_FansTeam_Out_Success = 904, +}; + +///first = CustomMessageType_Licnese_Hour_Rank +typedef NS_ENUM(NSUInteger, Mew_CustomMessageLicneseHourRank) { + ///牌照房小时榜 + Mew_Room_Custom_Msg_Sub_Licnese_Hour_Rank = 911, +}; + +///first = CustomMessageType_Task_Complete +typedef NS_ENUM(NSUInteger, Mew_CustomMessageTaskComplete) { + ///任务完成通知 + Mew_Room_Custom_Msg_Sub_TaskComplete = 921, +}; + +///first = CustomMessageType_Gift_Compound +typedef NS_ENUM(NSUInteger, Mew_CustomMessageGiftCompound) { + ///礼物合成通知 + Mew_Room_Custom_Msg_Sub_Gift_Compound = 931, +}; + +///first = CustomMessageType_Graffiti_Gift +typedef NS_ENUM(NSUInteger, Mew_CustomMessageGraffitiGift) { + ///涂鸦礼物 + Mew_Room_Custom_Msg_Sub_Graffiti_Gift = 941, +}; + +typedef NS_ENUM(NSInteger, Mew_CustomMessageWishGift) { + ///开启心愿礼物 + Mew_Room_Custom_Msg_Sub_Wish_Gift_Open = 951, + ///心愿礼物完成 + Mew_Room_Custom_Msg_Sub_Wish_Gift_Finish = 952, + ///心愿礼物庆祝动效 + Mew_Room_Custom_Msg_Sub_Wish_Gift_Gelebrate = 953, + ///心愿礼物进度更新 + Mew_Room_Custom_Msg_Sub_Wish_Gift_Update = 954, + ///心愿礼物进度关闭 + Mew_Room_Custom_Msg_Sub_Wish_Gift_Close = 955, +}; + +///星级厨房 CustomMessageType_Starred_Kitchen = 96, +typedef NS_ENUM(NSInteger, Mew_CustomMessageStarredKitchen) { + ///星级厨房礼物房间飘屏通知(静态) + Mew_Room_Custom_Msg_Sub_Starred_Kitchen_Banner_Static = 960, + ///星级厨房礼物房间飘屏通知动态) + Mew_Room_Custom_Msg_Sub_Starred_Kitchen_Banner_Dynamic = 961 , +}; +///小时榜更新 CustomMessageType_Hour_Update = 97 +typedef NS_ENUM(NSInteger, Mew_CustomMessageHourUpdate) { + + Mew_Room_Custom_Msg_Sub_Hour_Update = 971, + +}; + +///发起邀请 CustomMessageType_Initiat_Invitation + +typedef NS_ENUM(NSInteger, MewRoomCustomMsgTypeInitiatInvitation) { + ///发起用户或接单用户 + Mew_Room_Custom_Msg_Sub_Initiat_Invitation_Initiating_User = 1030, + + +}; +//RightNavigationPushType +typedef NS_ENUM(NSUInteger, MewWebViewNavPushType){ + ///跳转h5页面 + MewWebViewNavPushType_Web = 1, + ///分享 + MewWebViewNavPushType_Share = 2, + ///跳转原生页面 + MewWebViewNavPushType_App = 3, + ///分享图片 + MewWebViewNavPushType_Photo = 5 +}; #endif /* MewEnum_h */ diff --git a/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.h b/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.h index 74bcd4c..4cb82a9 100644 --- a/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.h +++ b/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.h @@ -28,7 +28,72 @@ typedef NS_ENUM(NSUInteger, MewHtmlURLType) { MewHtmlURLType_Mine_Earnings, ///我的收益 MewHtmlURLType_Mine_Level, ///我的等级 MewHtmlURLType_Identity_Auth, ///实名认证 - MewHtmlURLType_Nursery_Plan ///护苗计划 + MewHtmlURLType_Nursery_Plan, ///护苗计划 + + + + + + + kUserInviteFriendURL, ///邀请好友 + kGameBindAccountURL, + + kReportRoomURL,///举报房间 + ///分享房间 + kShareRoomURL, + ///房间魅力榜 + kRoomCharmRankURL, + ///房间榜 + kRoomRankURL, + ///房间小时榜 + kRoomHourRankURL, + ///用户等级 + kUserLevelURL, + ///平台榜单入口 + kHomeRankURL, + ///相亲规则介绍 + kRoomDatingRule, + ///贵族规则 + kNobleRuleURL, + ///用户充值协议 + kUserRechargeAgrURL, + //用户注册服务协议 + kUserRegiServiceAgrURL, + ///直播服务协议 + kLiveServiceAgrURL, + ///社区规范 + kCommunitySpecURL, + ///账号注销协议 + kAccountlogoutAgrURL, + ///主播粉丝团-铭牌申请 + kAnchorFansOpenURL, + ///主播粉丝团-粉丝列表 + kAnchorFansListURL, + ///主播粉丝团-粉丝排行 + kAnchorFansRankURL, + ///主播粉丝团-粉丝团规则 + kAnchorFansRuleURL, + ///周星礼物-周星榜 + kNewWeekStarURL, + ///牌照房间小时榜 + kLicenseHourRankURL, + ///幸运礼物玩法说明 + kLuckyGiftPlayRuleURL, + ///活动地址 + kSailingActivityURL, + ///网络整治乱象 + kNetworkRenovateURL, + ///动态分享 + kMonentsShareURL, + ///红包规则 + kRedPacketRuleURL, + ///星座入口 + kXinZuoStarURL, + ///特权卡 + kPrivilegeCardURL, + + + }; diff --git a/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.m b/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.m index 54df76d..2ed1e92 100644 --- a/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.m +++ b/yinmeng-ios/yinmeng-ios/Global/MewHtmlUrl.m @@ -12,25 +12,55 @@ NSString * const MewHtmlURLWithType(MewHtmlURLType type) { NSString * prefix = @"mew"; + NSDictionary * dic = @{ + + @(kUserInviteFriendURL) : [MewEncryptTool MEW_aesDecrypt:@"5o1nqP8PU4SZQeH3J+1H7VMVyUOCMUuI4vIOAG/gcp8="],///邀请好友modules/game/index.html + @(kGameBindAccountURL) : [MewEncryptTool MEW_aesDecrypt:@"SDQSH10JayuNliY/6u2PiE9ydMLanaA8SSEpL1Lg4A4="],///绑定账号modules/game/bindAccount.html + @(kReportRoomURL) : [MewEncryptTool MEW_aesDecrypt:@"70Q7xveLGyhX/bCtIiVuWA3ignYGv+sF38FhGnsIIr0="],///举报房间modules/inform/index.html + @(kRoomCharmRankURL) : [MewEncryptTool MEW_aesDecrypt:@"RkvXOFvZ9oPABVQ/JPG56igqPpFUAz9EXfwirNyts24="],//房间魅力榜modules/charm/index.html + @(kRoomRankURL) : [MewEncryptTool MEW_aesDecrypt:@"4EEXk0AKqehK8D4CJpBGT301KmsnSNLCO7x0q9uKeQo="], //房间榜modules/room_rank/index.html + @(kRoomHourRankURL) : [MewEncryptTool MEW_aesDecrypt:@"4EEXk0AKqehK8D4CJpBGT2bLRsHG7EzxV5lg7lvLhcQ="], //房间小时榜modules/room_rank/hourRank.html + @(kUserLevelURL) : [MewEncryptTool MEW_aesDecrypt:@"sNnKbOZ6J2b+4cUW8KkTRisiAOlqwuEExLZJM+1ACKc="],//我的等级modules/level/index.html + @(kHomeRankURL) : [MewEncryptTool MEW_aesDecrypt:@"xk9PM3KR2dX+O/UUWUqKTqeFGH4AOdMXk2TS09Llgng="], // 排行榜modules/rank/index.html#/rank + @(kRoomDatingRule) : [MewEncryptTool MEW_aesDecrypt:@"D4/LWify3Z6nxIJP6n+iotA2JN9/X+U6jNGbBtTyIXw="],//相亲玩法modules/rule/dating.html + @(kNobleRuleURL) : [MewEncryptTool MEW_aesDecrypt:@"eqazu/FHk6564ZAVnXTHEoB85hI/MKaOluqlFmolSwbYQBksOIxWM7aG6hh9zPSw"], // 贵族规则modules/rule/introduction-patrician.html + + + + @(kAccountlogoutAgrURL) : [MewEncryptTool MEW_aesDecrypt:@"SA+Y66t2GCfRYJFdu5Zt3EUQkAzCef5oyzr7hVJR+L7fq5pVBAsWbG0rjNa57cdY"], ///账号注销协议modules/rule/logout-agreement.html + @(kAnchorFansOpenURL) : [MewEncryptTool MEW_aesDecrypt:@"bSjC3WUvGoR6c5Yrt3nQ0wVEYf/3pVTEVjekCzCeZwqW3jBQovcftclQnSGZ27Pf"], ///主播粉丝团-铭牌申请modules/fans_club/nameplate.html + @(kAnchorFansListURL) : [MewEncryptTool MEW_aesDecrypt:@"bSjC3WUvGoR6c5Yrt3nQ01T296f8QA+t5wTgfs1WLM4="], ///主播粉丝团-粉丝列表modules/fans_club/myfans.html + @(kAnchorFansRankURL) : [MewEncryptTool MEW_aesDecrypt:@"bSjC3WUvGoR6c5Yrt3nQ09ce/qXFatpnadKoJEy6AJuTyxSflH1fyz2sWav+tYmM"], ///主播粉丝团-粉丝排行modules/fans_club/fans_rank.html + @(kAnchorFansRuleURL) : [MewEncryptTool MEW_aesDecrypt:@"bSjC3WUvGoR6c5Yrt3nQ0wohHKdhpMzzelu7CFH8rWk="], ///主播粉丝团-粉丝团规则modules/fans_club/rule.html + @(kNewWeekStarURL) : [MewEncryptTool MEW_aesDecrypt:@"5q04Pdk+1XPpKgE0op119eFdcjp2FddOrcQty2NwE6OkbwXrVoi3AZZppmDwKn9z"], ///周星礼物-周星榜modules/weekStar/newWeekStar.html + @(kLicenseHourRankURL) : [MewEncryptTool MEW_aesDecrypt:@"4EEXk0AKqehK8D4CJpBGT8x4OxM0U46k3KM+wL+275m6rE+xSqii2HP7MMD2JPgT"],///牌照房小时榜礼物modules/room_rank/hourRankLicense.html + @(kLuckyGiftPlayRuleURL) : [MewEncryptTool MEW_aesDecrypt:@"FbfZMJBqqEFTTKYQDN/AIAbrydC/Hm3TVvGad/JwydsZyKZlAcsrsfKXDJuQyPHQ" ],///幸运礼物玩法说明modules/rule/luckyGiftRule.html?giftID=%@ + @(kNetworkRenovateURL) : [MewEncryptTool MEW_aesDecrypt:@"eTedOc7Y0TlxRVlpsX3n9ufo+Jb/j3rE+hTHkTnzxmDeDbR8AnOhjjjMwWzqZgRY" ],///网络整治乱象activity/activemodel/index.html?code=ZBGG + @(kRedPacketRuleURL) : [MewEncryptTool MEW_aesDecrypt:@"yKbGpxAyQnCYmX8A7qqLGVNLkB6a6OSbb1BZXTACcO38CJ7TQHc9KUyXYupcygYG" ],///红包规则modules/rule/red-packet-rule.html + @(kXinZuoStarURL) : [MewEncryptTool MEW_aesDecrypt:@"f/tlN79hB4zsPyk1AxlYeSjj1gfNyX79DrmuU5hyujEfFbMLdSyUjkzrlwa4qXuA" ],///星座礼物activity/act-constellation/index.html + @(kPrivilegeCardURL) : [MewEncryptTool MEW_aesDecrypt:@"RW2RUxUBFSQXiYS0xFpDv3mOPyhnajpKDoOvXaOkw+eMIBEELWua52BcyMKWF41u" ],///特权卡说明modules/rule/privilegeCardRule.html + @(MewHtmlURLType_ShareDynamic) : [MewEncryptTool MEW_aesDecrypt:@"AFV3eR0bIdlUxUVoVCmg53nOM/gWq3SvC7C23mVzBzY=" ],///分享动态modules/share_room/index.html + @(MewHtmlURLType_ShareRoom) : [MewEncryptTool MEW_aesDecrypt:@"PcmJP4AFs8H95guz8kx4LfPgsQWKrP+oxFlk2XKRBJv3sON4Vkop633WvCS82LMI" ],///分享房间modules/world/share-page/index.html + @(MewHtmlURLType_Third_SDK) : [MewEncryptTool MEW_aesDecrypt:@"5DUvOwZ7yXifVv+j1AFT7EsX9eXfALyu8zvIugutpy0=" ], /// 第三方 SDK 目录modules/rule/sdk.html + @(MewHtmlURLType_UserInfo_Collect_List) : [MewEncryptTool MEW_aesDecrypt:@"CE/lFhVJcT1knu0rQNFYnPdspTh1DPgjxQ4lAR9raA4=" ], /// 个人信息收集清单modules/rule/personal-info.html + @(MewHtmlURLType_Device_List) : [MewEncryptTool MEW_aesDecrypt:@"CE/lFhVJcT1knu0rQNFYnJf6/IqI5S6cpivGJ83cPpo=" ], ///设备权限清单modules/rule/permissions.html + @(MewHtmlURLType_User_Charge_Protocol) : [MewEncryptTool MEW_aesDecrypt:@"adO+Se1Qg8vkXt0yMrQLq6ntk7GpA9EEUxqqsI+mSaIe+1v7yk5tOutiIihSI+M6" ], /// 用户充值协议modules/rule/rechargeAgreement.html + @(MewHtmlURLType_User_Regist_Protocol) : [MewEncryptTool MEW_aesDecrypt:@"oSYlxZYQP2Vu+3KRnQorypsYWQGEz2tKII7AwcFks7s=" ], /// 用户注册服务协议modules/rule/protocol.html + @(MewHtmlURLType_Live_Service_Protocol) : [MewEncryptTool MEW_aesDecrypt:@"S31dnmfWuboPkJF+GNxO1yvIPlEdwqwGaDV0+8YSZYM=" ], /// 直播服务协议modules/rule/live-protocol.html + @(MewHtmlURLType_Community_Norm) : [MewEncryptTool MEW_aesDecrypt:@"qb01127Yuik6fFNA/piagDFCckjTfAkwB3yHlJex+gbT5zZ4a9NkXe42tIUFp6/Q" ], ///社区规范modules/rule/community-norms.html + @(MewHtmlURLType_Help) : [MewEncryptTool MEW_aesDecrypt:@"QTb5OYWov8iqhEr8lgp4GNX7iaKcUVHqsZWyiklD/0g=" ], ///帮助modules/rule/guide.html + @(MewHtmlURLType_Mine_Earnings) : [MewEncryptTool MEW_aesDecrypt:@"b0jH8CuY/69UWg94C3WRXMqTKwFwZ4cB8jSGJUSdrn8GPyl2S7pnFg9M6psWH+rR" ], ///我的收益modules/myincome/index.html#/myincome + @(MewHtmlURLType_Mine_Level) : [MewEncryptTool MEW_aesDecrypt:@"xk9PM3KR2dX+O/UUWUqKTlkE/C8c4Od+whYlJk5hy90=" ], ///我的等级modules/rank/index.html#/rankl + @(MewHtmlURLType_Identity_Auth) : [MewEncryptTool MEW_aesDecrypt:@"yGvtvzjcRHrQ53YPK2EYkr/dlGbQBgA8ZFGTOCIHjZU=" ], ///实名认证modules/identity/new.html + @(MewHtmlURLType_Nursery_Plan) : [MewEncryptTool MEW_aesDecrypt:@"lj5qlnT0knRyBjNWIj92lGY/t3ZtwnqASH3ivS2r1J8=" ], ///护苗计划activity/cleanNet/index.html @(MewHtmlURLType_Privacy) : [MewEncryptTool MEW_aesDecrypt:@"RW2RUxUBFSQXiYS0xFpDv+HMdWG2/xfjkYMyeSFR/BY="],//隐私政策modules/rule/privacy-wap.html @(MewHtmlURLType_CancelAccout) : [MewEncryptTool MEW_aesDecrypt:@"OdODqmY17B0vG9Gs7FGtEuzMJQXILqziECH6PQoOSLo="],//注销账号modules/logout/index.html @(MewHtmlURLType_UserProtocal) : [MewEncryptTool MEW_aesDecrypt:@"oSYlxZYQP2Vu+3KRnQorypsYWQGEz2tKII7AwcFks7s="],///用户协议modules/rule/protocol.html - @(MewHtmlURLType_ShareDynamic) : @"modules/share_room/index.html",///分享动态modules/share_room/index.html - @(MewHtmlURLType_ShareRoom) : @"modules/world/share-page/index.html",///分享房间modules/world/share-page/index.html - @(MewHtmlURLType_Third_SDK) : @"modules/rule/sdk.html", /// 第三方 SDK 目录 - @(MewHtmlURLType_UserInfo_Collect_List) : @"modules/rule/personal-info.html", /// 个人信息收集清单 - @(MewHtmlURLType_Device_List) : @"modules/rule/permissions.html", ///设备权限清单 - @(MewHtmlURLType_User_Charge_Protocol) : @"modules/rule/rechargeAgreement.html", /// 用户充值协议 - @(MewHtmlURLType_User_Regist_Protocol) : @"modules/rule/protocol.html", /// 用户注册服务协议 - @(MewHtmlURLType_Live_Service_Protocol) : @"modules/rule/live-protocol.html", /// 直播服务协议 - @(MewHtmlURLType_Community_Norm) : @"modules/rule/community-norms.html", ///社区规范 - @(MewHtmlURLType_Help) : @"modules/rule/guide.html", ///帮助 - @(MewHtmlURLType_Mine_Earnings) : @"modules/myincome/index.html#/myincome", ///我的收益 - @(MewHtmlURLType_Mine_Level) : @"modules/level/index.html", ///我的等级 - @(MewHtmlURLType_Identity_Auth) : @"modules/identity/new.html", ///实名认证 - @(MewHtmlURLType_Nursery_Plan) : @"activity/cleanNet/index.html", ///护苗计划 }; + + + NSString * url = [dic objectForKey:@(type)]; return [NSString stringWithFormat:@"%@/%@",prefix, url]; } diff --git a/yinmeng-ios/yinmeng-ios/Main/IM/Model/MewAttachmentModel.h b/yinmeng-ios/yinmeng-ios/Main/IM/Model/MewAttachmentModel.h index f32f8b7..bb23c67 100644 --- a/yinmeng-ios/yinmeng-ios/Main/IM/Model/MewAttachmentModel.h +++ b/yinmeng-ios/yinmeng-ios/Main/IM/Model/MewAttachmentModel.h @@ -9,84 +9,8 @@ #import NS_ASSUME_NONNULL_BEGIN -typedef NS_ENUM(NSUInteger, Mew_CustomMessageType) { - ///房间提示 - Mew_CustomMessageType_Room_Tip = 2, - ///送礼物的接口 - Mew_CustomMessageType_Gift = 3, - ///队列操作 - Mew_CustomMessageType_Queue = 8, - ///表情 - Mew_CustomMessageType_Face = 9, - ///全麦送 - Mew_CustomMessageType_AllMicroSend = 12, - ///踢出房间 - Mew_CustomMessageType_Kick_User = 18, - ///小秘书消息 - Mew_CustomMessageType_Secretary = 19, - ///房间礼物值 - Mew_CustomMessageType_Room_GiftValue = 42, -}; -///first = Mew_CustomMessageType_Room_Tip -typedef NS_ENUM(NSUInteger, MewCustomMessageSubRoomTip) { - ///分享房间 - Mew_Custom_Message_Sub_Room_Tip_ShareRoom = 21, - ///关注房主 - Mew_Custom_Message_Sub_Room_Tip_Attention_Owner = 22, -}; - -///first = Mew_CustomMessageType_Gift -typedef NS_ENUM(NSUInteger, MewCustomMessageSubGift) { - ///发送礼物 - Mew_Custom_Message_Sub_Gift_Send = 31, - ///全服发送礼物 - Mew_Custom_Message_Sub_Gift_ChannelNotify = 32, - ///发送 福袋 礼物 - Mew_Custom_Message_Sub_Gift_LuckySend = 34, -}; - -///first = Mew_CustomMessageType_Queue -typedef NS_ENUM(NSInteger, MewCustomMessageSubQueue) { - ///踢下麦 - Mew_Custom_Message_Sub_Queue_Kick = 82, -}; - -//first = Mew_CustomMessageType_Face -typedef NS_ENUM(NSUInteger, MewCustomMessageSubFace) { - ///发送 - Mew_Custom_Message_Sub_Face_Send = 91, -}; - -///first = Mew_CustomMessageType_ALLMicroSend -typedef NS_ENUM(NSUInteger, MewCustomMessageSubAllMicroSend) { - ///全麦送礼物 - Mew_Custom_Message_Sub_AllMicroSend = 121, - ///非全麦 多人送礼 - Mew_Custom_Message_Sub_AllBatchSend = 123, - ///非全麦 多人送福袋礼物 - Mew_Custom_Message_Sub_AllBatchMicroLuckySend = 124, - ///全麦送 福袋 礼物 122老版本占用了 - Mew_Custom_Message_Sub_AllMicroLuckySend = 125, -}; - - -///first = Mew_CustomMessageType_Kick_User -typedef NS_ENUM(NSUInteger, MewCustomNotificationSubKick) { - ///拉黑 - Mew_Custom_Message_Sub_Kick_BlackList = 182, - ///踢出房间 - Mew_Custom_Message_Sub_Kick_BeKicked = 181, -}; - - -///first = Mew_CustomMessageType_Room_GiftValue -typedef NS_ENUM(NSUInteger, MewCustomMessageSubRoomGiftValue) { - ///礼物值同步 - Mew_Custom_Message_Sub_Room_GiftValue_Sync = 421 -}; - @interface MewAttachmentModel : NSObject @property (nonatomic,assign) int first; @property (nonatomic,assign) int second; diff --git a/yinmeng-ios/yinmeng-ios/Main/Message/View/MewSessionList/Controller/MewMessageFriendViewController.m b/yinmeng-ios/yinmeng-ios/Main/Message/View/MewSessionList/Controller/MewMessageFriendViewController.m index dc0e8a6..d00c887 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Message/View/MewSessionList/Controller/MewMessageFriendViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/Message/View/MewSessionList/Controller/MewMessageFriendViewController.m @@ -76,7 +76,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (self.friendModels.count == 0) { MewEmptyTableViewCell *emptyCell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([MewEmptyTableViewCell class])]; - emptyCell.emptyTitle = @"您还没有任何好友"; + emptyCell.mewText = @"您还没有任何好友"; return emptyCell; } diff --git a/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MewDressupShopListViewController.m b/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MewDressupShopListViewController.m index bfc5ebc..68fc420 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MewDressupShopListViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MewDressupShopListViewController.m @@ -81,7 +81,7 @@ - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { if (self.shopModels.count == 0) { MewEmptyCollectionViewCell *emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewEmptyCollectionViewCell class]) forIndexPath:indexPath]; - emptyCell.emptyTitle = [self getEmptyTitle]; + emptyCell.mewText = [self getEmptyTitle]; return emptyCell; } diff --git a/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MineDressup/MewMineDressupCollectionViewController.m b/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MineDressup/MewMineDressupCollectionViewController.m index e877999..c568bc1 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MineDressup/MewMineDressupCollectionViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/Mine/View/Dressup/MineDressup/MewMineDressupCollectionViewController.m @@ -102,7 +102,7 @@ - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { if (self.bubbleModels.count == 0) { MewEmptyCollectionViewCell *emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewEmptyCollectionViewCell class]) forIndexPath:indexPath]; - emptyCell.emptyTitle = @"亲爱的用户,您还没有聊天气泡哦!"; + emptyCell.mewText = @"亲爱的用户,您还没有聊天气泡哦!"; return emptyCell; } diff --git a/yinmeng-ios/yinmeng-ios/Main/Mine/View/PersonCenter/MewPersonalCenterViewController.m b/yinmeng-ios/yinmeng-ios/Main/Mine/View/PersonCenter/MewPersonalCenterViewController.m index 78d5789..3ba93ee 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Mine/View/PersonCenter/MewPersonalCenterViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/Mine/View/PersonCenter/MewPersonalCenterViewController.m @@ -38,7 +38,7 @@ #import /// Net #import "Api+Mine.h" - +#import "MewRoomViewController.h" @interface MewPersonalCenterViewController () + +NS_ASSUME_NONNULL_BEGIN + +@interface MewRoomTopRankEnterModel : NSObject +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) NSInteger charmSeq; +@property (nonatomic, copy) NSString *charmUrl; +@property (nonatomic , copy) NSString * experNewUrl; +@property (nonatomic , copy) NSString * charmNewUrl; +@property (nonatomic, assign) NSInteger erbanNo; +@property (nonatomic, assign) NSInteger experSeq; +@property (nonatomic, copy) NSString *experUrl; +@property (nonatomic, assign) NSInteger gender; +@property (nonatomic, assign) NSInteger goldAmount; +@property (nonatomic, assign) BOOL hide; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, assign) NSInteger ranking; +@property (nonatomic, assign) NSInteger uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewModel/MewRoomTopRankEnterModel.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewModel/MewRoomTopRankEnterModel.m new file mode 100644 index 0000000..c807cc5 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewModel/MewRoomTopRankEnterModel.m @@ -0,0 +1,12 @@ +// +// MewRoomTopRankEnterModel.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomTopRankEnterModel.h" + +@implementation MewRoomTopRankEnterModel + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.h new file mode 100644 index 0000000..ebfbdd1 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.h @@ -0,0 +1,16 @@ +// +// MewRoomNoticeView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//XPRoomAnnouncementView +@interface MewRoomNoticeView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.m new file mode 100644 index 0000000..9d1048d --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomNoticeView.m @@ -0,0 +1,79 @@ +// +// MewRoomNoticeView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomNoticeView.h" +@interface MewRoomNoticeView() +///背景图 +@property (nonatomic, strong) UIImageView *mewbgView; +/// +@property (nonatomic, strong) UILabel *mewTextView; +///图标 +@property (nonatomic, strong) UIImageView *mewIconView; +@end +@implementation MewRoomNoticeView +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.mewbgView]; + [self addSubview:self.mewTextView]; + [self addSubview:self.mewIconView]; +} + +- (void)initSubViewConstraints { + [self.mewbgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.left.right.mas_equalTo(0); + }]; + [self.mewTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.mewIconView.mas_right).mas_offset(8); + }]; + [self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(12); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(7); + }]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)mewbgView { + if (_mewbgView == nil) { + _mewbgView = [[UIImageView alloc] init]; + _mewbgView.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.1]; + _mewbgView.layer.cornerRadius = 11; + _mewbgView.layer.masksToBounds = YES; + } + return _mewbgView; +} + +- (UIImageView *)mewIconView { + if (_mewIconView == nil) { + _mewIconView = [[UIImageView alloc] init]; + _mewIconView.image = [UIImage imageNamed:@"mew_room_notice_icon"]; + _mewIconView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewIconView; +} + +- (UILabel *)mewTextView { + if (_mewTextView == nil) { + _mewTextView = [[UILabel alloc] init]; + _mewTextView.textColor = UIColor.whiteColor; + _mewTextView.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _mewTextView.text = @"公告"; + } + return _mewTextView; +} + + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.h new file mode 100644 index 0000000..9d38df0 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.h @@ -0,0 +1,17 @@ +// +// MewRoomTopRankEnterView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +///XPRoomTopRankView +@interface MewRoomTopRankEnterView : UIView +@property (nonatomic, strong) NSArray *mewRankArray; +@property(nonatomic,assign) BOOL mewIsGame; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.m new file mode 100644 index 0000000..ae27455 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomContentContainerView/MewView/MewRoomTopRankEnterView.m @@ -0,0 +1,266 @@ +// +// MewRoomTopRankEnterView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomTopRankEnterView.h" +#import "MewRoomTopRankEnterModel.h" +@interface MewRoomTopRankEnterView() +///背景图 +@property (nonatomic, strong) UIView *mewBgImageView; + +/// 头像挂件 +@property (nonatomic, strong) UIImageView *mewAvatarWear1; +@property (nonatomic, strong) UIImageView *mewAvatarWear2; +@property (nonatomic, strong) UIImageView *mewAvatarWear3; +/// 头像 +@property (nonatomic, strong) NetImageView *mewHeadView1; +@property (nonatomic, strong) NetImageView *mewHeadView2; +@property (nonatomic, strong) NetImageView *mewHeadView3; +/// 贡献值 +@property (nonatomic, strong) UILabel *mewNum1; +@property (nonatomic, strong) UILabel *mewNum2; +@property (nonatomic, strong) UILabel *mewNum3; +@end +@implementation MewRoomTopRankEnterView + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self mew_setUI]; + [self mew_setUIConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)mew_setUI { + [self addSubview:self.mewBgImageView]; + + [self.mewBgImageView addSubview:self.mewAvatarWear1]; + [self.mewBgImageView addSubview:self.mewAvatarWear2]; + [self.mewBgImageView addSubview:self.mewAvatarWear3]; + + [self.mewAvatarWear1 addSubview:self.mewHeadView1]; + [self.mewAvatarWear1 addSubview:self.mewNum1]; + + [self.mewAvatarWear2 addSubview:self.mewHeadView2]; + [self.mewAvatarWear2 addSubview:self.mewNum2]; +// + [self.mewAvatarWear3 addSubview:self.mewHeadView3]; + [self.mewAvatarWear3 addSubview:self.mewNum3]; + +} +-(void)setMewIsGame:(BOOL)mewIsGame{ + _mewIsGame = mewIsGame; + self.mewAvatarWear2.hidden = _mewIsGame; + self.mewAvatarWear3.hidden = _mewIsGame; + self.mewHeadView2.hidden = _mewIsGame; + self.mewHeadView3.hidden = _mewIsGame; + self.mewNum2.hidden = _mewIsGame; + self.mewNum3.hidden = _mewIsGame; +} + +- (void)mew_setUIConstraints { + [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.right.left.mas_equalTo(0); + }]; + + [self.mewAvatarWear1 mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(29, 33)); + }]; + [self.mewHeadView1 mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerX.mas_equalTo(2.5); + make.centerY.mas_equalTo(4.5); + }]; + [self.mewNum1 mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.mewAvatarWear1.mas_bottom); + make.centerX.mas_equalTo(3); + make.size.mas_equalTo(CGSizeMake(22, 8)); + }]; + + [self.mewAvatarWear2 mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewAvatarWear1); + make.left.mas_equalTo(self.mewAvatarWear1.mas_right); + make.size.mas_equalTo(self.mewAvatarWear1); + }]; + [self.mewHeadView2 mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(self.mewHeadView1); + make.centerX.mas_equalTo(2.5); + make.centerY.mas_equalTo(4.5); + }]; + [self.mewNum2 mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.mewAvatarWear2.mas_bottom); + make.centerX.mas_equalTo(3); + make.size.mas_equalTo(self.mewNum1); + }]; + + [self.mewAvatarWear3 mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewAvatarWear1); + make.left.mas_equalTo(self.mewAvatarWear2.mas_right); + make.size.mas_equalTo(self.mewAvatarWear1); + }]; + [self.mewHeadView3 mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(self.mewHeadView1); + make.centerX.mas_equalTo(2.5); + make.centerY.mas_equalTo(4.5); + }]; + [self.mewNum3 mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.mewAvatarWear2.mas_bottom); + make.centerX.mas_equalTo(3); + make.size.mas_equalTo(self.mewNum1); + }]; + +} + +/// 转化贡献值 +- (NSString *)mew_setNumTitle:(NSInteger)num{ + if (num >= 10000) { + return [NSString stringWithFormat:@"%.1fw",num/10000.0]; + } + return [NSString stringWithFormat:@"%ld",num]; +} + +#pragma mark - Getters And Setters +-(void)setMewRankArray:(NSArray *)mewRankArray{ + _mewRankArray = mewRankArray; + MewRoomTopRankEnterModel *model1 = [mewRankArray mewSafeObjectAtIndex:0]; + if (model1) { + self.mewHeadView1.imageUrl = model1.avatar; + self.mewNum1.text = [self mew_setNumTitle:model1.goldAmount]; + }else{ + self.mewHeadView1.imageUrl = @""; + self.mewNum1.text = @"0"; + } + + MewRoomTopRankEnterModel *model2 = [mewRankArray mewSafeObjectAtIndex:1]; + if (model2) { + self.mewHeadView2.imageUrl = model2.avatar; + self.mewNum2.text = [self mew_setNumTitle:model2.goldAmount]; + }else{ + self.mewHeadView2.imageUrl = @""; + self.mewNum2.text = @"0"; + } + + MewRoomTopRankEnterModel *model3 = [mewRankArray mewSafeObjectAtIndex:2]; + if (model3) { + self.mewHeadView3.imageUrl = model3.avatar; + self.mewNum3.text = [self mew_setNumTitle:model3.goldAmount]; + }else{ + self.mewHeadView3.imageUrl = @""; + self.mewNum3.text = @"0"; + } +} + + +- (UIView *)mewBgImageView { + if (_mewBgImageView == nil) { + _mewBgImageView = [[UIView alloc] init]; + } + return _mewBgImageView; +} + +- (UIImageView *)mewAvatarWear1 { + if (!_mewAvatarWear1) { + _mewAvatarWear1 = [[UIImageView alloc] init]; + _mewAvatarWear1.image = [UIImage imageNamed:@"mew_room_top_rank_head_first"]; + } + return _mewAvatarWear1; +} + +- (UIImageView *)mewAvatarWear2 { + if (!_mewAvatarWear2) { + _mewAvatarWear2 = [[UIImageView alloc] init]; + _mewAvatarWear2.image = [UIImage imageNamed:@"mew_room_top_rank_head_second"]; + } + return _mewAvatarWear2; +} + +- (UIImageView *)mewAvatarWear3 { + if (!_mewAvatarWear3) { + _mewAvatarWear3 = [[UIImageView alloc] init]; + _mewAvatarWear3.image = [UIImage imageNamed:@"mew_room_top_rank_head_third"]; + } + return _mewAvatarWear3; +} + +- (NetImageView *)mewHeadView1 { + if (!_mewHeadView1) { + NetImageConfig *config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; + _mewHeadView1 = [[NetImageView alloc] initWithConfig:config]; + _mewHeadView1.layer.cornerRadius = 11; + _mewHeadView1.layer.masksToBounds = YES; + } + return _mewHeadView1; +} + +- (NetImageView *)mewHeadView2 { + if (!_mewHeadView2) { + NetImageConfig *config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; + _mewHeadView2 = [[NetImageView alloc] initWithConfig:config]; + _mewHeadView2.layer.cornerRadius = 11; + _mewHeadView2.layer.masksToBounds = YES; + } + return _mewHeadView2; +} + +- (NetImageView *)mewHeadView3 { + if (!_mewHeadView3) { + NetImageConfig *config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; + _mewHeadView3 = [[NetImageView alloc] initWithConfig:config]; + _mewHeadView3.layer.cornerRadius = 11; + _mewHeadView3.layer.masksToBounds = YES; + } + return _mewHeadView3; +} + +- (UILabel *)mewNum1 { + if (!_mewNum1) { + _mewNum1 = [[UILabel alloc] init]; + _mewNum1.textColor = [MewThemeColor mewColorWithHexString:@"#8E461A"]; + _mewNum1.textAlignment = NSTextAlignmentCenter; + _mewNum1.text = @"0"; + _mewNum1.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; + _mewNum1.backgroundColor = [MewThemeColor mewColorWithHexString:@"#F5CD57"]; + _mewNum1.layer.cornerRadius = 4; + _mewNum1.clipsToBounds = YES; + } + return _mewNum1; +} + +- (UILabel *)mewNum2 { + if (!_mewNum2) { + _mewNum2 = [[UILabel alloc] init]; + _mewNum2.textColor = [MewThemeColor mewColorWithHexString:@"#2E527A"]; + _mewNum2.textAlignment = NSTextAlignmentCenter; + _mewNum2.text = @"0"; + _mewNum2.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; + _mewNum2.backgroundColor = [MewThemeColor mewColorWithHexString:@"#91C8FA"]; + _mewNum2.layer.cornerRadius = 4; + _mewNum2.clipsToBounds = YES; + } + return _mewNum2; +} + +- (UILabel *)mewNum3 { + if (!_mewNum3) { + _mewNum3 = [[UILabel alloc] init]; + _mewNum3.textColor = [MewThemeColor mewColorWithHexString:@"#824B2C"]; + _mewNum3.textAlignment = NSTextAlignmentCenter; + _mewNum3.text = @"0"; + _mewNum3.font = [UIFont systemFontOfSize:7 weight:UIFontWeightMedium]; + _mewNum3.backgroundColor = [MewThemeColor mewColorWithHexString:@"#F0A47B"]; + _mewNum3.layer.cornerRadius = 4; + _mewNum3.clipsToBounds = YES; + } + return _mewNum3; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomHostDelegate.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomHostDelegate.h index d9b2e40..391ce63 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomHostDelegate.h +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomHostDelegate.h @@ -8,7 +8,9 @@ #import #import "MewMicroQueueProtocol.h" #import "MewRoomAnimationProtocol.h" -@class MewRoomInfoModel, MewUserInfoModel; +#import "MewRoomInfoModel.h" +#import "MewUserInfoModel.h" + NS_ASSUME_NONNULL_BEGIN @@ -19,10 +21,17 @@ NS_ASSUME_NONNULL_BEGIN - (MewUserInfoModel *)mew_getUserInformation; /// 退出房间 -- (void)mew_exitCurrentRoom; +- (void)mew_clickExitCurrentRoom; +- (void)mew_clickMinimizeRoom; + +- (NSArray *)mew_getRoomSuperAdminArray; +///获取房间PK队伍的 +- (NSArray *)mew_getRoomPKTeamArray; +///房间内PK是否正在进行 +- (BOOL)mew_getIsRoomPKState; /// 获取当前的导航控制器 -- (UINavigationController *)mew_getmew_currentNavigationController; +- (UINavigationController *)mew_getCurrentNavigationController; @end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.h new file mode 100644 index 0000000..fb69164 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.h @@ -0,0 +1,37 @@ +// +// MewRoomMornModels.h +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + + + + + + + + +#import + +NS_ASSUME_NONNULL_BEGIN + +//XPRoomRecommendModel +@interface MewRoomMornModel : NSObject +@property (nonatomic, assign) NSInteger roomId; +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, assign) NSInteger isPermitRoom; +//@property (nonatomic, strong) NSArray *micUsers;//群成员列表 +@property (nonatomic, copy) NSString *title; +@property (nonatomic, assign) NSInteger onlineNum; +@property (nonatomic, assign) NSInteger micUserCount; +@property (nonatomic, copy) NSString *tagPict; +@property (nonatomic, copy) NSString *roomTag; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic , assign) MewGenderType gender; +@property (nonatomic, copy) NSString *infoUid; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *roomPwd; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.m new file mode 100644 index 0000000..5b2ed39 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewModel/MewRoomMornModel.m @@ -0,0 +1,12 @@ +// +// MewRoomMornModels.m +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import "MewRoomMornModel.h" + +@implementation MewRoomMornModel + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.h new file mode 100644 index 0000000..6185372 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.h @@ -0,0 +1,32 @@ +// +// MewRoomMornView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol MewRoomMornViewDelegate + +///举报房间 +- (void)mewRoomMornViewClickReport; +///最小化房间 +- (void)mewRoomMornViewClickMiniRoom; +///退出房间 +- (void)mewRoomMornViewClickExitRoom; +///分享 +- (void)mewRoomMornViewClickShareView; +///跳转到房间 +- (void)mewRoomMornViewClickRoom:(NSString *)roomUid; + +@end +///XPRoomRecommendView +@interface MewRoomMornView : UIView +@property (nonatomic, strong) NSMutableArray *mewRoomArray;///roomList + +@property (nonatomic, weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.m new file mode 100644 index 0000000..7f0ebd7 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewRoomMornView.m @@ -0,0 +1,196 @@ +// +// MewRoomMornView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import "MewRoomMornView.h" +#import "MewRoomTopOperationCell.h" +#import "MewRoomListCell.h" +#import "MewRoomListEmptyCell.h" +#import "MewRoomMornModel.h" +@interface MewRoomMornView() +///模糊背景 +@property (nonatomic, strong) UIToolbar *mewOperateBar;///toolbar +@property (nonatomic, strong) UITableView *mewTableView; + +@property (nonatomic, strong) UICollectionView *mewCollectionView; +@property (nonatomic, strong) NSMutableArray *mewTitleList;///titleArray +@property (nonatomic, strong) NSMutableArray *mewImageList;///imageArray +///为你推荐 +@property (nonatomic, strong) UILabel *mewTitleView;///recommentLabel +@end +@implementation MewRoomMornView + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self mewSetUpUI]; + [self mewSetUpUIConstraints]; + } + return self; +} + +#pragma mark - lifeCycle +- (void)mewSetUpUI { + [self addSubview:self.mewOperateBar]; + [self addSubview:self.mewCollectionView]; + [self addSubview:self.mewTitleView]; + [self addSubview:self.mewTableView]; +} +-(void)setMewRoomArray:(NSMutableArray *)mewRoomArray{ + _mewRoomArray = mewRoomArray; + [self.mewTableView reloadData]; +} + + +#pragma mark - Constraints +- (void)mewSetUpUIConstraints { + [self.mewOperateBar mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.bottom.mas_equalTo(self); + }]; + [self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(kStatusBarHeight + 8); + make.height.mas_equalTo(82*2); + }]; + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewCollectionView.mas_bottom).mas_offset(16); + make.left.mas_equalTo(11); + }]; + [self.mewTableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.mewTitleView.mas_bottom); + }]; +} +#pragma mark - UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.mewTitleList.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + MewRoomTopOperationCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewRoomTopOperationCell class]) forIndexPath:indexPath]; + cell.mewText = [self.mewTitleList mewSafeObjectAtIndex:indexPath.row]; + cell.mewImage = [self.mewImageList mewSafeObjectAtIndex:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.row == 0) {//最小化房间 + if (self.delegate && [self.delegate respondsToSelector:@selector(mewRoomMornViewClickMiniRoom)]) { + [self.delegate mewRoomMornViewClickMiniRoom]; + } + } else if (indexPath.row == 1) {//分享房间 + if (self.delegate && [self.delegate respondsToSelector:@selector(mewRoomMornViewClickShareView)]) { + [self.delegate mewRoomMornViewClickShareView]; + } + } else if (indexPath.row == 2) {//退出房间 + if (self.delegate && [self.delegate respondsToSelector:@selector(mewRoomMornViewClickExitRoom)]) { + [self.delegate mewRoomMornViewClickExitRoom]; + } + } else {//举报房间 + if (self.delegate && [self.delegate respondsToSelector:@selector(mewRoomMornViewClickReport)]) { + [self.delegate mewRoomMornViewClickReport]; + } + } +} + +#pragma mark - UITableViewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.mewRoomArray.count ? self.mewRoomArray.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.mewRoomArray.count > 0) { + MewRoomListCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([MewRoomListCell class])]; + MewRoomMornModel*model = [self.mewRoomArray mewSafeObjectAtIndex:indexPath.row]; + cell.mornModel = model; + return cell; + } + MewRoomListEmptyCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([MewRoomListEmptyCell class])]; + if (cell == nil) { + cell = [[MewRoomListEmptyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([MewRoomListEmptyCell class])]; + } + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.mewRoomArray.count > 0) { + MewRoomMornModel *model = [self.mewRoomArray mewSafeObjectAtIndex:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(mewRoomMornViewClickRoom:)]) { + [self.delegate mewRoomMornViewClickRoom:[NSString stringWithFormat:@"%ld", model.uid]]; + } + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.mewRoomArray.count > 0 ? 84 : KScreenHeight - kStatusBarHeight -8 - 120; +} + +#pragma mark - getter +- (UIToolbar *)mewOperateBar { + if (!_mewOperateBar) { + _mewOperateBar = [[UIToolbar alloc] init]; + _mewOperateBar.barStyle = UIBarStyleBlack; + _mewOperateBar.translucent = YES; + } + return _mewOperateBar; +} + +- (UILabel *)mewTitleView { + if (!_mewTitleView) { + _mewTitleView = [[UILabel alloc] init]; + _mewTitleView.text = @"为你推荐"; + _mewTitleView.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _mewTitleView.textColor = [UIColor whiteColor]; + } + return _mewTitleView; +} + +- (UITableView *)mewTableView { + if (!_mewTableView) { + _mewTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _mewTableView.delegate = self; + _mewTableView.dataSource = self; + _mewTableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _mewTableView.showsVerticalScrollIndicator = NO; + [_mewTableView registerClass:[MewRoomListCell class] forCellReuseIdentifier:NSStringFromClass([MewRoomListCell class])]; + [_mewTableView registerClass:[MewRoomListEmptyCell class] forCellReuseIdentifier:NSStringFromClass([MewRoomListEmptyCell class])]; + _mewTableView.backgroundColor = [UIColor clearColor]; + } + return _mewTableView; +} + +- (UICollectionView *)mewCollectionView { + if (!_mewCollectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.minimumLineSpacing = 14; + layout.minimumInteritemSpacing = (250 - 3 * 52) / 4; + layout.itemSize = CGSizeMake(52, 68); + layout.sectionInset = UIEdgeInsetsMake(0, (250 - 3 * 52) / 4, 0, (250 - 3 * 52) / 4); + _mewCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [_mewCollectionView registerClass:[MewRoomTopOperationCell class] forCellWithReuseIdentifier:NSStringFromClass([MewRoomTopOperationCell class])]; + _mewCollectionView.delegate = self; + _mewCollectionView.dataSource = self; + _mewCollectionView.backgroundColor = [UIColor clearColor]; + } + return _mewCollectionView; +} + +- (NSMutableArray *)mewTitleList { + if (!_mewTitleList) { + _mewTitleList = [NSMutableArray arrayWithObjects:@"收起房间", @"分享房间", @"退出房间", @"举报房间", nil]; + } + return _mewTitleList; +} + +- (NSMutableArray *)mewImageList { + if (!_mewImageList) { + _mewImageList = [NSMutableArray arrayWithObjects:@"mew_room_morn_mini", @"mew_room_morn_share", @"mew_room_morn_exit", @"mew_room_morn_report", nil]; + } + return _mewImageList; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.h new file mode 100644 index 0000000..cf36623 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.h @@ -0,0 +1,16 @@ +// +// MewRoomListCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import +#import "MewRoomMornModel.h" +NS_ASSUME_NONNULL_BEGIN +//XPRoomInsideRecommendCell +@interface MewRoomListCell : UITableViewCell +@property(nonatomic,strong) MewRoomMornModel *mornModel; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.m new file mode 100644 index 0000000..3b0089b --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListCell.m @@ -0,0 +1,129 @@ +// +// MewRoomListCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import "MewRoomListCell.h" +@interface MewRoomListCell() +///头像 +@property (nonatomic, strong) NetImageView *mewAvatarView;///avatarImageView +///显示名字 +@property (nonatomic,strong) UILabel *mewNameView;///nickLabel +///标签 +@property (nonatomic,strong) NetImageView *mewTagView;////tagImageView +///显示🔥 +@property (nonatomic,strong) UIImageView *mewHotView;////hotImageView +///显示在线人数 +@property (nonatomic,strong) UILabel *mewNumView;///numberLabel +@end +@implementation MewRoomListCell + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self mew_initUI]; + [self mew_initUIConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)mew_initUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self addSubview:self.mewAvatarView]; + [self addSubview:self.mewNameView]; + [self addSubview:self.mewTagView]; + [self addSubview:self.mewHotView]; + [self addSubview:self.mewNumView]; +} + +- (void)mew_initUIConstraints { + [self.mewAvatarView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(12); + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(72); + }]; + [self.mewNameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewAvatarView).mas_offset(12); + make.left.mas_equalTo(self.mewAvatarView.mas_right).mas_offset(7); + make.height.mas_equalTo(14); + make.right.mas_equalTo(0); + }]; + [self.mewTagView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mewNameView); + make.width.mas_equalTo(43); + make.height.mas_equalTo(18); + make.top.mas_equalTo(self.mewNameView.mas_bottom).mas_offset(12); + }]; + [self.mewHotView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mewTagView.mas_right).mas_offset(12); + make.width.height.mas_equalTo(13); + make.centerY.mas_equalTo(self.mewTagView); + }]; + [self.mewNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mewHotView.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.mewTagView); + make.right.mas_equalTo(0); + make.height.mas_equalTo(12); + }]; +} +#pragma mark - Getters And Setters +- (void)setMornModel:(MewRoomMornModel *)mornModel{ + _mornModel = mornModel; + self.mewAvatarView.imageUrl = mornModel.avatar; + self.mewNameView.text = mornModel.title; + self.mewTagView.imageUrl = mornModel.tagPict; + self.mewNumView.text = [NSString stringWithFormat:@"%ld", mornModel.onlineNum]; +} + +- (NetImageView *)mewAvatarView { + if (!_mewAvatarView) { + NetImageConfig * config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewAvatarView = [[NetImageView alloc] initWithConfig:config]; + _mewAvatarView.layer.masksToBounds = YES; + _mewAvatarView.layer.cornerRadius = 8; + } + return _mewAvatarView; +} + +- (NetImageView *)mewTagView { + if (!_mewTagView) { + NetImageConfig * config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewTagView = [[NetImageView alloc] initWithConfig:config]; + } + return _mewTagView; +} + +- (UIImageView *)mewHotView { + if (!_mewHotView) { + _mewHotView = [[UIImageView alloc] init]; + _mewHotView.userInteractionEnabled = YES; + _mewHotView.image = [UIImage imageNamed:@"mew_room_hot_icon"]; + } + return _mewHotView; +} + +- (UILabel *)mewNameView { + if (!_mewNameView) { + _mewNameView = [[UILabel alloc] init]; + _mewNameView.font = [UIFont boldSystemFontOfSize:14]; + _mewNameView.textColor = [UIColor whiteColor]; + } + return _mewNameView; +} + +- (UILabel *)mewNumView { + if (!_mewNumView) { + _mewNumView = [[UILabel alloc] init]; + _mewNumView.font = [UIFont systemFontOfSize:12]; + _mewNumView.textColor = [UIColor whiteColor]; + } + return _mewNumView; +} + + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.h new file mode 100644 index 0000000..785243a --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.h @@ -0,0 +1,16 @@ +// +// MewRoomListEmptyCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +///XPRoomInsideRecommendEmptyCell +@interface MewRoomListEmptyCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.m new file mode 100644 index 0000000..ef6c5a8 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomListEmptyCell.m @@ -0,0 +1,48 @@ +// +// MewRoomListEmptyCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import "MewRoomListEmptyCell.h" +@interface MewRoomListEmptyCell() +///空文本 +@property (nonatomic,strong) UILabel *mewEmptyView; +@end +@implementation MewRoomListEmptyCell +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self mew_initUI]; + [self mew_initUIConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)mew_initUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.mewEmptyView]; +} + +- (void)mew_initUIConstraints { + [self.mewEmptyView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (UILabel *)mewEmptyView { + if (!_mewEmptyView) { + _mewEmptyView = [[UILabel alloc] init]; + _mewEmptyView.text = @"努力寻找合适房间中~"; + _mewEmptyView.font = [UIFont systemFontOfSize:14]; + _mewEmptyView.textAlignment = NSTextAlignmentCenter; + _mewEmptyView.textColor = [UIColor whiteColor]; + } + return _mewEmptyView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.h new file mode 100644 index 0000000..6fb02a7 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.h @@ -0,0 +1,17 @@ +// +// MewRoomTopOperationCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +///XPRoomInsideOperationCell +@interface MewRoomTopOperationCell : UICollectionViewCell +@property (nonatomic, copy) NSString *mewText; +@property (nonatomic, copy) NSString *mewImage; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.m new file mode 100644 index 0000000..9ad3c96 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomMornView/MewSubViews/MewRoomTopOperationCell.m @@ -0,0 +1,67 @@ +// +// MewRoomTopOperationCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/6. +// + +#import "MewRoomTopOperationCell.h" + +@interface MewRoomTopOperationCell() +@property (nonatomic, strong) UIImageView *mewImageView; +@property (nonatomic, strong) UILabel *mewTextView; +@end +@implementation MewRoomTopOperationCell + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self mew_initUI]; + [self mew_initUIContraints]; + } + return self; +} + +- (void)mew_initUI { + [self addSubview:self.mewImageView]; + [self addSubview:self.mewTextView]; +} + +- (void)mew_initUIContraints { + [self.mewImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(52); + }]; + [self.mewTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mewImageView.mas_bottom).mas_offset(4); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(12); + }]; +} + +- (void)setMewText:(NSString *)mewText { + self.mewTextView.text = mewText; +} +- (void)setMewImage:(NSString *)mewImage{ + _mewImage = mewImage; + self.mewImageView.image = [UIImage imageNamed:mewImage]; +} + + +- (UIImageView *)mewImageView { + if (!_mewImageView) { + _mewImageView = [[UIImageView alloc] init]; + } + return _mewImageView; +} + +- (UILabel *)mewTextView{ + if (!_mewTextView) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + _mewTextView = label; + } + return _mewTextView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomTopView/MewRoomTopView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomTopView/MewRoomTopView.m index 84ea814..ff63628 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomTopView/MewRoomTopView.m +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewRoomTopView/MewRoomTopView.m @@ -6,17 +6,578 @@ // #import "MewRoomTopView.h" -@interface MewRoomTopView() +#import "MewShareView.h" +#import "MewRoomMornView.h" +#import "Api+Room.h" +#import "MewRoomMornModel.h" +#import "MewRoomActiveVC.h" +#import "MewShareItemModel.h" +#import "MewPushShareModel.h" +#import "MewHttpRequestHelper.h" +#import "MewAttachmentModel.h" +#import "MewRoomViewController.h" +@interface MewRoomTopView() +///返回按钮 +@property (nonatomic, strong) UIButton *mewBackView; +///圆角背景 +@property (nonatomic, strong) UIStackView *mewNameBgView; +///占位的 +@property (nonatomic, strong) UIView *mewSpaceView; +///容器 +@property (nonatomic,strong) UIStackView *mewNameContainerView; +///头像 +@property (nonatomic,strong) NetImageView *mewHeadView; +/// +@property (nonatomic,strong) UIStackView *mewTextContainerView; +///房间名字 +@property (nonatomic,strong) MarqueeLabel *newRoomNameView; +///礼物特效 +@property (nonatomic,strong) UIImageView *mewGiftView; +///锁房标识 +@property (nonatomic,strong) UIImageView *mewLockIconView; +/// +@property (nonatomic,strong) UIStackView *mewActiveContainerView; +///绿色的小圆点 +@property (nonatomic,strong) UIView * mewGreenPointView; +///房间id +@property (nonatomic,strong) YYLabel *mewIDView; +///在线人数 +@property (nonatomic,strong) UILabel *mewActiveView; +///收藏 +@property (nonatomic,strong) UIButton *mewCollectView; +///设置 +@property (nonatomic,strong) UIButton *mewSetView; +@property (nonatomic, weak) id hostDelegate; +///右侧推荐房间 +@property (nonatomic, strong) MewRoomMornView *mewMornView; +///是否已发送过收藏房间公屏消息 +@property (nonatomic, assign) BOOL isShowScreen; @end @implementation MewRoomTopView -/* -// Only override drawRect: if you perform custom drawing. -// An empty implementation adversely affects performance during animation. -- (void)drawRect:(CGRect)rect { - // Drawing code +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + _hostDelegate = delegate; + [self mewSetUI]; + [self mewSetUIConstraints]; + } + return self; +} + +#pragma mark - Event Response +- (void)mewBackViewAction:(UIButton *)sender { + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_return_click buryPointAttributes:@{@"roomUid" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [self.hostDelegate mew_clickExitCurrentRoom]; +} + +- (void)shareButtonAction:(UIButton *)sender{ + [self mew_showShareView]; +} + +- (void)mewSetViewAction:(UIButton *)sender { + self.mewMornView.frame = CGRectMake(KScreenWidth, 0, 250, KScreenHeight); + FFPopup *popup = [FFPopup popupWithContentView:self.mewMornView]; + popup.showType = FFPopupShowType_SlideInFromRight; + popup.dismissType = FFPopupDismissType_SlideOutToRight; + popup.maskType = FFPopupMaskType_Dimmed; + popup.dimmedMaskAlpha = 0.0; + popup.shouldDismissOnBackgroundTouch = YES; + FFPopupHorizontalLayout horizontalLayout = FFPopupHorizontalLayout_Right; + FFPopupVerticalLayout verticalLayout = FFPopupVerticalLayout_Center; + [popup showWithLayout:FFPopupLayoutMake(horizontalLayout, verticalLayout) duration:0.0]; + popup.didFinishDismissingBlock = ^{ + [self.mewMornView removeFromSuperview]; + }; + popup.didFinishShowingBlock = ^{ + + }; + [Api mew_ReqeustMornRoomList:^(MewBaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray *array = [MewRoomMornModel mewModelsWithArray:data.data]; + self.mewMornView.mewRoomArray = [NSMutableArray arrayWithArray:array]; + } + } roomId:[NSString stringWithFormat:@"%ld", self.hostDelegate.mew_getRoomInformation.roomId]]; +} + +- (void)mewSetActiveTapRecognizer { + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_online_list_click buryPointAttributes:@{@"roomUid" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + MewRoomActiveVC * onlineVC = [[MewRoomActiveVC alloc] initWithDelegate:self.hostDelegate]; + [self.hostDelegate.mew_getCurrentNavigationController pushViewController:onlineVC animated:YES]; +} +#pragma mark - Private Method +- (void)mewSetUI { +// [self addSubview:self.mewBackView]; + [self addSubview:self.mewNameBgView]; + [self addSubview:self.mewSetView]; + + [self.mewNameBgView addArrangedSubview:self.mewHeadView]; + [self.mewNameBgView addArrangedSubview:self.mewNameContainerView]; + [self.mewNameBgView addArrangedSubview:self.mewCollectView]; + [self.mewNameBgView addArrangedSubview:self.mewSpaceView]; + + [self.mewNameContainerView addArrangedSubview:self.mewTextContainerView]; + [self.mewNameContainerView addArrangedSubview:self.mewActiveContainerView]; + + [self.mewActiveContainerView addArrangedSubview:self.mewIDView]; + [self.mewActiveContainerView addArrangedSubview:self.mewGreenPointView]; + [self.mewActiveContainerView addArrangedSubview:self.mewActiveView]; + + [self.mewTextContainerView addArrangedSubview:self.newRoomNameView]; + [self.mewTextContainerView addArrangedSubview:self.mewGiftView]; + [self.mewTextContainerView addArrangedSubview:self.mewLockIconView]; +} + +- (void)mewSetUIConstraints { +// [self.mewBackView mas_makeConstraints:^(MASConstraintMaker *make) { +// make.left.equalTo(self).offset(14); +// make.height.width.equalTo(@22); +// make.centerY.mas_equalTo(self.mewSetView); +// }]; + // 设置 + [self.mewSetView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-13); + make.centerY.mas_equalTo(self.mewNameBgView); + make.width.height.mas_equalTo(25); + }]; + + [self.mewNameBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.bottom.mas_equalTo(-5); + make.height.mas_equalTo(34); + }]; + + [self.mewHeadView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(self.mewNameBgView.mas_height); + }]; + + [self.mewCollectView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + }]; + + [self.mewSpaceView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(4); + make.height.mas_equalTo(1); + }]; + + [self.newRoomNameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_lessThanOrEqualTo(100); + make.height.mas_equalTo(18); + }]; + [self.mewGreenPointView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(3,3)); + }]; + [self.mewIDView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + }]; + + [self.mewGiftView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10,10)); + }]; + + [self.mewLockIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10,10)); + }]; +} +#pragma mark - RoomGuestDelegate +- (void)mew_onRoomEntered { + MewRoomInfoModel* roomInfo = self.hostDelegate.mew_getRoomInformation; + ///最小化进房 人数不对的问题 + [[[NIMSDK sharedSDK] chatroomManager] fetchChatroomInfo:[NSString stringWithFormat:@"%ld", (long)self.hostDelegate.mew_getRoomInformation.roomId] completion:^(NSError * _Nullable error, NIMChatroom * _Nullable chatroom) { + if (error == nil) { + self.mewActiveView.text = [NSString stringWithFormat:@"%ld", (long)(chatroom.onlineUserCount > 0 ? chatroom.onlineUserCount : 0)]; + } else { + self.mewActiveView.text = [NSString stringWithFormat:@"%ld", (long)(roomInfo.onlineNum > 0 ? roomInfo.onlineNum : 0)]; + } + }]; + + if (roomInfo) { + self.newRoomNameView.text = roomInfo.title; + self.mewHeadView.imageUrl = roomInfo.avatar; + self.mewIDView.text = [NSString stringWithFormat:@"ID:%ld",roomInfo.erbanNo]; + self.mewGiftView.hidden = roomInfo.hasAnimationEffect; + if (roomInfo.uid == [MewAccountInfoStorage instance].mew_getUid.integerValue) { + self.mewCollectView.hidden = YES; + } else { + self.mewCollectView.hidden = NO; + self.mewCollectView.selected = roomInfo.isRoomFans; + } + self.mewLockIconView.hidden = roomInfo.roomPwd.length <= 0; + } +} + +- (void)mew_onRoomUpdate { + MewRoomInfoModel* roomInfo = self.hostDelegate.mew_getRoomInformation; + self.mewHeadView.imageUrl = roomInfo.avatar; + self.newRoomNameView.text = roomInfo.title; + self.mewIDView.text = [NSString stringWithFormat:@"ID:%ld",roomInfo.erbanNo]; + self.mewActiveView.text = [NSString stringWithFormat:@"%ld", (long)(roomInfo.onlineNum > 0 ? roomInfo.onlineNum : 0)]; + self.mewGiftView.hidden = roomInfo.hasAnimationEffect; + if (roomInfo.uid == [MewAccountInfoStorage instance].mew_getUid.integerValue) { + self.mewCollectView.hidden = YES; + } else { + self.mewCollectView.hidden = roomInfo.isRoomFans; + } + self.mewLockIconView.hidden = roomInfo.roomPwd.length <= 0; +} +#pragma mark - Event Response +- (void)mew_showShareView { + MewShareItemModel *cycle = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_WeChat_Moments]; + MewShareItemModel *wechat = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_WeChat_Friend]; + MewShareItemModel *qq = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_QQ_Friend]; + MewShareItemModel *qqzone = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_QQ_Zone];; + NSArray * items = @[wechat,cycle, qq, qqzone]; + MewRoomInfoModel * roomInfo = [self.hostDelegate mew_getRoomInformation]; + MewPushShareModel * shareInfo = [[MewPushShareModel alloc] init]; + shareInfo.shareTitle = @"与你相遇,不孤单"; + shareInfo.shareContent = [NSString stringWithFormat:@"%@ 这个房间很好玩,推荐给你,快来和我一起玩吧~", roomInfo.title]; + shareInfo.shareImageUrl = [self.hostDelegate mew_getRoomInformation].avatar; + shareInfo.type = MewSharePushModelType_Room; + shareInfo.roomUid = roomInfo.uid; + NSString * uid = [MewAccountInfoStorage instance].mew_getUid; + NSString * urlString = [NSString stringWithFormat:@"%@/%@?shareUid=%@&uid=%ld&room_name=%@&room_id=%ld&room_avatar=%@&share_name=%@",API_HOST_H5_URL,MewHtmlURLWithType(MewHtmlURLType_ShareRoom),uid,roomInfo.uid,roomInfo.title,roomInfo.erbanNo,roomInfo.avatar,roomInfo.nick]; + shareInfo.shareUrl = urlString; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + MewShareView *shareView = [[MewShareView alloc] initWithSize:itemSize items:items shareModel:shareInfo]; + shareView.delegate = self; + [TTPopup popupView:shareView style:TTPopupStyleActionSheet]; +} + +///保存一下分享的内容的 不需要处理错误码 +- (void)mew_saveShareInfo:(MewPushShareModel *)shareInfo { + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + NSString *uid = [MewAccountInfoStorage instance].mew_getUid; + NSString *ticket = [MewAccountInfoStorage instance].mew_getTicket; + [params mewSafeSetObject:uid forKey:@"uid"]; + [params mewSafeSetObject:@(shareInfo.shareItemType) forKey:@"shareType"]; + [params mewSafeSetObject:ticket forKey:@"ticket"]; + [params mewSafeSetObject:@(shareInfo.type) forKey:@"sharePageId"]; + if (shareInfo.shareUrl.length > 0) { + [params mewSafeSetObject:shareInfo.shareUrl forKey:@"shareUrl"]; + } + if (shareInfo.roomUid > 0) { + [params mewSafeSetObject:@(shareInfo.roomUid) forKey:@"targetUid"]; + } + [MewHttpRequestHelper POST:@"usershare/save" params:params success:^(MewBaseModel * _Nonnull data) { + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + + }]; + +} + +- (void)mewCollectViewAction:(UIButton *)sender { + NSString * type = sender.selected ? @"2" : @"1"; + NSString * uid = [MewAccountInfoStorage instance].mew_getUid; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.mew_getRoomInformation.uid]; + + [Api Mew_CollectRoom:^(MewBaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + sender.selected= !sender.selected; + if ([type isEqualToString:@"1"]) {///收藏的话 + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_collect_icon_click buryPointAttributes:@{@"roomUid" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [MewHUDTool showSuccessWithMessage:@"收藏成功"]; + sender.selected = YES; + if (self.isShowScreen) { + return; + } + self.isShowScreen = YES; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic mewSafeSetObject:[MewAccountInfoStorage instance].mew_getUid forKey:@"uid"]; + [dic mewSafeSetObject:self.hostDelegate.mew_getUserInformation.nick forKey:@"nick"]; + [dic mewSafeSetObject:[NSString stringWithFormat:@"%ld", self.hostDelegate.mew_getRoomInformation.uid] forKey:@"targetUid"]; + [dic mewSafeSetObject:self.hostDelegate.mew_getRoomInformation.nick forKey:@"targetNick"]; + + NSMutableDictionary * data = [@{@"data":dic} mutableCopy]; + [data mewSafeSetObject:[MewAccountInfoStorage instance].mew_getUid forKey:@"uid"]; + MewAttachmentModel *attachment = [[MewAttachmentModel alloc]init]; + attachment.first = MewRoomCustomMsgType_Collection_Room; + attachment.second = Mew_Room_Custom_Msg_Sub_Collect_Room_Tips; + attachment.data = data; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + NSString *sessionId = [NSString stringWithFormat:@"%ld",self.hostDelegate.mew_getRoomInformation.roomId]; + //构造会话 + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + } else { + [MewHUDTool showErrorWithMessage:msg]; + } + } roomUid:roomUid uid:uid type:type roomUids:NULL]; +} + +#pragma mark - XCShareViewDelegate + +/// 分享失败 +- (void)didSelectShareView:(MewShareView *)shareView failure:(NSString *)failure { + [TTPopup dismiss]; + [MewHUDTool showErrorWithMessage:failure]; +} + +/// 分享成功 +- (void)didSelectShareView:(MewShareView *)shareView success:(MewPushShareModel *)model{ + [TTPopup dismiss]; + [MewHUDTool showErrorWithMessage:@"分享成功"]; + MewAttachmentModel * attachMent = [[MewAttachmentModel alloc] init]; + attachMent.first = MewRoomCustomMsgType_Room_Tip; + attachMent.second = Mew_Room_Custom_Msg_Sub_Room_Tip_ShareRoom; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + NSString * uid = [MewAccountInfoStorage instance].mew_getUid; + [dic mewSafeSetObject:uid forKey:@"uid"]; + NSMutableDictionary * userDic = [NSMutableDictionary dictionary]; + MewUserInfoModel * userInfo = [self.hostDelegate mew_getUserInformation]; + MewRoomInfoModel * roomInfo = [self.hostDelegate mew_getRoomInformation]; + [userDic mewSafeSetObject:roomInfo.nick.length > 0 ? roomInfo.nick : @"" forKey:@"targetNick"]; + [userDic mewSafeSetObject:@(roomInfo.uid) forKey:@"targetUid"]; + [userDic mewSafeSetObject:userInfo.nick.length > 0 ? userInfo.nick : @"" forKey:@"nick"]; + [dic mewSafeSetObject:userDic forKey:@"data"]; + attachMent.data = dic; + NSString *sessionID = [NSString stringWithFormat:@"%ld", [self.hostDelegate mew_getRoomInformation].roomId]; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachMent; + message.messageObject = object; + //构造会话 + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + ///上报一下 + [self mew_saveShareInfo:model]; +} + + + +#pragma mark - XPRoomRecommendViewDelegate +///举报房间 +- (void)mewRoomMornViewClickReport{ + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_more_icon_click buryPointAttributes:@{@"reportRoom" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [FFPopup dismissPopupForView:self.mewMornView animated:NO]; + MewWebViewController * webVC = [[MewWebViewController alloc] init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%ld&source=ROOM", MewHtmlURLWithType(kReportRoomURL),self.hostDelegate.mew_getRoomInformation.uid]; + webVC.url = urlstr; + [[self.hostDelegate mew_getCurrentNavigationController] pushViewController:webVC animated:YES]; +} +///最小化房间 +- (void)mewRoomMornViewClickMiniRoom{ + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_more_icon_click buryPointAttributes:@{@"miniRoom" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [TTPopup dismiss]; + [FFPopup dismissPopupForView:self.mewMornView animated:NO]; + [self.hostDelegate mew_clickMinimizeRoom]; +} +///退出房间 +- (void)mewRoomMornViewClickExitRoom{ + [TTPopup dismiss]; + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_more_icon_click buryPointAttributes:@{@"exitRoom" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [FFPopup dismissPopupForView:self.mewMornView animated:NO]; + [self.hostDelegate mew_clickExitCurrentRoom]; +} +///分享 +- (void)mewRoomMornViewClickShareView{ + [TTPopup dismiss]; + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_more_icon_click buryPointAttributes:@{@"shareRoom" : @(self.hostDelegate.mew_getRoomInformation.uid)}]; + [FFPopup dismissPopupForView:self.mewMornView animated:NO]; + [self mew_showShareView]; +} +///跳转到房间 +- (void)mewRoomMornViewClickRoom:(NSString *)roomUid{ + [TTPopup dismiss]; + [MewBuryPointManager mewBuryPointWithKey:MewBuryPointManagerroom_more_icon_click buryPointAttributes:@{@"jumpToRoom" : roomUid}]; + [FFPopup dismissPopupForView:self.mewMornView animated:NO]; + [self.hostDelegate mew_clickExitCurrentRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [MewRoomViewController openRoom:roomUid viewController:[MewStackManager shareManager].mew_getCurrentVC]; + }); +} + + + + + + + +#pragma mark - Getters And Setters +- (UIButton *)mewBackView{ + if (!_mewBackView) { + _mewBackView = [[UIButton alloc] init]; + [_mewBackView setImage:[UIImage imageNamed:@"room_info_back"] forState:UIControlStateNormal]; + [_mewBackView addTarget:self action:@selector(mewBackViewAction:) forControlEvents:UIControlEventTouchUpInside]; + [_mewBackView mew_setEnlargeEdgeWithTop:15 right:15 bottom:15 left:15]; + } + return _mewBackView; +} + +- (UIButton *)mewSetView { + if (!_mewSetView) { + _mewSetView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_mewSetView setImage:[UIImage imageNamed:@"mew_room_top_setting"] forState:UIControlStateNormal]; + [_mewSetView addTarget:self action:@selector(mewSetViewAction:) forControlEvents:UIControlEventTouchUpInside]; + [_mewSetView mew_setEnlargeEdgeWithTop:8 right:8 bottom:8 left:8]; + } + return _mewSetView; +} + +- (UIButton *)mewCollectView { + if (!_mewCollectView) { + _mewCollectView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_mewCollectView setBackgroundImage:[UIImage mew_imageWithColor:[MewThemeColor mewColorWithHexString:@"#67D7D7"]] forState:UIControlStateNormal]; + [_mewCollectView setBackgroundImage:[UIImage mew_imageWithColor:UIColorMewRGBAlpha(0xFFDA24, 0.2)] forState:UIControlStateSelected]; + [_mewCollectView setTitle:@"收藏" forState:UIControlStateNormal]; + [_mewCollectView setTitle:@"已收藏" forState:UIControlStateSelected]; + [_mewCollectView setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + [_mewCollectView setTitleColor:UIColor.whiteColor forState:UIControlStateSelected]; + _mewCollectView.titleLabel.font = [UIFont systemFontOfSize:11 weight:UIFontWeightMedium]; + _mewCollectView.layer.cornerRadius = 10; + _mewCollectView.clipsToBounds = YES; + [_mewCollectView addTarget:self action:@selector(mewCollectViewAction:) forControlEvents:UIControlEventTouchUpInside]; + _mewCollectView.contentEdgeInsets = UIEdgeInsetsMake(0, 7, 0, 7); + _mewCollectView.hidden = YES; + } + return _mewCollectView; +} + +- (UIStackView *)mewNameContainerView { + if (!_mewNameContainerView) { + _mewNameContainerView = [[UIStackView alloc] init]; + _mewNameContainerView.axis = UILayoutConstraintAxisVertical; + _mewNameContainerView.distribution = UIStackViewDistributionFill; + _mewNameContainerView.alignment = UIStackViewAlignmentLeading; + } + return _mewNameContainerView; +} + +- (UIStackView *)mewTextContainerView { + if (!_mewTextContainerView) { + _mewTextContainerView = [[UIStackView alloc] init]; + _mewTextContainerView.axis = UILayoutConstraintAxisHorizontal; + _mewTextContainerView.distribution = UIStackViewDistributionFill; + _mewTextContainerView.alignment = UIStackViewAlignmentCenter; + _mewTextContainerView.spacing = 5; + } + return _mewTextContainerView; +} + +- (MarqueeLabel *)newRoomNameView{ + if (!_newRoomNameView) { + _newRoomNameView = [[MarqueeLabel alloc] init]; + _newRoomNameView.scrollDuration = 8.0; + _newRoomNameView.fadeLength = 6.0f; + _newRoomNameView.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _newRoomNameView.textColor = [MewThemeColor mew_roomOwnerNickColor]; + _newRoomNameView.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mewSetActiveTapRecognizer)]; + [_newRoomNameView addGestureRecognizer:tap]; + } + return _newRoomNameView; +} + +- (UIImageView *)mewGiftView { + if (!_mewGiftView) { + _mewGiftView = [[UIImageView alloc] init]; + _mewGiftView.userInteractionEnabled = YES; + _mewGiftView.image = [UIImage imageNamed:@"mew_room_top_gift_icon"]; + } + return _mewGiftView; +} + +- (UIImageView *)mewLockIconView { + if (!_mewLockIconView) { + _mewLockIconView = [[UIImageView alloc] init]; + _mewLockIconView.userInteractionEnabled = YES; + _mewLockIconView.image = [UIImage imageNamed:@"mew_room_lock_icon"]; + _mewLockIconView.hidden = YES; + } + return _mewLockIconView; +} + +- (UIStackView *)mewActiveContainerView { + if (!_mewActiveContainerView) { + _mewActiveContainerView = [[UIStackView alloc] init]; + _mewActiveContainerView.axis = UILayoutConstraintAxisHorizontal; + _mewActiveContainerView.distribution = UIStackViewDistributionFill; + _mewActiveContainerView.alignment = UIStackViewAlignmentCenter; + _mewActiveContainerView.spacing = 2; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mewSetActiveTapRecognizer)]; + [_mewActiveContainerView addGestureRecognizer:tap]; + } + return _mewActiveContainerView; +} + +- (UIView *)mewGreenPointView { + if (!_mewGreenPointView) { + _mewGreenPointView = [[UIView alloc] init]; + _mewGreenPointView.backgroundColor = [MewThemeColor mew_roomOnLineIdenColor]; + _mewGreenPointView.layer.masksToBounds = YES; + _mewGreenPointView.layer.cornerRadius = 1.5; + } + return _mewGreenPointView; +} + +- (YYLabel *)mewIDView { + if (!_mewIDView) { + _mewIDView = [[YYLabel alloc] init]; + _mewIDView.textColor = [MewThemeColor mew_roomOwnerNickColor]; + _mewIDView.font = [UIFont systemFontOfSize:10]; + } + return _mewIDView; +} + +- (UILabel *)mewActiveView { + if (!_mewActiveView) { + _mewActiveView = [[UILabel alloc] init]; + _mewActiveView.textColor = [MewThemeColor mew_roomOwnerNickColor]; + _mewActiveView.font = [UIFont systemFontOfSize:10]; + } + return _mewActiveView; +} + +- (MewRoomMornView *)mewMornView { + if (!_mewMornView) { + _mewMornView = [[MewRoomMornView alloc] init]; + self.mewMornView.delegate = self; + } + return _mewMornView; +} + +- (NetImageView *)mewHeadView { + if (!_mewHeadView) { + NetImageConfig * config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + config.imageType = ImageTypeUserIcon; + _mewHeadView = [[NetImageView alloc] initWithConfig:config]; + _mewHeadView.userInteractionEnabled = YES; + _mewHeadView.layer.masksToBounds = YES; + _mewHeadView.layer.cornerRadius = 17; + _mewHeadView.contentMode = UIViewContentModeScaleAspectFill; +// UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)]; +// [_mewHeadView addGestureRecognizer:tap]; + } + return _mewHeadView; +} + +- (UIStackView *)mewNameBgView { + if (!_mewNameBgView) { + _mewNameBgView = [[UIStackView alloc] init]; + _mewNameBgView.axis = UILayoutConstraintAxisHorizontal; + _mewNameBgView.distribution = UIStackViewDistributionFill; + _mewNameBgView.alignment = UIStackViewAlignmentCenter; + _mewNameBgView.spacing = 4; + + _mewNameBgView.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.1]; + _mewNameBgView.layer.cornerRadius = 17; + } + return _mewNameBgView; +} + +- (UIView *)mewSpaceView { + if (!_mewSpaceView) { + _mewSpaceView = [[UIView alloc] init]; + } + return _mewSpaceView; } -*/ @end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.h new file mode 100644 index 0000000..99aa30d --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.h @@ -0,0 +1,16 @@ +// +// MewSettingManager.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewBaseMvpPresenter.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MewSettingManager : MewBaseMvpPresenter +-(void)mew_updateRoomNoticeData:(NSString *)roomDesc introduction:(NSString *)introduction roomInfo:(MewRoomInfoModel *)roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.m new file mode 100644 index 0000000..6d66d29 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingManager/MewSettingManager.m @@ -0,0 +1,64 @@ +// +// MewSettingManager.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewSettingManager.h" +#import "Api+Room.h" + + + + +#import "MewSettingProtocol.h" + +@implementation MewSettingManager +///更新房间信息 +- (void)mew_updateRoomNoticeData:(NSString *)roomDesc introduction:(NSString *)introduction roomInfo:(MewRoomInfoModel *)roomInfo { + NSString * uid = [MewAccountInfoStorage instance].mew_getUid; + NSString * ticket = [MewAccountInfoStorage instance].mew_getTicket; + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params mewSafeSetObject:ticket forKey:@"ticket"]; + [params mewSafeSetObject:uid forKey:@"uid"]; + [params mewSafeSetObject:[NSString stringWithFormat:@"%ld", roomInfo.uid] forKey:@"roomUid"]; + if (roomInfo.title.length > 0) { + [params mewSafeSetObject:roomInfo.title forKey:@"title"]; + } + + if (roomInfo.roomPwd.length > 0) { + [params mewSafeSetObject:roomInfo.roomPwd forKey:@"roomPwd"]; + } + + if (roomInfo.tagId > 0) { + [params mewSafeSetObject:[NSString stringWithFormat:@"%ld", roomInfo.tagId] forKey:@"tagId"]; + } + + [params mewSafeSetObject:roomDesc forKey:@"roomDesc"]; + if (introduction.length > 0) { + [params mewSafeSetObject:introduction forKey:@"introduction"]; + } + [params mewSafeSetObject:@(roomInfo.hasAnimationEffect) forKey:@"hasAnimationEffect"]; + ///获取房间角色 + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMTeamMemberTypeOwner) { + [Api mew_updateRoomData:[self mew_createHttpCompletion:^(MewBaseModel * _Nullable data) { + [[self mew_getView] mew_updateRoomNoticeDataSuccess]; + } mew_showLoading:YES] params:params]; + } else if(member.type == NIMTeamMemberTypeManager) { + [Api mew_managerUpdateRoomData:[self mew_createHttpCompletion:^(MewBaseModel * _Nonnull data) { + [[self mew_getView] mew_updateRoomNoticeDataSuccess]; + } mew_showLoading:YES] params:params]; + } + } else { + [[self mew_getView] mew_updateRoomNoticeDataFail:@"更新房间信息失败"]; + } + }]; + +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingProtocol/MewSettingProtocol.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingProtocol/MewSettingProtocol.h new file mode 100644 index 0000000..8e5724d --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingProtocol/MewSettingProtocol.h @@ -0,0 +1,18 @@ +// +// MewSettingProtocol.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol MewSettingProtocol +-(void)mew_updateRoomNoticeDataSuccess; + +-(void)mew_updateRoomNoticeDataFail:(NSString *)msg; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.h new file mode 100644 index 0000000..551e1fe --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.h @@ -0,0 +1,16 @@ +// +// MewRoomHourListEnterView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//XPRoomAnchorRankEnterView +@interface MewRoomHourListEnterView : UIView +@property (nonatomic,strong) NSArray *mewList; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.m new file mode 100644 index 0000000..0930d94 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomHourListEnterView.m @@ -0,0 +1,86 @@ +// +// MewRoomHourListEnterView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/10. +// + +#import "MewRoomHourListEnterView.h" +#import "MewRoomHourListEnterCell.h" +#import +@interface MewRoomHourListEnterView() +///文字轮播 +@property (nonatomic, strong) SDCycleScrollView *mewRollView; +@end +@implementation MewRoomHourListEnterView + +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self mew_setUI]; + [self mew_setConstraints]; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(mew_getRoomHourListInfo:) name:@"kUpdatedRoomHourlyRankData" object:nil]; + } + return self; +} +-(void)mew_getRoomHourListInfo:(NSNotification *)not{ + id obj = not.object; + if([obj isKindOfClass:[NSArray class]]){ + self.mewList = obj; + } +} +#pragma mark - Private Method +- (void)mew_setUI { + [self addSubview:self.mewRollView]; +} + +- (void)mew_setConstraints { + [self.mewRollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} +#pragma mark - SDCycleScrollViewDelegate +- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view { + return MewRoomHourListEnterCell.class; +} + +- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view { + NSString * text = [self.mewList mewSafeObjectAtIndex:index]; + MewRoomHourListEnterCell *hourCell = (MewRoomHourListEnterCell *)cell; + if(index == 0){ + hourCell.mewNumTitle = @""; + hourCell.mewRankTitle = text; + }else{ + hourCell.mewRankTitle = @""; + hourCell.mewNumTitle = text; + } + +} +-(void)setMewList:(NSArray *)mewList{ + _mewList = mewList; + if (_mewList.count > 0) { + self.mewRollView.imageURLStringsGroup = _mewList; + [self.mewRollView autoScroll]; + } +} + +#pragma mark - Getters And Setters + +- (SDCycleScrollView *)mewRollView { + if (!_mewRollView) { + _mewRollView = [[SDCycleScrollView alloc] init]; + _mewRollView.backgroundColor = [UIColor clearColor]; + _mewRollView.layer.masksToBounds = YES; + _mewRollView.delegate = self; + _mewRollView.showPageControl = NO; + _mewRollView.autoScrollTimeInterval = 3.0; + _mewRollView.scrollDirection = UICollectionViewScrollDirectionVertical; + [_mewRollView disableScrollGesture]; + } + return _mewRollView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.h new file mode 100644 index 0000000..893c327 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.h @@ -0,0 +1,18 @@ +// +// MewRoomPublishNoticeVC.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewMvpViewController.h" +#import "MewRoomInfoModel.h" + +NS_ASSUME_NONNULL_BEGIN +//XPRoomTopicViewController +@interface MewRoomPublishNoticeVC : MewMvpViewController +///房间信息 +@property (nonatomic,strong) MewRoomInfoModel *mewRoomData; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.m new file mode 100644 index 0000000..4ae6d67 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeVC.m @@ -0,0 +1,235 @@ +// +// MewRoomPublishNoticeVC.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomPublishNoticeVC.h" +#import "MewSettingManager.h" +#import "MewSettingProtocol.h" +@interface MewRoomPublishNoticeVC() +///显示标题 +@property (nonatomic,strong) UITextField *mewContentField; +///标题显示多少个 +@property (nonatomic,strong) UILabel *mewTextNumView; +///显示内容 +@property (nonatomic,strong) UITextView *mewContentVuew; +///内容显示多少个 +@property (nonatomic,strong) UILabel *mewContentNumView; +///确认 +@property (nonatomic,strong) UIButton *mewConfirmBtn; +///容器 +@property (nonatomic,strong) UIView * mewContainerView; +///占位的 +@property (nonatomic,strong) UILabel *mewPlaceView; + +@end +@implementation MewRoomPublishNoticeVC +- (MewSettingManager *)createPresenter { + return [[MewSettingManager alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self mew_setUI]; + [self mew_setConstraints]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)mew_setUI { + self.view.backgroundColor = [MewThemeColor mewAppBackgroundColor]; + self.title = @"房间公告"; + [self.view addSubview:self.mewContentField]; + [self.view addSubview:self.mewTextNumView]; + [self.view addSubview:self.mewContainerView]; + [self.view addSubview:self.mewContentNumView]; + [self.view addSubview:self.mewConfirmBtn]; + + [self.mewContainerView addSubview:self.mewContentVuew]; + [self.mewContainerView addSubview:self.mewPlaceView]; +} + +- (void)mew_setConstraints { + [self.mewContentField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.height.mas_equalTo(44); + make.top.mas_equalTo(self.view).offset(15); + }]; + + [self.mewTextNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view).offset(-15); + make.top.mas_equalTo(self.mewContentField.mas_bottom).offset(5); + }]; + + [self.mewContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.top.mas_equalTo(self.mewTextNumView.mas_bottom).offset(15); + make.height.mas_equalTo(210); + }]; + + [self.mewContentVuew mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.mewContainerView).inset(5); + }]; + + [self.mewPlaceView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self.mewContentVuew); + }]; + + [self.mewContentNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.mewContainerView);; + make.top.mas_equalTo(self.mewContainerView.mas_bottom).offset(15); + }]; + + [self.mewConfirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(47); + make.height.mas_equalTo(44); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 20); + }]; +} + +#pragma mark - UITextViewDelegate +- (void)textViewDidChange:(UITextView *)textView { + if (textView.text.length > 0) { + self.mewPlaceView.hidden = YES; + } else { + self.mewPlaceView.hidden = NO; + } + if (textView.text.length > 300) { + textView.text = [textView.text substringToIndex:300]; + } + self.mewContentNumView.text = [NSString stringWithFormat:@"%ld/300", textView.text.length]; +} + +- (void)textViewDidBeginEditing:(UITextView *)textView { + self.mewPlaceView.hidden = YES; +} + +#pragma mark - XPRoomTopicProtocol +- (void)mew_updateRoomNoticeDataSuccess { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)mew_updateRoomNoticeDataFail:(NSString *)message { + [self mew_showErrorToast:message]; +} + +#pragma mark - Event Response +- (void)mewConfirmBtnAction:(UIButton *)sender { + if (self.mewContentField.text.length <= 0) { + [self mew_showErrorToast:@"主题不能为空"]; + return; + } + [self.presenter mew_updateRoomNoticeData:self.mewContentField.text introduction:self.mewContentVuew.text roomInfo:self.mewRoomData]; +} + +- (void)textFiledDidChange:(UITextField *)textField { + if (textField.text.length > 15) { + textField.text = [textField.text substringToIndex:15]; + } + self.mewTextNumView.text = [NSString stringWithFormat:@"%ld/15", textField.text.length]; +} + + +#pragma mark - Getters And Setters +-(void)setMewRoomData:(MewRoomInfoModel *)mewRoomData{ + _mewRoomData = mewRoomData; + if (_mewRoomData) { + self.mewContentField.text = _mewRoomData.roomDesc; + self.mewContentVuew.text = _mewRoomData.introduction; + self.mewTextNumView.text = [NSString stringWithFormat:@"%ld/15", _mewRoomData.roomDesc.length]; + self.mewContentNumView.text = [NSString stringWithFormat:@"%ld/300", _mewRoomData.introduction.length]; + self.mewPlaceView.hidden = _mewRoomData.introduction.length > 0; + } +} + + +- (UITextField *)mewContentField { + if (!_mewContentField) { + _mewContentField = [[UITextField alloc] init]; + _mewContentField.layer.cornerRadius = 8; + _mewContentField.layer.masksToBounds = YES; + _mewContentField.backgroundColor = [MewThemeColor mewAppCellBackgroundColor]; + _mewContentField.font = [UIFont systemFontOfSize:13]; + _mewContentField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请设置公告标题" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [MewThemeColor mewThreeTextColor]}]; + _mewContentField.tintColor = [MewThemeColor mewAppMainColor]; + UIView *searchIconView = [[UIView alloc] init]; + searchIconView.frame = CGRectMake(0, 0, 7, 10); + _mewContentField.leftView = searchIconView; + _mewContentField.leftViewMode = UITextFieldViewModeAlways; + [_mewContentField addTarget:self action:@selector(textFiledDidChange:) forControlEvents:UIControlEventEditingChanged]; + } + return _mewContentField; +} + +- (UILabel *)mewTextNumView { + if (!_mewTextNumView) { + _mewTextNumView = [[UILabel alloc] init]; + _mewTextNumView.textColor = [MewThemeColor mewMainTextColor]; + _mewTextNumView.font = [UIFont systemFontOfSize:10]; + _mewTextNumView.text = @"0/15"; + } + return _mewTextNumView; +} + +- (UITextView *)mewContentVuew { + if (!_mewContentVuew) { + _mewContentVuew = [[UITextView alloc] init]; + _mewContentVuew.backgroundColor = [UIColor clearColor]; + _mewContentVuew.font = [UIFont systemFontOfSize:13]; + _mewContentVuew.tintColor = [UIColor clearColor]; + _mewContentVuew.textColor = [MewThemeColor mewMainTextColor]; + _mewContentVuew.tintColor = [MewThemeColor mewAppMainColor]; + _mewContentVuew.delegate = self; + } + return _mewContentVuew; +} + +- (UILabel *)mewContentNumView { + if (!_mewContentNumView) { + _mewContentNumView = [[UILabel alloc] init]; + _mewContentNumView.font = [UIFont systemFontOfSize:10]; + _mewContentNumView.textColor = [MewThemeColor mewMainTextColor]; + _mewContentNumView.text = @"0/300"; + } + return _mewContentNumView; +} + +- (UIView *)mewContainerView { + if (!_mewContainerView) { + _mewContainerView = [[UIView alloc] init]; + _mewContainerView.backgroundColor = [MewThemeColor mewAppCellBackgroundColor]; + _mewContainerView.layer.masksToBounds = YES; + _mewContainerView.layer.cornerRadius = 8; + } + return _mewContainerView; +} + +- (UILabel *)mewPlaceView { + if (!_mewPlaceView) { + _mewPlaceView = [[UILabel alloc] init]; + _mewPlaceView.text = @"请输入公告内容"; + _mewPlaceView.font = [UIFont systemFontOfSize:13]; + _mewPlaceView.textColor = [MewThemeColor mewSecondTextColor]; + } + return _mewPlaceView; +} + +- (UIButton *)mewConfirmBtn { + if (!_mewConfirmBtn) { + _mewConfirmBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + [_mewConfirmBtn setTitle:@"确定" forState:UIControlStateNormal]; + [_mewConfirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _mewConfirmBtn.titleLabel.font = [UIFont systemFontOfSize:15]; + [_mewConfirmBtn setBackgroundImage:[UIImage mew_gradientColorImageFromColors:@[[MewThemeColor mewConfirmButtonGradientStartColor], [MewThemeColor mewConfirmButtonGradientEndColor]] gradientType:MewGradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _mewConfirmBtn.layer.masksToBounds = YES; + _mewConfirmBtn.layer.cornerRadius = 22; + [_mewConfirmBtn addTarget:self action:@selector(mewConfirmBtnAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewConfirmBtn; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.h new file mode 100644 index 0000000..7aa7241 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.h @@ -0,0 +1,19 @@ +// +// MewRoomPublishNoticeView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//XPRoomTopicAlertView +@interface MewRoomPublishNoticeView : UIView +///显示标题 +@property (nonatomic,copy) NSString *mewText; +///显示内容 +@property (nonatomic,copy) NSString *mewMsg; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.m new file mode 100644 index 0000000..38ba811 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewRoomPublishNoticeView.m @@ -0,0 +1,128 @@ +// +// MewRoomPublishNoticeView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomPublishNoticeView.h" +@interface MewRoomPublishNoticeView () +///显示标题 +@property (nonatomic,strong) UILabel *mewTitleView; +///显示文本 +@property (nonatomic,strong) UITextView *mewContentView; +///关闭按钮 +@property (nonatomic,strong) UIButton *mewCloseBtn; +///模糊背景 +@property (nonatomic, strong) UIVisualEffectView *mewBgView; +@end +@implementation MewRoomPublishNoticeView +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self mew_setUI]; + [self mew_setUIConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)mew_setUI { + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 15; + self.layer.borderWidth = 0.5; + self.layer.borderColor = [UIColor.whiteColor colorWithAlphaComponent:0.5].CGColor; + [self addSubview:self.mewBgView]; + [self addSubview:self.mewTitleView]; + [self addSubview:self.mewContentView]; + [self addSubview:self.mewCloseBtn]; +} + +- (void)mew_setUIConstraints { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 42 * 2); + make.bottom.mas_equalTo(self.mewContentView.mas_bottom).offset(30); + }]; + + [self.mewBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(22); + make.left.right.mas_equalTo(self).inset(20); + make.height.mas_equalTo(22); + }]; + + [self.mewContentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(24); + make.top.mas_equalTo(self.mewTitleView.mas_bottom).offset(18); + make.height.mas_equalTo(200); + }]; + + [self.mewCloseBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(24, 24)); + make.top.mas_equalTo(12); + make.right.mas_equalTo(-12); + }]; +} + +#pragma mark - Event Response +- (void)mewCloseBtnAction:(UIButton *)sender { + [TTPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setMewText:(NSString *)mewText{ + _mewText = mewText ; + NSString *titleString = _mewText.length > 0 ? _mewText: @"暂无设置话题"; + self.mewTitleView.text = [NSString stringWithFormat:@"• %@ •", titleString]; +} +- (void)setMewMsg:(NSString *)mewMsg{ + _mewMsg = mewMsg; + self.mewContentView.text = _mewMsg.length > 0 ? _mewMsg : @"暂未设置话题内容"; +} + + + +- (UILabel *)mewTitleView { + if (!_mewTitleView) { + _mewTitleView = [[UILabel alloc] init]; + _mewTitleView.textAlignment = NSTextAlignmentCenter; + _mewTitleView.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _mewTitleView.textColor = UIColor.whiteColor; + } + return _mewTitleView; +} + +- (UITextView *)mewContentView { + if (!_mewContentView) { + _mewContentView = [[UITextView alloc] init]; + _mewContentView.textColor = UIColor.whiteColor; + _mewContentView.backgroundColor = [UIColor clearColor]; + _mewContentView.font = [UIFont systemFontOfSize:14]; + _mewContentView.editable = NO; + } + return _mewContentView; +} + +- (UIButton *)mewCloseBtn { + if (!_mewCloseBtn) { + _mewCloseBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + [_mewCloseBtn setImage:[UIImage imageNamed:@"room_topic_close"] forState:UIControlStateNormal]; + [_mewCloseBtn addTarget:self action:@selector(mewCloseBtnAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewCloseBtn; +} + +- (UIVisualEffectView *)mewBgView { + if (!_mewBgView) { + UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _mewBgView = [[UIVisualEffectView alloc] initWithEffect:beffect]; + _mewBgView.alpha = 1; + } + return _mewBgView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.h new file mode 100644 index 0000000..1ed4a54 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.h @@ -0,0 +1,21 @@ +// +// MewRoomActiveCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN +//XPRoomOnlineTableViewCell +@interface MewRoomActiveCell : UITableViewCell +///在线列表的类型 +@property (nonatomic,assign) MewRoomActiveType mewActiveType;///onlineType +///云信用户实体 +@property (strong, nonatomic) NIMChatroomMember *mewTeammate;///member +///是否在麦序上 +@property (nonatomic,assign) BOOL mewIsInMic;///isOnMicro +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.m new file mode 100644 index 0000000..668b4a0 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomActiveCell.m @@ -0,0 +1,373 @@ +// +// MewRoomActiveCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/8. +// + +#import "MewRoomActiveCell.h" +#import "MewMessageRemoteExtModel.h" +#import +@interface MewRoomActiveCell() +///显示头像 +@property (nonatomic,strong) NetImageView *mewHeadView;///avatarImageView +///性别 +@property (nonatomic,strong) UIImageView *mewGenderView;///sexImageView +///姓名 和 等级 总的容器 +@property (nonatomic,strong) UIStackView *mewPileView;////stackView +///姓名的容器 +@property (nonatomic,strong) UIStackView *mewNamePileView;///nickStackView +///显示姓名 +@property (nonatomic,strong) UILabel *mewNameLab;//nickLabel +///魅力等级 等级 铭牌 +@property (nonatomic,strong) UIStackView *mewTagPileView;///tagStackView +///角色的 +@property (nonatomic,strong) UIButton *mewRoleView;///roleButton +///美丽等级 +@property (nonatomic,strong) NetImageView *mewCharmView;///charmImageView +///等级 +@property (nonatomic,strong) NetImageView *mewExperView;///experImageView +///铭牌的容器 +@property (nonatomic,strong) UIView * mewPlateView;//namePlateView +///铭牌图片 +@property (nonatomic,strong) NetImageView *mewPlateImage;///nameplateImageView +///铭牌文字 +@property (nonatomic,strong) UILabel *mewPlateLab;///nameplateLabel +///分割线 +@property (nonatomic,strong) UIView * mewLineView;///lineView +///在麦上显示标签 +@property (strong, nonatomic) UILabel *mewInMicView;///onMicroStatusLabel +@end +@implementation MewRoomActiveCell + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self mewInitUI]; + [self mewSetUIConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)mewInitUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.mewHeadView]; + [self.contentView addSubview:self.mewPileView]; + [self.contentView addSubview:self.mewLineView]; + [self.contentView addSubview:self.mewInMicView]; + + [self.mewPileView addArrangedSubview:self.mewNamePileView]; + [self.mewPileView addArrangedSubview:self.mewTagPileView]; + + [self.mewNamePileView addArrangedSubview:self.mewNameLab]; + [self.mewNamePileView addArrangedSubview:self.mewGenderView]; + + [self.mewTagPileView addArrangedSubview:self.mewRoleView]; + [self.mewTagPileView addArrangedSubview:self.mewExperView]; + [self.mewTagPileView addArrangedSubview:self.mewCharmView]; + [self.mewTagPileView addArrangedSubview:self.mewPlateView]; + + ///铭牌 + [self.mewPlateView addSubview:self.mewPlateImage]; + [self.mewPlateView addSubview:self.mewPlateLab]; +} + +- (void)mewSetUIConstraints { + [self.mewHeadView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + }]; + + [self.mewPileView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.mewHeadView.mas_right).offset(10); + }]; + + [self.mewTagPileView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + }]; + + [self.mewRoleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(38, 15)); + }]; + + [self.mewExperView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(36); + make.height.mas_equalTo(18); + }]; + + [self.mewCharmView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(36); + make.height.mas_equalTo(18); + }]; + + [self.mewPlateView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + make.width.mas_equalTo(self.mewPlateImage.mas_width); + }]; + + + [self.mewPlateImage mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + make.width.mas_equalTo(60); + make.left.top.mas_equalTo(self.mewPlateView); + }]; + + [self.mewPlateLab mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.mewPlateImage); + make.right.mas_equalTo(self.mewPlateView).offset(-2); + }]; + + [self.mewLineView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mewNameLab); + make.right.mas_equalTo(self.contentView).offset(-15); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(0.5); + }]; + + [self.mewInMicView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(-15); + make.width.mas_equalTo(32); + make.height.mas_equalTo(14); + }]; +} + + +#pragma mark - Getters And Setters +-(void)setMewTeammate:(NIMChatroomMember*)mewTeammate{ + _mewTeammate = mewTeammate; + if (_mewTeammate) { + NSDictionary * extDic = [mewTeammate.roomExt mewToJSONObject]; + MewMessageRemoteExtModel * userInfo = [MewMessageRemoteExtModel mewModelWithDictionary:[extDic objectForKey:mewTeammate.userId]]; + if (userInfo.gender) { + self.mewGenderView.image = userInfo.gender == Mew_GenderType_Female ? [UIImage imageNamed:@"mew_common_sex_female"] : [UIImage imageNamed:@"mew_common_sex_male"]; + } else { + NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:_mewTeammate.userId]; + self.mewGenderView.image = user.userInfo.gender == NIMUserGenderFemale ? [UIImage imageNamed:@"mew_common_sex_female"] : [UIImage imageNamed:@"mew_common_sex_male"]; + } + if (extDic.allKeys.count > 0 || (mewTeammate.type == NIMTeamMemberTypeOwner || mewTeammate.type == NIMTeamMemberTypeManager)) { + self.mewTagPileView.hidden = NO; + + if (userInfo.experUrl) { + self.mewExperView.image = kImage(userInfo.experNewUrl); + } + self.mewExperView.hidden = userInfo.experUrl.length <= 0; + + if (userInfo.charmUrl) { + self.mewCharmView.image = kImage(userInfo.charmNewUrl); + } + self.mewCharmView.hidden = userInfo.charmUrl.length <= 0; + + if (userInfo.inRoomNameplatePic.length>0 && userInfo.inRoomNameplateWord.length>0) { + self.mewPlateImage.imageUrl = userInfo.inRoomNameplatePic; + self.mewPlateLab.text = userInfo.inRoomNameplateWord; + self.mewPlateView.hidden = NO; + } else { + self.mewPlateView.hidden = YES; + } + + if (_mewTeammate.type == NIMTeamMemberTypeOwner) { + self.mewRoleView.hidden = NO; + [self.mewRoleView setBackgroundColor:[MewThemeColor mewAppEmphasizeColor2]]; + [self.mewRoleView setTitle:@"房主" forState:UIControlStateNormal]; + } else if(_mewTeammate.type == NIMTeamMemberTypeManager) { + self.mewRoleView.hidden = NO; + [self.mewRoleView setBackgroundColor:[MewThemeColor mewAppEmphasizeColor]]; + [self.mewRoleView setTitle:@"管理员" forState:UIControlStateNormal]; + } else { + self.mewRoleView.hidden = YES; + } + } else { + self.mewTagPileView.hidden = YES; + } + if (userInfo.enterHide) { + self.mewNameLab.text = @"神秘人"; + self.mewHeadView.image = [UIImage imageNamed:@"mew_room_secret_person"]; + self.mewGenderView.hidden = YES; + self.mewTagPileView.hidden = YES; + self.mewIsInMic = NO; + } else { + self.mewHeadView.imageUrl = _mewTeammate.roomAvatar; + self.mewNameLab.text = _mewTeammate.roomNickname; + self.mewGenderView.hidden = NO; + } + } +} + +- (void)setMewIsInMic:(BOOL)mewIsInMic { + self.mewInMicView.hidden = !mewIsInMic; +} +- (void)setMewActiveType:(MewRoomActiveType)mewActiveType{ + _mewActiveType = mewActiveType; + switch (_mewActiveType) { + case MewRoomActive_All_User: + self.mewNameLab.textColor = [UIColor whiteColor]; + self.backgroundColor = [UIColor clearColor]; + break; + case MewRoomActive_Invite_User: + self.mewNameLab.textColor = [MewThemeColor mewMainTextColor]; + self.backgroundColor = [UIColor clearColor]; + self.mewIsInMic = NO; + break; + default: + break; + } +} + + +- (NetImageView *)mewHeadView { + if (!_mewHeadView) { + NetImageConfig * config = [[NetImageConfig alloc]init]; + config.imageType = ImageTypeUserIcon; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewHeadView = [[NetImageView alloc] initWithConfig:config]; + _mewHeadView.layer.masksToBounds = YES; + _mewHeadView.layer.cornerRadius = 40/2; + _mewHeadView.layer.borderColor = [MewThemeColor mewMainTextColor].CGColor; + } + return _mewHeadView; +} + +- (UIImageView *)mewGenderView { + if (!_mewGenderView) { + _mewGenderView = [[UIImageView alloc] init]; + _mewGenderView.userInteractionEnabled = YES; + } + return _mewHeadView; +} + +- (UILabel *)mewNameLab { + if (!_mewNameLab) { + _mewNameLab = [[UILabel alloc] init]; + _mewNameLab.font = [UIFont systemFontOfSize:15]; + _mewNameLab.textColor = [UIColor whiteColor]; + } + return _mewNameLab; +} + +- (UIStackView *)mewPileView { + if (!_mewPileView) { + _mewPileView = [[UIStackView alloc] init]; + _mewPileView.axis = UILayoutConstraintAxisVertical; + _mewPileView.distribution = UIStackViewDistributionFillProportionally; + _mewPileView.alignment = UIStackViewAlignmentLeading; + _mewPileView.spacing = 5; + } + return _mewPileView; +} + +- (UIStackView *)mewNamePileView { + if (!_mewNamePileView) { + _mewNamePileView = [[UIStackView alloc] init]; + _mewNamePileView.axis = UILayoutConstraintAxisHorizontal; + _mewNamePileView.distribution = UIStackViewDistributionFill; + _mewNamePileView.alignment = UIStackViewAlignmentCenter; + _mewNamePileView.spacing = 3; + } + return _mewNamePileView; +} + +- (UIStackView *)mewTagPileView { + if (!_mewTagPileView) { + _mewTagPileView = [[UIStackView alloc] init]; + _mewTagPileView.axis = UILayoutConstraintAxisHorizontal; + _mewTagPileView.distribution = UIStackViewDistributionFill; + _mewTagPileView.alignment = UIStackViewAlignmentCenter; + _mewTagPileView.spacing = 2; + } + return _mewTagPileView; +} +- (NetImageView *)mewExperView { + if (!_mewExperView) { + NetImageConfig * config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + config.imageType = ImageTypeUserCardLevel; + _mewExperView = [[NetImageView alloc] initWithConfig:config]; + _mewExperView.userInteractionEnabled = YES; + _mewExperView.hidden = YES; + _mewExperView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewExperView; +} + +- (NetImageView *)mewCharmView { + if (!_mewCharmView) { + NetImageConfig * config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + config.imageType = ImageTypeUserCardLevel; + _mewCharmView = [[NetImageView alloc] initWithConfig:config]; + _mewCharmView.userInteractionEnabled = YES; + _mewCharmView.hidden = YES; + _mewCharmView.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewCharmView; +} + +- (UIView *)mewPlateView { + if (!_mewPlateView) { + _mewPlateView = [[UIView alloc] init]; + _mewPlateView.backgroundColor = [UIColor clearColor]; + _mewPlateView.hidden = YES; + } + return _mewPlateView; +} + +- (NetImageView *)mewPlateImage { + if (!_mewPlateImage) { + NetImageConfig * config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + config.imageType = ImageTypeUserCardLevel; + _mewPlateImage = [[NetImageView alloc] initWithConfig:config]; + _mewPlateImage.userInteractionEnabled = YES; + _mewPlateImage.contentMode = UIViewContentModeScaleAspectFit; + } + return _mewPlateImage; +} + +- (UILabel *)mewPlateLab { + if (!_mewPlateLab) { + _mewPlateLab = [[UILabel alloc] init]; + _mewPlateLab.font = [UIFont systemFontOfSize:10]; + _mewPlateLab.textAlignment = NSTextAlignmentCenter; + _mewPlateLab.textColor = [UIColor whiteColor]; + } + return _mewPlateLab; +} + +- (UIView *)mewLineView { + if (!_mewLineView) { + _mewLineView = [[UIView alloc] init]; + _mewLineView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1]; + } + return _mewLineView; +} + +- (UIButton *)mewRoleView { + if (!_mewRoleView) { + _mewRoleView = [UIButton buttonWithType:UIButtonTypeCustom]; + [_mewRoleView setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _mewRoleView.titleLabel.font = [UIFont systemFontOfSize:10]; + _mewRoleView.layer.masksToBounds = YES; + _mewRoleView.layer.cornerRadius = 15 / 2; + } + return _mewRoleView; +} + +- (UILabel *)mewInMicView { + if (!_mewInMicView) { + _mewInMicView = [[UILabel alloc] init]; + _mewInMicView.text = @"上麦"; + _mewInMicView.textColor = UIColor.whiteColor; + _mewInMicView.font = [UIFont systemFontOfSize:10]; + _mewInMicView.textAlignment = NSTextAlignmentCenter; + _mewInMicView.layer.cornerRadius = 7; + _mewInMicView.layer.masksToBounds = YES; + _mewInMicView.backgroundColor = [MewThemeColor mewAppEmphasizeColor]; + } + return _mewInMicView; +} + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.h new file mode 100644 index 0000000..9b0c2bb --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.h @@ -0,0 +1,17 @@ +// +// MewRoomHourListEnterCell.h +// yinmeng-ios +// +// Created by duoban on 2024/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//XPRoomAnchorRankEnterCell +@interface MewRoomHourListEnterCell : UICollectionViewCell +@property(nonatomic,copy) NSString *mewRankTitle; +@property(nonatomic,copy) NSString *mewNumTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.m new file mode 100644 index 0000000..963b6b5 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewSetting/MewSettingView/MewSettingCell/MewRoomHourListEnterCell.m @@ -0,0 +1,105 @@ +// +// MewRoomHourListEnterCell.m +// yinmeng-ios +// +// Created by duoban on 2024/1/10. +// + +#import "MewRoomHourListEnterCell.h" +@interface MewRoomHourListEnterCell() +@property(nonatomic,strong) UIImageView *mewBgView; +@property (nonatomic,strong) UILabel *mewTextView; +@property(nonatomic,strong) UIImageView *mewIconView; +@end +@implementation MewRoomHourListEnterCell +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [UIColor clearColor]; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.mewBgView]; + [self.mewBgView addSubview:self.mewIconView]; + [self.mewBgView addSubview:self.mewTextView]; +} + +- (void)initSubViewConstraints { + + [self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(21); + make.height.mas_equalTo(20); + make.left.top.mas_equalTo(0); + + }]; + [self.mewTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(22); + make.centerY.equalTo(self.mewBgView); + }]; +} +-(void)setMewRankTitle:(NSString *)mewRankTitle{ + _mewRankTitle = mewRankTitle; + + + NSString *text = @""; + if(mewRankTitle.intValue > 30){ + text = [NSString stringWithFormat:@"暂未上榜"]; + NSMutableAttributedString *rankAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightRegular],NSForegroundColorAttributeName:[UIColor whiteColor]}]; + _mewTextView.attributedText = rankAtt; + return; + } + text = [NSString stringWithFormat:@"小时榜 第 %@ 名",_mewRankTitle]; + + NSMutableAttributedString *rankAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightRegular],NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [rankAtt addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightMedium],NSForegroundColorAttributeName:UIColorMewFromRGB(0xFFF265)} range:[text rangeOfString:_mewRankTitle]]; + _mewTextView.attributedText = rankAtt; +} +-(void)setMewNumTitle:(NSString *)mewNumTitle{ + _mewNumTitle = mewNumTitle; + _mewNumTitle = [NSString mew_getDealNumOfTitle:mewNumTitle text:@"w"]; + NSString *text = [NSString stringWithFormat:@"距上一名差 %@",_mewNumTitle]; + NSMutableAttributedString *valueAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightRegular],NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [valueAtt addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:9 weight:UIFontWeightMedium],NSForegroundColorAttributeName:UIColorMewFromRGB(0xFFF265)} range:[text rangeOfString:_mewNumTitle]]; + _mewTextView.attributedText = valueAtt; +} + +#pragma mark - Getters And Setters +- (UIImageView *)mewBgView{ + if(!_mewBgView){ + _mewBgView = [UIImageView new]; + _mewBgView.frame = CGRectMake(0,0,102,20); + // gradient + CAGradientLayer *gl = [CAGradientLayer layer]; + gl.frame = CGRectMake(0,0,102,20); + gl.startPoint = CGPointMake(1, 0); + gl.endPoint = CGPointMake(0, 0); + gl.colors = @[(__bridge id)[UIColor colorWithRed:255/255.0 green:253/255.0 blue:161/255.0 alpha:0.0].CGColor, (__bridge id)[UIColor colorWithRed:255/255.0 green:201/255.0 blue:38/255.0 alpha:0.2000].CGColor]; + gl.locations = @[@(0), @(1.0f)]; + [_mewBgView.layer addSublayer:gl]; + _mewBgView.layer.cornerRadius = 10; + _mewBgView.layer.masksToBounds = YES; + } + return _mewBgView; +} + +- (UIImageView *)mewIconView{ + if(!_mewIconView){ + _mewIconView = [UIImageView new]; + _mewIconView.image = kImage(@"room_hour_rank_enter_icon"); + } + return _mewIconView; +} +- (UILabel *)mewTextView{ + if(!_mewTextView){ + _mewTextView = [UILabel new]; + } + return _mewTextView; +} +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.h new file mode 100644 index 0000000..8c4a067 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.h @@ -0,0 +1,17 @@ +// +// MewMiniRoomTool.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import +#import "MewRoomInfoModel.h" +#import "MewUserInfoModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMiniRoomTool : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.m new file mode 100644 index 0000000..e105ec5 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomTool.m @@ -0,0 +1,12 @@ +// +// MewMiniRoomTool.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewMiniRoomTool.h" + +@implementation MewMiniRoomTool + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.h new file mode 100644 index 0000000..3856661 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.h @@ -0,0 +1,16 @@ +// +// MewMiniRoomWindow.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMiniRoomWindow : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.m new file mode 100644 index 0000000..2da2d70 --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewMiniRoom/MewMiniRoomWindow.m @@ -0,0 +1,22 @@ +// +// MewMiniRoomWindow.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewMiniRoomWindow.h" +@interface MewMiniRoomWindow() + +@end +@implementation MewMiniRoomWindow + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewRoomViewController.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewRoomViewController.m index 5b10133..55faa5c 100644 --- a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewRoomViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/MewRoomViewController.m @@ -9,7 +9,7 @@ ///View #import "MewRoomViewController.h" #import "MewBaseNavigationController.h" -#import "MewRoomHeaderView.h" +#import "MewRoomTopView.h" #import "MewRoomRightView.h" #import "MewSocialStageView.h" #import "MewRoomMessageContainerView.h" @@ -38,14 +38,18 @@ #import #import - +#import "MewRoomBgImageView.h" +#import "MewRoomContentContainerView.h" @interface MewRoomViewController () + MewRoomHostDelegate, MewRoomRightViewDelegate> -// 背景 -@property (nonatomic, strong) UIImageView *roomBgImageView; -@property (nonatomic, strong) MewRoomHeaderView *roomHeaderView; + + +@property(nonatomic,strong) MewRoomBgImageView *mewRoomBgImage; +@property(nonatomic,strong) MewRoomContentContainerView *mewRoomContainerView; + +@property (nonatomic, strong) MewRoomTopView *mewRoomTopView; @property (nonatomic, strong) MewRoomRightView *roomRightView; @property (nonatomic, strong) MewStageView *roomStageView; @property (nonatomic, strong) MewRoomMessageContainerView *roomMessageView; @@ -133,6 +137,9 @@ NSMutableDictionary *lastRoomInfoDic = [NSMutableDictionary dictionaryWithDictionary:[self.roomInfo mewModel2dictionary]]; [lastRoomInfoDic addEntriesFromDictionary: ((NSString *)data[@"roomInfo"]).mewToJSONObject]; [self.roomStageView mew_onRoomInfoUpdate]; + [self.mewRoomBgImage mew_onRoomUpdate]; + [self.mewRoomTopView mew_onRoomUpdate]; + [self.mewRoomContainerView mew_onRoomUpdate]; // [self.roomMessageView onRoomUpdate]; } break; @@ -141,7 +148,7 @@ break; case NIMChatroomEventTypeEnter: if (content.source.userId.integerValue != [MewAccountInfoStorage instance].mew_getUid.integerValue && self.userInfo.platformRole != 1) { - // onLineNumber += 1; + onLineNumber += 1; } break; case NIMChatroomEventTypeAddBlack: @@ -163,7 +170,7 @@ break; } self.roomInfo.onlineNum = onLineNumber; -// [self.roomHeaderView onRoomUpdate]; + [self.mewRoomTopView mew_onRoomUpdate]; [self.roomStageView mew_handleNIMNotificationMessage:message]; [self.roomAnimationView mew_handleNIMNotificationMessage:message]; [self.roomMessageView mew_handleNIMNotificationMessage:message]; @@ -246,7 +253,7 @@ } -- (UINavigationController *)mew_getmew_currentNavigationController { +- (UINavigationController *)mew_getCurrentNavigationController { return self.navigationController; } @@ -270,7 +277,8 @@ self.userInfo = userInfo; self.roomInfo = roomInfo; if (roomInfo.valid) { - [self.roomHeaderView mew_onRoomEntered]; + [self.mewRoomBgImage mew_onRoomEntered]; + [self.mewRoomTopView mew_onRoomEntered]; [self.presenter mew_enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld",self.roomInfo.roomId] user:self.userInfo]; } else { if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", userInfo.uid]]) { @@ -294,7 +302,8 @@ // 开房成功 - (void)mew_openCurrentRoomSuccess:(MewRoomInfoModel *)roomInfo { self.roomInfo = roomInfo; - [self.roomHeaderView mew_onRoomEntered]; + [self.mewRoomBgImage mew_onRoomEntered]; + [self.mewRoomTopView mew_onRoomEntered]; [self.presenter mew_enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; } @@ -302,7 +311,9 @@ // IM进房成功 - (void)mew_enterCurrentRoomSuccess:(NIMChatroom *)chatRoom { [MewHUDTool mew_hideHUDInView:self.navigationController.view]; + [self.mewRoomBgImage mew_onRoomEntered]; [self.roomStageView mew_onRoomEntered]; + [self.mewRoomContainerView mew_onRoomEntered]; if (self.roomInfo != nil) { [self.presenter mew_reportUserInterRoom:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]]; @@ -329,7 +340,12 @@ [self sendCustomMessage:receiveInfo oringinDic:originDic]; } - +- (void)mew_clickMinimizeRoom{ + +} +-(void)mew_clickExitCurrentRoom{ + [self mew_exitCurrentRoom]; +} /// 送礼物失败 - (void)mew_sendRoomGiftFailWithCode:(NSInteger)code msg:(NSString *)msg { [MewHUDTool mew_hideHUD]; @@ -348,8 +364,8 @@ NSMutableDictionary *data = [NSMutableDictionary dictionary]; [data addEntriesFromDictionary:originDic]; MewAttachmentModel *attchment = [[MewAttachmentModel alloc] init]; - attchment.first = Mew_CustomMessageType_Gift; - attchment.second = Mew_Custom_Message_Sub_Gift_Send; + attchment.first = MewRoomCustomMsgType_Gift; + attchment.second = Mew_Room_Custom_Msg_Sub_Gift_Send; NSDictionary *targetUsers = ((NSArray *)[data objectForKey:@"targetUsers"]).firstObject; [data setObject:[targetUsers valueForKeyPath:@"uid"] forKey:@"targetUid"]; [data setObject:[targetUsers valueForKeyPath:@"nick"] forKey:@"targetNick"]; @@ -376,8 +392,8 @@ } -#pragma mark - MewRoomHeaderViewDelegate (header事件回调) -- (void)didSelectMewRoomHeaderViewTarget:(NSInteger)target { +#pragma mark - MewmewRoomTopViewDelegate (header事件回调) +- (void)didSelectMewmewRoomTopViewTarget:(NSInteger)target { if (target == 0) { // 收藏 @@ -502,28 +518,31 @@ } #pragma mark - Init - (void)mew_initView { - [self.view addSubview:self.roomBgImageView]; - [self.view addSubview:self.roomHeaderView]; + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.mewRoomBgImage]; + [self.view addSubview:self.mewRoomTopView]; + + [self.view addSubview:self.roomStageView]; [self.view insertSubview:self.roomRightView aboveSubview:self.roomStageView]; [self.view addSubview:self.roomMessageView]; [self.view insertSubview:self.emojiImageView aboveSubview:self.roomRightView]; + [self.view addSubview:self.mewRoomContainerView]; [self.view addSubview:self.roomAnimationView]; [self mew_initLayout]; } - (void)mew_initLayout { - [self.roomBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + [self.mewRoomBgImage mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); }]; - [self.roomHeaderView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.equalTo(self.view); - make.top.mas_equalTo(kStatusBarHeight+20); - make.height.mas_equalTo(28); + [self.mewRoomTopView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); }]; [self.roomRightView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(self.roomHeaderView.mas_bottom).offset(35); + make.top.equalTo(self.mewRoomTopView.mas_bottom).offset(35); make.right.equalTo(self.view).offset(-32); }]; @@ -543,7 +562,9 @@ make.centerX.equalTo(self.roomStageView); make.bottom.equalTo(self.roomStageView).offset(-60); }]; - + [self.mewRoomContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; [self.roomAnimationView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.view); }]; @@ -551,20 +572,20 @@ #pragma mark - Get -- (UIImageView *)roomBgImageView { - if (!_roomBgImageView) { - _roomBgImageView = [[UIImageView alloc] init]; - _roomBgImageView.image = [UIImage imageNamed:@"mew_home_bg"]; +- (MewRoomBgImageView *)mewRoomBgImage{ + if(!_mewRoomBgImage){ + _mewRoomBgImage = [[MewRoomBgImageView alloc] initWithDelegate:self]; } - return _roomBgImageView; + return _mewRoomBgImage; } -- (MewRoomHeaderView *)roomHeaderView { - if (!_roomHeaderView) { - _roomHeaderView = [[MewRoomHeaderView alloc] initWithDelegate:self]; - _roomHeaderView.delegate = self; + +- (MewRoomTopView *)mewRoomTopView { + if (!_mewRoomTopView) { + _mewRoomTopView = [[MewRoomTopView alloc] initWithDelegate:self]; + } - return _roomHeaderView; + return _mewRoomTopView; } - (MewRoomRightView *)roomRightView { @@ -603,5 +624,10 @@ } return _roomAnimationView; } - +- (MewRoomContentContainerView *)mewRoomContainerView{ + if(!_mewRoomContainerView){ + _mewRoomContainerView = [[MewRoomContentContainerView alloc]initWithDelegate:self]; + } + return _mewRoomContainerView; +} @end diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.h b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.h deleted file mode 100644 index 7ce1805..0000000 --- a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// MewRoomHeaderView.h -// mew-ios -// -// Created by 触海 on 2023/11/13. -// - -#import -#import "MewRoomHostDelegate.h" -#import "MewRoomGuestDelegate.h" -NS_ASSUME_NONNULL_BEGIN - -/// index : 1 - 退出房间 2-举报房间 -typedef void(^selectFilterClouse)(NSInteger index); -@interface MewRoomHeaderFilterView : UIView -+ (void)showMewRoomHeadrFilterViewOrigin:(CGPoint)origin mew_selectFilterClouseEvent:(selectFilterClouse)mew_selectFilterClouseEvent; -@end - - -@protocol MewRoomHeaderViewDelegate -/// 点击事件回调 -/// - Parameter target: 0- 收藏 1-退出房间 2-举报房间 -- (void)didSelectMewRoomHeaderViewTarget:(NSInteger)target; -@end - -@interface MewRoomHeaderView : UIView - -- (instancetype)initWithDelegate:(id)delegate; -@property (nonatomic, weak) id delegate; - -@end - - -NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.m b/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.m deleted file mode 100644 index 5b97b77..0000000 --- a/yinmeng-ios/yinmeng-ios/Main/Room/View/MewView/RoomHeaderView/MewRoomHeaderView.m +++ /dev/null @@ -1,275 +0,0 @@ -// -// MewRoomHeaderView.m -// mew-ios -// -// Created by 触海 on 2023/11/13. -// - -#import "MewRoomHeaderView.h" -#import "MewMacro.h" -#import -#import "MewThemeColor.h" -#import "MewAccountInfoStorage.h" -#import "Api+Room.h" -#import "NSMutableDictionary+MewSafe.h" -#import "MewAttachmentModel.h" -#import "MewUserInfoModel.h" -#import "MEWHUDTool.h" - -#pragma mark - 过滤view(举报和退出) -@interface MewRoomHeaderFilterView() -@property (nonatomic, strong) UIButton *exitButton; -@property (nonatomic, strong) UIButton *reportButton; -@property (nonatomic, strong) UIView *lineView; -@property (nonatomic, copy) selectFilterClouse completed; - -@end - -@implementation MewRoomHeaderFilterView - -static MewRoomHeaderFilterView *_filterView = nil; -#pragma mark - Public Method -+ (void)showMewRoomHeadrFilterViewOrigin:(CGPoint)origin mew_selectFilterClouseEvent:(selectFilterClouse)mew_selectFilterClouseEvent { - if (!_filterView) { - _filterView = [[MewRoomHeaderFilterView alloc] initWithFrame:CGRectMake(origin.x, origin.y, 97, 38)]; - _filterView.completed = mew_selectFilterClouseEvent; - } else { - [_filterView removeViewFromSuper]; - } - - if (!_filterView.superview) { - [kWindow addSubview:_filterView]; - } - -} - - -#pragma mark - Init -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.backgroundColor = UIColor.whiteColor; - self.layer.cornerRadius = 6; - self.layer.masksToBounds = YES; - [self mew_initView]; - } - return self; -} - -- (void)mew_initView { - [self addSubview:self.exitButton]; - [self addSubview:self.reportButton]; - [self addSubview:self.lineView]; - [self mew_initLayout]; -} - -- (void)mew_initLayout { - [self.exitButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.height.mas_equalTo(20); - make.left.mas_equalTo(14); - make.centerY.equalTo(self); - }]; - - [self.reportButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.height.equalTo(self.exitButton); - make.right.mas_equalTo(-14); - make.centerY.equalTo(self); - }]; - - [self.lineView mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.equalTo(self.exitButton); - make.left.equalTo(self.exitButton.mas_right).offset(14); - make.width.mas_equalTo(1); - make.height.mas_equalTo(18); - }]; -} -#pragma mark - Action -- (void)exitButtonAction { - [self removeViewFromSuper]; - if (self.completed) { - self.completed(1); - } -} -- (void)reportButtonAction { - [self removeViewFromSuper]; - if (self.completed) { - self.completed(2); - } -} - -- (void)removeViewFromSuper { - if (_filterView) { - [_filterView removeFromSuperview]; - _filterView = nil; - } -} -#pragma mark - Get -- (UIButton *)exitButton { - if (!_exitButton) { - _exitButton = [[UIButton alloc] init]; - [_exitButton setImage:[UIImage imageNamed:@"mew_room_exit"] forState:UIControlStateNormal]; - [_exitButton addTarget:self action:@selector(exitButtonAction) forControlEvents:UIControlEventTouchUpInside]; - - } - return _exitButton; -} - -- (UIButton *)reportButton { - if (!_reportButton) { - _reportButton = [[UIButton alloc] init]; - [_reportButton setImage:[UIImage imageNamed:@"mew_room_report"] forState:UIControlStateNormal]; - [_reportButton addTarget:self action:@selector(reportButtonAction) forControlEvents:UIControlEventTouchUpInside]; - } - return _reportButton; -} - -- (UIView *)lineView { - if (!_lineView) { - _lineView = [[UIView alloc] init]; - _lineView.backgroundColor = [MewThemeColor mewColorWithHexString:@"#DEE1E5"]; - } - return _lineView; -} - -@end - - -#pragma mark - HeaderView -@interface MewRoomHeaderView() -/// 房间名称 -@property (nonatomic, strong) UILabel *roomTitleLabel; -/// 房间收藏 -@property (nonatomic, strong) UIButton *roomCollectButton; -/// 退出房间 -@property (nonatomic, strong) UIButton *filterButton; - -@property (nonatomic, weak) id hostDelegate; -///是否已发送过收藏房间公屏消息 -@property (nonatomic, assign) BOOL hadShowCollectInScreen; - -@end - -@implementation MewRoomHeaderView - -#pragma mark - Init -- (instancetype)initWithDelegate:(id)delegate { - self = [super init]; - if (self) { - _hostDelegate = delegate; - [self mew_initView]; - } - return self; -} - -#pragma mark - MewRoomGuestDelegate -- (void)mew_onRoomEntered { - MewRoomInfoModel* roomInfo = self.hostDelegate.mew_getRoomInformation; - - if (roomInfo) { - self.roomTitleLabel.text = roomInfo.title; - if (roomInfo.uid == [MewAccountInfoStorage instance].mew_getUid.integerValue) {//进入的是自己的房间 - self.roomCollectButton.hidden = YES; - } else { - self.roomCollectButton.hidden = NO; - self.roomCollectButton.selected = roomInfo.isRoomFans; - } - } -} - - -#pragma mark - Action -// 收藏 -- (void)roomCollectButtonAction:(UIButton *)sender { - NSString *type = sender.selected ? @"2" : @"1"; - NSString *uid = [MewAccountInfoStorage instance].mew_getUid; - NSString *roomUid = [NSString stringWithFormat:@"%ld",self.hostDelegate.mew_getRoomInformation.uid]; - [Api Mew_CollectRoom:^(MewBaseModel * _Nonnull data, NSInteger code, NSString * _Nonnull msg) { - if (code == 200) { - sender.selected = !sender.selected; - if ([type isEqualToString:@"1"]) {///收藏的话 - [MewHUDTool showSuccessWithMessage:@"收藏成功"]; - } - } else { - [MewHUDTool showErrorWithMessage:msg]; - } - - } roomUid:roomUid uid:uid type:type roomUids:NULL]; - - if (self.delegate) { - [self.delegate didSelectMewRoomHeaderViewTarget:0]; - } -} - -// 退出 -- (void)filterButtonAction:(UIButton *)sender { - [MewRoomHeaderFilterView showMewRoomHeadrFilterViewOrigin:CGPointMake(KScreenWidth - 97 - 20, CGRectGetMaxY(self.frame)) mew_selectFilterClouseEvent:^(NSInteger index) { - if (self.delegate) { - [self.delegate didSelectMewRoomHeaderViewTarget:index]; - } - }]; -} - -#pragma mark - Init View -- (void)mew_initView { - [self addSubview:self.roomTitleLabel]; - [self addSubview:self.roomCollectButton]; - [self addSubview:self.filterButton]; - [self mew_initLayout]; -} - -- (void)mew_initLayout { - [self.roomTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.equalTo(self); - make.left.mas_equalTo(20); - make.width.mas_lessThanOrEqualTo(198); - }]; - - [self.roomCollectButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.equalTo(self.roomTitleLabel); - make.left.equalTo(self.roomTitleLabel.mas_right).offset(30); - make.width.mas_equalTo(34); - make.height.mas_equalTo(28); - }]; - - [self.filterButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.mas_equalTo(-16); - make.centerY.equalTo(self); - make.width.height.mas_equalTo(28); - }]; - - [self layoutIfNeeded]; -} - -#pragma mark - Get -- (UILabel *)roomTitleLabel { - if (!_roomTitleLabel) { - _roomTitleLabel = [[UILabel alloc] init]; - _roomTitleLabel.textColor = UIColor.whiteColor; - _roomTitleLabel.font = kFontMedium(18); - } - return _roomTitleLabel; -} - -- (UIButton *)roomCollectButton { - if (!_roomCollectButton) { - _roomCollectButton = [[UIButton alloc] init]; - [_roomCollectButton setImage:[UIImage imageNamed:@"mew_room_collect"] forState:UIControlStateNormal]; - [_roomCollectButton setImage:[UIImage imageNamed:@"mew_room_collected"] forState:UIControlStateSelected]; - _roomCollectButton.selected = NO; - [_roomCollectButton addTarget:self action:@selector(roomCollectButtonAction:) forControlEvents:UIControlEventTouchUpInside]; - } - return _roomCollectButton; -} - -- (UIButton *)filterButton { - if (!_filterButton) { - _filterButton = [[UIButton alloc] init]; - [_filterButton setImage:[UIImage imageNamed:@"mew_room_more"] forState:UIControlStateNormal]; - [_filterButton addTarget:self action:@selector(filterButtonAction:) forControlEvents:UIControlEventTouchUpInside]; - _filterButton.selected = NO; - } - return _filterButton; -} - - -@end diff --git a/yinmeng-ios/yinmeng-ios/Main/ShareView/Model/MewShareItemModel.m b/yinmeng-ios/yinmeng-ios/Main/ShareView/Model/MewShareItemModel.m index 706674b..9bd6874 100644 --- a/yinmeng-ios/yinmeng-ios/Main/ShareView/Model/MewShareItemModel.m +++ b/yinmeng-ios/yinmeng-ios/Main/ShareView/Model/MewShareItemModel.m @@ -62,28 +62,28 @@ switch (_type) { case MewMomentShareItemType_WeChat_Friend: self.title = @"微信好友"; - self.imageName = @"share_wechat_normal"; - self.disableImageName = @"share_wechat_disable"; + self.imageName = @"mew_share_room_wechat_normal"; + self.disableImageName = @"mew_share_room_wechat_disable"; break; case MewMomentShareItemType_WeChat_Moments: self.title = @"朋友圈"; - self.imageName = @"share_wechat_circle_normal"; - self.disableImageName = @"share_wechat_circle_disable"; + self.imageName = @"mew_share_room_wechat_circle_normal"; + self.disableImageName = @"mew_share_room_wechat_circle_disable"; break; case MewMomentShareItemType_QQ_Friend: self.title = @"QQ好友"; - self.imageName = @"share_qq_normal"; - self.disableImageName = @"share_qq_disable"; + self.imageName = @"mew_share_room_qq_normal"; + self.disableImageName = @"mew_share_room_qq_disable"; break; case MewMomentShareItemType_QQ_Zone: self.title = @"QQ空间"; - self.imageName = @"share_qqzone_normal"; - self.disableImageName = @"share_qqzone_disable"; + self.imageName = @"mew_share_room_qqzone_normal"; + self.disableImageName = @"mew_share_room_qqzone_disable"; break; case MewMomentShareItemType_App_Friends: self.title = @"好友"; - self.imageName = @"share_friend"; - self.disableImageName = @"share_friend"; + self.imageName = @"mew_share_room_friend"; + self.disableImageName = @"mew_share_room_friend"; break; default: diff --git a/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.h b/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.h new file mode 100644 index 0000000..c66ee1d --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.h @@ -0,0 +1,19 @@ +// +// MewRoomHalfScreenWebView.h +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +//XPRoomHalfWebView +@interface MewRoomHalfScreenWebView : UIView +///地址 +@property (nonatomic,copy) NSString *mewPath; +///房间uid +@property (nonatomic,copy) NSString *mewRoomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.m b/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.m new file mode 100644 index 0000000..f72befd --- /dev/null +++ b/yinmeng-ios/yinmeng-ios/Main/WebView/MewRoomHalfScreenWebView.m @@ -0,0 +1,182 @@ +// +// MewRoomHalfScreenWebView.m +// yinmeng-ios +// +// Created by duoban on 2024/1/9. +// + +#import "MewRoomHalfScreenWebView.h" +@interface MewRoomHalfScreenWebView() +///容器 +@property (nonatomic,strong) UIStackView *mewContainerView; +///点击消失的view +@property (nonatomic,strong) UIView * mewDissView; +/// 导航栏 +@property (nonatomic,strong) UIView * mewNavView; +///返回按钮 +@property (nonatomic,strong) UIButton *mewReturnBtn; +///关闭按钮 +@property (nonatomic,strong) UIButton *mewDissBtn; +///标题 +@property (nonatomic,strong) UILabel *mewTextView; +///加入h5 +@property (nonatomic, strong) MewWebViewController *mewH5VC; +@end +@implementation MewRoomHalfScreenWebView +- (void)dealloc { + +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initSubViewConstraints]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + + [self addSubview:self.mewDissView]; + [self addSubview:self.mewContainerView]; + + [self.mewContainerView addArrangedSubview:self.mewNavView]; + [self.mewContainerView addArrangedSubview:self.mewH5VC.view]; + + [self.mewNavView addSubview:self.mewReturnBtn]; + [self.mewNavView addSubview:self.mewTextView]; + @kWeakify(self); + self.mewH5VC.MewWebViewSetNavAction = ^(BOOL show) { + @kStrongify(self); + self.mewNavView.hidden = YES; + }; + + self.mewH5VC.MewCloseAction = ^(BOOL result) { + [TTPopup dismiss]; + }; +} + +- (void)initSubViewConstraints { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + + [self.mewDissView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.bottom.mas_equalTo(self.mewNavView.mas_top); + }]; + + [self.mewContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.height.mas_equalTo(kHalfScreenHeight); + }]; + + + [self.mewNavView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.mewTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mewNavView); + make.centerY.mas_equalTo(self.mewNavView); + }]; + + [self.mewReturnBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(6); + make.width.mas_equalTo(40); + make.top.bottom.mas_equalTo(self.mewNavView); + }]; +} +#pragma mark - Event Response +- (void)didClickmewDissBtn:(UIButton *)sender { + [TTPopup dismiss]; +} + +- (void)mewDissViewRecognizer { + [TTPopup dismiss]; +} +#pragma mark - Getters And Setters +-(void)setMewPath:(NSString *)mewPath{ + _mewPath = mewPath; + if (_mewPath.length > 0) { + self.mewH5VC.mewRoomUid = self.mewRoomUid; + self.mewH5VC.url = _mewPath; + } +} + + + + + +- (UIStackView *)mewContainerView { + if (!_mewContainerView) { + _mewContainerView = [[UIStackView alloc] init]; + _mewContainerView.axis = UILayoutConstraintAxisVertical; + _mewContainerView.distribution = UIStackViewDistributionFill; + _mewContainerView.alignment = UIStackViewAlignmentFill; + _mewContainerView.spacing = 0; + _mewContainerView.layer.cornerRadius = 10; + _mewContainerView.layer.masksToBounds = YES; + } + return _mewContainerView; +} + +- (UIView *)mewDissView { + if (!_mewDissView) { + _mewDissView = [[UIView alloc] init]; + _mewDissView.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mewDissViewRecognizer)]; + [_mewDissView addGestureRecognizer:tap]; + } + return _mewDissView; +} + +- (UIView *)mewNavView { + if (!_mewNavView) { + _mewNavView = [[UIView alloc] init]; + _mewNavView.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 44) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + _mewNavView.layer.mask = layer; + } + return _mewNavView; +} + +- (UILabel *)mewTextView { + if (!_mewTextView) { + _mewTextView = [[UILabel alloc] init]; + _mewTextView.textAlignment = NSTextAlignmentCenter; + _mewTextView.textColor = [UIColor blackColor]; + _mewTextView.font = [UIFont systemFontOfSize:17]; + } + return _mewTextView; +} + +- (UIButton *)mewReturnBtn { + if (!_mewReturnBtn) { + _mewReturnBtn = [[UIButton alloc] init]; + [_mewReturnBtn setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateNormal]; + [_mewReturnBtn addTarget:self action:@selector(didClickmewDissBtn:) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewReturnBtn; +} + +- (MewWebViewController *)mewH5VC { + if (_mewH5VC == nil) { + _mewH5VC = [[MewWebViewController alloc] init]; + _mewH5VC.view.backgroundColor = [UIColor clearColor]; + __weak typeof(self) weakSelf = self; + _mewH5VC.MewWebViewLoadCompleted = ^(BOOL result, NSError *error) { + weakSelf.mewTextView.text = weakSelf.mewH5VC.navigationItem.title; + }; + } + return _mewH5VC; +} + + +@end diff --git a/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.h b/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.h index 13e6969..2e9ec36 100644 --- a/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.h +++ b/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.h @@ -12,6 +12,17 @@ NS_ASSUME_NONNULL_BEGIN @interface MewWebViewController : MewBaseViewController @property (strong, nonatomic,readonly) WKWebView *webview; @property (copy, nonatomic) NSString *url; +//TODO: 先这样传进来 等修改了保存房间信息的manager 之后在修改 +@property (nonatomic,copy) NSString *mewRoomUid; + + + +/// URL加载完成回调,result:加载结果成功/失败,error:失败原因 +@property (nonatomic, copy) void (^MewWebViewLoadCompleted)(BOOL result, NSError * _Nullable error); +///是都隐藏导航栏 目前适用于半屏的情况下 +@property (nonatomic,copy) void (^MewWebViewSetNavAction)(BOOL isShow); +///关闭webView 目前适用于半屏的情况下 +@property (nonatomic,copy) void (^MewCloseAction)(BOOL result); @end NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.m b/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.m index 09ef130..4f4f11f 100644 --- a/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.m +++ b/yinmeng-ios/yinmeng-ios/Main/WebView/MewWebViewController.m @@ -23,7 +23,17 @@ /// Third #import #import +#import "MewShareView.h" +#import "MewRoomViewController.h" +#import "MEWBase64.h" +#import "MewShareItemModel.h" +#import "MewPushShareModel.h" +#ifdef DEBUG +static const NSString *MewDomainByWeChatRegister = @"api.uat.lecheng163.com"; +#else +static const NSString *MewDomainByWeChatRegister = @"api.lecheng163.com"; +#endif @interface MewWeakWebViewScriptMessageDelegate : NSObject @@ -54,20 +64,35 @@ @end - - +NSString * const kJSOpenPurse = @"openPurse"; +NSString * const kJSOpenChargePage = @"openChargePage"; +NSString * const kJSOpenSharePage = @"openSharePage"; NSString * const kJSGetUid = @"getUid"; NSString * const kJSGetDeviceId = @"getDeviceId"; NSString * const kJSGetTicket = @"getTicket"; NSString * const kJSGetDeviceInfo = @"getDeviceInfo"; +NSString * const kJSOpenFaceLiveness = @"openFaceLiveness"; +NSString * const kJSInitNav = @"initNav"; +NSString * const kJSGetRoomUid = @"getRoomUid"; +NSString * const kOpenPersonPage = @"openPersonPage"; NSString * const kInitShowNav = @"initShowNav"; NSString * const kCloseWebView = @"closeWebView"; -NSString * const kCancelAccount = @"cancelAccount"; -@interface MewWebViewController () +NSString * const kJumpAppointPage = @"jumpAppointPage"; +NSString * const kJSOpenRoom = @"openRoom"; +NSString * const kJSOpenRoomForGiftId = @"openRoomForGiftId"; +NSString * const kProhibitRightSlip = @"prohibitRightSlip"; +NSString * const kSaveBase64Image = @"saveBase64Image"; + + + +@interface MewWebViewController () @property (strong, nonatomic) WKWebView *webview; -@property (nonatomic, strong) WKUserContentController *mew_userContentController; +@property (strong, nonatomic) UIProgressView *mewProgressLineView; +@property (nonatomic, strong) WKUserContentController *mewUserContentVC; +///分享的内容 +@property (nonatomic,copy) NSDictionary *mewShareData; ///是否隐藏导航栏 -@property (nonatomic,assign) BOOL isHiddenNav; +@property (nonatomic,assign) BOOL mewIsShowNavView; @end @@ -77,8 +102,8 @@ NSString * const kCancelAccount = @"cancelAccount"; - (void)viewDidLoad { [super viewDidLoad]; - self.isHiddenNav = NO; - [self mew_initView]; + self.mewIsShowNavView = NO; + [self mew_setUI]; } - (void)viewWillDisappear:(BOOL)animated { @@ -88,10 +113,18 @@ NSString * const kCancelAccount = @"cancelAccount"; - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; - [self.navigationController setNavigationBarHidden:self.isHiddenNav animated:animated]; + [self.navigationController setNavigationBarHidden:self.mewIsShowNavView animated:animated]; } -- (void)mew_initView { +- (void)mew_setUI { + + if (self.navigationController.viewControllers.count > 1){ + UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"mew_common_nav_back"] style:UIBarButtonItemStylePlain target:self action:@selector(mew_clickReturnAction)]; + + leftBarButtonItem.tintColor = [MewThemeColor mewMainTextColor]; + + self.navigationItem.leftBarButtonItem = leftBarButtonItem; + } if (@available(iOS 11.0, *)) { self.webview.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; }else{ @@ -102,8 +135,72 @@ NSString * const kCancelAccount = @"cancelAccount"; make.left.right.top.bottom.mas_equalTo(self.view); }]; + [self.view addSubview:self.mewProgressLineView]; } +//加载完成 +- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { + //加载完成后隐藏progressView + self.mewProgressLineView.hidden = YES; + if (self.MewWebViewLoadCompleted) { + self.MewWebViewLoadCompleted(YES, nil); + } +} + +//加载失败 +- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error { + //加载失败同样需要隐藏progressView + self.mewProgressLineView.hidden = YES; + if (self.MewWebViewLoadCompleted) { + self.MewWebViewLoadCompleted(NO, error); + } +} + +//捕抓打电话事件 +- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { + NSURL *URL = navigationAction.request.URL; + NSString *scheme = [URL scheme]; + NSURLRequest *request = navigationAction.request; + + ///卡罗牌 + NSString *absoluteString = [navigationAction.request.URL.absoluteString stringByRemovingPercentEncoding]; + static NSString *endPayRedirectURL = nil; + if ([absoluteString hasPrefix:@"https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb"] && ![absoluteString hasSuffix:[NSString stringWithFormat:@"redirect_url=xdx.%@://",MewDomainByWeChatRegister]]) { + NSString *redirectUrl = nil; + if ([absoluteString containsString:@"redirect_url="]) { + NSRange redirectRange = [absoluteString rangeOfString:@"redirect_url"]; + endPayRedirectURL = [absoluteString substringFromIndex:redirectRange.location+redirectRange.length+1]; + // stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]] + redirectUrl = [[absoluteString substringToIndex:redirectRange.location] stringByAppendingString:[NSString stringWithFormat:@"redirect_url=xdx.%@://",MewDomainByWeChatRegister]]; + }else { + redirectUrl = [absoluteString stringByAppendingString:[NSString stringWithFormat:@"&redirect_url=xdx.%@://",MewDomainByWeChatRegister]]; + } + + NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:redirectUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; + newRequest.allHTTPHeaderFields = request.allHTTPHeaderFields; + newRequest.URL = [NSURL URLWithString:redirectUrl]; + [webView loadRequest:newRequest]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + // Judge is whether to jump to other app. + if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"]) { + if ([scheme isEqualToString:@"weixin"]) { + if (endPayRedirectURL) { + [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:endPayRedirectURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]]; + } + } + BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:request.URL]; + if (canOpen) { + [[UIApplication sharedApplication] openURL:request.URL options:@{} completionHandler:^(BOOL success) { + + }]; + } + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + decisionHandler(WKNavigationActionPolicyAllow); +} - (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { [self.webview evaluateJavaScript:@"document.location.href" completionHandler:^(id _Nullable response, NSError * _Nullable error) { @@ -115,14 +212,26 @@ NSString * const kCancelAccount = @"cancelAccount"; #else if (currentUrl != nil) { #endif - if ([message.name isEqualToString:kJSGetUid]) { + if ([message.name isEqualToString:kJSOpenSharePage]) { + if (message.body && message.body != [NSNull null]) { + NSDictionary *body; + //不知道是哪个蓝精灵弄的,变成了个dic,所以我们要判断类型 + if ([message.body isKindOfClass:[NSDictionary class]]) { + body = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + body = [message.body mewToJSONObject]; + } + self.mewShareData = body[@"data"]; + [self mew_PopUpShareView]; + } + } else if ([message.name isEqualToString:kJSGetUid]) { NSString *uid = [[MewAccountInfoStorage instance] mew_getUid]; NSString *js = [NSString stringWithFormat:@"getMessage(\"uid\",%@)", uid]; [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { NSLog(@"%@",error); }]; } else if ([message.name isEqualToString:kJSGetTicket]) { - NSString *ticket = [[MewAccountInfoStorage instance] mew_getTicket]; + NSString *ticket = [[MewAccountInfoStorage instance]mew_getTicket]; NSString *js = [NSString stringWithFormat:@"getMessage(\"ticket\",\"%@\")",ticket]; [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { NSLog(@"%@",error); @@ -139,40 +248,207 @@ NSString * const kCancelAccount = @"cancelAccount"; [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable ohter, NSError * _Nullable error) { NSLog(@"%@", error); }]; + } else if ([message.name isEqualToString:kJSOpenPurse]) { + + } else if ([message.name isEqualToString:kJSOpenChargePage]) { + [TTPopup dismiss]; + UIViewController *controller = [MewStackManager shareManager].mew_getCurrentVC; + if (controller.presentingViewController) { + [controller dismissViewControllerAnimated:NO completion:nil]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ +// XPMineNewRechargeViewController * rechargeVC = [[XPMineNewRechargeViewController alloc] init]; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:rechargeVC animated:YES]; + }); + }else { +// XPMineNewRechargeViewController * rechargeVC = [[XPMineNewRechargeViewController alloc] init]; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:rechargeVC animated:YES]; + } + } else if ([message.name isEqualToString:kOpenPersonPage]) { + NSString *uid = [NSString stringWithFormat:@"%@",message.body]; + if (uid.integerValue > 0) { + [TTPopup dismiss]; +// XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init]; +// userInfoVC.uid = uid.integerValue; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + } + } else if ([message.name isEqualToString:kJSOpenFaceLiveness]) { + NSString *verifyToken = message.body; +#if TARGET_OS_IPHONE +// [RPSDK startWithVerifyToken:verifyToken viewController:self.navigationController completion:^(RPResult * _Nonnull auditState) { +// NSString *jsStrUrl; +// switch (auditState.state) { +// case RPStatePass: +// jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 2]; +// break; +// case RPStateFail: +// jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", 1]; +// break; +// case RPStateNotVerify: +// jsStrUrl = [NSString stringWithFormat:@"renderByStatus(\"%d\")", -1]; +// break; +// } +// [self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) { +// NSLog(@"%@",error); +// }]; +// }]; +#endif + } else if([message.name isEqualToString:kJSInitNav]) { + [self mew_setNav:message.body]; + } else if([message.name isEqualToString:kJSGetRoomUid]) { + NSString *js = [NSString stringWithFormat:@"getMessage(\"roomUid\",\"%@\")",self.mewRoomUid]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; } else if([message.name isEqualToString:kInitShowNav]) { if (((NSNumber *)message.body).intValue == 0) { - self.isHiddenNav = YES; + if (self.MewWebViewSetNavAction) { + self.MewWebViewSetNavAction(YES); + return; + } + self.mewIsShowNavView = YES; if (self.navigationController) { [self.navigationController setNavigationBarHidden:YES]; } } } else if([message.name isEqualToString:kCloseWebView]) { + if (self.MewCloseAction) { + self.MewCloseAction(YES); + return; + } if (self.navigationController) { [self.navigationController popViewControllerAnimated:YES]; } - } else if ([message.name isEqualToString:kCancelAccount]) { - [MewHUDTool mew_showLoadingWithMessage:@"正在注销中,请稍等"]; - MewAccountModel *model = [[MewAccountInfoStorage instance] accountModel]; - [Api Mew_LogoutCurrentAccount:^(MewBaseModel * _Nonnull data, NSInteger code, NSString * _Nonnull msg) { - [MewHUDTool showSuccessWithMessage:@"注销成功"]; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self.navigationController popToRootViewControllerAnimated:NO]; - [[MewAccountInfoStorage instance] mew_saveAccountInfo:nil]; - [[MewAccountInfoStorage instance] mew_saveTicket:nil]; - ///关闭心跳 - [[MewClientConfig shareConfig] mew_resetHeartBratTimer]; - MewLoginViewController *loginVC = [[MewLoginViewController alloc] init]; - MewBaseNavigationController * nav = [[MewBaseNavigationController alloc] initWithRootViewController:loginVC]; - nav.modalPresentationStyle = UIModalPresentationFullScreen; - [self.navigationController presentViewController:nav animated:YES completion:nil]; + } else if ([message.name isEqualToString:kJumpAppointPage]) { + // h5与原生交互新协议 + NSDictionary *bodyDict; + if ([message.body isKindOfClass:[NSDictionary class]]) { + bodyDict = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + NSString *str = (NSString *)message.body; + bodyDict = [str mewToJSONObject]; + } + NSInteger skyType = [bodyDict[@"routerType"] integerValue]; + [self mew_dealWithRouterType:skyType msg:message]; + } else if ([message.name isEqualToString:kJSOpenRoom]) { + NSString *uid = [NSString stringWithFormat:@"%@",message.body]; + if (uid.length > 0) { + [[MewStackManager shareManager].mew_getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[MewRoomViewController class]]) { + [[MewStackManager shareManager].mew_getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + MewRoomViewController * rooomVC = obj; + [TTPopup dismiss]; + [rooomVC mew_clickExitCurrentRoom]; + *stop = YES; + } + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [MewRoomViewController openRoom:uid viewController:[MewStackManager shareManager].mew_getCurrentVC]; }); - - } access_token:model.access_token]; - + } + } else if ([message.name isEqualToString:kProhibitRightSlip]) { + self.navigationController.interactivePopGestureRecognizer.enabled = NO; + } else if([message.name isEqualToString:kJSOpenRoomForGiftId]) { + NSLog(@"%@", message.body); + NSDictionary *bodyDict; + if ([message.body isKindOfClass:[NSDictionary class]]) { + bodyDict = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + NSString *str = (NSString *)message.body; + bodyDict = [str mewToJSONObject]; + } + //房间页 传参:uid + NSString *uid = [NSString stringWithFormat:@"%@", bodyDict[@"uid"]]; + NSString *giftId = [NSString stringWithFormat:@"%@", bodyDict[@"giftId"]]; + if (uid.length) { + [[MewStackManager shareManager].mew_getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[MewRoomViewController class]]) { + [[MewStackManager shareManager].mew_getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + MewRoomViewController * rooomVC = obj; + [rooomVC mew_clickExitCurrentRoom]; + *stop = YES; + } + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ +// [MewRoomViewController openRoom:uid giftId:giftId viewController:[MewStackManager shareManager].mew_getCurrentVC]; + }); + } + } else if([message.name isEqualToString:kSaveBase64Image]) { + NSString * base64 = message.body; + NSArray * array = [base64 componentsSeparatedByString:@","]; + if(array.count > 1) { + NSData * data = [MEWBase64 decode:array[1]]; + UIImage * image = [UIImage imageWithData:data]; + UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (__bridge void *)self); + } + } + + + } + }]; +} + +#pragma mark - private metho +- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ + if (error == nil) { + NSString * jsStrUrl = [NSString stringWithFormat:@"saveBase64ImageCallback(\"%@\")", @"1"]; + [self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else { + NSString * jsStrUrl = [NSString stringWithFormat:@"saveBase64ImageCallback(\"%@\")", @"0"]; + [self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } +} + +- (void)mew_dealWithRouterType:(NSInteger)type msg:(WKScriptMessage *)msg{ + NSDictionary *bodyDict; + if ([msg.body isKindOfClass:[NSDictionary class]]) { + bodyDict = msg.body; + } else if ([msg.body isKindOfClass:[NSString class]]) { + NSString *str = (NSString *)msg.body; + bodyDict = [str mewToJSONObject]; + } + switch (type) { + case 1: + { + //房间页 传参:uid + NSString *uid = [NSString stringWithFormat:@"%@", bodyDict[@"routerVal"]]; + if (uid.length) { + [MewRoomViewController openRoom:uid viewController:[MewStackManager shareManager].mew_getCurrentVC]; } } - }]; + break; + case 7: + { + //座驾 +// XPMineDressUpViewController *vc = [[XPMineDressUpViewController alloc] init]; +// vc.currentIndex = 1; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + break; + case 8: + { + //头饰 +// XPMineDressUpViewController *vc = [[XPMineDressUpViewController alloc] init]; +// vc.currentIndex = 0; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + break; + case 75: + {//跳转对应的话题 +// NSString *topicId = bodyDict[@"routerVal"]; +// XPMonentTopicContainerViewController * topicVC = [[XPMonentTopicContainerViewController alloc] init]; +// topicVC.worldId = topicId; +// [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:topicVC animated:YES]; + } + break; + default: + break; } +} + - (void)setUrl:(NSString *)urlString{ @@ -183,17 +459,19 @@ NSString * const kCancelAccount = @"cancelAccount"; if (![_url hasPrefix:@"http"] && ![_url hasPrefix:@"https"]){ _url = [NSString stringWithFormat:@"%@/%@", API_HOST_H5_URL, _url]; } - - _url = [NSString stringWithFormat:@"%@?platform=%@", _url, [MewUtility appName]]; + if (![_url containsString:@"?"]) { + _url = [NSString stringWithFormat:@"%@?platform=%@", _url, [MewUtility appName]]; + } else { + _url = [NSString stringWithFormat:@"%@&platform=%@", _url, [MewUtility appName]]; + } // 去掉 urlString 中的空格。 NSString *noSpaceTextUrl = [_url stringByReplacingOccurrencesOfString:@" " withString:@""]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:noSpaceTextUrl]]; [self.webview loadRequest:request]; } -- (void)backButtonClick { +- (void)mew_clickReturnAction { BOOL canGoBack = YES; if (self.webview.backForwardList.backList.count <= 1) { canGoBack = NO; @@ -203,9 +481,120 @@ NSString * const kCancelAccount = @"cancelAccount"; [self.webview goBack]; } else { [self.navigationController popViewControllerAnimated:YES]; - [self.mew_userContentController removeAllUserScripts]; + [self.mewUserContentVC removeAllUserScripts]; } } +#pragma mark - 分享 +- (void)mew_setNav:(NSDictionary *)dic{ + if(!dic || ![dic isKindOfClass:[NSDictionary class]])return; + self.mewShareData = dic[@"data"]; + if ([dic[@"type"] intValue]== MewWebViewNavPushType_Web) { + [self mew_setNavViewWithTitles:@[dic[@"data"][@"title"]] titleColor:[MewThemeColor mewAlertTitleColor] isLeft:NO target:self action:@selector(mew_ShowWebView) tags:nil]; + }else if ([dic[@"type"] intValue]== MewWebViewNavPushType_Share || [dic[@"type"] intValue]== MewWebViewNavPushType_Photo){ + [self mew_setNavViewWithImageNames:@[@"family_person_share"] isLeft:NO + target:self action:@selector(mew_PopUpShareView) tags:nil]; + } +} + +- (void)mew_ShowWebView { + if (self.mewShareData[@"link"]) { + MewWebViewController * webVC = [[MewWebViewController alloc] init]; + webVC.url = self.mewShareData[@"link"]; + [self.navigationController pushViewController:webVC animated:YES]; + } +} + +- (void)mew_PopUpShareView { + if (self.mewShareData.allKeys.count <= 0) { + return; + } + NSDictionary * dic = self.mewShareData; + MewPushShareModel * shareInfo = [[MewPushShareModel alloc] init]; + shareInfo.shareTitle = self.mewShareData[@"title"]; + shareInfo.shareContent = dic[@"desc"]; + shareInfo.shareImageUrl = dic[@"imgUrl"]; + shareInfo.type = MewSharePushModelType_H5; + NSString *urlStr = ((NSString *)dic[@"url"]).length > 0 ? dic[@"url"] : dic[@"showUrl"]; + if (urlStr.length) { + if ([urlStr containsString:@"?"]) { + urlStr = [NSString stringWithFormat:@"%@&shareUid=%@",urlStr,[MewAccountInfoStorage instance].mew_getUid]; + } else { + urlStr = [NSString stringWithFormat:@"%@?shareUid=%@",urlStr,[MewAccountInfoStorage instance].mew_getUid]; + } + } + shareInfo.shareUrl = urlStr; + MewShareItemModel *cycle = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_WeChat_Moments]; + MewShareItemModel *wechat = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_WeChat_Friend]; + MewShareItemModel *qq = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_QQ_Friend]; + MewShareItemModel *qqzone = [MewShareItemModel Mew_SetShareModelType:MewMomentShareItemType_QQ_Zone];; + NSArray * items = @[wechat,cycle, qq, qqzone]; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + MewShareView *shareView = [[MewShareView alloc] initWithSize:itemSize items:items shareModel:shareInfo]; + shareView.delegate = self; + [TTPopup popupView:shareView style:TTPopupStyleActionSheet]; +} + +#pragma mark - XCShareViewDelegate + + +- (void)didSelectShareView:(MewShareView *)shareView success:(MewPushShareModel *)model { + [TTPopup dismiss]; + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + NSString *uid = [MewAccountInfoStorage instance].mew_getUid; + NSString *ticket = [MewAccountInfoStorage instance].mew_getTicket; + [params mewSafeSetObject:uid forKey:@"uid"]; + [params mewSafeSetObject:@(model.shareItemType) forKey:@"shareType"]; + [params mewSafeSetObject:ticket forKey:@"ticket"]; + [params mewSafeSetObject:@(model.type) forKey:@"sharePageId"]; + if (model.shareUrl.length > 0) { + [params mewSafeSetObject:model.shareUrl forKey:@"shareUrl"]; + } + if (model.roomUid > 0) { + [params mewSafeSetObject:@(model.roomUid) forKey:@"targetUid"]; + } + [MewHttpRequestHelper POST:@"usershare/save" params:params success:^(MewBaseModel * _Nonnull data) { + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + + }]; +} +- (void)didSelectShareView:(MewShareView *)shareView failure:(NSString *)failure { + [TTPopup dismiss]; + [self mew_showErrorToast:failure]; +} + + + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if ([keyPath isEqualToString:@"estimatedProgress"]) { + self.mewProgressLineView.progress = self.webview.estimatedProgress; + if (self.mewProgressLineView.progress == 1) { + __weak typeof (self)weakSelf = self; + [UIView animateWithDuration:0.25f delay:0.3f options:UIViewAnimationOptionCurveEaseOut animations:^{ + self.mewProgressLineView.transform = CGAffineTransformMakeScale(1.0f, 1.0f); + } completion:^(BOOL finished) { + self.mewProgressLineView.hidden = YES; + }]; + } + } else if ([keyPath isEqualToString:@"title"]) { + if (object == self.webview) { + self.navigationItem.title = self.webview.title; + if (self.MewWebViewLoadCompleted) {//半屏webview如果在加载完成回调后标题还会改变,在此处重新设置一遍 + self.MewWebViewLoadCompleted(YES, nil); + } + }else{ + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + +- (void)dealloc { + [self.webview removeObserver:self forKeyPath:@"estimatedProgress"]; + [self.webview removeObserver:self forKeyPath:@"title"]; +} - (WKWebView *)webview { if (_webview == nil) { @@ -222,25 +611,29 @@ NSString * const kCancelAccount = @"cancelAccount"; NSString *realCookie = [NSString stringWithFormat:@"%@=%@",@"uid",uid]; WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource: [NSString stringWithFormat:@"document.cookie = '%@';", realCookie] injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]; - [self.mew_userContentController addUserScript:cookieScript]; + [self.mewUserContentVC addUserScript:cookieScript]; ///禁止缩放 NSString *scaleJs = @"$('meta[name=description]').remove(); $('head').append( '' );"; WKUserScript *scaleScript = [[WKUserScript alloc] initWithSource:scaleJs injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO]; - [self.mew_userContentController addUserScript:scaleScript]; + [self.mewUserContentVC addUserScript:scaleScript]; //根据生成的WKUserScript对象,初始化WKWebViewConfiguration configuration.preferences.javaScriptEnabled = YES; configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES; configuration.preferences.minimumFontSize = 10; configuration.selectionGranularity = WKSelectionGranularityCharacter; - configuration.userContentController = self.mew_userContentController; + configuration.userContentController = self.mewUserContentVC; CGSize size = [UIScreen mainScreen].bounds.size; _webview = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, size.width,size.height) configuration:configuration]; _webview.navigationDelegate = self; - - UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(backButtonClick)]; + //添加KVO,WKWebView有一个属性estimatedProgress,就是当前网页加载的进度,所以监听这个属性 + [_webview addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil]; + //添加KVO,监听title属性 + [_webview addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL]; + + UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickReturnAction)]; [_webview addGestureRecognizer:swipeGesture]; [_webview.scrollView setShowsVerticalScrollIndicator:NO]; @@ -265,27 +658,61 @@ NSString * const kCancelAccount = @"cancelAccount"; return _webview; } -- (WKUserContentController *)mew_userContentController{ - if (!_mew_userContentController) { +- (UIProgressView *)mewProgressLineView{ + if (!_mewProgressLineView) { + _mewProgressLineView = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 1)]; + _mewProgressLineView.progressTintColor = [MewThemeColor mewAppMainColor]; + _mewProgressLineView.trackTintColor = [UIColor clearColor]; + _mewProgressLineView.transform = CGAffineTransformMakeScale(1.0f, 1.0f); + } + return _mewProgressLineView; +} + +- (WKUserContentController *)mewUserContentVC{ + if (!_mewUserContentVC) { //自定义的WKScriptMessageHandler 是为了解决内存不释放的问题 MewWeakWebViewScriptMessageDelegate *weakScriptMessageDelegate = [[MewWeakWebViewScriptMessageDelegate alloc] initWithDelegate:self]; - _mew_userContentController = [[WKUserContentController alloc] init]; + _mewUserContentVC = [[WKUserContentController alloc] init]; + // 分享面板 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenSharePage]; + // 钱包页面 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenPurse]; + // 充值页面 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenChargePage]; // 获取uid - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetUid]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetUid]; // 获取设备id - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceId]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceId]; // 获取Ticket - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetTicket]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetTicket]; // 获取设备info - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceInfo]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceInfo]; + // 实人认证: 打开原生人脸认证 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenFaceLiveness]; + // 分享按钮 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSInitNav]; + // 获取房间uid + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetRoomUid]; + // 进入个人主页 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kOpenPersonPage]; // 隐藏导航栏 - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kInitShowNav]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kInitShowNav]; // 隐藏导航栏 - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kCloseWebView]; - // 注销账号 - [_mew_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kCancelAccount]; + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kCloseWebView]; + //装扮及其他活动页面 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJumpAppointPage]; + //进入房间 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenRoom]; + //进房并弹出礼物面板 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenRoomForGiftId]; + ///禁用侧滑手势 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kProhibitRightSlip]; +///保存图片到本地 + [_mewUserContentVC addScriptMessageHandler:weakScriptMessageDelegate name:kSaveBase64Image]; + + } - return _mew_userContentController; + return _mewUserContentVC; } @end