diff --git a/xplan-ios.xcodeproj/project.pbxproj b/xplan-ios.xcodeproj/project.pbxproj index feb5b3da..0c65f49d 100644 --- a/xplan-ios.xcodeproj/project.pbxproj +++ b/xplan-ios.xcodeproj/project.pbxproj @@ -178,6 +178,10 @@ 231EBB4B2B34112C006F782E /* MewMainHomePartyHeadHotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */; }; 231EBB4E2B341DE0006F782E /* MewMainHomeHotRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */; }; 231EBB512B3433B7006F782E /* MewMainHomeMenuDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */; }; + 231EBB542B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */; }; + 231EBB572B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */; }; + 231EBB5A2B355D9D006F782E /* MewMainHomeMakeFriendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */; }; + 231EBB5D2B358C4C006F782E /* MewMainHomeGameTabModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */; }; 232153DD2AF381E400B2FBC0 /* MovEncodeToMpegTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 232153DC2AF381E400B2FBC0 /* MovEncodeToMpegTool.m */; }; 232153E02AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 232153DF2AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.m */; }; 236FF06C2AF8892400BEB6EC /* XPClientH5UresModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 236FF06B2AF8892400BEB6EC /* XPClientH5UresModel.m */; }; @@ -198,6 +202,15 @@ 237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */; }; 237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A192A973C54005DB380 /* Api+GameOrder.m */; }; 237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */; }; + 23844FA72B3926A2002AD661 /* MewMainHomeMoreGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */; }; + 23844FAD2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */; }; + 23844FB02B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */; }; + 23844FB32B392A7B002AD661 /* MewMainHomeMoreGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */; }; + 23844FB62B3932D9002AD661 /* MewMainHomeMakeFriendModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */; }; + 23844FB82B397C4A002AD661 /* kMewMainHomePlayVoice.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */; }; + 23844FBB2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */; }; + 23844FBE2B398F18002AD661 /* MewMainHomeMoreGameModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */; }; + 23844FC12B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */; }; 23CEFB692AFB32BE00576D89 /* XPRoomAnimationTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 23CEFB682AFB32BE00576D89 /* XPRoomAnimationTool.m */; }; 23E1708C2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E1708B2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.m */; }; 23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; }; @@ -1723,6 +1736,14 @@ 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeHotRoomModel.m; sourceTree = ""; }; 231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMenuDataModel.h; sourceTree = ""; }; 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMenuDataModel.m; sourceTree = ""; }; + 231EBB522B352ADE006F782E /* MewMainHomeMakeFriendHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendHeadView.h; sourceTree = ""; }; + 231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendHeadView.m; sourceTree = ""; }; + 231EBB552B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendHeadCell.h; sourceTree = ""; }; + 231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendHeadCell.m; sourceTree = ""; }; + 231EBB582B355D9D006F782E /* MewMainHomeMakeFriendCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendCell.h; sourceTree = ""; }; + 231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendCell.m; sourceTree = ""; }; + 231EBB5B2B358C4C006F782E /* MewMainHomeGameTabModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeGameTabModel.h; sourceTree = ""; }; + 231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeGameTabModel.m; sourceTree = ""; }; 232153DB2AF381E400B2FBC0 /* MovEncodeToMpegTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MovEncodeToMpegTool.h; sourceTree = ""; }; 232153DC2AF381E400B2FBC0 /* MovEncodeToMpegTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MovEncodeToMpegTool.m; sourceTree = ""; }; 232153DE2AF394BF00B2FBC0 /* XPPrivilegeCardVideoItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPPrivilegeCardVideoItemModel.h; sourceTree = ""; }; @@ -1764,6 +1785,23 @@ 237B8A192A973C54005DB380 /* Api+GameOrder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+GameOrder.m"; sourceTree = ""; }; 237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameInfoView.h; sourceTree = ""; }; 237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameInfoView.m; sourceTree = ""; }; + 23844FA52B3926A2002AD661 /* MewMainHomeMoreGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameVC.h; sourceTree = ""; }; + 23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameVC.m; sourceTree = ""; }; + 23844FAB2B39274F002AD661 /* MewMainHomeMoreGameHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameHeadView.h; sourceTree = ""; }; + 23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameHeadView.m; sourceTree = ""; }; + 23844FAE2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameHeadCell.h; sourceTree = ""; }; + 23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameHeadCell.m; sourceTree = ""; }; + 23844FB12B392A7B002AD661 /* MewMainHomeMoreGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameCell.h; sourceTree = ""; }; + 23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameCell.m; sourceTree = ""; }; + 23844FB42B3932D9002AD661 /* MewMainHomeMakeFriendModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendModel.h; sourceTree = ""; }; + 23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendModel.m; sourceTree = ""; }; + 23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = kMewMainHomePlayVoice.svga; sourceTree = ""; }; + 23844FB92B39892B002AD661 /* MewMainHomeLittleGameInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeLittleGameInfoModel.h; sourceTree = ""; }; + 23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeLittleGameInfoModel.m; sourceTree = ""; }; + 23844FBC2B398F18002AD661 /* MewMainHomeMoreGameModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMoreGameModel.h; sourceTree = ""; }; + 23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMoreGameModel.m; sourceTree = ""; }; + 23844FBF2B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewMainHomeMakeFriendEmptyCell.h; sourceTree = ""; }; + 23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewMainHomeMakeFriendEmptyCell.m; sourceTree = ""; }; 23CEFB672AFB32BE00576D89 /* XPRoomAnimationTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomAnimationTool.h; sourceTree = ""; }; 23CEFB682AFB32BE00576D89 /* XPRoomAnimationTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomAnimationTool.m; sourceTree = ""; }; 23E1708A2AED2E080039DE62 /* YYTextAsyncLayer+XPTextAsyncLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "YYTextAsyncLayer+XPTextAsyncLayer.h"; path = "xplan-ios/Appdelegate/YYTextAsyncLayer+XPTextAsyncLayer.h"; sourceTree = SOURCE_ROOT; }; @@ -4809,6 +4847,14 @@ 231EBB4D2B341DE0006F782E /* MewMainHomeHotRoomModel.m */, 231EBB4F2B3433B7006F782E /* MewMainHomeMenuDataModel.h */, 231EBB502B3433B7006F782E /* MewMainHomeMenuDataModel.m */, + 231EBB5B2B358C4C006F782E /* MewMainHomeGameTabModel.h */, + 231EBB5C2B358C4C006F782E /* MewMainHomeGameTabModel.m */, + 23844FB42B3932D9002AD661 /* MewMainHomeMakeFriendModel.h */, + 23844FB52B3932D9002AD661 /* MewMainHomeMakeFriendModel.m */, + 23844FB92B39892B002AD661 /* MewMainHomeLittleGameInfoModel.h */, + 23844FBA2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m */, + 23844FBC2B398F18002AD661 /* MewMainHomeMoreGameModel.h */, + 23844FBD2B398F18002AD661 /* MewMainHomeMoreGameModel.m */, ); path = MewHomeModel; sourceTree = ""; @@ -4833,6 +4879,8 @@ 231EBB252B32E291006F782E /* MewMainHomePartyVC.m */, 231EBB272B32E380006F782E /* MewMainHomeMakeFriendVC.h */, 231EBB282B32E380006F782E /* MewMainHomeMakeFriendVC.m */, + 23844FA52B3926A2002AD661 /* MewMainHomeMoreGameVC.h */, + 23844FA62B3926A2002AD661 /* MewMainHomeMoreGameVC.m */, ); path = MewHomeView; sourceTree = ""; @@ -4848,6 +4896,10 @@ 231EBB2E2B32F0C7006F782E /* MewMainHomePartyHeadItemView.m */, 231EBB302B32F68E006F782E /* MewMainHomePartyHeadHotView.h */, 231EBB312B32F68E006F782E /* MewMainHomePartyHeadHotView.m */, + 231EBB522B352ADE006F782E /* MewMainHomeMakeFriendHeadView.h */, + 231EBB532B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m */, + 23844FAB2B39274F002AD661 /* MewMainHomeMoreGameHeadView.h */, + 23844FAC2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m */, ); path = MewHomeSubViews; sourceTree = ""; @@ -4859,6 +4911,16 @@ 231EBB372B33D825006F782E /* MewMainHomePartyCell.m */, 231EBB492B34112C006F782E /* MewMainHomePartyHeadHotCell.h */, 231EBB4A2B34112C006F782E /* MewMainHomePartyHeadHotCell.m */, + 231EBB552B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.h */, + 231EBB562B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m */, + 231EBB582B355D9D006F782E /* MewMainHomeMakeFriendCell.h */, + 231EBB592B355D9D006F782E /* MewMainHomeMakeFriendCell.m */, + 23844FBF2B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.h */, + 23844FC02B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m */, + 23844FAE2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.h */, + 23844FAF2B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m */, + 23844FB12B392A7B002AD661 /* MewMainHomeMoreGameCell.h */, + 23844FB22B392A7B002AD661 /* MewMainHomeMoreGameCell.m */, ); path = MewHomeCell; sourceTree = ""; @@ -8241,6 +8303,7 @@ E8A1E45C276220B100B294CA /* Sources */ = { isa = PBXGroup; children = ( + 23844FB72B397C4A002AD661 /* kMewMainHomePlayVoice.svga */, E8B2B5C029C9C95F00C7AD19 /* room_wish_gift_sendCelebrate.svga */, 1497CCE229C1E1FB0015D135 /* sailing_prize_cowry.svga */, 1497CCE329C1E1FB0015D135 /* sailing_prize.svga */, @@ -10108,6 +10171,7 @@ E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */, 1497CCE529C1E1FB0015D135 /* sailing_prize.svga in Resources */, E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */, + 23844FB82B397C4A002AD661 /* kMewMainHomePlayVoice.svga in Resources */, E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */, E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */, E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */, @@ -10500,6 +10564,7 @@ E8C1670928067DAA00ECB15C /* XPMineGuildSuperAdminSetViewController.m in Sources */, E8E859DA28264C2300EE4857 /* SJXCSMIPHelper.m in Sources */, E890BC04273CF0500007C46B /* XPGiftCountModel.m in Sources */, + 23844FB62B3932D9002AD661 /* MewMainHomeMakeFriendModel.m in Sources */, E855516A280599A7005F293F /* XPGuildEmptyCollectionViewCell.m in Sources */, E899C68C275093B800E189E5 /* XPUserCardMicroItemModel.m in Sources */, 9B6E8573281AB9B20041A321 /* XPRoomInsideRecommendCell.m in Sources */, @@ -10511,9 +10576,11 @@ E80EC80B28ACD84000D133C5 /* QInputBarViewConfiguration.m in Sources */, 231EBB2C2B32EFE3006F782E /* MewMainHomePartyHeadView.m in Sources */, E880B39E278BD49E00A83B0D /* XPAcrossRoomPKViewController.m in Sources */, + 23844FC12B3A6DAA002AD661 /* MewMainHomeMakeFriendEmptyCell.m in Sources */, E8AC723D26F4B6AA007D6E91 /* XPLoginBindPhoneResultViewController.m in Sources */, E800806527FD37A20055A8AB /* XPGuildHeaderView.m in Sources */, 9B2A12D52783EEC700CED41B /* XPNobleCenterTableHeadView.m in Sources */, + 23844FA72B3926A2002AD661 /* MewMainHomeMoreGameVC.m in Sources */, E8AB632728AE13210023B0D2 /* XPMonentsTopicListPresenter.m in Sources */, 9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */, E8D55C9D28113218006935A5 /* MessageMenuModel.m in Sources */, @@ -10546,6 +10613,7 @@ E821513429C2C6DE0030D7D4 /* XPRoomMessageFilter.m in Sources */, E8252FEE27687DF1002B3164 /* ActivityInfoModel.m in Sources */, E84BF7D1277BFCDD00EF8877 /* RoomTagModel.m in Sources */, + 231EBB5A2B355D9D006F782E /* MewMainHomeMakeFriendCell.m in Sources */, E8AC723526F49939007D6E91 /* XPMineNotificaPresenter.m in Sources */, E8A86E0727BA38DB001C21F9 /* NSData+RW.m in Sources */, E80DE40A277568D300BE5BCB /* ThemeColor+FirstRecharge.m in Sources */, @@ -10563,6 +10631,7 @@ 189DD53426DE255300AB55B1 /* TabbarViewController.m in Sources */, E81EF6E4279AB92E00FF3EDE /* LittleGameInfoModel.m in Sources */, 9BA3B40B293DCDFD0071DF1C /* XPVersionUpdateModel.m in Sources */, + 23844FB02B3927B3002AD661 /* MewMainHomeMoreGameHeadCell.m in Sources */, E87A26F927587C62002DDC7A /* XPHomeContainerPresenter.m in Sources */, 9B88E21228C6365B00D26FBA /* XPHomeSearchRecordCell.m in Sources */, 18EE401A2754BA9F00A452BF /* NIMMessageMaker.m in Sources */, @@ -10678,6 +10747,7 @@ 9BCB99A028F571B500466D64 /* XPMineCollectPartyRoomViewController.m in Sources */, E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */, E8AB631028ADD92D0023B0D2 /* XPMonentsTopicRecommondViewController.m in Sources */, + 23844FBB2B39892B002AD661 /* MewMainHomeLittleGameInfoModel.m in Sources */, 231EBB172B3298B8006F782E /* MewMainHomeViewController.m in Sources */, E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */, E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */, @@ -10734,6 +10804,7 @@ 9B1B72AF280031F8003FACE9 /* XPAnchorPKSelectRoomView.m in Sources */, E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */, 189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */, + 23844FBE2B398F18002AD661 /* MewMainHomeMoreGameModel.m in Sources */, E83A2A55282F5C50002AD58F /* XPEnterpriseRechargeFootView.m in Sources */, E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */, 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */, @@ -10871,6 +10942,7 @@ E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */, E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */, E8DD25DA295583920043C7D5 /* XPAnchorRandomPKRuleView.m in Sources */, + 23844FB32B392A7B002AD661 /* MewMainHomeMoreGameCell.m in Sources */, E83A2A52282F5BBA002AD58F /* XPEnterpriseChargeListCollectionViewCell.m in Sources */, E8834E3B280012B60029CCC1 /* XPMineGuildRemoveMemberViewController.m in Sources */, 9B734F79288A9C4B00CBDAA9 /* XPMineGameTableViewCell.m in Sources */, @@ -11044,6 +11116,7 @@ 9B208A362779B50100F9E54A /* GiftNobleInfoModel.m in Sources */, 230497282A712623006D1F0C /* XPRoomSettingBackImageItemModel.m in Sources */, E8C6FFDA2754BE81004DC9F0 /* ThemeColor+Home.m in Sources */, + 231EBB5D2B358C4C006F782E /* MewMainHomeGameTabModel.m in Sources */, E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */, E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */, E8C21A00294854DA00344FC5 /* AnchorLevelModel.m in Sources */, @@ -11118,6 +11191,7 @@ E818E348286ECA4B005EDF68 /* XPMonentsPublishViewController.m in Sources */, 9B88E20C28C5EB8300D26FBA /* MessageContentRedPacketView.m in Sources */, E800806827FD3B520055A8AB /* XPClanMenuView.m in Sources */, + 23844FAD2B39274F002AD661 /* MewMainHomeMoreGameHeadView.m in Sources */, E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */, E8E859E928264F4500EE4857 /* XPRoomTransferMusicViewController.m in Sources */, 18486213271EA9DA005FC5DC /* RtcManager.m in Sources */, @@ -11171,12 +11245,14 @@ E880B3B5278C1FE400A83B0D /* XPAcrossRoomPKPresenter.m in Sources */, 186A534626FC6ED900D67B2C /* TTPopup.m in Sources */, E81EF6E0279AB7D900FF3EDE /* XPCreateLittleGameCollectionViewCell.m in Sources */, + 231EBB542B352ADE006F782E /* MewMainHomeMakeFriendHeadView.m in Sources */, E8C167302806C01500ECB15C /* GuildSuperAdminInfoModel.m in Sources */, 9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */, E81C278C26EAFAF60031E639 /* Base64.m in Sources */, E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */, 189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */, 187EEEDC26E89B32002833B2 /* BaseModel.m in Sources */, + 231EBB572B3532E4006F782E /* MewMainHomeMakeFriendHeadCell.m in Sources */, 145C965229C30308009883AB /* XPRoomAnnouncementView.m in Sources */, E878B85E283640A500E22DCF /* MonentsUnReadModel.m in Sources */, E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */, diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png index 65ecda35..7853f9dd 100644 Binary files a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png index 2751035c..1a7e96f0 100644 Binary files a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_home_party_head_morn.imageset/mew_home_party_head_morn@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/Contents.json new file mode 100644 index 00000000..a49aa980 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_mainHome_more_game_back@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_mainHome_more_game_back@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@2x.png new file mode 100644 index 00000000..74b17fd7 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@3x.png new file mode 100644 index 00000000..e5d6f8c1 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_mainHome_more_game_back.imageset/mew_mainHome_more_game_back@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/Contents.json new file mode 100644 index 00000000..7a35c893 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_no_play@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_no_play@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@2x.png new file mode 100644 index 00000000..566b3da3 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@3x.png new file mode 100644 index 00000000..c9e98d55 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_no_play.imageset/mew_main_home_friend_cell_no_play@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/Contents.json new file mode 100644 index 00000000..57a105a3 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_play@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_play@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@2x.png new file mode 100644 index 00000000..be8d252b Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@3x.png new file mode 100644 index 00000000..df37e516 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play.imageset/mew_main_home_friend_cell_play@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/Contents.json new file mode 100644 index 00000000..b41dbe5a --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_play_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_play_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@2x.png new file mode 100644 index 00000000..fd0b1d07 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@3x.png new file mode 100644 index 00000000..b70e5679 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_bg.imageset/mew_main_home_friend_cell_play_bg@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/Contents.json new file mode 100644 index 00000000..e9e01660 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_play_icom_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_play_icom_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@2x.png new file mode 100644 index 00000000..e42b4fa4 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@3x.png new file mode 100644 index 00000000..bc5892a9 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_play_icom_bg.imageset/mew_main_home_friend_cell_play_icom_bg@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/Contents.json new file mode 100644 index 00000000..2ad6d992 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_player@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_player@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@2x.png new file mode 100644 index 00000000..8db4ea27 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@3x.png new file mode 100644 index 00000000..7ff4ee1f Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_player.imageset/mew_main_home_friend_cell_player@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/Contents.json new file mode 100644 index 00000000..dfc7cf72 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_room@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_room@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@2x.png new file mode 100644 index 00000000..3a2848f6 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@3x.png new file mode 100644 index 00000000..33e7623a Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room.imageset/mew_main_home_friend_cell_room@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/Contents.json new file mode 100644 index 00000000..4a50b0f1 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_cell_room_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_cell_room_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@2x.png new file mode 100644 index 00000000..46e69206 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@3x.png new file mode 100644 index 00000000..89d321ca Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_cell_room_bg.imageset/mew_main_home_friend_cell_room_bg@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/Contents.json new file mode 100644 index 00000000..95edd466 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_empty_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_empty_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@2x.png new file mode 100644 index 00000000..fdbe0a84 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@3x.png new file mode 100644 index 00000000..de5dceaa Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_empty_icon.imageset/mew_main_home_friend_empty_icon@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/Contents.json new file mode 100644 index 00000000..9d7fc8f8 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_head_change@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_head_change@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@2x.png new file mode 100644 index 00000000..512e9778 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@3x.png new file mode 100644 index 00000000..af3a2af3 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_change.imageset/mew_main_home_friend_head_change@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/Contents.json new file mode 100644 index 00000000..5528906c --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_head_matching@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_head_matching@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@2x.png new file mode 100644 index 00000000..bcf4e705 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@3x.png new file mode 100644 index 00000000..9756cd21 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_matching.imageset/mew_main_home_friend_head_matching@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/Contents.json new file mode 100644 index 00000000..1d51322f --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_friend_head_selecte@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_friend_head_selecte@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@2x.png new file mode 100644 index 00000000..878bab8d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@3x.png new file mode 100644 index 00000000..2857cd12 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_friend_head_selecte.imageset/mew_main_home_friend_head_selecte@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/Contents.json new file mode 100644 index 00000000..a90f7115 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_more_game_add@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_more_game_add@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@2x.png new file mode 100644 index 00000000..ad895ac6 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@3x.png new file mode 100644 index 00000000..da3b9d9e Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_add.imageset/mew_main_home_more_game_add@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/Contents.json new file mode 100644 index 00000000..3af070e5 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_more_game_friend@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_more_game_friend@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@2x.png new file mode 100644 index 00000000..0893638f Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@3x.png new file mode 100644 index 00000000..98aa0cbf Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_friend.imageset/mew_main_home_more_game_friend@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/Contents.json new file mode 100644 index 00000000..41f09dc0 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_more_game_hot@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_more_game_hot@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@2x.png new file mode 100644 index 00000000..c97196ab Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@3x.png new file mode 100644 index 00000000..2836421d Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_hot.imageset/mew_main_home_more_game_hot@3x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/Contents.json b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/Contents.json new file mode 100644 index 00000000..36aaa537 --- /dev/null +++ b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mew_main_home_more_game_mic@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mew_main_home_more_game_mic@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@2x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@2x.png new file mode 100644 index 00000000..c69d6639 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@2x.png differ diff --git a/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@3x.png b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@3x.png new file mode 100644 index 00000000..c45aa394 Binary files /dev/null and b/xplan-ios/Assets.xcassets/Mew/MewHome/mew_main_home_more_game_mic.imageset/mew_main_home_more_game_mic@3x.png differ diff --git a/xplan-ios/Base/Base.pch b/xplan-ios/Base/Base.pch index 9165331c..8873420f 100644 --- a/xplan-ios/Base/Base.pch +++ b/xplan-ios/Base/Base.pch @@ -45,4 +45,5 @@ if (@available(iOS 11.0, *)) {\ #import "NSString+Utils.h" #import "YYUtility.h" #import "XPHtmlUrl.h" +#import "XPEnum.h" #endif /* Base_pch */ diff --git a/xplan-ios/Base/MVP/Model/UserInfoModel.h b/xplan-ios/Base/MVP/Model/UserInfoModel.h index 521c435c..e1a4632a 100644 --- a/xplan-ios/Base/MVP/Model/UserInfoModel.h +++ b/xplan-ios/Base/MVP/Model/UserInfoModel.h @@ -91,7 +91,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy) NSString * inRoomUid; /// 是否在麦位,用在发现新朋友 @property (nonatomic, assign) BOOL inMic; - +/// 是否空闲,用在发现新朋友 +@property(nonatomic,assign) BOOL inOnline; #pragma mark - 相亲房的字段 ///是否为相亲模式VIP坑位 @property (nonatomic,assign) BOOL vipMic; diff --git a/xplan-ios/Base/Tool/File/UploadFile.h b/xplan-ios/Base/Tool/File/UploadFile.h index 335b0536..db3032fc 100644 --- a/xplan-ios/Base/Tool/File/UploadFile.h +++ b/xplan-ios/Base/Tool/File/UploadFile.h @@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN token:(NSString *)token success:(void (^)(NSString *key, NSDictionary *resp))success failure:(void (^)(NSNumber *resCode, NSString *message))failure; - ++ (void)mew_downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl mainFileName:(NSString *)mainFileName completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Base/Tool/File/UploadFile.m b/xplan-ios/Base/Tool/File/UploadFile.m index 1adf34d3..fb2bcbd2 100644 --- a/xplan-ios/Base/Tool/File/UploadFile.m +++ b/xplan-ios/Base/Tool/File/UploadFile.m @@ -7,7 +7,7 @@ #import "UploadFile.h" #import - +#import @implementation UploadFile /// 上传一个文件 @@ -33,5 +33,20 @@ } } option:nil]; } - ++ (void)mew_downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl mainFileName:(NSString *)mainFileName completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion{ + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]]; + NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) safeObjectAtIndex1:0] stringByAppendingPathComponent:mainFileName] stringByAppendingPathComponent:fileName]; + return [NSURL fileURLWithPath:filePath]; + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + if (!error) { + completion(YES, filePath.path); + } else { + completion(NO, nil); + } + }]; + [download resume]; +} @end diff --git a/xplan-ios/Base/Tool/NSString/NSString+Utils.h b/xplan-ios/Base/Tool/NSString/NSString+Utils.h index 8537bf1c..9db8c31f 100644 --- a/xplan-ios/Base/Tool/NSString/NSString+Utils.h +++ b/xplan-ios/Base/Tool/NSString/NSString+Utils.h @@ -28,6 +28,10 @@ NS_ASSUME_NONNULL_BEGIN +(NSString *)getCharmImageUrl:(NSString *)url; +(NSString *)getWealthImageUrl:(NSString *)url; ++(NSInteger) getMonth:(long )time; ++ (NSInteger) getDay:(long) time; ++ (NSString *)calculateConstellationWithMonth:(long)time; ++ (NSString *)calculateAge:(long)time; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Base/Tool/NSString/NSString+Utils.m b/xplan-ios/Base/Tool/NSString/NSString+Utils.m index ee7e5dd2..acba1ead 100644 --- a/xplan-ios/Base/Tool/NSString/NSString+Utils.m +++ b/xplan-ios/Base/Tool/NSString/NSString+Utils.m @@ -175,4 +175,76 @@ } return getUrl; } +#pragma mark - 计算星座 ++(NSInteger) getMonth:(long )time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitMonth fromDate:date]; + NSInteger month = components.month; + return month; +} + ++ (NSInteger) getDay:(long) time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitDay fromDate:date]; + NSInteger day = components.day; + return day; +} + ++ (NSString *)calculateConstellationWithMonth:(long)time +{ + NSString *astroString = @"魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; + NSString *astroFormat = @"102123444543"; + NSString *result; + + NSInteger month = [self getMonth:time]; + NSInteger day = [self getDay:time]; + + if (month<1 || month>12 || day<1 || day>31){ + return @"错误日期格式!"; + } + + if(month==2 && day>29) + { + return @"错误日期格式!!"; + }else if(month==4 || month==6 || month==9 || month==11) { + if (day>30) { + return @"错误日期格式!!!"; + } + } + + result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(month*2-(day < [[astroFormat substringWithRange:NSMakeRange((month-1), 1)] intValue] - (-19))*2,2)]]; + + return [NSString stringWithFormat:@"%@座",result]; +} + ++ (NSString *)calculateAge:(long)time { + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar *birthCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601]; + NSDateComponents *birthCompomemts = [birthCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + NSInteger year = birthCompomemts.year; + NSInteger month = birthCompomemts.month; + NSInteger day = birthCompomemts.day; + NSLog(@"出生于%ld年%ld月%ld日", year, month, day); + + NSDate *nowDate = [NSDate date]; + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601]; + NSDateComponents *compomemts = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:nowDate]; + NSInteger nowYear = compomemts.year; + NSInteger nowMonth = compomemts.month; + NSInteger nowDay = compomemts.day; + NSLog(@"今天是%ld年%ld月%ld日", nowYear, nowMonth, nowDay); + + // 计算年龄 + NSInteger userAge = nowYear - year - 1; + if ((nowMonth > month) || (nowMonth == month && nowDay >= day)) { + userAge++; + } + NSLog(@"用户年龄是%ld",userAge); + return [NSString stringWithFormat:@"%ld", userAge]; +} + @end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h index e39b6be7..c00cae47 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h +++ b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.h @@ -29,7 +29,25 @@ NS_ASSUME_NONNULL_BEGIN /// @param completion 完成 /// @param uid 用户的uid /// @param rid 进入的类型的id -+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid; ++ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid type:(NSString *)type; +/// 发现新朋友列表 +/// @param complection 完成 +/// @param gender 性别. 1:男性 2:女性 null:不限定 ++ (void)mew_RequestMainHomeNewFriendListcomplection:(HttpRequestHelperCompletion)complection gender:(NSString *)gender gameId:(NSString *)gameId; +///首页游戏点单分类 ++(void)mew_RequestMainHomeGameTabList:(HttpRequestHelperCompletion)complection; +///,大神带飞 ++(void)mew_RequsetMainHomeFriendMahogany:(HttpRequestHelperCompletion)complection; +/// 一键匹配 +/// @param completion 完成 ++ (void)mew_RequsetMainHomeFriendChatPick:(HttpRequestHelperCompletion)completion; +/// 获取小游戏列表 +/// @param completion 完成 ++ (void)mew_RequsetMainHomeLittleGameList:(HttpRequestHelperCompletion)completion; +///获取游戏列表用户 ++(void)mew_RequsetMainHomeGameFriend:(HttpRequestHelperCompletion)completion; +///大神推荐 ++(void)mew_RequestMainHomeFriendMahogany:(HttpRequestHelperCompletion)completion; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m index ad294855..5d4ed207 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeApi/Api+MewHomeApi.m @@ -35,10 +35,44 @@ /// @param completion 完成 /// @param uid 用户的uid /// @param rid 进入的类型的id -+ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid { ++ (void)mew_RequestMainHomePickResource:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid type:(NSString *)type{ NSMutableDictionary * pararms = [NSMutableDictionary dictionary]; [pararms safeSetObject:uid forKey:@"uid"]; [pararms safeSetObject:rid forKey:@"id"]; + [pararms safeSetObject:type forKey:@"type"]; [HttpRequestHelper request:@"home/pickResource" method:HttpRequestHelperMethodGET params:pararms completion:completion]; } +/// 发现新朋友列表 +/// @param complection 完成 +/// @param gender 性别. 1:男性 2:女性 null:不限定 ++ (void)mew_RequestMainHomeNewFriendListcomplection:(HttpRequestHelperCompletion)complection gender:(NSString *)gender gameId:(NSString *)gameId{ + [self makeRequest:@"home/newFriend" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, gender,gameId, nil]; +} +///首页游戏点单分类 ++(void)mew_RequestMainHomeGameTabList:(HttpRequestHelperCompletion)complection{ + [self makeRequest:@"home/game/tab/list" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil]; +} +///,大神带飞 ++(void)mew_RequsetMainHomeFriendMahogany:(HttpRequestHelperCompletion)complection{ + [self makeRequest:@"home/mahogany" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil]; +} +/// 一键匹配 +/// @param completion 完成 ++ (void)mew_RequsetMainHomeFriendChatPick:(HttpRequestHelperCompletion)completion { + [self makeRequest:@"home/chat/pick" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} +/// 获取小游戏列表 +/// @param completion 完成 ++ (void)mew_RequsetMainHomeLittleGameList:(HttpRequestHelperCompletion)completion { + [self makeRequest:@"miniGame/record/miniGameList" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} +///获取游戏列表用户 ++(void)mew_RequsetMainHomeGameFriend:(HttpRequestHelperCompletion)completion{ + [self makeRequest:@"home/game" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} +///大神推荐 ++(void)mew_RequestMainHomeFriendMahogany:(HttpRequestHelperCompletion)completion{ + [self makeRequest:@"home/mahogany" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; + +} @end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h index e82992cc..57fa12e7 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h +++ b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.h @@ -15,6 +15,18 @@ NS_ASSUME_NONNULL_BEGIN - (void)mew_requestMainHomeGiftRecordList; //获取热门房间 -(void)mew_requestMainHomePersonalRoomList:(NSString *)uid; +/// 发现新朋友 +- (void)mew_requestMainHomeNewFriendListWithGender:(nullable NSString *)gender gameId:(nullable NSString *)gameId; +/// 一键匹配 +-(void)mew_getMainHomeFriendChatPickData; +//获取游戏 +-(void)mew_requsetMainHomeGameTabList; +///获取小游戏列表 +-(void)mew_getMainHomeLittleGameList; +///获取游戏列表用户 +-(void)mew_getMainHomeGameFriendList; +///大神推荐 +-(void)mew_RequestMainHomeFriendMahoganyList; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m index 5bc57a6b..55a25048 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeManager/MewHomeManager.m @@ -13,6 +13,10 @@ #import "MewMainHomeProtocol.h" #import "MewMainHomeGiftRecordModel.h" #import "MewMainHomeHotRoomModel.h" +#import "MewMainHomeMakeFriendModel.h" +#import "MewMainHomeGameTabModel.h" +#import "MewMainHomeLittleGameInfoModel.h" +#import "MewMainHomeMoreGameModel.h" @implementation MewHomeManager /// 获取首页顶部的轮播图 - (void)mew_requestMainHomeTopDataList { @@ -42,4 +46,75 @@ [[self getView]mew_getHomePersonalRoomListFail]; } showLoading:NO errorToast:NO] uid:uid]; } +/// 发现新朋友 +- (void)mew_requestMainHomeNewFriendListWithGender:(nullable NSString *)gender gameId:(nullable NSString *)gameId{ + [Api mew_RequestMainHomeNewFriendListcomplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray * array = [MewMainHomeMakeFriendModel modelsWithArray:data.data]; + [[self getView] mew_getNewFriendListSuccess:array gameId:gameId]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] mew_getNewFriendListFailWithGameId:gameId]; + }] gender:gender gameId:gameId]; +} +///首页游戏点单分类 +-(void)mew_requsetMainHomeGameTabList{ + [Api mew_RequestMainHomeGameTabList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [MewMainHomeGameTabModel modelsWithArray:data.data]; + [[self getView]mew_getMainHomeGameTabList:list]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }]]; +} +/////,大神带飞 +//-(void)mew_requsetMainHomeFriendMahoganyData{ +// [Api mew_RequsetMainHomeFriendMahogany:[self createHttpCompletion:^(BaseModel * _Nonnull data) { +// if (data.data) { +// NSString *uid = [NSString stringWithFormat:@"%@",data.data]; +// [[self getView] homeChatPickSuccess:uid]; +// }else{ +// [[self getView] homeChatPickFail:data.message]; +// } +// } fail:^(NSInteger code, NSString * _Nullable msg) { +// +// }]]; +//} +/// 一键匹配 + +-(void)mew_getMainHomeFriendChatPickData{ + [Api mew_RequsetMainHomeFriendChatPick:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + if (data.data) { + NSString *uid = [NSString stringWithFormat:@"%@",data.data]; + [[self getView] mew_getMainHomeFriendChatPickDataSuccess:uid]; + }else{ + [[self getView] mew_getMainHomeFriendChatPickDataFail:data.message]; + } + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self getView] mew_getMainHomeFriendChatPickDataFail:msg]; + } showLoading:YES errorToast:YES]]; +} +-(void)mew_getMainHomeLittleGameList{ + [Api mew_RequsetMainHomeLittleGameList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [MewMainHomeLittleGameInfoModel modelsWithArray:data.data]; + [[self getView]mew_getMainHomeLittleGameListSuccess:list]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }errorToast:YES]]; +} +///获取游戏列表用户 +-(void)mew_getMainHomeGameFriendList{ + [Api mew_RequsetMainHomeGameFriend:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [MewMainHomeHotRoomModel modelsWithArray:data.data[@"playRooms"]]; + [[self getView]mew_getMainHomeGameFriendListSuccess:list]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + } showLoading:YES errorToast:YES]]; +} +///大神推荐 +-(void)mew_RequestMainHomeFriendMahoganyList{ + [Api mew_RequestMainHomeFriendMahogany:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + NSArray *list = [MewMainHomeMakeFriendModel modelsWithArray:data.data]; + [[self getView]mew_RequestMainHomeFriendMahoganyListSuccess:list]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }]]; +} @end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.h new file mode 100644 index 00000000..f8ffd632 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.h @@ -0,0 +1,20 @@ +// +// MewMainHomeGameTabModel.h +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeGameTabModel : NSObject +@property(nonatomic,copy) NSString *gameId; +@property(nonatomic,copy) NSString *onClick; +@property(nonatomic,copy) NSString *onUnclick; +@property(nonatomic,assign) BOOL isOnClick; + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.m new file mode 100644 index 00000000..a9871c0a --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeGameTabModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeGameTabModel.m +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import "MewMainHomeGameTabModel.h" + +@implementation MewMainHomeGameTabModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h index 7874664e..dfd1b63c 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeHotRoomModel.h @@ -11,6 +11,8 @@ NS_ASSUME_NONNULL_BEGIN @class MewMainHomeHotMicUserModel; @interface MewMainHomeHotRoomModel : NSObject +@property(nonatomic,copy) NSString *mgId; +@property(nonatomic,assign) int state; ///头像 @property (nonatomic,copy) NSString *avatar; ///在线人数 diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.h new file mode 100644 index 00000000..a32636d9 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.h @@ -0,0 +1,23 @@ +// +// MewMainHomeLittleGameInfoModel.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeLittleGameInfoModel : NSObject +///游戏ID +@property (nonatomic, copy) NSString *mgId; +///名称 +@property (nonatomic, copy) NSString *name; +///封面 +@property (nonatomic, copy) NSString *pic; +///是否选择 +@property (nonatomic,assign) BOOL isSelect; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.m new file mode 100644 index 00000000..3b70a7c3 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeLittleGameInfoModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeLittleGameInfoModel.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeLittleGameInfoModel.h" + +@implementation MewMainHomeLittleGameInfoModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.h new file mode 100644 index 00000000..f1169cfb --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.h @@ -0,0 +1,38 @@ +// +// MewMainHomeMakeFriendModel.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import +#import "UserGameInfoVo.h" +NS_ASSUME_NONNULL_BEGIN +@class MewMainHomeMakeFriendCardModel,UserGameInfoVo; +@interface MewMainHomeMakeFriendModel : NSObject +///头像 +@property(nonatomic,copy) NSString *avatar; +///出生日期 +@property (nonatomic,assign) long birth; +@property (nonatomic , assign) GenderType gender; +@property(nonatomic,assign) int inMic; +@property(nonatomic,assign) int inOnline; +@property(nonatomic,copy) NSString *inRoomUid; +@property(nonatomic,copy) NSString *nick; +@property(nonatomic,copy) NSString *roomTitle; +@property(nonatomic,copy) NSString *uid; +@property(nonatomic,strong) MewMainHomeMakeFriendCardModel *voiceCard; +@property(nonatomic,assign) int lock; +///首页点单游戏信息 +@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo; +@property(nonatomic,copy) NSString *playTime; +@property(nonatomic,copy) NSString *playUrl; +@end +@interface MewMainHomeMakeFriendCardModel : NSObject +@property(nonatomic,copy) NSString *cardId; +@property(nonatomic,copy) NSString *icon; +@property(nonatomic,copy) NSString *name; +@property(nonatomic,copy) NSArray *propVals; + +@end +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.m new file mode 100644 index 00000000..a839fb11 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMakeFriendModel.m @@ -0,0 +1,32 @@ +// +// MewMainHomeMakeFriendModel.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMakeFriendModel.h" + +@implementation MewMainHomeMakeFriendModel +- (NSString *)playUrl{ + + if(self.voiceCard.propVals.count == 2){ + return self.voiceCard.propVals.firstObject; + } + return @""; +} +- (NSString *)playTime{ + + if(self.voiceCard.propVals.count == 2){ + return self.voiceCard.propVals[1]; + } + return @""; +} +@end + + +@implementation MewMainHomeMakeFriendCardModel + + + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h index ba41d9db..62b4e0b0 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMenuInfoModel.h @@ -26,7 +26,11 @@ typedef NS_ENUM(NSInteger, MewMainHomeMenuInfoModelType) { NS_ASSUME_NONNULL_BEGIN @interface MewMainHomeMenuInfoModel : NSObject +@property(nonatomic,assign) BOOL isOneClickMatching;///是否是一键匹配 +///是否更多游戏 @property(nonatomic,assign) BOOL isMorn; +///是否是游戏 +@property(nonatomic,assign) BOOL isGame; ///ID 映射字段 @property (nonatomic,copy) NSString *hid; ///显示的图片 diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.h b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.h new file mode 100644 index 00000000..f84bcb5c --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.h @@ -0,0 +1,23 @@ +// +// MewMainHomeMoreGameModel.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMoreGameModel : NSObject +@property(nonatomic,assign) BOOL isShow; +@property(nonatomic,copy) NSString *mgId; +@property(nonatomic,copy) NSString *mgIdStr; +@property(nonatomic,copy) NSString *micNum; +@property(nonatomic,copy) NSString *name; +@property(nonatomic,copy) NSString *pic; +@property(nonatomic,copy) NSString *remark; +@property(nonatomic,assign) NSString *seq; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.m b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.m new file mode 100644 index 00000000..d1f49f81 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeModel/MewMainHomeMoreGameModel.m @@ -0,0 +1,12 @@ +// +// MewMainHomeMoreGameModel.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMoreGameModel.h" + +@implementation MewMainHomeMoreGameModel + +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h b/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h index 91881845..c564563b 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h +++ b/xplan-ios/Main/Home/View/Mew/MewHomeProtocol/MewMainHomeProtocol.h @@ -22,6 +22,23 @@ NS_ASSUME_NONNULL_BEGIN -(void)mew_getHomePersonalRoomListSuccess:(NSArray *)list; //获取热门房间失败 -(void)mew_getHomePersonalRoomListFail; +/// 发现新朋友成功 +-(void)mew_getNewFriendListSuccess:(NSArray *)list gameId:(nullable NSString *)gameId; +/// 发现新朋友失败 +-(void)mew_getNewFriendListFailWithGameId:(nullable NSString *)gameId; +///首页游戏点单分类 +-(void)mew_getMainHomeGameTabList:(NSArray *)list; +///大神带飞 +////// 一键匹配成功 +-(void)mew_getMainHomeFriendChatPickDataSuccess:(NSString *)uid; +////// 一键匹配失败 +-(void)mew_getMainHomeFriendChatPickDataFail:(NSString *)msg; +///得到小游戏列表成功 +-(void)mew_getMainHomeLittleGameListSuccess:(NSArray *)list; +///获取游戏列表用户成功 +-(void)mew_getMainHomeGameFriendListSuccess:(NSArray *)list; +///获取大神推荐成功 +-(void)mew_RequestMainHomeFriendMahoganyListSuccess:(NSArray *)list; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.h new file mode 100644 index 00000000..414b404c --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.h @@ -0,0 +1,29 @@ +// +// MewMainHomeMakeFriendCell.h +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import +#import "MewMainHomeMakeFriendModel.h" +@class MewMainHomeMakeFriendModel,MewMainHomeMakeFriendCell; +NS_ASSUME_NONNULL_BEGIN +@protocol MewMainHomeMakeFriendCellDelegate +///点击播放声音 +-(void)mew_clickPlayVoiceActionWithCell:(MewMainHomeMakeFriendCell *)cell model:(MewMainHomeMakeFriendModel *)model isPlay:(BOOL)isPlay; +///点击房间 +-(void)mew_clickRoomBtnActionWithModel:(MewMainHomeMakeFriendModel *)model; +///点击头像 +-(void)mew_clickAvatarBtnActionWithModel:(MewMainHomeMakeFriendModel *)model; +@end +@interface MewMainHomeMakeFriendCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeMakeFriendModel *friendModel; +@property(nonatomic,weak) iddelegate; +///声音卡倒计时 +-(void)mew_setPlayVoiceTime:(NSInteger)time; +///声音卡时,svga是否播放动画 +-(void)mew_setPlayVoiceStatus:(BOOL)isPlay; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.m new file mode 100644 index 00000000..c0d0876d --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendCell.m @@ -0,0 +1,487 @@ +// +// MewMainHomeMakeFriendCell.m +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import "MewMainHomeMakeFriendCell.h" +#import +#import +#import +#import "MewMainHomeMakeFriendModel.h" +@interface MewMainHomeMakeFriendCell() +///房间背景 +@property(nonatomic,strong) NetImageView *mewRoomImageView; +///在线状态背景 +@property(nonatomic,strong) UIView *mewOnLineView; +///在线状态 +@property(nonatomic,strong) UILabel *mewOnLineTitleView; +///在线状态绿点 +@property(nonatomic,strong) UIView *mewOnLinePiontView; +///在线状态波浪 +@property(nonatomic,strong) FLAnimatedImageView *mewOnLineGifView; + +///声音秀背景 +@property(nonatomic,strong) UIImageView *mewPlayView; +///声音秀播放按钮 +@property(nonatomic,strong) UIButton *mewPlayBtn; +///声音秀静态动画 +@property(nonatomic,strong) UIImageView *mewPlayImageView; +///声音秀动效 +@property(nonatomic,strong) SVGAParser *mewPlayParser; +@property(nonatomic,strong) SVGAImageView *mewPlaySvgaView; +///声音秀时间 +@property(nonatomic,strong) UILabel *mewPlayTimeView; +///底部背景 +@property(nonatomic,strong) UIView *mewBgTitleView; +///昵称 +@property(nonatomic,strong) UILabel *mewNameView; +///星座 +@property(nonatomic,strong) UILabel *mewConstellationView; +///所在房间背景景 +@property(nonatomic,strong) UIImageView *mewBgRoomView; +///去房间点击按钮 +@property(nonatomic,strong) UIButton *mewRoomBtn; +///房间名 +@property(nonatomic,strong) MarqueeLabel *mewRoomNameView; +///陪玩师 +@property(nonatomic,strong) UIImageView *mewPlayerView; +///游戏背景 +@property(nonatomic,strong) UIView *mewBgGameView; +///游戏图标 +@property(nonatomic,strong) NetImageView *mewGameIcon; +///游戏标题 +@property(nonatomic,strong) UILabel *mewGameTitleView; +@end + +@implementation MewMainHomeMakeFriendCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + + [self.contentView addSubview:self.mewRoomImageView]; + + [self.contentView addSubview:self.mewPlayerView]; + + [self.contentView addSubview:self.mewOnLineView]; + [self.mewOnLineView addSubview:self.mewOnLinePiontView]; + [self.mewOnLineView addSubview:self.mewOnLineGifView]; + [self.mewOnLineView addSubview:self.mewOnLineTitleView]; + + [self.contentView addSubview:self.mewPlayView]; + [self.mewPlayView addSubview:self.mewPlayBtn]; + [self.mewPlayView addSubview:self.mewPlaySvgaView]; + [self.mewPlayView addSubview:self.mewPlayImageView]; + [self.mewPlayView addSubview:self.mewPlayTimeView]; + + + + [self.contentView addSubview:self.mewBgGameView]; + [self.mewBgGameView addSubview:self.mewGameIcon]; + [self.mewBgGameView addSubview:self.mewGameTitleView]; + + [self.contentView addSubview:self.mewBgTitleView]; + [self.mewBgTitleView addSubview:self.mewNameView]; + [self.mewBgTitleView addSubview:self.mewConstellationView]; + [self.mewBgTitleView addSubview:self.mewBgRoomView]; + + + [self.mewBgRoomView addSubview:self.mewRoomBtn]; + [self.mewBgRoomView addSubview:self.mewRoomNameView]; + @kWeakify(self); + [self.mewPlayParser parseWithNamed:@"kMewMainHomePlayVoice" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.mewPlaySvgaView.loops = INT_MAX; + self.mewPlaySvgaView.clearsAfterStop = NO; + self.mewPlaySvgaView.videoItem = videoItem; + [self.mewPlaySvgaView startAnimation]; + } failureBlock:^(NSError * _Nullable error) { + }]; + + +} +-(void)installConstraints{ + [self.mewRoomImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; + [self.mewPlayerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(6)); + make.top.mas_equalTo(kGetScaleWidth(5)); + make.width.mas_equalTo(kGetScaleWidth(48)); + make.height.mas_equalTo(kGetScaleWidth(16)); + }]; + [self.mewOnLineView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(50)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.top.trailing.equalTo(self.contentView).inset(kGetScaleWidth(4)); + }]; + [self.mewOnLineGifView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(9)); + make.leading.mas_equalTo(kGetScaleWidth(5)); + make.centerY.equalTo(self.mewOnLineView); + }]; + [self.mewOnLineTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(5)); + make.centerY.equalTo(self.mewOnLineView); + }]; + [self.mewOnLinePiontView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(5)); + make.leading.mas_equalTo(kGetScaleWidth(5)); + make.centerY.equalTo(self.mewOnLineView); + }]; + [self.mewPlayView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(62)); + make.height.mas_equalTo(kGetScaleWidth(18)); + make.leading.mas_equalTo(kGetScaleWidth(6)); + make.top.mas_equalTo(kGetScaleWidth(108)); + }]; + [self.mewPlayBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(16)); + make.leading.mas_equalTo(kGetScaleWidth(1)); + make.centerY.equalTo(self.mewPlayView); + }]; + [self.mewPlaySvgaView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(18)); + make.width.mas_equalTo(kGetScaleWidth(22)); + make.height.mas_equalTo(kGetScaleWidth(10)); + make.centerY.equalTo(self.mewPlayView); + }]; + [self.mewPlayImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.mewPlaySvgaView); + }]; + [self.mewPlayTimeView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(12)); + make.leading.mas_equalTo(kGetScaleWidth(41)); + make.centerY.equalTo(self.mewPlayView); + }]; + + [self.mewBgGameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(13)); + make.trailing.mas_equalTo(-kGetScaleWidth(4)); + make.centerY.equalTo(self.mewPlayView); + }]; + [self.mewGameIcon mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(15)); + make.leading.mas_equalTo(kGetScaleWidth(-1)); + make.centerY.equalTo(self.mewBgGameView); + }]; + [self.mewGameTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(4)); + make.centerY.equalTo(self.mewBgGameView); + make.leading.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.mewBgTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.leading.trailing.mas_equalTo(0); + make.height.mas_equalTo(kGetScaleWidth(54)); + }]; + [self.mewConstellationView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(39)); + make.height.mas_equalTo(kGetScaleWidth(15)); + make.trailing.mas_equalTo(-kGetScaleWidth(8)); + make.top.mas_equalTo(kGetScaleWidth(9)); + }]; + [self.mewNameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.top.mas_equalTo(kGetScaleWidth(8)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.trailing.equalTo(self.mewConstellationView.mas_leading).mas_offset(-kGetScaleWidth(5)); + }]; + [self.mewBgRoomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(6)); + make.top.mas_equalTo(kGetScaleWidth(28)); + make.trailing.mas_equalTo(-kGetScaleWidth(9)); + make.height.mas_equalTo(kGetScaleWidth(18)); + }]; + [self.mewRoomBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(14)); + make.leading.mas_equalTo(kGetScaleWidth(6)); + make.centerY.equalTo(self.mewBgRoomView); + }]; + [self.mewRoomNameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(22)); + make.trailing.mas_equalTo(-kGetScaleWidth(6)); + make.centerY.equalTo(self.mewBgRoomView); + }]; + + + + + +} + +-(void)mew_clickPlayVoiceAction{ + self.mewPlayBtn.selected = !self.mewPlayBtn.selected; + _mewPlaySvgaView.hidden = !self.mewPlayBtn.selected; + _mewPlayImageView.hidden = self.mewPlayBtn.selected; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickPlayVoiceActionWithCell:model:isPlay:)]){ + [self.delegate mew_clickPlayVoiceActionWithCell:self model:self.friendModel isPlay:self.mewPlayBtn.selected]; + } +} +///声音卡倒计时 +-(void)mew_setPlayVoiceTime:(NSInteger)time{ + _mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",@(time).stringValue]; +} +///声音卡时,svga是否播放动画 +-(void)mew_setPlayVoiceStatus:(BOOL)isPlay{ + _mewPlayBtn.selected = isPlay; + _mewPlaySvgaView.hidden = !isPlay; + _mewPlayImageView.hidden = isPlay; + if(_friendModel.voiceCard != nil){ + _mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",_friendModel.playTime]; + } +} +-(void)mew_clickRoomBtnAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickRoomBtnActionWithModel:)]){ + [self.delegate mew_clickRoomBtnActionWithModel:self.friendModel]; + } +} +-(void)mew_clickAvatarBtnAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_clickAvatarBtnActionWithModel:)]){ + [self.delegate mew_clickAvatarBtnActionWithModel:self.friendModel]; + } +} +-(void)setFriendModel:(MewMainHomeMakeFriendModel *)friendModel{ + _friendModel = friendModel; + _mewRoomImageView.image = nil; + [_mewRoomImageView loadImageWithUrl:_friendModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewRoomImageView.image = image; + }]; + NSString *nick = _friendModel.nick; + self.mewNameView.text = nick; + if (!_friendModel.birth) { + _friendModel.birth = -28800000; //默认的1970/01/01 + } + self.mewConstellationView.text = [NSString calculateConstellationWithMonth:_friendModel.birth]; + self.mewOnLineView.hidden = YES; + self.mewOnLineGifView.hidden = YES; + self.mewOnLinePiontView.hidden = YES; + if (_friendModel.inRoomUid.length == 0) { + if(_friendModel.inOnline == YES){ + self.mewOnLineView.hidden = NO; + self.mewOnLinePiontView.hidden = NO; + self.mewOnLineTitleView.text = @"空闲中"; + } + }else{ + self.mewOnLineView.hidden = NO; + self.mewOnLineGifView.hidden = NO; + self.mewOnLineTitleView.text = @"直播中"; + } + + _mewBgGameView.hidden = YES; + _mewPlayerView.hidden = YES; + if(_friendModel.userGamePartnerVo){ + _mewPlayerView.hidden = NO; + _mewBgGameView.hidden = NO; + _mewGameIcon.image = nil; + [_mewGameIcon loadImageWithUrl:_friendModel.userGamePartnerVo.firstLogo completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewGameIcon.image = image; + }]; + NSString *gameName = @""; + if(_friendModel.userGamePartnerVo.firstGameName.length > 0 && _friendModel.userGamePartnerVo.secondGameName.length > 0){ + gameName = [NSString stringWithFormat:@"%@|%@",_friendModel.userGamePartnerVo.firstGameName,_friendModel.userGamePartnerVo.secondGameName]; + }else if(_friendModel.userGamePartnerVo.firstGameName.length > 0){ + gameName = _friendModel.userGamePartnerVo.firstGameName; + }else if(_friendModel.userGamePartnerVo.secondGameName.length > 0){ + gameName = _friendModel.userGamePartnerVo.secondGameName; + } + _mewGameTitleView.text = gameName; + } + _mewPlayView.hidden = YES; + if(_friendModel.voiceCard != nil){ + _mewPlayView.hidden = NO; + _mewPlayTimeView.text = [NSString stringWithFormat:@"%@\"",_friendModel.playTime]; + } + _mewBgRoomView.hidden = YES; + if(_friendModel.roomTitle.length > 0){ + _mewBgRoomView.hidden = NO; + _mewRoomNameView.text = _friendModel.roomTitle; + } +} +#pragma mark - 懒加载 +- (NetImageView *)mewRoomImageView{ + if(!_mewRoomImageView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewRoomImageView = [[NetImageView alloc]initWithConfig:config]; + _mewRoomImageView.contentMode = UIViewContentModeScaleAspectFill; + _mewRoomImageView.clipsToBounds = YES ; + _mewRoomImageView.layer.cornerRadius = kGetScaleWidth(12); + _mewRoomImageView.layer.masksToBounds = YES; + [_mewBgTitleView setCornerWithLeftTopCorner:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184))]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickAvatarBtnAction)]; + _mewRoomImageView.userInteractionEnabled = YES; + [_mewRoomImageView addGestureRecognizer:tap]; + } + return _mewRoomImageView; +} +- (UIView *)mewOnLineView{ + if(!_mewOnLineView){ + _mewOnLineView = [UIView new]; + _mewOnLineView.backgroundColor = UIColorRGBAlpha(0x000000, 0.3); + _mewOnLineView.layer.cornerRadius = kGetScaleWidth(17)/2; + _mewOnLineView.layer.masksToBounds = YES; + } + return _mewOnLineView; +} +- (UILabel *)mewOnLineTitleView{ + if(!_mewOnLineTitleView){ + _mewOnLineTitleView = [UILabel labelInitWithText:@"" font:kFontRegular(9) textColor:[UIColor whiteColor]]; + } + return _mewOnLineTitleView; +} +- (UIView *)mewOnLinePiontView{ + if(!_mewOnLinePiontView){ + _mewOnLinePiontView = [UIView new]; + _mewOnLinePiontView.backgroundColor = UIColorFromRGB(0x4DFF91); + _mewOnLinePiontView.layer.cornerRadius = kGetScaleWidth(5)/2; + _mewOnLinePiontView.layer.masksToBounds = YES; + } + return _mewOnLinePiontView; +} +- (FLAnimatedImageView *)mewOnLineGifView{ + if(!_mewOnLineGifView){ + _mewOnLineGifView = [FLAnimatedImageView new]; + NSData *localData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"mew_main_home_heat.gif" ofType:nil]]; + FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:localData]; + _mewOnLineGifView.animatedImage = animatedImage; + + } + return _mewOnLineGifView; +} +- (SVGAParser *)mewPlayParser{ + if(!_mewPlayParser){ + _mewPlayParser = [SVGAParser new]; + } + return _mewPlayParser; +} +- (SVGAImageView *)mewPlaySvgaView { + if (_mewPlaySvgaView == nil) { + _mewPlaySvgaView = [[SVGAImageView alloc]init]; + _mewPlaySvgaView.contentMode = UIViewContentModeScaleToFill; + _mewPlaySvgaView.hidden = YES; + _mewPlaySvgaView.backgroundColor = [UIColor clearColor]; + } + return _mewPlaySvgaView; +} +- (UIImageView *)mewPlayImageView{ + if(!_mewPlayImageView){ + _mewPlayImageView = [UIImageView new]; + _mewPlayImageView.image = kImage(@"mew_main_home_friend_cell_play_icom_bg"); + } + return _mewPlayImageView; +} +- (UIImageView *)mewPlayView{ + if(!_mewPlayView){ + _mewPlayView = [UIImageView new]; + _mewPlayView.image = kImage(@"mew_main_home_friend_cell_play_bg"); + _mewPlayView.userInteractionEnabled = YES; + + } + return _mewPlayView; +} +- (UIButton *)mewPlayBtn{ + if(!_mewPlayBtn){ + _mewPlayBtn = [UIButton new]; + [_mewPlayBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10]; + [_mewPlayBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_no_play") forState:UIControlStateNormal]; + [_mewPlayBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_play") forState:UIControlStateSelected]; + [_mewPlayBtn addTarget:self action:@selector(mew_clickPlayVoiceAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewPlayBtn; +} +- (UILabel *)mewPlayTimeView{ + if(!_mewPlayTimeView){ + _mewPlayTimeView = [UILabel labelInitWithText:@"0\"" font:kFontMedium(10) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewPlayTimeView; +} +- (UIView *)mewBgTitleView{ + if(!_mewBgTitleView){ + _mewBgTitleView = [UIView new]; + _mewBgTitleView.backgroundColor = [UIColor whiteColor]; + [_mewBgTitleView setCornerWithLeftTopCorner:0 rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(54))]; + } + return _mewBgTitleView; +} +- (UILabel *)mewNameView{ + if(!_mewNameView){ + _mewNameView = [UILabel labelInitWithText:@"" font:kFontMedium(12) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewNameView; +} +- (UILabel *)mewConstellationView{ + if(!_mewConstellationView){ + _mewConstellationView = [UILabel labelInitWithText:@"" font:kFontRegular(8) textColor:UIColorFromRGB(0x9168FA)]; + _mewConstellationView.backgroundColor = UIColorRGBAlpha(0x9168FA, 0.2); + _mewConstellationView.textAlignment = NSTextAlignmentCenter; + _mewConstellationView.layer.cornerRadius = kGetScaleWidth(15)/2; + _mewConstellationView.layer.masksToBounds = YES; + } + return _mewConstellationView; +} +- (UIView *)mewBgRoomView{ + if(!_mewBgRoomView){ + _mewBgRoomView = [UIImageView new]; + _mewBgRoomView.image = kImage(@"mew_main_home_friend_cell_room_bg"); + _mewBgRoomView.userInteractionEnabled = YES; + } + return _mewBgRoomView; +} +- (UIButton *)mewRoomBtn{ + if(!_mewRoomBtn){ + _mewRoomBtn = [UIButton new]; + [_mewRoomBtn setBackgroundImage:kImage(@"mew_main_home_friend_cell_room") forState:UIControlStateNormal]; + [_mewRoomBtn addTarget:self action:@selector(mew_clickRoomBtnAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewRoomBtn; +} +- (UILabel *)mewRoomNameView{ + if(!_mewRoomNameView){ + _mewRoomNameView = [[MarqueeLabel alloc] init]; + _mewRoomNameView.scrollDuration = 8.0; + _mewRoomNameView.fadeLength = 6.0f; + _mewRoomNameView.font = kFontRegular(10); + _mewRoomNameView.textColor = UIColorFromRGB(0x696D7A); + } + return _mewRoomNameView; +} + +- (UIView *)mewBgGameView{ + if(!_mewBgGameView){ + _mewBgGameView = [UIView new]; + _mewBgGameView.backgroundColor = UIColorRGBAlpha(0x000000, 0.3); + _mewBgGameView.layer.cornerRadius = kGetScaleWidth(13)/2; + _mewBgGameView.layer.masksToBounds = YES; + } + return _mewBgGameView; +} +- (NetImageView *)mewGameIcon{ + if(!_mewGameIcon){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewGameIcon = [[NetImageView alloc]initWithConfig:config]; + } + return _mewGameIcon; +} +-(UILabel *)mewGameTitleView{ + if(!_mewGameTitleView){ + _mewGameTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(7) textColor:[UIColor whiteColor]]; + } + return _mewGameTitleView; +} +- (UIImageView *)mewPlayerView{ + if(!_mewPlayerView){ + _mewPlayerView = [UIImageView new]; + _mewPlayerView.image = kImage(@"mew_main_home_friend_cell_player"); + } + return _mewPlayerView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.h new file mode 100644 index 00000000..1113384e --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomeMakeFriendEmptyCell.h +// xplan-ios +// +// Created by duoban on 2023/12/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMakeFriendEmptyCell : UICollectionViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.m new file mode 100644 index 00000000..7d5d4701 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendEmptyCell.m @@ -0,0 +1,97 @@ +// +// MewMainHomeMakeFriendEmptyCell.m +// xplan-ios +// +// Created by duoban on 2023/12/26. +// + +#import "MewMainHomeMakeFriendEmptyCell.h" +@interface MewMainHomeMakeFriendEmptyCell() +@property(nonatomic,strong) UIImageView *mewIconView; +@property(nonatomic,strong) UILabel *mewTitleView; +@property(nonatomic,strong) UIView *mewHintBgView; +@property(nonatomic,strong) UIView *mewLineView; +@property(nonatomic,strong) UILabel *mewHintTextView; +@end + +@implementation MewMainHomeMakeFriendEmptyCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.mewIconView]; + [self.contentView addSubview:self.mewTitleView]; + [self.contentView addSubview:self.mewHintBgView]; + [self.mewHintBgView addSubview:self.mewLineView]; + [self.mewHintBgView addSubview:self.mewHintTextView]; +} +-(void)installConstraints{ + [self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(159)); + make.height.mas_equalTo(kGetScaleWidth(138)); + make.top.mas_equalTo(kGetScaleWidth(14)); + make.centerX.equalTo(self.contentView); + }]; + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mewIconView.mas_bottom).mas_offset(kGetScaleWidth(3)); + make.centerX.equalTo(self.contentView); + make.height.mas_equalTo(kGetScaleWidth(20)); + }]; + [self.mewHintBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mewTitleView.mas_bottom).mas_offset(kGetScaleWidth(28)); + make.height.mas_equalTo(kGetScaleWidth(48)); + make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(0)); + }]; + [self.mewLineView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(28)); + make.height.mas_equalTo(kGetScaleWidth(1)); + make.centerY.equalTo(self.mewHintBgView); + }]; + [self.mewHintTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(96)); + make.center.equalTo(self.mewHintBgView); + make.height.mas_equalTo(kGetScaleWidth(20)); + }]; +} +#pragma mark - 懒加载 +- (UIImageView *)mewIconView{ + if(!_mewIconView){ + _mewIconView = [UIImageView new]; + _mewIconView.image = kImage(@"mew_main_home_friend_empty_icon"); + } + return _mewIconView; +} +- (UILabel *)mewTitleView{ + if(!_mewTitleView){ + _mewTitleView = [UILabel labelInitWithText:@"暂未找到合适的伙伴" font:kFontRegular(14) textColor:UIColorFromRGB(0x696D7A)]; + } + return _mewTitleView; +} +- (UIView *)mewHintBgView{ + if(!_mewHintBgView){ + _mewHintBgView = [UIView new]; + _mewHintBgView.backgroundColor = [UIColor whiteColor]; + } + return _mewHintBgView; +} +- (UIView *)mewLineView{ + if(!_mewLineView){ + _mewLineView = [UIView new]; + _mewLineView.backgroundColor = UIColorFromRGB(0xE9EBF2); + } + return _mewLineView; +} +- (UILabel *)mewHintTextView{ + if(!_mewHintTextView){ + _mewHintTextView = [UILabel labelInitWithText:@"大神推荐" font:kFontMedium(14) textColor:UIColorFromRGB(0x2B2D33)]; + _mewHintTextView.textAlignment = NSTextAlignmentCenter; + _mewHintTextView.backgroundColor = [UIColor whiteColor]; + } + return _mewHintTextView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.h new file mode 100644 index 00000000..9ebc0404 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomeMakeFriendHeadCell.h +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import +#import "MewMainHomeGameTabModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMakeFriendHeadCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeGameTabModel *tabModel; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.m new file mode 100644 index 00000000..9418ea55 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMakeFriendHeadCell.m @@ -0,0 +1,66 @@ +// +// MewMainHomeMakeFriendHeadCell.m +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import "MewMainHomeMakeFriendHeadCell.h" +@interface MewMainHomeMakeFriendHeadCell() +@property(nonatomic,strong) NetImageView *mewUnclickView; +@property(nonatomic,strong) NetImageView *mewClickView; +@end +@implementation MewMainHomeMakeFriendHeadCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.mewUnclickView]; + [self.contentView addSubview:self.mewClickView]; +} +-(void)installConstraints{ + [self.mewClickView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; + [self.mewUnclickView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; +} +- (void)setTabModel:(MewMainHomeGameTabModel *)tabModel{ + _tabModel = tabModel; + self.mewClickView.image = nil; + self.mewUnclickView.image = nil; + self.mewClickView.hidden = !_tabModel.isOnClick; + self.mewUnclickView.hidden = _tabModel.isOnClick; + [self.mewClickView loadImageWithUrl:_tabModel.onClick completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewClickView.image = image; + }]; + [self.mewUnclickView loadImageWithUrl:_tabModel.onUnclick completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewUnclickView.image = image; + }]; +} +#pragma mark - 懒加载 +- (NetImageView *)mewUnclickView{ + if(!_mewUnclickView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewUnclickView = [[NetImageView alloc]initWithConfig:config]; + + } + return _mewUnclickView; +} +- (NetImageView *)mewClickView{ + if(!_mewClickView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewClickView = [[NetImageView alloc]initWithConfig:config]; + + } + return _mewClickView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.h new file mode 100644 index 00000000..4b716b9d --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomeMoreGameCell.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import +#import "MewMainHomeHotRoomModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMoreGameCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeHotRoomModel *moreGameModel; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.m new file mode 100644 index 00000000..51448aa4 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameCell.m @@ -0,0 +1,187 @@ +// +// MewMainHomeMoreGameCell.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMoreGameCell.h" +@interface MewMainHomeMoreGameCell() +@property(nonatomic,strong) NetImageView *mewBgImageView; +@property(nonatomic,strong) NetImageView *mewIconView; +@property(nonatomic,strong) UILabel *mewTitleView; +@property(nonatomic,strong) UILabel *mewSubView; +@property(nonatomic,strong) UIImageView *mewHotView; +@property(nonatomic,strong) UILabel *mewHotNumView; +@property(nonatomic,strong) UIView *mewMicNumBgView; +@end + +@implementation MewMainHomeMoreGameCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + for (int i = 0; i < 5; i++) { + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = i == 4 ? kImage(@"mew_main_home_more_game_add"):kImage(@"mew_main_home_more_game_mic"); + NetImageView *imageView = [[NetImageView alloc]initWithConfig:config]; + [self.mewMicNumBgView addSubview:imageView]; + imageView.tag = 99+i; + imageView.layer.cornerRadius = kGetScaleWidth(18)/2; + imageView.layer.masksToBounds = YES; + imageView.layer.borderWidth = 0; + imageView.layer.borderColor = [UIColor whiteColor].CGColor; + CGFloat x = kGetScaleWidth(6) + i * kGetScaleWidth(12); + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(x); + make.width.height.mas_equalTo(kGetScaleWidth(18)); + make.centerY.equalTo(self.mewMicNumBgView); + }]; + + } + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.mewBgImageView]; + [self.contentView addSubview:self.mewIconView]; + [self.contentView addSubview:self.mewTitleView]; + [self.contentView addSubview:self.mewSubView]; + [self.contentView addSubview:self.mewHotView]; + [self.contentView addSubview:self.mewHotNumView]; + [self.contentView addSubview:self.mewMicNumBgView]; +} +-(void)installConstraints{ + [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; + [self.mewIconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(40)); + make.leading.mas_equalTo(kGetScaleWidth(8)); + make.top.mas_equalTo(kGetScaleWidth(12)); + }]; + + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(52)); + make.centerY.equalTo(self.mewIconView); + make.height.mas_equalTo(kGetScaleWidth(20)); + make.trailing.mas_equalTo(-kGetScaleWidth(9)); + }]; + [self.mewSubView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(12)); + make.top.mas_equalTo(kGetScaleWidth(62)); + make.trailing.mas_equalTo(-kGetScaleWidth(9)); + }]; + [self.mewHotNumView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(14)); + make.bottom.mas_equalTo(-kGetScaleWidth(14)); + }]; + [self.mewHotView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(12)); + make.centerY.equalTo(self.mewHotNumView); + make.trailing.equalTo(self.mewHotNumView.mas_leading).mas_offset(-kGetScaleWidth(1)); + }]; + [self.mewMicNumBgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(22)); + make.width.mas_equalTo(kGetScaleWidth(78)); + make.leading.mas_equalTo(kGetScaleWidth(10)); + make.centerY.equalTo(self.mewHotView); + }]; +} +-(void)setMoreGameModel:(MewMainHomeHotRoomModel *)moreGameModel{ + _moreGameModel = moreGameModel; + _mewBgImageView.image = nil; + [_mewBgImageView loadImageWithUrl:_moreGameModel.backgroundPic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewBgImageView.image = image; + }]; + _mewIconView.image = nil; + [_mewIconView loadImageWithUrl:_moreGameModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewIconView.image = image; + }]; + _mewTitleView.text = _moreGameModel.title; + _mewHotNumView.text = @(_moreGameModel.onlineNum).stringValue; + if(_moreGameModel.mgId == nil){ + _mewSubView.text = @"扩列交友"; + }else{ + _mewSubView.text = _moreGameModel.state == 1 ? @"游戏进行中,立即围观":@"游戏未开始,等待加入"; + } + + for (int i = 0; i < 5; i++) { + NetImageView *imageView = [self.mewMicNumBgView viewWithTag:99+i]; + if(i < _moreGameModel.micUsers.count){ + MewMainHomeHotMicUserModel *userModel = [_moreGameModel.micUsers safeObjectAtIndex1:i]; + imageView.image = nil; + [imageView loadImageWithUrl:userModel.avatar completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + imageView.image = image; + }]; + imageView.layer.borderWidth = 1; + }else{ + imageView.image = i == 4 ? kImage(@"mew_main_home_more_game_add"):kImage(@"mew_main_home_more_game_mic"); + imageView.layer.borderWidth = 0; + } + } + +} +#pragma mark - 懒加载 +- (NetImageView *)mewBgImageView{ + if(!_mewBgImageView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewBgImageView = [[NetImageView alloc]initWithConfig:config]; + _mewBgImageView.contentMode = UIViewContentModeScaleAspectFill; + _mewBgImageView.clipsToBounds = YES ; + _mewBgImageView.layer.cornerRadius = kGetScaleWidth(12); + _mewBgImageView.layer.masksToBounds = YES; + } + return _mewBgImageView; +} +- (NetImageView *)mewIconView{ + if(!_mewIconView){ + NetImageConfig *config = [[NetImageConfig alloc]init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewIconView = [[NetImageView alloc]initWithConfig:config]; + _mewIconView.layer.cornerRadius = kGetScaleWidth(40)/2; + _mewIconView.layer.masksToBounds = YES; + } + return _mewIconView; +} +- (UILabel *)mewTitleView{ + if(!_mewTitleView){ + _mewTitleView = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:UIColorFromRGB(0x2B2D33)]; + + } + return _mewTitleView; +} +- (UILabel *)mewSubView{ + if(!_mewSubView){ + _mewSubView = [UILabel labelInitWithText:@"" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)]; + } + return _mewSubView; +} +- (UILabel *)mewHotNumView{ + if(!_mewHotNumView){ + _mewHotNumView = [UILabel labelInitWithText:@"0" font:kFontBold(11) textColor:UIColorFromRGB(0x696D7A)]; + } + return _mewHotNumView; +} +- (UIImageView *)mewHotView{ + if(!_mewHotView){ + _mewHotView = [UIImageView new]; + _mewHotView.image = kImage(@"mew_main_home_more_game_hot"); + } + return _mewHotView; +} +- (UIView *)mewMicNumBgView{ + if(!_mewMicNumBgView){ + _mewMicNumBgView = [UIView new]; + _mewMicNumBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6]; + _mewMicNumBgView.layer.cornerRadius = kGetScaleWidth(22)/2; + _mewMicNumBgView.layer.masksToBounds = YES; + _mewMicNumBgView.layer.borderWidth = 0.5; + _mewMicNumBgView.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _mewMicNumBgView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.h new file mode 100644 index 00000000..0195a41a --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.h @@ -0,0 +1,16 @@ +// +// MewMainHomeMoreGameHeadCell.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import +#import "MewMainHomeLittleGameInfoModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMoreGameHeadCell : UICollectionViewCell +@property(nonatomic,strong) MewMainHomeLittleGameInfoModel *gameModel; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.m new file mode 100644 index 00000000..30a9b7c8 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomeMoreGameHeadCell.m @@ -0,0 +1,52 @@ +// +// MewMainHomeMoreGameHeadCell.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMoreGameHeadCell.h" +@interface MewMainHomeMoreGameHeadCell() +@property(nonatomic,strong) NetImageView *imageView; +@end +@implementation MewMainHomeMoreGameHeadCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.imageView]; +} +-(void)installConstraints{ + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; +} +-(void)setGameModel:(MewMainHomeLittleGameInfoModel *)gameModel{ + _gameModel = gameModel; + if([_gameModel.mgId isEqualToString:@"-9999"]){ + _imageView.image = kImage(@"mew_main_home_more_game_friend"); + return; + + } + _imageView.image = nil; + [_imageView loadImageWithUrl:_gameModel.pic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.imageView.image = image; + }]; +} +#pragma mark - 懒加载 +- (NetImageView *)imageView{ + if(!_imageView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _imageView = [[NetImageView alloc]initWithConfig:config]; + _imageView.contentMode = UIViewContentModeScaleAspectFill; + _imageView.clipsToBounds = YES ; + } + return _imageView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m index c9d0fc69..82161282 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyCell.m @@ -65,7 +65,7 @@ -(void)installUI{ [self.contentView addSubview:self.mewBgImageView]; [self.mewBgImageView addSubview:self.mewMaskView]; - [self.mewBgImageView addSubview:self.mewTopOneView]; + [self.contentView addSubview:self.mewTopOneView]; [self.contentView addSubview:self.mewTagView]; [self.mewTagView addSubview:self.mewHeatGifView]; [self.contentView addSubview:self.mewPKImageView]; @@ -108,10 +108,14 @@ } -(void)installConstraints{ [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.edges.equalTo(self.contentView); + make.centerX.equalTo(self.contentView); + make.bottom.equalTo(self.contentView).mas_offset(-kGetScaleWidth(2)); + make.width.mas_equalTo(kGetScaleWidth(168)); + make.height.mas_equalTo(kGetScaleWidth(164)); }]; + [self.mewTopOneView mas_makeConstraints:^(MASConstraintMaker *make) { - make.edges.equalTo(self.mewBgImageView); + make.edges.equalTo(self.contentView); }]; [self.mewMaskView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.mewBgImageView); @@ -212,6 +216,7 @@ - (NetImageView *)mewTopOneView{ if(!_mewTopOneView){ _mewTopOneView = [NetImageView new]; + } return _mewTopOneView; } diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m index d51d11bd..ca67610a 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeCell/MewMainHomePartyHeadHotCell.m @@ -90,7 +90,7 @@ [self.mewGiftView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.equalTo(self.mewReceiverTextView.mas_trailing).mas_offset(kGetScaleWidth(4)); make.centerY.equalTo(self); - + make.width.mas_lessThanOrEqualTo(kGetScaleWidth(78)); }]; [self.mewGiftImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.equalTo(self.mewGiftView.mas_trailing).mas_offset(kGetScaleWidth(2)); diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.h new file mode 100644 index 00000000..ad15cc33 --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.h @@ -0,0 +1,35 @@ +// +// MewMainHomeMakeFriendHeadView.h +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import +#import "MewMainHomeMenuInfoModel.h" +#import "MewMainHomeGameTabModel.h" + +typedef enum : NSUInteger { + MewMainHomeMakeFriendHeadViewTyep_Game_Select, + MewMainHomeMakeFriendHeadViewTyep_Game_No_Select, + MewMainHomeMakeFriendHeadViewTyep_Change, + MewMainHomeMakeFriendHeadViewTyep_Sex, +} MewMainHomeMakeFriendHeadViewType; + +NS_ASSUME_NONNULL_BEGIN +@protocol MewMainHomeMakeFriendHeadViewDelegate +///大神带飞 +-(void)mew_selectGodFlightAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo; +///一键匹配 +-(void)mew_selectOneClickMatchingAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo; +///选择游戏 +-(void)mew_selectGameFriendAction:(MewMainHomeGameTabModel *_Nullable)gameInfo type:(MewMainHomeMakeFriendHeadViewType)type sender:(UILabel *_Nullable)sender; +@end +@interface MewMainHomeMakeFriendHeadView : UICollectionReusableView +@property(nonatomic,assign) BOOL isNoChooseSex; +@property(nonatomic,strong) NSMutableArray *mewGameList; +@property(nonatomic,strong) MewMainHomeMenuInfoModel *mewMeunInfo; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.m new file mode 100644 index 00000000..efb37c7e --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMakeFriendHeadView.m @@ -0,0 +1,306 @@ +// +// MewMainHomeMakeFriendHeadView.m +// xplan-ios +// +// Created by duoban on 2023/12/22. +// + +#import "MewMainHomeMakeFriendHeadView.h" +#import "MewMainHomeMakeFriendHeadCell.h" +@interface MewMainHomeMakeFriendHeadView() +///大神带飞 +@property(nonatomic,strong) NetImageView *mewMahoganyView; +///一键匹配 +@property(nonatomic,strong) NetImageView *mewMatchingView; +@property(nonatomic,strong) UICollectionView *mewCollectionView; + +///换一换 +@property(nonatomic,strong) UIView *mewChangeBGView; +@property(nonatomic,strong) UILabel *mewChangeTextView; +@property(nonatomic,strong) UIImageView *mewChangeImage; +@property(nonatomic,strong) UIButton *mewChangeBtn; + +//选择 +@property(nonatomic,strong) UIView *mewSelecteBGView; +@property(nonatomic,strong) UILabel *mewSelecteTextView; +@property(nonatomic,strong) UIButton *mewSelecteBtn; +@property(nonatomic,strong) UIImageView *mewSelecteImage; +@property(nonatomic,strong) UILabel *mewTitleView; +@end +@implementation MewMainHomeMakeFriendHeadView +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.mewMahoganyView]; + [self addSubview:self.mewMatchingView]; + [self addSubview:self.mewCollectionView]; + [self addSubview:self.mewTitleView]; + [self addSubview:self.mewChangeBGView]; + [self addSubview:self.mewSelecteBGView]; + [self.mewChangeBGView addSubview:self.mewChangeTextView]; + [self.mewChangeBGView addSubview:self.mewChangeImage]; + [self.mewChangeBGView addSubview:self.mewChangeBtn]; + [self.mewSelecteBGView addSubview:self.mewSelecteTextView]; + [self.mewSelecteBGView addSubview:self.mewSelecteImage]; + [self.mewSelecteBGView addSubview:self.mewSelecteBtn]; +} +-(void)installConstraints{ + [self.mewMahoganyView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(15)); + make.top.mas_equalTo(kGetScaleWidth(10)); + make.width.mas_equalTo(kGetScaleWidth(171)); + make.height.mas_equalTo(kGetScaleWidth(68)); + }]; + [self.mewMatchingView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(15)); + make.top.mas_equalTo(kGetScaleWidth(10)); + make.width.mas_equalTo(kGetScaleWidth(171)); + make.height.mas_equalTo(kGetScaleWidth(68)); + }]; + [self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.trailing.equalTo(self).inset(kGetScaleWidth(0)); + make.top.equalTo(self.mewMahoganyView.mas_bottom).mas_offset(kGetScaleWidth(6)); + make.height.mas_equalTo(kGetScaleWidth(69)); + }]; + [self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(22)); + make.leading.mas_equalTo(kGetScaleWidth(18)); + }]; + [self.mewSelecteBGView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(52)); + make.height.mas_equalTo(kGetScaleWidth(22)); + make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20)); + }]; + [self.mewChangeBGView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-kGetScaleWidth(73)); + make.width.mas_equalTo(kGetScaleWidth(64)); + make.height.mas_equalTo(kGetScaleWidth(22)); + make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20)); + }]; + + [self.mewSelecteImage mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(14)); + make.centerY.equalTo(self.mewSelecteBGView); + make.trailing.mas_equalTo(-kGetScaleWidth(7)); + }]; + [self.mewSelecteTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.mewSelecteBGView); + make.trailing.mas_equalTo(-kGetScaleWidth(22)); + }]; + [self.mewSelecteBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.mewSelecteBGView); + }]; + [self.mewChangeImage mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(14)); + make.trailing.mas_equalTo(-kGetScaleWidth(7)); + make.centerY.equalTo(self.mewChangeBGView); + }]; + [self.mewChangeTextView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.mewChangeBGView); + make.trailing.mas_equalTo(-kGetScaleWidth(22)); + }]; + [self.mewChangeBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.mewChangeBGView); + }]; + +} +-(void)setMewMeunInfo:(MewMainHomeMenuInfoModel *)mewMeunInfo{ + _mewMeunInfo = mewMeunInfo; + _mewMahoganyView.image = nil; + [_mewMahoganyView loadImageWithUrl:_mewMeunInfo.icon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + self.mewMahoganyView.image = image; + }]; +} +-(void)setMewGameList:(NSMutableArray *)mewGameList{ + _mewGameList = mewGameList; + [self.mewCollectionView reloadData]; +} +#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.mewGameList.count; +} +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + MewMainHomeMakeFriendHeadCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class]) forIndexPath:indexPath]; + cell.tabModel = [self.mewGameList safeObjectAtIndex1:indexPath.row]; + return cell; +} +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + MewMainHomeGameTabModel *tapModel = [self.mewGameList safeObjectAtIndex1:indexPath.row]; + if(tapModel.isOnClick == YES){ + tapModel.isOnClick = NO; + }else{ + for (MewMainHomeGameTabModel *obj in self.mewGameList) { + obj.isOnClick = NO; + } + tapModel.isOnClick = YES; + } + [self.mewCollectionView reloadData]; + MewMainHomeMakeFriendHeadViewType type = type = tapModel.isOnClick == YES ? MewMainHomeMakeFriendHeadViewTyep_Game_Select: MewMainHomeMakeFriendHeadViewTyep_Game_No_Select; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){ + [self.delegate mew_selectGameFriendAction:tapModel type:type sender:nil]; + } +} +-(void)mew_clickMahoganyAction{ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGodFlightAction:)]){ + [self.delegate mew_selectGodFlightAction:self.mewMeunInfo]; + } +} +-(void)mew_clickMatchingAction{ + MewMainHomeMenuInfoModel *infoModel = [MewMainHomeMenuInfoModel new]; + infoModel.isOneClickMatching = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectOneClickMatchingAction:)]){ + [self.delegate mew_selectOneClickMatchingAction:infoModel]; + } +} +-(void)setIsNoChooseSex:(BOOL)isNoChooseSex{ + _isNoChooseSex = isNoChooseSex; + self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected; + if(self.mewSelecteBtn.selected){ + self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI); + }else{ + self.mewSelecteImage.transform = CGAffineTransformIdentity; + } +} +-(void)mew_clickChangeBtnAction{ + [UIView animateWithDuration:0.5 animations:^{ + self.mewChangeImage.transform = CGAffineTransformMakeRotation(M_PI); + }completion:^(BOOL finished) { + self.mewChangeImage.transform = CGAffineTransformIdentity; + }]; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){ + [self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Change sender:nil]; + } +} +-(void)mew_clickSelecteBtnAction{ + self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected; + if(self.mewSelecteBtn.selected){ + self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI); + }else{ + self.mewSelecteImage.transform = CGAffineTransformIdentity; + } + + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){ + [self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Sex sender:self.mewSelecteTextView]; + } +} +#pragma mark - 懒加载 +- (NetImageView *)mewMahoganyView{ + if(!_mewMahoganyView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewMahoganyView = [[NetImageView alloc]initWithConfig:config]; + _mewMahoganyView.contentMode = UIViewContentModeScaleAspectFill; + _mewMahoganyView.clipsToBounds = YES ; + _mewMahoganyView.layer.cornerRadius = kGetScaleWidth(10); + _mewMahoganyView.layer.masksToBounds = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMahoganyAction)]; + _mewMahoganyView.userInteractionEnabled = YES; + [_mewMahoganyView addGestureRecognizer:tap]; + } + return _mewMahoganyView; +} +- (NetImageView *)mewMatchingView{ + if(!_mewMatchingView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _mewMatchingView = [[NetImageView alloc]initWithConfig:config]; + _mewMatchingView.image = kImage(@"mew_main_home_friend_head_matching"); + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMatchingAction)]; + _mewMatchingView.userInteractionEnabled = YES; + [_mewMatchingView addGestureRecognizer:tap]; + } + return _mewMatchingView; +} +- (UICollectionView *)mewCollectionView{ + if(!_mewCollectionView){ + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; + layout.itemSize = CGSizeMake(kGetScaleWidth(86), kGetScaleWidth(69)); + layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(12), 0, kGetScaleWidth(12)); + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 0; + _mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + _mewCollectionView.delegate = self; + _mewCollectionView.dataSource = self; + _mewCollectionView.backgroundColor = [UIColor clearColor]; + [_mewCollectionView registerClass:[MewMainHomeMakeFriendHeadCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class])]; + } + return _mewCollectionView; +} +- (UIView *)mewChangeBGView{ + if(!_mewChangeBGView){ + _mewChangeBGView = [UIView new]; + _mewChangeBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06); + _mewChangeBGView.layer.cornerRadius = kGetScaleWidth(22)/2; + _mewChangeBGView.layer.masksToBounds = YES; + } + return _mewChangeBGView; +} +- (UILabel *)mewChangeTextView{ + if(!_mewChangeTextView){ + _mewChangeTextView = [UILabel labelInitWithText:@"换一换" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)]; + } + return _mewChangeTextView; +} + +- (UIImageView *)mewChangeImage{ + if(!_mewChangeImage){ + _mewChangeImage = [UIImageView new]; + _mewChangeImage.image = kImage(@"mew_main_home_friend_head_change") ; + } + return _mewChangeImage; +} +- (UIButton *)mewChangeBtn{ + if(!_mewChangeBtn){ + _mewChangeBtn = [UIButton new]; + _mewChangeBtn.yn_acceptEventInterval = 1; + [_mewChangeBtn addTarget:self action:@selector(mew_clickChangeBtnAction) forControlEvents:UIControlEventTouchUpInside]; + + } + return _mewChangeBtn; +} +- (UIView *)mewSelecteBGView{ + if(!_mewSelecteBGView){ + _mewSelecteBGView = [UIView new]; + _mewSelecteBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06); + _mewSelecteBGView.layer.cornerRadius = kGetScaleWidth(22)/2; + _mewSelecteBGView.layer.masksToBounds = YES; + } + return _mewSelecteBGView; +} +- (UILabel *)mewSelecteTextView{ + if(!_mewSelecteTextView){ + _mewSelecteTextView = [UILabel labelInitWithText:@"全部" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)]; + } + return _mewSelecteTextView; +} +-(UIButton *)mewSelecteBtn{ + if(!_mewSelecteBtn){ + _mewSelecteBtn = [UIButton new]; + + [ _mewSelecteBtn addTarget:self action:@selector(mew_clickSelecteBtnAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewSelecteBtn; +} +- (UIImageView *)mewSelecteImage{ + if(!_mewSelecteImage){ + _mewSelecteImage = [UIImageView new]; + _mewSelecteImage.image = kImage(@"mew_main_home_friend_head_selecte"); + } + return _mewSelecteImage; +} +- (UILabel *)mewTitleView{ + if(!_mewTitleView){ + _mewTitleView = [UILabel labelInitWithText:@"玩伴推荐" font:kFontMedium(16) textColor:UIColorFromRGB(0x2B2D33)]; + } + return _mewTitleView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.h new file mode 100644 index 00000000..7bdd7fdf --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.h @@ -0,0 +1,22 @@ +// +// MewMainHomeMoreGameHeadView.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import +#import "MewMainHomeLittleGameInfoModel.h" + +NS_ASSUME_NONNULL_BEGIN +@protocol MewMainHomeMoreGameHeadViewDelegate +///选择游戏 +-(void)mew_selectGameAction:(MewMainHomeLittleGameInfoModel *_Nullable)gameInfo; + +@end +@interface MewMainHomeMoreGameHeadView : UICollectionReusableView +@property(nonatomic,strong) NSMutableArray *mewGameList; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.m new file mode 100644 index 00000000..5864e41d --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomeMoreGameHeadView.m @@ -0,0 +1,71 @@ +// +// MewMainHomeMoreGameHeadView.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMoreGameHeadView.h" +#import "MewMainHomeMoreGameHeadCell.h" +@interface MewMainHomeMoreGameHeadView() +@property(nonatomic,strong) UICollectionView *mewCollectionView; + +@end +@implementation MewMainHomeMoreGameHeadView + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self addSubview:self.mewCollectionView]; +} +-(void)installConstraints{ + [self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} +-(void)setMewGameList:(NSMutableArray *)mewGameList{ + _mewGameList = mewGameList; + [self.mewCollectionView reloadData]; +} +#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.mewGameList.count; +} +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + MewMainHomeMoreGameHeadCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadCell class]) forIndexPath:indexPath]; + cell.gameModel = [self.mewGameList safeObjectAtIndex1:indexPath.row]; + return cell; +} +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + MewMainHomeLittleGameInfoModel *model = [self.mewGameList safeObjectAtIndex1:indexPath.row]; + if(model && self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameAction:)]){ + [self.delegate mew_selectGameAction:model]; + } +} +#pragma mark - 懒加载 +- (UICollectionView *)mewCollectionView{ + if(!_mewCollectionView){ + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; + layout.itemSize = CGSizeMake(kGetScaleWidth(82), kGetScaleWidth(67)); + layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(10), 0, kGetScaleWidth(10)); + layout.minimumLineSpacing = kGetScaleWidth(5); + layout.minimumInteritemSpacing = kGetScaleWidth(5); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + + _mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + _mewCollectionView.delegate = self; + _mewCollectionView.dataSource = self; + _mewCollectionView.showsVerticalScrollIndicator = NO; + _mewCollectionView.showsHorizontalScrollIndicator = NO; + _mewCollectionView.backgroundColor = [UIColor clearColor]; + [_mewCollectionView registerClass:[MewMainHomeMoreGameHeadCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadCell class])]; + } + return _mewCollectionView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m index 1b333fea..e5390af2 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewHomeSubViews/MewMainHomePartyHeadItemView.m @@ -29,6 +29,7 @@ NetImageConfig *config = [[NetImageConfig alloc]init]; config.placeHolder = [UIImageConstant defalutBannerPlaceholder]; NetImageView *imageView = [[NetImageView alloc]initWithConfig:config]; + imageView.backgroundColor = [UIColor clearColor]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBtnAction:)]; [imageView addGestureRecognizer:tap]; imageView.userInteractionEnabled = YES; diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m index 19638b62..28dc32bd 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMakeFriendVC.m @@ -6,31 +6,284 @@ // #import "MewMainHomeMakeFriendVC.h" - -@interface MewMainHomeMakeFriendVC () +#import "XPHomeListEmptyCollectionViewCell.h" +#import "MewMainHomeMakeFriendHeadView.h" +#import "MewHomeManager.h" +#import "MewMainHomeProtocol.h" +#import "MewMainHomeMenuInfoModel.h" +#import "MewMainHomeMakeFriendCell.h" +#import "XPWebViewController.h" +#import "Api+MewHomeApi.h" +#import "MewMainHomeMenuDataModel.h" +#import "XPRoomViewController.h" +#import "RoomInfoModel.h" +#import "Api+Room.h" +#import "XPLittleGameRoomOpenView.h" +#import "XPHomeRecommendOtherRoomView.h" +#import "SessionViewController.h" +#import "XPNewHomeFilterView.h" +#import "CountDownHelper.h" +#import "XPSkillCardPlayerManager.h" +#import "UploadFile.h" +#import "XPMineUserInfoViewController.h" +#import "MewMainHomeMakeFriendEmptyCell.h" +@interface MewMainHomeMakeFriendVC () @property(nonatomic,strong) UICollectionView *mewCollectionView; +@property(nonatomic,strong) NSMutableArray *mewFriendList; +@property(nonatomic,strong) NSMutableArray *mewRecommendList; + + +@property(nonatomic,strong) NSMutableArray *mewTabList; @property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@property(nonatomic,strong) MewMainHomeMenuInfoModel *mewMenuInfo; +@property(nonatomic,strong) MewMainHomeMakeFriendCell *mewPlayCell; +@property(nonatomic,copy) NSString *gameId; +///筛选下标 +@property (nonatomic, assign) NSInteger mewIndex; +@property(nonatomic,assign) BOOL isNoChooseSex; +///性别 +@property (nonatomic,strong) NSString *mewSex; +@property(nonatomic,strong) CountDownHelper *mewDownHelper; + @end @implementation MewMainHomeMakeFriendVC +@synthesize parentMode = _parentMode; +- (MewHomeManager *)createPresenter { + return [[MewHomeManager alloc] init]; +} - (BOOL)isHiddenNavBar { return YES; +} +-(void)viewDidDisappear:(BOOL)animated{ + [super viewDidAppear:animated]; + [self.mewDownHelper stopCountDown]; + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + if(self.mewPlayCell != nil){ + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + self.mewPlayCell = nil; + } + + } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor clearColor]; [self installUI]; [self installConstraints]; + [self headerRefresh]; } -(void)installUI{ - + [self.view addSubview:self.mewCollectionView]; } -(void)installConstraints{ - + [self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; } - (void)headerRefresh{ + if (_parentMode) return; + if(self.mewPlayCell != nil){ + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){ + [self.delegate mew_RefreshDataSucceed:self]; + } + return; + } + [self.presenter mew_requestMainHomeTopDataList]; + [self.presenter mew_requsetMainHomeGameTabList]; + [self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId]; + [self.presenter mew_RequestMainHomeFriendMahoganyList]; +} +/// 刷新数据,可见时才调用 +- (void)mew_RefreshFriendListData { + if (self.isViewLoaded && self.view.window) { + [self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId]; + } +} +#pragma mark- MewMainHomeProtocol +///获取首页轮播图列表成功 +-(void)mew_getHomeTopDataSuccess:(NSArray *)menuList{ + for (MewMainHomeMenuInfoModel *obj in menuList) { + if(obj.posSeq == 5){ + self.mewMenuInfo = obj; + break; + } + } + if(self.mewMenuInfo == nil)return; + if(self.mewPlayCell == nil){ + [self.mewCollectionView reloadData]; + } } +///获取首页轮播图列表失败 +-(void)mew_getHomeTopDataFail{ + +} +/// 发现新朋友成功 +-(void)mew_getNewFriendListSuccess:(NSArray *)list gameId:(nullable NSString *)gameId{ + [self hideHUD]; + self.mewFriendList = [[NSMutableArray alloc]initWithArray:list]; + if(self.mewPlayCell == nil){ + [self.mewCollectionView reloadData]; + } + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){ + [self.delegate mew_RefreshDataSucceed:self]; + } +} +/// 发现新朋友失败 +-(void)mew_getNewFriendListFailWithGameId:(nullable NSString *)gameId{ + [self hideHUD]; + if(self.delegate && [self.delegate respondsToSelector:@selector(mew_RefreshDataSucceed:)]){ + [self.delegate mew_RefreshDataSucceed:self]; + } +} +///大神推荐 +-(void)mew_RequestMainHomeFriendMahoganyListSuccess:(NSArray *)list{ + self.mewRecommendList = [NSMutableArray arrayWithArray:list]; +} +///首页游戏点单分类 +-(void)mew_getMainHomeGameTabList:(NSArray *)list{ + if(self.mewTabList.count == 0){ + self.mewTabList = [NSMutableArray arrayWithArray:list]; + }else{ + MewMainHomeGameTabModel *tabModel; + for (MewMainHomeGameTabModel *obj in self.mewTabList) { + if(obj.isOnClick == YES){ + tabModel = obj; + break; + } + } + if(tabModel){ + for (MewMainHomeGameTabModel *obj in list) { + if([obj.gameId isEqualToString:tabModel.gameId]){ + obj.isOnClick = tabModel.isOnClick; + break; + } + } + } + self.mewTabList = [NSMutableArray arrayWithArray:list]; + } + + if(self.mewPlayCell == nil){ + [self.mewCollectionView reloadData]; + } +} +////// 一键匹配成功 +-(void)mew_getMainHomeFriendChatPickDataSuccess:(NSString *)uid{ + /// 跳聊天 + NSString *sessionId = uid; + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeP2P]; + SessionViewController *sessionVC = [[SessionViewController alloc] initWithSession:session]; + sessionVC.isNOAstrictChat = YES; + [self.navigationController pushViewController:sessionVC animated:YES]; +} +////// 一键匹配失败 +-(void)mew_getMainHomeFriendChatPickDataFail:(NSString *)msg{ + +} +#pragma mark - MewMainHomeMakeFriendHeadViewDelegate +///大神带飞 +-(void)mew_selectGodFlightAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo{ + if (menuInfo.resourceType == MewMainHomeMenuInfoModelType_H5) { + XPWebViewController * webVC = [[ XPWebViewController alloc] init]; + webVC.url = menuInfo.resourceContent; + [self.navigationController pushViewController:webVC animated:YES]; + }else { + NSString * uid = [AccountInfoStorage instance].getUid; + if (menuInfo.hid.length > 0 && uid.length > 0) { + [Api mew_RequestMainHomePickResource:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + MewMainHomeMenuDataModel * sourceModel = [MewMainHomeMenuDataModel modelWithDictionary:data.data]; + if (sourceModel.isPick) { + if([sourceModel.uid isEqualToString:[AccountInfoStorage instance].getUid]){ + [self mew_clickMyRoom:sourceModel.uid]; + return; + } + if (sourceModel.uid.integerValue > 0) { + [XPRoomViewController openRoom:sourceModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } + } else { + XPHomeRecommendOtherRoomView * recommendView = [[XPHomeRecommendOtherRoomView alloc] init]; + recommendView.delegate = self; + recommendView.roomInfo = sourceModel; + [TTPopup popupView:recommendView style:TTPopupStyleAlert]; + } + } else { + [XCHUDTool showErrorWithMessage:msg]; + } + } uid:uid rid:menuInfo.hid type:@"0"]; + } + } +} +///一键匹配 +-(void)mew_selectOneClickMatchingAction:(MewMainHomeMenuInfoModel *_Nullable)menuInfo{ + [self.presenter mew_getMainHomeFriendChatPickData]; +} +///选择游戏 +-(void)mew_selectGameFriendAction:(MewMainHomeGameTabModel *_Nullable)gameInfo type:(MewMainHomeMakeFriendHeadViewType)type sender:(UILabel *_Nullable)sender{ + if(type == MewMainHomeMakeFriendHeadViewTyep_Change){ + [self mew_RefreshFriendListData]; + }else if (type == MewMainHomeMakeFriendHeadViewTyep_Sex){ + XPNewHomeFilterView *filterView = [[XPNewHomeFilterView alloc] init]; + @kWeakify(self); + @kWeakify(sender); + + filterView.selectBlock = ^(NSString *gender, NSString *title, NSInteger index) { + @kStrongify(self); + @kStrongify(sender); + if(index == 404){ + self.isNoChooseSex = YES; + if(self.mewPlayCell == nil){ + [self.mewCollectionView reloadData]; + } + return; + } + sender.text = title; + // 刷新列表 + self.mewSex = gender; + self.mewIndex = index; + [self mew_RefreshFriendListData]; + }; + [filterView addToVCView:self.view targetView:sender selectedIndex:self.mewIndex]; + }else if (type == MewMainHomeMakeFriendHeadViewTyep_Game_Select){ + [self showLoading]; + self.gameId = gameInfo.gameId; + [self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:gameInfo.gameId]; + }else{ + [self showLoading]; + self.gameId = nil; + [self.presenter mew_requestMainHomeNewFriendListWithGender:self.mewSex gameId:self.gameId]; + } +} +///点击了我的房间 +- (void)mew_clickMyRoom:(NSString *)roomUid{ + + [Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data]; + if (roomInfo.isReselect) { + XPLittleGameRoomOpenView * roomOpenView = [[XPLittleGameRoomOpenView alloc] init]; + roomOpenView.roomInfo = roomInfo; + roomOpenView.currentVC = self; + [TTPopup popupView:roomOpenView style:TTPopupStyleActionSheet]; + } else { + [XPRoomViewController openRoom:roomUid viewController:self]; + } + } else { + [self showErrorToast:msg]; + } + } uid:roomUid intoUid:roomUid]; +} +#pragma mark - XPHomeRecommendOtherRoomViewDelegate +- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(MewMainHomeMenuDataModel *)model { + if (model.uid.integerValue > 0) { + if([model.uid isEqualToString:[AccountInfoStorage instance].getUid]){ + [self mew_clickMyRoom:model.uid]; + return; + } + [XPRoomViewController openRoom:model.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } +} #pragma mark - JXPagingViewListViewDelegate - (UIView *)listView { return self.view; @@ -45,10 +298,204 @@ } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if(self.mewPlayCell != nil){ + BOOL isVisible = YES; + + + CGRect cellR = [self.mewCollectionView convertRect:self.mewPlayCell.frame toView:self.mewCollectionView]; + if((self.mewCollectionView.contentOffset.y - (cellR.origin.y)) > cellR.size.height){ + isVisible = NO; + } + if (cellR.origin.y - self.mewCollectionView.contentOffset.y > self.mewCollectionView.frame.size.height) {//下滑的情况 + isVisible = NO; + } + if(!isVisible && [self.mewPlayCell isKindOfClass:[MewMainHomeMakeFriendCell class]]) { + [self.mewDownHelper stopCountDown]; + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + self.mewPlayCell = nil; + } + } if(self.scrollCallback){ self.scrollCallback(scrollView); } +} + +#pragma mark - MewMainHomeMakeFriendCellDelegate +///点击播放声音 +-(void)mew_clickPlayVoiceActionWithCell:(MewMainHomeMakeFriendCell *)cell model:(MewMainHomeMakeFriendModel *)model isPlay:(BOOL)isPlay{ + if(isPlay == YES){ + if(self.mewPlayCell != nil){ + [self.mewDownHelper stopCountDown]; + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + self.mewPlayCell = nil; + } + self.mewPlayCell = cell; + + + NSString *fileName = [[model.playUrl componentsSeparatedByString:@"/"] lastObject]; + NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) safeObjectAtIndex1:0] stringByAppendingPathComponent:@"kMewMainHomeVoiceCard"]; + NSString *fullPath = [filePath stringByAppendingPathComponent:fileName]; + if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) { + [self mew_setplayAudioWithUrl:fullPath ]; + }else{ + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) { + NSFileManager *fileMgr = [[NSFileManager alloc] init]; + [fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil]; + } + [UploadFile mew_downloadAudioWithFileName:fileName musicUrl:model.playUrl mainFileName:@"kMewMainHomeVoiceCard" completion:^(BOOL isSuccess, NSString *editAudioPath) { + if(isSuccess){ + [self mew_setplayAudioWithUrl:editAudioPath]; + + }else{ + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + self.mewPlayCell = nil; + } + }]; + } + }else{ + [self.mewDownHelper stopCountDown]; + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + self.mewPlayCell = nil; + } +} +/// 播放录音 +/// - Parameters: +/// - url: 录音链接 +/// - isDelay: 是否延时0.5秒播放录音,因为如果在麦上的话,需要先关麦再播放,所以要延时0.5秒来关麦后再播放,不然会没声音 +-(void)mew_setplayAudioWithUrl:(NSString*)url { + NSInteger getCurrentTime = ceil([self.mewPlayCell.friendModel.playTime integerValue]); + [self.mewDownHelper openCountdownWithTime:(int)getCurrentTime]; + [[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:url completionBlock:^{ + [[XPSkillCardPlayerManager shareInstance] stopMusic]; + }]; +} +///点击房间 +-(void)mew_clickRoomBtnActionWithModel:(MewMainHomeMakeFriendModel *)model{ + if(model.lock == 1)return; + if (model.inRoomUid.length > 0) { + if (model.inMic) { + [XPRoomViewController openRoom:model.inRoomUid fromNick:model.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%@",model.uid] viewController:self]; + }else{ + [XPRoomViewController openRoom:model.inRoomUid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } + } +} +///点击头像 +-(void)mew_clickAvatarBtnActionWithModel:(MewMainHomeMakeFriendModel *)model{ + + XPMineUserInfoViewController *userInfoVC = [XPMineUserInfoViewController new]; + userInfoVC.uid = [model.uid integerValue]; + [self.navigationController pushViewController:userInfoVC animated:YES]; +} +#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + if(self.gameId != nil && self.mewFriendList.count == 0){ + return self.mewRecommendList.count + 1; + } + return self.mewFriendList.count > 0 ? self.mewFriendList.count : 1; +} +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{ + + return CGSizeMake(0, kGetScaleWidth(206)); +} +-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ + if(self.gameId != nil && self.mewFriendList.count == 0){ + return indexPath.row == 0 ? CGSizeMake(KScreenWidth, 255):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184)); + } + return self.mewFriendList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(184)); +} +- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath +{ + if(kind == UICollectionElementKindSectionHeader){ + MewMainHomeMakeFriendHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader + withReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadView class]) forIndexPath:indexPath]; + headView.mewMeunInfo = self.mewMenuInfo; + headView.mewGameList = self.mewTabList; + headView.delegate = self; + + return headView; + } + + + + return nil; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + + + if(self.gameId != nil && self.mewFriendList.count == 0){ + if(indexPath.row == 0){ + MewMainHomeMakeFriendEmptyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendEmptyCell class]) forIndexPath:indexPath]; + + return cell; + } + + MewMainHomeMakeFriendCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class]) forIndexPath:indexPath]; + cell.friendModel = [self.mewRecommendList safeObjectAtIndex1:indexPath.row]; + cell.delegate = self; + return cell; + } + + if(self.mewFriendList.count == 0){ + XPHomeListEmptyCollectionViewCell * emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class]) forIndexPath:indexPath]; + return emptyCell; + } + MewMainHomeMakeFriendCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class]) forIndexPath:indexPath]; + cell.friendModel = [self.mewFriendList safeObjectAtIndex1:indexPath.row]; + cell.delegate = self; + return cell; +} + +#pragma mark - CountDownHelperDelegate +///倒计时结束 +- (void)onCountdownFinish{ + if(self.mewPlayCell != nil){ + [self.mewPlayCell mew_setPlayVoiceTime:0]; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + [self.mewPlayCell mew_setPlayVoiceStatus:NO]; + self.mewPlayCell = nil; + }); + } +} +///倒计时进行 +- (void)onCountdownOpen:(int)time{ + if(self.mewPlayCell != nil){ + [self.mewPlayCell mew_setPlayVoiceTime:(int)time + 1]; + } + } #pragma mark - 懒加载 +- (UICollectionView *)mewCollectionView{ + if(!_mewCollectionView){ + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; + + layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15)); + layout.minimumLineSpacing = kGetScaleWidth(8); + layout.minimumInteritemSpacing = kGetScaleWidth(8); + _mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + _mewCollectionView.backgroundColor = [UIColor clearColor]; + _mewCollectionView.delegate = self; + _mewCollectionView.dataSource = self; + + [_mewCollectionView registerClass:[XPHomeListEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class])]; + [_mewCollectionView registerClass:[MewMainHomeMakeFriendHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadView class])]; + [_mewCollectionView registerClass:[MewMainHomeMakeFriendCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendCell class])]; + [_mewCollectionView registerClass:[MewMainHomeMakeFriendEmptyCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendEmptyCell class])]; + + } + return _mewCollectionView; +} +- (CountDownHelper *)mewDownHelper{ + if(!_mewDownHelper){ + _mewDownHelper = [[CountDownHelper alloc]init]; + _mewDownHelper.delegate = self; + } + return _mewDownHelper; +} @end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.h b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.h new file mode 100644 index 00000000..0cd28a5e --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.h @@ -0,0 +1,16 @@ +// +// MewMainHomeMoreGameVC.h +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MvpViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MewMainHomeMoreGameVC : MvpViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.m new file mode 100644 index 00000000..09e5b88c --- /dev/null +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeMoreGameVC.m @@ -0,0 +1,218 @@ +// +// MewMainHomeMoreGameVC.m +// xplan-ios +// +// Created by duoban on 2023/12/25. +// + +#import "MewMainHomeMoreGameVC.h" +#import "MewMainHomeMoreGameCell.h" +#import "XPHomeListEmptyCollectionViewCell.h" +#import "MewMainHomeMoreGameHeadView.h" +#import "MewHomeManager.h" +#import "Api+Room.h" +#import "Api+MewHomeApi.h" +#import "MewMainHomeMenuDataModel.h" +#import "XPRoomViewController.h" +#import "XPLittleGameRoomOpenView.h" +#import "XPHomeRecommendOtherRoomView.h" +@interface MewMainHomeMoreGameVC () +@property(nonatomic,strong) UIButton *mewBackBtn; +@property(nonatomic,strong) UIImageView *mewBgImageView; +@property(nonatomic,strong) UICollectionView *mewCollectionView; +@property(nonatomic,strong) NSMutableArray *mewGameList; +@property(nonatomic,strong) NSMutableArray *mewRoomList; +@end + +@implementation MewMainHomeMoreGameVC +- (MewHomeManager *)createPresenter { + return [[MewHomeManager alloc] init]; +} +- (BOOL)isHiddenNavBar { + return YES; +} +-(void)mew_dissViewAction{ + [self.navigationController popViewControllerAnimated:YES]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self installUI]; + [self installConstraints]; + [self mew_headerRefresh]; +} +-(void)installUI{ + [self.view addSubview:self.mewBgImageView]; + [self.view addSubview:self.mewBackBtn]; + [self.view addSubview:self.mewCollectionView]; +} + +-(void)mew_headerRefresh{ + [self.presenter mew_getMainHomeLittleGameList]; + [self.presenter mew_getMainHomeGameFriendList]; +} +-(void)installConstraints{ + [self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.equalTo(self.view); + make.height.mas_equalTo(kGetScaleWidth(250)); + }]; + [self.mewBackBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(kGetScaleWidth(16)); + make.width.height.mas_equalTo(18); + make.top.mas_equalTo(kStatusBarHeight+13); + }]; + [self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.trailing.bottom.equalTo(self.view); + make.top.mas_equalTo(kNavigationHeight); + }]; +} +///得到小游戏列表成功 +-(void)mew_getMainHomeLittleGameListSuccess:(NSArray *)list{ + self.mewGameList = [NSMutableArray arrayWithArray:list]; + MewMainHomeLittleGameInfoModel *gameInfo = [MewMainHomeLittleGameInfoModel new]; + gameInfo.mgId = @"-9999"; + [self.mewGameList addObject:gameInfo]; + [self.mewCollectionView reloadData]; +} +///获取游戏列表用户成功 +-(void)mew_getMainHomeGameFriendListSuccess:(NSArray *)list{ + self.mewRoomList = [NSMutableArray arrayWithArray:list]; + [self.mewCollectionView reloadData]; +} +#pragma mark - MewMainHomeMoreGameHeadViewDelegate +- (void)mew_selectGameAction:(MewMainHomeLittleGameInfoModel *)gameInfo{ + NSString * uid = [AccountInfoStorage instance].getUid; + if (gameInfo.mgId.length > 0 && uid.length > 0) { + [Api mew_RequestMainHomePickResource:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + MewMainHomeMenuDataModel * sourceModel = [MewMainHomeMenuDataModel modelWithDictionary:data.data]; + if (sourceModel.isPick) { + if([sourceModel.uid isEqualToString:[AccountInfoStorage instance].getUid]){ + [self mew_clickMyRoom:sourceModel.uid]; + return; + } + if (sourceModel.uid.integerValue > 0) { + [XPRoomViewController openRoom:sourceModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } + } else { + XPHomeRecommendOtherRoomView * recommendView = [[XPHomeRecommendOtherRoomView alloc] init]; + recommendView.delegate = self; + recommendView.roomInfo = sourceModel; + [TTPopup popupView:recommendView style:TTPopupStyleAlert]; + } + } else { + [XCHUDTool showErrorWithMessage:msg]; + } + } uid:uid rid:gameInfo.mgId type:[gameInfo.mgId isEqualToString:@"-9999"] ? @"1":@"2"] ; + } +} +#pragma mark - XPHomeRecommendOtherRoomViewDelegate +- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(MewMainHomeMenuDataModel *)model { + if (model.uid.integerValue > 0) { + if([model.uid isEqualToString:[AccountInfoStorage instance].getUid]){ + [self mew_clickMyRoom:model.uid]; + return; + } + [XPRoomViewController openRoom:model.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self]; + } +} +///点击了我的房间 +- (void)mew_clickMyRoom:(NSString *)roomUid{ + + [Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data]; + if (roomInfo.isReselect) { + XPLittleGameRoomOpenView * roomOpenView = [[XPLittleGameRoomOpenView alloc] init]; + roomOpenView.roomInfo = roomInfo; + roomOpenView.currentVC = self; + [TTPopup popupView:roomOpenView style:TTPopupStyleActionSheet]; + } else { + [XPRoomViewController openRoom:roomUid viewController:self]; + } + } else { + [self showErrorToast:msg]; + } + } uid:roomUid intoUid:roomUid]; +} +#pragma mark - UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.mewRoomList.count > 0 ? self.mewRoomList.count : 1; +} +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{ + + return CGSizeMake(0, kGetScaleWidth(67)); +} +-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ + return self.mewRoomList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(148)); +} +- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath +{ + if(kind == UICollectionElementKindSectionHeader){ + MewMainHomeMoreGameHeadView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader + withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class]) forIndexPath:indexPath]; + + headView.mewGameList = self.mewGameList; + headView.delegate = self; + + return headView; + } + + + + return nil; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if(self.mewRoomList.count == 0){ + XPHomeListEmptyCollectionViewCell * emptyCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class]) forIndexPath:indexPath]; + return emptyCell; + } + MewMainHomeMoreGameCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class]) forIndexPath:indexPath]; + cell.moreGameModel = [self.mewRoomList safeObjectAtIndex1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if(self.mewRoomList.count == 0)return; + MewMainHomeHotRoomModel *roomModel = [self.mewRoomList safeObjectAtIndex1:indexPath.row]; + [XPRoomViewController openRoom:roomModel.uid viewController:self]; + + +} +#pragma mark - 懒加载 +- (UIButton *)mewBackBtn{ + if(!_mewBackBtn){ + _mewBackBtn = [UIButton new]; + [_mewBackBtn setImage:kImage(@"mew_mainHome_more_game_back") forState:UIControlStateNormal]; + [_mewBackBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10]; + [_mewBackBtn addTarget:self action:@selector(mew_dissViewAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _mewBackBtn; +} +- (UICollectionView *)mewCollectionView{ + if(!_mewCollectionView){ + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; + + layout.sectionInset = UIEdgeInsetsMake(kGetScaleWidth(16), kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15)); + layout.minimumLineSpacing = kGetScaleWidth(8); + layout.minimumInteritemSpacing = kGetScaleWidth(8); + _mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + _mewCollectionView.backgroundColor = [UIColor clearColor]; + _mewCollectionView.delegate = self; + _mewCollectionView.dataSource = self; + + [_mewCollectionView registerClass:[XPHomeListEmptyCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([XPHomeListEmptyCollectionViewCell class])]; + [_mewCollectionView registerClass:[MewMainHomeMoreGameHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameHeadView class])]; + [_mewCollectionView registerClass:[MewMainHomeMoreGameCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMoreGameCell class])]; + + + } + return _mewCollectionView; +} +- (UIImageView *)mewBgImageView{ + if(!_mewBgImageView){ + _mewBgImageView = [UIImageView new]; + _mewBgImageView.image = kImage(@"mew_home_top_bg_image"); + } + return _mewBgImageView; +} +@end diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m index 71f568e4..b7a6acae 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomePartyVC.m @@ -18,6 +18,7 @@ #import "XPHomeRecommendOtherRoomView.h" #import "Api+Room.h" #import "XPLittleGameRoomOpenView.h" +#import "MewMainHomeMoreGameVC.h" @interface MewMainHomePartyVC () @property(nonatomic,strong) UICollectionView *mewCollectionView; @property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); @@ -135,7 +136,8 @@ if(info.isMorn == YES){ - + MewMainHomeMoreGameVC *moreGameVC = [MewMainHomeMoreGameVC new]; + [self.navigationController pushViewController:moreGameVC animated:YES]; return; } @@ -166,7 +168,7 @@ } else { [XCHUDTool showErrorWithMessage:msg]; } - } uid:uid rid:info.hid]; + } uid:uid rid:info.hid type:@"0"]; } } } @@ -228,7 +230,7 @@ return CGSizeMake(0, kGetScaleWidth(341)); } -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ - return self.mewDataList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(164)); + return self.mewDataList.count == 0 ? CGSizeMake(KScreenWidth, 150):CGSizeMake(kGetScaleWidth(172), kGetScaleWidth(174)); } - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { @@ -266,9 +268,9 @@ if(!_mewCollectionView){ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; - layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(15), kGetScaleWidth(15), kGetScaleWidth(15)); + layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(11), kGetScaleWidth(15), kGetScaleWidth(11)); layout.minimumLineSpacing = kGetScaleWidth(8); - layout.minimumInteritemSpacing = kGetScaleWidth(8); + layout.minimumInteritemSpacing = kGetScaleWidth(4); _mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; _mewCollectionView.backgroundColor = [UIColor clearColor]; _mewCollectionView.delegate = self; diff --git a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeViewController.m b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeViewController.m index 50bb1938..074c604b 100644 --- a/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeViewController.m +++ b/xplan-ios/Main/Home/View/Mew/MewHomeView/MewMainHomeViewController.m @@ -93,6 +93,7 @@ [self mew_headerRefresh]; } -(void)installUI{ + self.view.backgroundColor = UIColorFromRGB(0xF5F5F7); [self.view addSubview:self.mewBgImageView]; [self.view addSubview:self.mewStackView]; [self.view addSubview:self.mewPagingView]; diff --git a/xplan-ios/Main/Home/View/XPNewHomeFilterView.m b/xplan-ios/Main/Home/View/XPNewHomeFilterView.m index d215b68d..d3d59922 100644 --- a/xplan-ios/Main/Home/View/XPNewHomeFilterView.m +++ b/xplan-ios/Main/Home/View/XPNewHomeFilterView.m @@ -114,6 +114,9 @@ /// 点击消失 - (void)bgTap:(UITapGestureRecognizer *)tap { [self dismiss]; + if (self.selectBlock) { + self.selectBlock(@"", @"", 404); + } } - (void)dismiss { diff --git a/xplan-ios/Main/Message/View/Session/SessionViewController.h b/xplan-ios/Main/Message/View/Session/SessionViewController.h index 80d18475..f2dd0217 100644 --- a/xplan-ios/Main/Message/View/Session/SessionViewController.h +++ b/xplan-ios/Main/Message/View/Session/SessionViewController.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN @interface SessionViewController : MvpViewController +@property(nonatomic,assign) BOOL isNOAstrictChat; @property (nonatomic, strong,readonly) NIMSession * session; @property(nonatomic,assign) BOOL isFormGame; @property (nonatomic, assign) SessionListOpenType openType; diff --git a/xplan-ios/Main/Message/View/Session/SessionViewController.m b/xplan-ios/Main/Message/View/Session/SessionViewController.m index 24957641..893a99c3 100644 --- a/xplan-ios/Main/Message/View/Session/SessionViewController.m +++ b/xplan-ios/Main/Message/View/Session/SessionViewController.m @@ -348,7 +348,9 @@ }else{ chatDisabled = !chatLimit.chat && self.messages.count <= 0; } - + if(self.isNOAstrictChat == YES){ + chatDisabled = NO; + } if (chatDisabled) { SessionChatLimitView *chatLimitView = [[SessionChatLimitView alloc] initWithChatLimit:chatLimit]; self.sessionTableView.tableHeaderView = chatLimitView; diff --git a/xplan-ios/Main/Monents/View/XPMonentsPublishViewController.m b/xplan-ios/Main/Monents/View/XPMonentsPublishViewController.m index efa0c46e..e1fb2dc9 100644 --- a/xplan-ios/Main/Monents/View/XPMonentsPublishViewController.m +++ b/xplan-ios/Main/Monents/View/XPMonentsPublishViewController.m @@ -327,9 +327,11 @@ self.isEdited = NO; } NSArray * array; - if (self.datasource.count < 9 && self.datasource.count > 1) { - array = [self.datasource subarrayWithRange:NSMakeRange(0, self.datasource.count - 1)]; - } + if([self.datasource containsObject:self.addPicImage] && self.datasource.count > 1){ + array = [self.datasource subarrayWithRange:NSMakeRange(0, self.datasource.count - 1)]; + }else if(![self.datasource containsObject:self.addPicImage] && self.datasource.count == 9){ + array = self.datasource; + } self.uploadImageList = array; } diff --git a/xplan-ios/Sources/kMewMainHomePlayVoice.svga b/xplan-ios/Sources/kMewMainHomePlayVoice.svga new file mode 100644 index 00000000..741c259d Binary files /dev/null and b/xplan-ios/Sources/kMewMainHomePlayVoice.svga differ