Compare commits

...

16 Commits

Author SHA1 Message Date
QQQ
cfaa21a860 完善方法,log 和注释。 2024-05-20 14:34:28 +08:00
QQQ
03fd39eff5 尝试另一种方式的批量下载 2024-05-17 20:02:24 +08:00
QQQ
569d0d5c02 增加读取 AccountInfo 时的判断,优化方法效率 2024-05-17 15:34:20 +08:00
liyuhua
d22d0aa9fe 1.UI修改
2.修复bug
2024-05-17 11:27:36 +08:00
liyuhua
b96f270acf 修复bug 2024-05-16 14:30:21 +08:00
liyuhua
1723782767 礼物动效缓存 2024-05-15 17:35:51 +08:00
liyuhua
e47967a1e6 修复bug 2024-05-15 09:54:15 +08:00
liyuhua
5361829007 molistar商店包版本修改 此commit置顶 1.0.5 2024-05-14 11:13:15 +08:00
liyuhua
5ab41af5ab molistar商店包版本修改 此commit置顶 1.0.5 2024-05-13 18:19:31 +08:00
liyuhua
92cb2b6af0 修复聊天大厅bug 2024-05-11 19:41:16 +08:00
liyuhua
f16b7a9bb2 修复聊天大厅bug 2024-05-11 19:41:06 +08:00
liyuhua
e05876be41 房间内公聊大厅 2024-05-11 10:21:48 +08:00
liyuhua
8d78cb6be5 聊天大厅接口对接 2024-05-10 14:12:47 +08:00
liyuhua
ace27b7e91 公聊大厅 2024-05-07 19:40:21 +08:00
liyuhua
3be0f8bc74 新增游戏 2024-04-30 19:30:11 +08:00
liyuhua
adabc08d07 修复bug 2024-04-28 11:41:57 +08:00
211 changed files with 8045 additions and 1211 deletions

View File

@@ -150,6 +150,10 @@
23194DD12AD14BF000649F51 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DC92AD14BF000649F51 /* DDAbstractDatabaseLogger.m */; };
23194DD22AD14BF000649F51 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DCA2AD14BF000649F51 /* DDFileLogger.m */; };
23194DD52AD292F200649F51 /* PIPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DD42AD292F200649F51 /* PIPageControl.m */; };
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */; };
2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */; };
2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */; };
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */; };
2323E0372ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */; };
232C43EA2AB15F4100D4B2ED /* XPRoomTarrowBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 232C43E92AB15F4100D4B2ED /* XPRoomTarrowBannerView.m */; };
232C43EC2AB169EC00D4B2ED /* pi_room_tarrow_banner.svga in Resources */ = {isa = PBXBuildFile; fileRef = 232C43EB2AB169EB00D4B2ED /* pi_room_tarrow_banner.svga */; };
@@ -207,7 +211,29 @@
234489082AC3C5DA0070E5D5 /* SudMGP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 234489072AC3C5DA0070E5D5 /* SudMGP.framework */; };
234489092AC3C5FF0070E5D5 /* SudMGP.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 234489072AC3C5DA0070E5D5 /* SudMGP.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
234D821E2AEC57CF0022EFEB /* YYTextAsyncLayer+PITextAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 234D821D2AEC57CF0022EFEB /* YYTextAsyncLayer+PITextAsyncLayer.m */; };
234E50A52BF5E556005CB6D5 /* MessageContentChatHallHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 234E50A42BF5E556005CB6D5 /* MessageContentChatHallHeadView.m */; };
234E50A82BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 234E50A72BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.m */; };
234E50AB2BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 234E50AA2BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.m */; };
234F44E32B3EA4F900E2B532 /* PILineManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 234F44E22B3EA4F900E2B532 /* PILineManager.swift */; };
2357145A2BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714592BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.m */; };
235714602BE8BD5C004C81D6 /* MSSessionScrollingModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357145F2BE8BD5C004C81D6 /* MSSessionScrollingModel.m */; };
235714672BE8C009004C81D6 /* MSSessionScrollingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714662BE8C009004C81D6 /* MSSessionScrollingView.m */; };
2357146B2BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357146A2BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.m */; };
2357146E2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357146D2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.m */; };
235714712BEB97BD004C81D6 /* MSSessionScrollingItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714702BEB97BD004C81D6 /* MSSessionScrollingItemView.m */; };
235714742BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714732BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.m */; };
235714772BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714762BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.m */; };
2357147A2BECA102004C81D6 /* MessageHeadlinesModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714792BECA102004C81D6 /* MessageHeadlinesModel.m */; };
235714802BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357147F2BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.m */; };
235714892BECC38F004C81D6 /* MessageHeadlinesTextModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714882BECC38F004C81D6 /* MessageHeadlinesTextModel.m */; };
2357148C2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357148B2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.m */; };
2357148F2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357148E2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m */; };
235714922BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714912BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.m */; };
235714952BEDF517004C81D6 /* MsRoomMessagChatHallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714942BEDF517004C81D6 /* MsRoomMessagChatHallView.m */; };
235714982BEDF54E004C81D6 /* MsRoomMessageMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714972BEDF54E004C81D6 /* MsRoomMessageMainView.m */; };
2357149B2BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357149A2BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.m */; };
2357149E2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2357149D2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.m */; };
235714A12BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 235714A02BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.m */; };
235A451A2B04A352009753F5 /* PIRoomActivityWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 235A45192B04A352009753F5 /* PIRoomActivityWebView.m */; };
235A451D2B04A452009753F5 /* PIRoomActivityWebCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 235A451C2B04A452009753F5 /* PIRoomActivityWebCell.m */; };
235A45232B04BEB6009753F5 /* PIBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 235A45222B04BEB6009753F5 /* PIBaseModel.m */; };
@@ -341,6 +367,7 @@
239BEEDB2AA1E058005CDA94 /* PIHoemCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239BEEDA2AA1E058005CDA94 /* PIHoemCategoryTitleView.m */; };
23A03F2D2B4408CD0094227A /* pi_room_lucky_gift.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23A03F2C2B4408CD0094227A /* pi_room_lucky_gift.svga */; };
23A439742AA1CF7C002E6039 /* XPNewHomeHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A439732AA1CF7C002E6039 /* XPNewHomeHeadView.m */; };
23A7FB692BDDEDFA00411860 /* MSRoomGameWebVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A7FB682BDDEDFA00411860 /* MSRoomGameWebVC.m */; };
23B2AEC12A64E9C200543D17 /* LoginForgetEditView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */; };
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */; };
23B8D8D82B85F8B900CA472F /* PIHoemCategoryTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B8D8D72B85F8B900CA472F /* PIHoemCategoryTitleCell.m */; };
@@ -608,6 +635,7 @@
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE0D8D2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m */; };
9BFE0D922899042600F53C24 /* XPTaskCompleteTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE0D912899042600F53C24 /* XPTaskCompleteTipView.m */; };
9BFE992E288142FD009DA429 /* RoomClassifyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE992D288142FD009DA429 /* RoomClassifyModel.m */; };
9D63AAD32BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D63AAD22BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.m */; };
E801274027E323C800BAC3F2 /* XPRoomPKViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E801273F27E323C800BAC3F2 /* XPRoomPKViewController.m */; };
E801274327E323E500BAC3F2 /* XPRoomPKPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274227E323E500BAC3F2 /* XPRoomPKPresenter.m */; };
E801274727E3241700BAC3F2 /* Api+RoomPK.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274627E3241700BAC3F2 /* Api+RoomPK.m */; };
@@ -1798,6 +1826,14 @@
23194DCB2AD14BF000649F51 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDASLLogger.h; sourceTree = "<group>"; };
23194DD32AD292F200649F51 /* PIPageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIPageControl.h; sourceTree = "<group>"; };
23194DD42AD292F200649F51 /* PIPageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIPageControl.m; sourceTree = "<group>"; };
2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameView.h; sourceTree = "<group>"; };
2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameView.m; sourceTree = "<group>"; };
2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameCell.h; sourceTree = "<group>"; };
2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameCell.m; sourceTree = "<group>"; };
2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameVC.h; sourceTree = "<group>"; };
2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameVC.m; sourceTree = "<group>"; };
2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameEmptyCell.h; sourceTree = "<group>"; };
2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameEmptyCell.m; sourceTree = "<group>"; };
2323E0352ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "FBSDKSettings+PISDKSettings.h"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.h"; sourceTree = SOURCE_ROOT; };
2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "FBSDKSettings+PISDKSettings.m"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.m"; sourceTree = SOURCE_ROOT; };
232C43E82AB15F4100D4B2ED /* XPRoomTarrowBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTarrowBannerView.h; sourceTree = "<group>"; };
@@ -1910,7 +1946,51 @@
234489072AC3C5DA0070E5D5 /* SudMGP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SudMGP.framework; sourceTree = "<group>"; };
234D821C2AEC57CF0022EFEB /* YYTextAsyncLayer+PITextAsyncLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "YYTextAsyncLayer+PITextAsyncLayer.h"; path = "YuMi/Appdelegate/YYTextAsyncLayer+PITextAsyncLayer.h"; sourceTree = SOURCE_ROOT; };
234D821D2AEC57CF0022EFEB /* YYTextAsyncLayer+PITextAsyncLayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "YYTextAsyncLayer+PITextAsyncLayer.m"; path = "YuMi/Appdelegate/YYTextAsyncLayer+PITextAsyncLayer.m"; sourceTree = SOURCE_ROOT; };
234E50A32BF5E556005CB6D5 /* MessageContentChatHallHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentChatHallHeadView.h; sourceTree = "<group>"; };
234E50A42BF5E556005CB6D5 /* MessageContentChatHallHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageContentChatHallHeadView.m; sourceTree = "<group>"; };
234E50A62BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHalRightTextCell.h; sourceTree = "<group>"; };
234E50A72BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHalRightTextCell.m; sourceTree = "<group>"; };
234E50A92BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHalIRightmageCell.h; sourceTree = "<group>"; };
234E50AA2BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHalIRightmageCell.m; sourceTree = "<group>"; };
234F44E22B3EA4F900E2B532 /* PILineManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PILineManager.swift; sourceTree = "<group>"; };
235714582BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHallVC.h; sourceTree = "<group>"; };
235714592BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHallVC.m; sourceTree = "<group>"; };
2357145E2BE8BD5C004C81D6 /* MSSessionScrollingModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionScrollingModel.h; sourceTree = "<group>"; };
2357145F2BE8BD5C004C81D6 /* MSSessionScrollingModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionScrollingModel.m; sourceTree = "<group>"; };
235714652BE8C009004C81D6 /* MSSessionScrollingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionScrollingView.h; sourceTree = "<group>"; };
235714662BE8C009004C81D6 /* MSSessionScrollingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionScrollingView.m; sourceTree = "<group>"; };
235714692BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHallTopModel.h; sourceTree = "<group>"; };
2357146A2BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHallTopModel.m; sourceTree = "<group>"; };
2357146C2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHallHeadView.h; sourceTree = "<group>"; };
2357146D2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHallHeadView.m; sourceTree = "<group>"; };
2357146F2BEB97BD004C81D6 /* MSSessionScrollingItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionScrollingItemView.h; sourceTree = "<group>"; };
235714702BEB97BD004C81D6 /* MSSessionScrollingItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionScrollingItemView.m; sourceTree = "<group>"; };
235714722BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionReleaseHeadlinesView.h; sourceTree = "<group>"; };
235714732BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionReleaseHeadlinesView.m; sourceTree = "<group>"; };
235714752BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionContextHeadlinesView.h; sourceTree = "<group>"; };
235714762BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionContextHeadlinesView.m; sourceTree = "<group>"; };
235714782BECA102004C81D6 /* MessageHeadlinesModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageHeadlinesModel.h; sourceTree = "<group>"; };
235714792BECA102004C81D6 /* MessageHeadlinesModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageHeadlinesModel.m; sourceTree = "<group>"; };
2357147E2BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionReleaseHeadlinesPayView.h; sourceTree = "<group>"; };
2357147F2BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionReleaseHeadlinesPayView.m; sourceTree = "<group>"; };
235714872BECC38F004C81D6 /* MessageHeadlinesTextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageHeadlinesTextModel.h; sourceTree = "<group>"; };
235714882BECC38F004C81D6 /* MessageHeadlinesTextModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageHeadlinesTextModel.m; sourceTree = "<group>"; };
2357148A2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHalTextCell.h; sourceTree = "<group>"; };
2357148B2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHalTextCell.m; sourceTree = "<group>"; };
2357148D2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHalImageCell.h; sourceTree = "<group>"; };
2357148E2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHalImageCell.m; sourceTree = "<group>"; };
235714902BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionPublicChatHalImageModel.h; sourceTree = "<group>"; };
235714912BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionPublicChatHalImageModel.m; sourceTree = "<group>"; };
235714932BEDF517004C81D6 /* MsRoomMessagChatHallView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MsRoomMessagChatHallView.h; sourceTree = "<group>"; };
235714942BEDF517004C81D6 /* MsRoomMessagChatHallView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MsRoomMessagChatHallView.m; sourceTree = "<group>"; };
235714962BEDF54E004C81D6 /* MsRoomMessageMainView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MsRoomMessageMainView.h; sourceTree = "<group>"; };
235714972BEDF54E004C81D6 /* MsRoomMessageMainView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MsRoomMessageMainView.m; sourceTree = "<group>"; };
235714992BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MsRoomMessagChatHallCell.h; sourceTree = "<group>"; };
2357149A2BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MsRoomMessagChatHallCell.m; sourceTree = "<group>"; };
2357149C2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionScrollingItemCell.h; sourceTree = "<group>"; };
2357149D2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionScrollingItemCell.m; sourceTree = "<group>"; };
2357149F2BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSSessionScrollingItemFlowLayout.h; sourceTree = "<group>"; };
235714A02BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSSessionScrollingItemFlowLayout.m; sourceTree = "<group>"; };
235A45182B04A352009753F5 /* PIRoomActivityWebView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIRoomActivityWebView.h; sourceTree = "<group>"; };
235A45192B04A352009753F5 /* PIRoomActivityWebView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIRoomActivityWebView.m; sourceTree = "<group>"; };
235A451B2B04A452009753F5 /* PIRoomActivityWebCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIRoomActivityWebCell.h; sourceTree = "<group>"; };
@@ -2167,6 +2247,8 @@
23A03F2C2B4408CD0094227A /* pi_room_lucky_gift.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = pi_room_lucky_gift.svga; sourceTree = "<group>"; };
23A439722AA1CF7C002E6039 /* XPNewHomeHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomeHeadView.h; sourceTree = "<group>"; };
23A439732AA1CF7C002E6039 /* XPNewHomeHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomeHeadView.m; sourceTree = "<group>"; };
23A7FB672BDDEDFA00411860 /* MSRoomGameWebVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomGameWebVC.h; sourceTree = "<group>"; };
23A7FB682BDDEDFA00411860 /* MSRoomGameWebVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomGameWebVC.m; sourceTree = "<group>"; };
23B2AEBF2A64E9C200543D17 /* LoginForgetEditView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginForgetEditView.h; sourceTree = "<group>"; };
23B2AEC02A64E9C200543D17 /* LoginForgetEditView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginForgetEditView.m; sourceTree = "<group>"; };
23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginForgetPasswordViewController.m; sourceTree = "<group>"; };
@@ -2692,6 +2774,8 @@
9BFE0D912899042600F53C24 /* XPTaskCompleteTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPTaskCompleteTipView.m; sourceTree = "<group>"; };
9BFE992C288142FD009DA429 /* RoomClassifyModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomClassifyModel.h; sourceTree = "<group>"; };
9BFE992D288142FD009DA429 /* RoomClassifyModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomClassifyModel.m; sourceTree = "<group>"; };
9D63AAD12BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TabbarViewController+TabbarViewController_AnimationFileCache.h"; sourceTree = "<group>"; };
9D63AAD22BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "TabbarViewController+TabbarViewController_AnimationFileCache.m"; sourceTree = "<group>"; };
B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.release.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.release.xcconfig"; sourceTree = "<group>"; };
CACF623970097D653132D69A /* Pods_YuMi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_YuMi.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E801273E27E323C800BAC3F2 /* XPRoomPKViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKViewController.h; sourceTree = "<group>"; };
@@ -4453,6 +4537,8 @@
E80E09AC2A41336500CD2BE7 /* XPWebViewNavView.m */,
18E7B33026F317A20064BC9B /* XPWebViewController.h */,
18E7B33126F317A20064BC9B /* XPWebViewController.m */,
23A7FB672BDDEDFA00411860 /* MSRoomGameWebVC.h */,
23A7FB682BDDEDFA00411860 /* MSRoomGameWebVC.m */,
23EE97082BA2D39C00475D69 /* PIWebViewSavePhotoView.h */,
23EE97092BA2D39C00475D69 /* PIWebViewSavePhotoView.m */,
);
@@ -5080,6 +5166,10 @@
9B88E20B28C5EB8300D26FBA /* MessageContentRedPacketView.m */,
E8778AE22988B57B00CF139B /* MessageContentRevokeView.h */,
E8778AE32988B57B00CF139B /* MessageContentRevokeView.m */,
235714752BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.h */,
235714762BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.m */,
234E50A32BF5E556005CB6D5 /* MessageContentChatHallHeadView.h */,
234E50A42BF5E556005CB6D5 /* MessageContentChatHallHeadView.m */,
);
path = Content;
sourceTree = "<group>";
@@ -5096,6 +5186,10 @@
18F404BA2760982000A6C548 /* ChatLimitModel.m */,
E885D5342977CE28004DC088 /* SessionSettingModel.h */,
E885D5352977CE28004DC088 /* SessionSettingModel.m */,
2357145E2BE8BD5C004C81D6 /* MSSessionScrollingModel.h */,
2357145F2BE8BD5C004C81D6 /* MSSessionScrollingModel.m */,
235714692BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.h */,
2357146A2BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.m */,
);
path = Model;
sourceTree = "<group>";
@@ -6383,6 +6477,8 @@
23FF256C2ABC48810064E904 /* XPSessionMainViewController.m */,
9B7D80482753783D003DAC0C /* SessionViewController.h */,
9B7D80492753783D003DAC0C /* SessionViewController.m */,
235714582BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.h */,
235714592BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.m */,
E8E20BD9281645300033B688 /* SessionInfoViewController.h */,
E8E20BDA281645300033B688 /* SessionInfoViewController.m */,
E86E79D428A4EA0C006DAF48 /* SessionRiskCache.h */,
@@ -7218,6 +7314,12 @@
E82107862987E49100DE7040 /* MessageRedPacketModel.m */,
E8778ADF2988B4C300CF139B /* MessageRevokeModel.h */,
E8778AE02988B4C300CF139B /* MessageRevokeModel.m */,
235714782BECA102004C81D6 /* MessageHeadlinesModel.h */,
235714792BECA102004C81D6 /* MessageHeadlinesModel.m */,
235714872BECC38F004C81D6 /* MessageHeadlinesTextModel.h */,
235714882BECC38F004C81D6 /* MessageHeadlinesTextModel.m */,
235714902BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.h */,
235714912BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.m */,
);
path = SesssionModel;
sourceTree = "<group>";
@@ -8064,6 +8166,8 @@
E84B0E412727EE0A008818C6 /* XPRoomMessageHeaderView.m */,
E84B0E3D2727EDF6008818C6 /* XPRoomMessageTableViewCell.h */,
E84B0E3E2727EDF6008818C6 /* XPRoomMessageTableViewCell.m */,
235714992BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.h */,
2357149A2BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.m */,
);
path = View;
sourceTree = "<group>";
@@ -8653,6 +8757,14 @@
children = (
9B7D804B27537950003DAC0C /* MessageCell.h */,
9B7D804C27537950003DAC0C /* MessageCell.m */,
2357148A2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.h */,
2357148B2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.m */,
234E50A62BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.h */,
234E50A72BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.m */,
2357148D2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.h */,
2357148E2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m */,
234E50A92BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.h */,
234E50AA2BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.m */,
E875A1B629755EE200AB1BBD /* SessionUserInfoTableViewCell.h */,
E875A1B729755EE200AB1BBD /* SessionUserInfoTableViewCell.m */,
E885D531297798E1004DC088 /* SessionSettingTableViewCell.h */,
@@ -9469,6 +9581,20 @@
E88E4A7F297673DC00019A50 /* SessionNavLiveView.m */,
E885D5372977D10E004DC088 /* SessionSettingUserView.h */,
E885D5382977D10E004DC088 /* SessionSettingUserView.m */,
235714652BE8C009004C81D6 /* MSSessionScrollingView.h */,
235714662BE8C009004C81D6 /* MSSessionScrollingView.m */,
2357149C2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.h */,
2357149D2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.m */,
2357149F2BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.h */,
235714A02BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.m */,
2357146F2BEB97BD004C81D6 /* MSSessionScrollingItemView.h */,
235714702BEB97BD004C81D6 /* MSSessionScrollingItemView.m */,
2357146C2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.h */,
2357146D2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.m */,
235714722BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.h */,
235714732BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.m */,
2357147E2BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.h */,
2357147F2BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.m */,
);
path = View;
sourceTree = "<group>";
@@ -9864,8 +9990,12 @@
E84B0E47272801F6008818C6 /* Tool */,
E84B0E432727EF2C008818C6 /* Model */,
E84B0E3C2727EDD4008818C6 /* View */,
235714962BEDF54E004C81D6 /* MsRoomMessageMainView.h */,
235714972BEDF54E004C81D6 /* MsRoomMessageMainView.m */,
E8AEAEF127141C7C0017FCE0 /* XPRoomMessageContainerView.h */,
E8AEAEF227141C7C0017FCE0 /* XPRoomMessageContainerView.m */,
235714932BEDF517004C81D6 /* MsRoomMessagChatHallView.h */,
235714942BEDF517004C81D6 /* MsRoomMessagChatHallView.m */,
);
path = MessageContainerView;
sourceTree = "<group>";
@@ -9906,6 +10036,14 @@
E8EE827C272B9A2300A17217 /* XPRoomSendTextView.m */,
E8AEAEEE27141C430017FCE0 /* XPRoomMenuContainerView.h */,
E8AEAEEF27141C430017FCE0 /* XPRoomMenuContainerView.m */,
2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */,
2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */,
2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */,
2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */,
2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */,
2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */,
2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */,
2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */,
);
path = MenuContainerView;
sourceTree = "<group>";
@@ -9958,6 +10096,8 @@
9BE01AF42893E7E000B50299 /* Cell */,
189DD53226DE255300AB55B1 /* TabbarViewController.h */,
189DD53326DE255300AB55B1 /* TabbarViewController.m */,
9D63AAD12BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.h */,
9D63AAD22BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.m */,
2331C0DA2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.h */,
2331C0DB2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.m */,
142721B029A7647F00C7C423 /* XPBlankViewController.h */,
@@ -11100,9 +11240,11 @@
E8751E6E28A64F990056EF44 /* XPSailingEmptyTableViewCell.m in Sources */,
E87E625A2A3F560B002F68C9 /* XPHomeRecommendViewController.m in Sources */,
E8950189282CFFB1007E459A /* XPMonentsLayoutConfig.m in Sources */,
2357149B2BEE2AD1004C81D6 /* MsRoomMessagChatHallCell.m in Sources */,
E81061032987CFCE00B772F0 /* MessageSkillCardModel.m in Sources */,
9BD9A18727A120FD004186FE /* XPMineVisitorUnReadModel.m in Sources */,
E85E7BAD2A4EC99300B6D00A /* XPMineGiveDiamondDetailsCell.m in Sources */,
2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */,
E824543D26F58C3A00BE8163 /* XPLoginBindSuccessView.m in Sources */,
E85E7B282A4EB0D300B6D00A /* XPClanMenuView.m in Sources */,
9BE01AF72893E7F500B50299 /* XPNewUserRechargeCollectionViewCell.m in Sources */,
@@ -11110,6 +11252,7 @@
E8EEB8F726FC2673007C6EBA /* UserPhoto.m in Sources */,
E81061002987CDCC00B772F0 /* MessageTweetModel.m in Sources */,
E87DF4CC2A42C960009C1185 /* HomeBannerInfoModel.m in Sources */,
235714892BECC38F004C81D6 /* MessageHeadlinesTextModel.m in Sources */,
E8664EDF27E45EC7000171BA /* XPRoomPKRecordPresenter.m in Sources */,
238B37B62AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m in Sources */,
23FF25762ABD66B90064E904 /* XPFreeGiftsObtainView.m in Sources */,
@@ -11132,6 +11275,7 @@
E82109B026F1D83500FC3319 /* LoginBindPhonePresent.m in Sources */,
E81C1B1F27705F7A0020D1E4 /* XPArrangeMicViewController.m in Sources */,
E8B825C726EA0D9A009E8E9F /* LoginVerifCodeProtocol.h in Sources */,
234E50A52BF5E556005CB6D5 /* MessageContentChatHallHeadView.m in Sources */,
23E9EAAE2A84C9B800B792F2 /* XPMineUserInfoTagView.m in Sources */,
236B2E4E2AA07D06003967A8 /* Api+LittleGame.m in Sources */,
237700E02BC7D78600D661F1 /* MSBaseRTLFlowLayout.m in Sources */,
@@ -11140,6 +11284,7 @@
9BAC92F528E6E63000147DD8 /* XPRoomInsideOperationCell.m in Sources */,
9BE570BC28F65B7200D491A5 /* XPMineCollectRoomCell.m in Sources */,
E86A16C22856D635004228B8 /* XPSessionFindNewGreetTableViewCell.m in Sources */,
235714742BEC6E3D004C81D6 /* MSSessionReleaseHeadlinesView.m in Sources */,
E824544E26F5BC1A00BE8163 /* XPMineModifPayPwdView.m in Sources */,
E86E79CD28A4E045006DAF48 /* MessageContentRiskAlertView.m in Sources */,
E855515B280559FE005F293F /* NSDate+DateUtils.m in Sources */,
@@ -11149,6 +11294,7 @@
E81DCCCD282B63B40039E5C5 /* XPMonentsViewController.m in Sources */,
237700FD2BCD254000D661F1 /* MSBaseTextField.m in Sources */,
237700E62BC7E81F00D661F1 /* UITextField+MSRTL.m in Sources */,
2357149E2BEF0F6D004C81D6 /* MSSessionScrollingItemCell.m in Sources */,
E86507EB281A88A9006951B0 /* MessageContentSkillCardView.m in Sources */,
E8B825CA26EA1231009E8E9F /* LoginVerifCodeViewController.m in Sources */,
189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */,
@@ -11342,6 +11488,7 @@
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */,
9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */,
E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */,
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */,
9B32A04728881845002009D2 /* XPRoomTagListView.m in Sources */,
E85E7B1D2A4EB0D200B6D00A /* XPMineClanIncomeStatisViewController.m in Sources */,
189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */,
@@ -11459,6 +11606,7 @@
E85E7B472A4EB0D300B6D00A /* XPMineGuildManagerPerTableViewCell.m in Sources */,
E824544326F58FCE00BE8163 /* XPMinePayPwdInputView.m in Sources */,
23C7C0B72A7CD7B000802205 /* XPNewMineGuildItemView.m in Sources */,
23A7FB692BDDEDFA00411860 /* MSRoomGameWebVC.m in Sources */,
23CEFC5D2AFB8FC100576D89 /* BSRecordModel.m in Sources */,
9B1B72A1280023F3003FACE9 /* XPMineAnchorFansTeamTableViewCell.m in Sources */,
1808073027315E8E001FD836 /* NetImageView.m in Sources */,
@@ -11559,6 +11707,8 @@
E85E7B372A4EB0D300B6D00A /* XPMineGuildListCell.m in Sources */,
E85E7B502A4EB0D300B6D00A /* XPMineGuildListVC.m in Sources */,
E824546126F5F4E400BE8163 /* XPMineResetPayPwdViewController.m in Sources */,
235714772BEC9E5E004C81D6 /* MSSessionContextHeadlinesView.m in Sources */,
2357146B2BEA0110004C81D6 /* MSSessionPublicChatHallTopModel.m in Sources */,
E81D58822720082A003063FE /* MicroWaveView.m in Sources */,
E8A73F8728586A6F00FD9CBC /* XPGiftWeekStarCollectionViewCell.m in Sources */,
E80E09B62A42078F00CD2BE7 /* XPRoomStarKitchenModel.m in Sources */,
@@ -11581,6 +11731,7 @@
9B42869528C1E00A009034D2 /* XPRedPacketResultModel.m in Sources */,
2331C16E2A5EB71000E1D940 /* XPNobleAuthorityDescView.m in Sources */,
9BE01AE428937EDE00B50299 /* XPDressUpShopCollectionViewCell.m in Sources */,
9D63AAD32BF74E82004EFB3B /* TabbarViewController+TabbarViewController_AnimationFileCache.m in Sources */,
1427219129A75F6F00C7C423 /* MultipartMessageHeaderField.m in Sources */,
186A534B26FC6ED900D67B2C /* TTPopupManagerService.m in Sources */,
E8BD0F8B28A9EB0A00DE050D /* RoomSailingPrizeListModel.m in Sources */,
@@ -11642,6 +11793,7 @@
236B2E592AA18E13003967A8 /* XPMIneGameCollectionViewCell.m in Sources */,
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */,
E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */,
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */,
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */,
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */,
233423CA2AAEE97500B1253F /* XPCandyTreeConfirmBuyView.m in Sources */,
@@ -11705,6 +11857,7 @@
E8098CAE282E07C00090B9F0 /* XPMonentsEmptyTableViewCell.m in Sources */,
237700D72BC7D51400D661F1 /* UIButton+MSRTL.m in Sources */,
E85E7B4F2A4EB0D300B6D00A /* XPMineExchangeAuthorityVC.m in Sources */,
235714952BEDF517004C81D6 /* MsRoomMessagChatHallView.m in Sources */,
23FE47DB2BB4171C00F09D23 /* PINobleCenterListView.m in Sources */,
E84A2E932A527EC800D6AF8A /* XPIncomeRecordPresent.m in Sources */,
236B2E432AA07D06003967A8 /* NSString+RW.m in Sources */,
@@ -11719,6 +11872,7 @@
E8778AF82988F4E200CF139B /* XPSessionSayHelloHeaderView.m in Sources */,
E84150C527747E0900A7F548 /* FirstRechargeRewardModel.m in Sources */,
E8B9843328ABA2FF0022D026 /* MonentsPicResInfo.m in Sources */,
235714982BEDF54E004C81D6 /* MsRoomMessageMainView.m in Sources */,
9BE9F10227FEE5C200667200 /* XPAnchorFansTaskDetailModel.m in Sources */,
E8E0DAE6285C280E00566A2F /* XPSessionFindNewAlertView.m in Sources */,
E85E7B1A2A4EB0D200B6D00A /* XPMineGoldIncomeRecordVC.m in Sources */,
@@ -11763,6 +11917,7 @@
23FF256E2ABC48810064E904 /* XPSessionMainViewController.m in Sources */,
E85E7B092A4EB0D200B6D00A /* XPGuildRemoveMemberPresenter.m in Sources */,
E8950186282CAC80007E459A /* XPMonentsTooBarView.m in Sources */,
2357145A2BE8BC6C004C81D6 /* MSSessionPublicChatHallVC.m in Sources */,
E86507E5281A7D4D006951B0 /* MessageContentTweetView.m in Sources */,
E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */,
E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */,
@@ -11787,11 +11942,13 @@
E86F6185284F4E4800E8EC9A /* RoomHalfHourRankModel.m in Sources */,
9B208A362779B50100F9E54A /* GiftNobleInfoModel.m in Sources */,
E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */,
2357146E2BEB816B004C81D6 /* MSSessionPublicChatHallHeadView.m in Sources */,
238B37CD2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m in Sources */,
E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */,
1464C5ED29A4784F00AF7C94 /* XPMineSimpleUserInfoViewController.m in Sources */,
E8098CB1282E86EF0090B9F0 /* XPMonentsContentView.m in Sources */,
E85E3FA728B7A6F000268DC8 /* MessageContentMonentsView.m in Sources */,
234E50A82BF5EBDD005CB6D5 /* MSSessionPublicChatHalRightTextCell.m in Sources */,
E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */,
238B37DC2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m in Sources */,
23CEFC4B2AFB8FC100576D89 /* BSUIDemoUtil.m in Sources */,
@@ -11829,6 +11986,7 @@
E81060EE2987C35700B772F0 /* MessageTextClickModel.m in Sources */,
E87AE8C5284E1A8400CAFBB3 /* XPRoomNewUserGreetView.m in Sources */,
E8A3540728FEBD460014A784 /* XPWishGiftCreateItemViewController.m in Sources */,
235714802BECB217004C81D6 /* MSSessionReleaseHeadlinesPayView.m in Sources */,
E87E627B2A3F5A0D002F68C9 /* XPNewHomeRecommendPresenter.m in Sources */,
14DCAD08299B36A500A7DD31 /* XPLoginPwdViewController.m in Sources */,
E81060F42987C6B200B772F0 /* MessageOpenLiveModel.m in Sources */,
@@ -11853,6 +12011,7 @@
1808072D2731598F001FD836 /* XPNetImageYYLabel.m in Sources */,
E818E348286ECA4B005EDF68 /* XPMonentsPublishViewController.m in Sources */,
9B88E20C28C5EB8300D26FBA /* MessageContentRedPacketView.m in Sources */,
234E50AB2BF5F95A005CB6D5 /* MSSessionPublicChatHalIRightmageCell.m in Sources */,
E896EFAF2771AF0F00AD2CC1 /* XPMineFriendEmptyTableViewCell.m in Sources */,
E8E859E928264F4500EE4857 /* XPRoomTransferMusicViewController.m in Sources */,
18486213271EA9DA005FC5DC /* RtcManager.m in Sources */,
@@ -11864,6 +12023,7 @@
23CEFC5F2AFB8FC100576D89 /* BSLogTableViewController.m in Sources */,
236B2E4D2AA07D06003967A8 /* XPRoomLittleGameContainerView.m in Sources */,
E87AE8C1284E184300CAFBB3 /* RoomNewUserGreetModel.m in Sources */,
235714602BE8BD5C004C81D6 /* MSSessionScrollingModel.m in Sources */,
9BC5C91C277C8A7B007C8719 /* XPReleaseRadioViewController.m in Sources */,
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */,
186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */,
@@ -11902,12 +12062,14 @@
E878894C273A607C00BF1D57 /* XPGiftUserCollectionViewCell.m in Sources */,
23E9E9A72A80F1C300B792F2 /* XPNewMineHallIncomeVC.m in Sources */,
2331C1712A5EB71000E1D940 /* XPNobleCenterTableHeadView.m in Sources */,
2357148C2BECEE33004C81D6 /* MSSessionPublicChatHalTextCell.m in Sources */,
181D7F212727D9DB00B7C059 /* SocialStageView.m in Sources */,
E8AB630D28ADD8C60023B0D2 /* XPMonentTopicContainerViewController.m in Sources */,
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */,
E8D4DE472940473500EC788D /* GiftTwelveStarFirstModel.m in Sources */,
E87DF4FB2A42CCDE009C1185 /* XPHomeRedommendCollectionViewCell.m in Sources */,
2368ECDA2BC3C02800EDF4C9 /* XPMineSwitchLanguageVC.m in Sources */,
235714712BEB97BD004C81D6 /* MSSessionScrollingItemView.m in Sources */,
187EEEF026E89FE8002833B2 /* AccountInfoStorage.m in Sources */,
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */,
@@ -11988,6 +12150,7 @@
238B37B02AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m in Sources */,
E8AEAEED27141AE20017FCE0 /* XPRoomBackContainerView.m in Sources */,
E88B5CC126FB407B00DA9178 /* XPMineUserInfoViewController.m in Sources */,
235714672BE8C009004C81D6 /* MSSessionScrollingView.m in Sources */,
2331C1AC2A60F32D00E1D940 /* CandyTreeRecordModel.m in Sources */,
E81E09CF290F750800A1F410 /* AdvertiseModel.m in Sources */,
2305F3472AD94E9D00AD403C /* XPMaskManagerCell.m in Sources */,
@@ -11997,6 +12160,7 @@
E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */,
E85E7B362A4EB0D300B6D00A /* XPClanRoomCollectionViewCell.m in Sources */,
18F4043A275E20D900A6C548 /* TRTCRtcImpl.m in Sources */,
2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */,
E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */,
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */,
E87DF4EC2A42CB60009C1185 /* XPSearchListTableViewCell.m in Sources */,
@@ -12099,11 +12263,13 @@
E884C36C2743951B00E1EBED /* GiftReceiveInfoModel.m in Sources */,
E85E7BB62A4ED59900B6D00A /* XPIncomeRecordGoldDetailsCell.m in Sources */,
9B7B606227BB96E40070BB72 /* XPRoomAnchorInfoCardView.m in Sources */,
2357147A2BECA102004C81D6 /* MessageHeadlinesModel.m in Sources */,
E87DF4FE2A42CD7E009C1185 /* XPRoomSearchRecommendHeadView.m in Sources */,
23CEFC4D2AFB8FC100576D89 /* BSXWDateUtil.m in Sources */,
E85E7B442A4EB0D300B6D00A /* XPMineExchangeAuthorityCell.m in Sources */,
E80B0734280D740600A79F63 /* MessageContentGuildView.m in Sources */,
E8395334276A03C300CF2F24 /* XPMineDressUpPresenter.m in Sources */,
2357148F2BEDC94D004C81D6 /* MSSessionPublicChatHalImageCell.m in Sources */,
E85E7B212A4EB0D300B6D00A /* XPNewMineGuildIncomeRecordViewController.m in Sources */,
23A439742AA1CF7C002E6039 /* XPNewHomeHeadView.m in Sources */,
189DD75926E6003C00AB55B1 /* Api.m in Sources */,
@@ -12193,7 +12359,9 @@
149839C7299E0B9F00F82CBF /* XPMomentListCollectionViewCell.m in Sources */,
236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */,
E88C729C2828F37D0047FB2B /* XPRoomMusicLibraryEmptyTableViewCell.m in Sources */,
235714A12BEF510B004C81D6 /* MSSessionScrollingItemFlowLayout.m in Sources */,
E85E7B0A2A4EB0D200B6D00A /* XPGuildManagerPerPresenter.m in Sources */,
235714922BEDC9B1004C81D6 /* MSSessionPublicChatHalImageModel.m in Sources */,
9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */,
238B37D72AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m in Sources */,
E85E7BA12A4EC99300B6D00A /* XPMineGiveDiamondModel.m in Sources */,
@@ -12390,7 +12558,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 20.20.18;
MARKETING_VERSION = 20.20.20;
PRODUCT_BUNDLE_IDENTIFIER = com.peko.enterprise.ios;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -12428,7 +12596,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 20.20.18;
MARKETING_VERSION = 20.20.20;
PRODUCT_BUNDLE_IDENTIFIER = com.peko.enterprise.ios;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -63,7 +63,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
[FIRApp configure];
[MobLink setDelegate:self];
return YES;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "mine_noble_center_tag_title_bg@2x.png",
"filename" : "ms_message_headlines_text_left@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_noble_center_tag_title_bg@3x.png",
"filename" : "ms_message_headlines_text_left@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

View File

@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "mine_noble_center_tag_title_bg_en@2x.png",
"filename" : "ms_message_headlines_text_right@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_noble_center_tag_title_bg_en@3x.png",
"filename" : "ms_message_headlines_text_right@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_message_send_headline_bnt@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_message_send_headline_bnt@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_message_send_headline_bnt_ar@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_message_send_headline_bnt_ar@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_message_send_headline_bnt_en@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_message_send_headline_bnt_en@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_public_chat_hall_add_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_public_chat_hall_add_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_public_chat_hall_head_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_public_chat_hall_head_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_public_chat_hall_head_broadcast_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_public_chat_hall_head_broadcast_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_public_chat_hall_head_enter_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_public_chat_hall_head_enter_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_message_send_headline_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_message_send_headline_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_message_send_headline_icon_ar@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_message_send_headline_icon_ar@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_message_send_headline_icon_en@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_message_send_headline_icon_en@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_headlines_pay_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_headlines_pay_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_bottom_game_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_bottom_game_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_menu_game@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_menu_game@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -92,6 +92,7 @@
model.appStoreAuditNoticeVersion = isHigh;
self.configInfo = model;
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadnewtab" object:nil];
} else {
if (self.retryCount < 10) {
[self clientInit];

View File

@@ -39,6 +39,7 @@ typedef NS_ENUM(NSInteger, FaceLivenessStrategy) {
@property (nonatomic, strong) NSArray<NSString *> *officialMsgUids;
///官方账号 小秘书 红包消息
@property (nonatomic,strong) NSArray<NSString *> *officialAccountUids;
@property(nonatomic,copy) NSDictionary *publicChatRoomIdMap;
///星座礼物顶部是否开启
@property (nonatomic,assign) BOOL twelveStarSwitch;
/// 开房是否需要实名

View File

@@ -16,4 +16,5 @@
}
}
@end

View File

@@ -30,6 +30,7 @@ BOOL isRTLString(NSString *string) {
}
-(void)msrtl_setAttributedText:(NSAttributedString *)attributedText{
if(attributedText == nil)return;
NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc]init];
if(self.textAlignment == NSTextAlignmentCenter){
if (isMSRTL()) {
@@ -46,6 +47,7 @@ BOOL isRTLString(NSString *string) {
[attributedString appendAttributedString:[NSMutableAttributedString createBlankAttributeToMSRTL]];
// [attributedString appendAttributedString:[NSMutableAttributedString createBlankAttributeToMSLTR]];
}
[attributedString appendAttributedString:attributedText];
[self msrtl_setAttributedText:attributedString];
if(isMSRTL()){

View File

@@ -66,7 +66,7 @@ NSString * const KeyWithType(Pi_KeyType type) {
@(KeyType_PasswordEncode) : @"1ea53d260ecf11e7b56e00163e046a26",
@(KeyType_Agora) : @"f8713b6ec98c4c01adaf34cb4fa091b1",
@(KeyType_TRTC) : @"1400741885",
@(KeyType_NetEase) : @"1c3b8c6bf8467d8e4c33a004dbec5c94",
@(KeyType_NetEase) : @"79bc37000f4018a2a24ea9dc6ca08d32",
@(keyType_YiDunBussinessId) : @"yinyouApnsDebug",
@(KeyType_FacePwdEncode) : @"1ea53d260ecf11e7b56e00163e046a26",
@(KeyType_SudGameAppID) : @"1578948593831571457",

View File

@@ -49,11 +49,11 @@ isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaIns
///内置版本号
#define PI_App_Version @"1.0.3"
#define PI_App_Version @"1.0.6"
///渠道
#define PI_App_Source @"appstore"
#define PI_Test_Flight @"TestFlight"
#define ISTestFlight 0
///正式环境
#define API_HOST_URL @"https://api.hfighting.com"
//#define API_HOST_URL @"https://api.molistar.xyz"

View File

@@ -36,7 +36,7 @@
//
NSData *data = [[NSData alloc] initWithContentsOfFile:path];
// JSON
NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSArray *codeList = [LoginAreaModel modelsWithArray:codeData[@"RECORDS"]];
[self getLocalPlistWithList:codeList];
}

View File

@@ -14,6 +14,14 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)getChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid ;
///获取私聊限制接口
+(void)getPrivateChatCheck:(HttpRequestHelperCompletion)complection content:(NSString *)content toUid:(NSString *)toUid;
///聊天室发送头条
+(void)sendPublicChatHallTopText:(HttpRequestHelperCompletion)complection content:(NSString *)content;
///获取聊天室头条
+(void)getPublicChatHallTopText:(HttpRequestHelperCompletion)complection;
///获取聊天室数据
+(void)getPublicChatHallList:(HttpRequestHelperCompletion)complection;
///获取支付金额;
+(void)getPublicChatHallTopTextPayMoney:(HttpRequestHelperCompletion)complection;
@end
NS_ASSUME_NONNULL_END

View File

@@ -17,4 +17,20 @@
+(void)getPrivateChatCheck:(HttpRequestHelperCompletion)complection content:(NSString *)content toUid:(NSString *)toUid{
[self makeRequest:@"privateChat/check" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, content,toUid,nil];
}
///
+(void)sendPublicChatHallTopText:(HttpRequestHelperCompletion)complection content:(NSString *)content{
[self makeRequest:@"publicChatTopRecord/send" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, content,nil];
}
///
+(void)getPublicChatHallTopText:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"publicChatTopRecord/getTop" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
///
+(void)getPublicChatHallList:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"publicChatTopRecord/getChatForTop50" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
///
+(void)getPublicChatHallTopTextPayMoney:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"/publicChatTopRecord/payMoney" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
@end

View File

@@ -120,6 +120,8 @@ typedef NS_ENUM(NSUInteger, CustomMessageType) {
CustomMessageType_Super_Gift = 106,
///通用飘屏
CustomMessageType_General_Floating_Screen = 107,
///聊天大厅上头条
CustomMessageType_Chat_Hall_Headlinesn = 108,
};
@@ -653,6 +655,13 @@ typedef NS_ENUM(NSUInteger, CustomMessageTypeGeneralFloatingScreen) {
Custom_Message_Sub_General_Floating_Screen_One_Room = 1071,//单房间
Custom_Message_Sub_General_Floating_Screen_All_Room = 1072,///全部房间
};
///聊天大厅上头条
//CustomMessageType_Chat_Hall_Headlinesn = 108,
typedef NS_ENUM(NSUInteger, CustomMessageTypeChatHallHeadlinesn) {
///所有房间
Custom_Message_Sub_Chat_Hall_Headlinesn = 1081,//单房间
};
@interface AttachmentModel : PIBaseModel<NIMCustomAttachment>
@property (nonatomic,assign) int first;
@property (nonatomic,assign) int second;

View File

@@ -0,0 +1,24 @@
//
// MSSessionPublicChatHallTopModel.h
// YuMi
//
// Created by duoban on 2024/5/7.
//
#import "PIBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHallTopModel : PIBaseModel
@property(nonatomic,copy) NSString *uid;
@property(nonatomic,copy) NSString *content;
@property(nonatomic,assign) BOOL isTop;
@property(nonatomic,copy) NSString *partitionId;
@property(nonatomic,copy) NSString *nick;
@property(nonatomic,assign) NSInteger endTime;
@property(nonatomic,assign) NSInteger startTime;
//0 有效 1 过期
@property(nonatomic,assign) int recordStatus;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// MSSessionPublicChatHallTopModel.m
// YuMi
//
// Created by duoban on 2024/5/7.
//
#import "MSSessionPublicChatHallTopModel.h"
@implementation MSSessionPublicChatHallTopModel
@end

View File

@@ -0,0 +1,28 @@
//
// MSSessionScrollingModel.h
// YuMi
//
// Created by duoban on 2024/5/6.
//
#import "PIBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionScrollingModel : PIBaseModel
@property (nonatomic,assign)NSTimeInterval beginTime;
@property (nonatomic,assign)NSTimeInterval endTime;
@property (nonatomic,copy)NSString *content;
@property (nonatomic,copy)NSString *fromAvatar;
@property(nonatomic,copy) NSString *fromNick;
@property(nonatomic,copy) NSString *fromUid;
@property (nonatomic,copy)NSString *gender;
@property(nonatomic,copy) NSString *partitionId;
@property (nonatomic,copy)NSString *toAvatar;
@property(nonatomic,copy) NSString *toNick;
@property(nonatomic,copy) NSString *toUid;
@property(nonatomic,assign) CGFloat width;
@property(nonatomic,strong) NSMutableAttributedString * attribute;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,15 @@
//
// MSSessionScrollingModel.m
// YuMi
//
// Created by duoban on 2024/5/6.
//
#import "MSSessionScrollingModel.h"
@implementation MSSessionScrollingModel
-(void)setContent:(NSString *)content{
_content = content;
_width = [UILabel getWidthWithText:_content height:kGetScaleWidth(11.5) font:kFontMedium(12)] + 5;
}
@end

View File

@@ -6,7 +6,7 @@
//
#import "BaseMvpPresenter.h"
#import "UserInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessagePresenter : BaseMvpPresenter
@@ -24,7 +24,18 @@ NS_ASSUME_NONNULL_BEGIN
// 获取用户信息
- (void)getUserInfoWithUid:(NSString *)uid;
///进入聊天室
- (void)enterNIMRoom:(NSString *)roomId user:(UserInfoModel *)userInfo;
///退出聊天室
- (void)exitNIMRoom:(NSString *)roomId;
///聊天室发送头条
-(void)sendPublicChatHallTopTextWithcontent:(NSString *)content;
///获取聊天室发送头条
-(void)getPublicChatHallTopText;
///获取聊天室数据
-(void)getPublicChatHallList;
///获取支付金额;
-(void)getPublicChatHallTopTextPayMoney;
@end
NS_ASSUME_NONNULL_END

View File

@@ -13,6 +13,9 @@
#import "UserInfoModel.h"
#import "AccountInfoStorage.h"
#import "NIMMessageUtils.h"
#import "XPMessageRemoteExtModel.h"
#import "MSSessionScrollingModel.h"
#import "MSSessionPublicChatHallTopModel.h"
@implementation MessagePresenter
@@ -61,5 +64,73 @@
[[self getView] attentionUserSuccess:targetUid];
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type];
}
- (void)enterNIMRoom:(NSString *)roomId user:(UserInfoModel *)userInfo {
NIMChatroomEnterRequest *request = [[NIMChatroomEnterRequest alloc] init];
request.roomId = roomId;
//ext
XPMessageRemoteExtModel * extModel = [[XPMessageRemoteExtModel alloc] init];
extModel.defUser = userInfo.defUser;
extModel.erbanNo = userInfo.erbanNo;
extModel.carName = userInfo.carName;
extModel.inRoomNameplatePic = userInfo.nameplatePic;
extModel.inRoomNameplateWord = userInfo.nameplateWord;
extModel.isCustomWord = userInfo.isCustomWord;
extModel.charmUrl = userInfo.userLevelVo.charmUrl;
extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq;
extModel.experUrl = userInfo.userLevelVo.experUrl;
extModel.newUser = userInfo.newUser;
extModel.vipIcon = userInfo.userVipInfoVO.vipIcon;
extModel.fromUid = userInfo.fromUid;
extModel.fromType = userInfo.fromType;
extModel.fromNick = userInfo.fromNick;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.enterHide = userInfo.userVipInfoVO.enterHide;
extModel.preventKick = userInfo.userVipInfoVO.preventKick;
extModel.enterRoomEffects = userInfo.userVipInfoVO.enterRoomEffects;
extModel.gender = userInfo.gender;
extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel;
extModel.platformRole = userInfo.platformRole;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString];
[[NIMSDK sharedSDK].chatroomManager enterChatroom:request completion:^(NSError * _Nullable error, NIMChatroom * _Nullable chatroom, NIMChatroomMember * _Nullable me) {
if (error) {
[[self getView] enterPublicChatHallFail:error.code];
} else {
[[self getView] enterPublicChatHallSuccess:chatroom];
}
}];
}
- (void)exitNIMRoom:(NSString *)roomId {
[[NIMSDK sharedSDK].chatroomManager exitChatroom:roomId completion:nil];
}
///
-(void)sendPublicChatHallTopTextWithcontent:(NSString *)content{
[Api sendPublicChatHallTopText:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView]sendPublicChatHallTopTextSuccess];
} showLoading:YES errorToast:YES] content:content];
}
///
-(void)getPublicChatHallTopText{
[Api getPublicChatHallTopText:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
MSSessionPublicChatHallTopModel *model = [MSSessionPublicChatHallTopModel modelWithDictionary:data.data];
[[self getView]getPublicChatHallTopTextSuccess:model];
}]];
}
///
-(void)getPublicChatHallList{
[Api getPublicChatHallList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [MSSessionScrollingModel modelsWithArray:data.data];
[[self getView]getPublicChatHallListSuccess:list];
}]];
}
///;
-(void)getPublicChatHallTopTextPayMoney{
[Api getPublicChatHallTopTextPayMoney:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView]getPublicChatHallTopTextPayMoneySuccess:[NSString stringWithFormat:@"%@",data.data]];
}]];
}
@end

View File

@@ -7,12 +7,12 @@
#import <Foundation/Foundation.h>
@class ChatLimitModel, UserInfoModel;
@class ChatLimitModel, UserInfoModel,NIMChatroom,MSSessionPublicChatHallTopModel,MSSessionScrollingModel;
NS_ASSUME_NONNULL_BEGIN
@protocol MessageProtocol <NSObject>
@optional
- (void)onGetLimitChat:(ChatLimitModel *)chatLimit;
///获取用户信息成功
@@ -24,6 +24,18 @@ NS_ASSUME_NONNULL_BEGIN
///获取用户信息
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo;
///进入聊天室成功
-(void)enterPublicChatHallSuccess:(NIMChatroom *)chatRoom;
///进入聊天室失败
-(void)enterPublicChatHallFail:(NSInteger)code;
///发送聊天室头条成功
-(void)sendPublicChatHallTopTextSuccess;
///获取发送聊天室头条
-(void)getPublicChatHallTopTextSuccess:(MSSessionPublicChatHallTopModel *)model;
///获取聊天室数据
-(void)getPublicChatHallListSuccess:(NSArray<MSSessionScrollingModel *> *)list;
///获取支付金额;
-(void)getPublicChatHallTopTextPayMoneySuccess:(NSString *)money;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,16 @@
//
// MSSessionPublicChatHalIRightmageCell.h
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import <UIKit/UIKit.h>
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHalIRightmageCell : UITableViewCell
- (void)render:(nonnull MessageBaseModel *)model ;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,185 @@
//
// MSSessionPublicChatHalIRightmageCell.m
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import "MSSessionPublicChatHalIRightmageCell.h"
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
#import "QEmotionHelper.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "SpriteSheetImageManager.h"
#import "MessageHeadlinesTextModel.h"
#import "XPMessageRemoteExtModel.h"
#import "MSSessionPublicChatHalImageCell.h"
#import "MSSessionPublicChatHalImageModel.h"
#import "SDPhotoBrowser.h"
#import "MessageContentChatHallHeadView.h"
@interface MSSessionPublicChatHalIRightmageCell()
@property(nonatomic,strong) MSSessionPublicChatHalImageModel * imageModel;
@property(nonatomic,strong) MessageContentChatHallHeadView *avatarView;
@property(nonatomic,strong) UIImageView *bgImageView;
///
@property (nonatomic,strong) NetImageView *bubbleImageView;
@property(nonatomic,strong) NetImageView *picImageView;
@end
@implementation MSSessionPublicChatHalIRightmageCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.contentView.backgroundColor = [UIColor clearColor];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = 0;
[self.contentView addSubview:self.avatarView];
[self.contentView addSubview:self.bgImageView];
[self.contentView addSubview:self.bubbleImageView];
[self.contentView addSubview:self.picImageView];
}
-(void)installConstraints{
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.trailing.top.equalTo(self.contentView);
make.height.mas_equalTo(kGetScaleWidth(48));
}];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(72));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(36));
make.top.mas_equalTo(kGetScaleWidth(55));
}];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImageView);
}];
[self.picImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImageView).with.insets(UIEdgeInsetsMake(kGetScaleWidth(10),kGetScaleWidth(10),kGetScaleWidth(10),kGetScaleWidth(10)));
}];
}
#pragma mark -
- (void)render:(nonnull MessageBaseModel *)model {
MSSessionPublicChatHalImageModel * imageModel = (MSSessionPublicChatHalImageModel *)model;
self.imageModel = imageModel;
XPMessageRemoteExtModel *extModel = imageModel.extModel;
if(extModel == nil)return;
[self.avatarView render:model];
[self.picImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(model.contentSize.height);
make.width.mas_equalTo(model.contentSize.width);
}];
if (imageModel.image) {
self.picImageView.image = imageModel.image;
}else {
[self.picImageView loadImageWithUrl:imageModel.imageUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.picImageView.image = image;
}];
}
[self.bgImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(55));
make.trailing.mas_equalTo(-kGetScaleWidth(72));
make.width.mas_equalTo(model.contentSize.width+kGetScaleWidth(10));
make.height.mas_equalTo(model.contentSize.height+kGetScaleWidth(10));
make.bottom.mas_equalTo(-kGetScaleWidth(10));
}];
}
#pragma mark - SDPhotoBrowserDelegate
- (NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index {
return [NSURL URLWithString:self.imageModel.url];
}
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
return [UIImageConstant defalutBannerPlaceholder];
}
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageForIndex:(NSInteger)index{
if(self.imageModel.url == nil && self.imageModel.image != nil){
return self.imageModel.image;
}
return nil;
}
-(void)didLeftTapImage{
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
browser.sourceImagesContainerView = self;
browser.delegate = self;
browser.imageCount = 1;
browser.currentImageIndex = 0;
browser.isMe = NO;
[browser show];
}
-(void)didRigthTapImage{
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
browser.sourceImagesContainerView = self;
browser.delegate = self;
browser.imageCount = 1;
browser.currentImageIndex = 0;
browser.isMe = NO;
[browser show];
}
- (UIImage*)resizableImage:(UIImage *)image {
//
CGFloat top = (image.size.height - 1) / 2;
CGFloat left = (image.size.width - 1) / 2;
CGFloat right = (image.size.width - 1) / 2;
CGFloat bottom = (image.size.height - 1) / 2;
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];
}
- (MessageContentChatHallHeadView *)avatarView{
if(!_avatarView){
_avatarView = [[MessageContentChatHallHeadView alloc]initWithFrame:CGRectZero isSelf:NO];
}
return _avatarView;
}
- (UIImageView *)bgImageView{
if(!_bgImageView){
_bgImageView = [UIImageView new];
_bgImageView.userInteractionEnabled = YES;
_bgImageView.image = [self resizableImage:kImage(@"ms_message_headlines_text_left")];
}
return _bgImageView;
}
- (NetImageView *)bubbleImageView{
if(!_bubbleImageView){
_bubbleImageView = [[NetImageView alloc] init];
}
return _bubbleImageView;
}
- (NetImageView *)picImageView{
if(!_picImageView){
_picImageView = [NetImageView new];
_picImageView.userInteractionEnabled = YES;
_picImageView.layer.masksToBounds = YES;
_picImageView.contentMode = UIViewContentModeScaleAspectFill;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didLeftTapImage)];
[_picImageView addGestureRecognizer:tap];
}
return _picImageView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MSSessionPublicChatHalImageCell.h
// YuMi
//
// Created by duoban on 2024/5/10.
//
#import <UIKit/UIKit.h>
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHalImageCell : UITableViewCell
- (void)render:(nonnull MessageBaseModel *)model ;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,182 @@
//
// MSSessionPublicChatHalImageCell.m
// YuMi
//
// Created by duoban on 2024/5/10.
//
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
#import "QEmotionHelper.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "SpriteSheetImageManager.h"
#import "MessageHeadlinesTextModel.h"
#import "XPMessageRemoteExtModel.h"
#import "MSSessionPublicChatHalImageCell.h"
#import "MSSessionPublicChatHalImageModel.h"
#import "SDPhotoBrowser.h"
#import "MessageContentChatHallHeadView.h"
@interface MSSessionPublicChatHalImageCell()<SDPhotoBrowserDelegate>
@property(nonatomic,strong) MSSessionPublicChatHalImageModel * imageModel;
@property(nonatomic,strong) MessageContentChatHallHeadView *avatarView;
@property(nonatomic,strong) UIImageView *bgImageView;
///
@property (nonatomic,strong) NetImageView *bubbleImageView;
@property(nonatomic,strong) NetImageView *picImageView;
@end
@implementation MSSessionPublicChatHalImageCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.contentView.backgroundColor = [UIColor clearColor];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = 0;
[self.contentView addSubview:self.avatarView];
[self.contentView addSubview:self.bgImageView];
[self.contentView addSubview:self.bubbleImageView];
[self.contentView addSubview:self.picImageView];
}
-(void)installConstraints{
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.top.equalTo(self.contentView);
make.height.mas_equalTo(kGetScaleWidth(48));
}];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(72));
make.width.mas_equalTo(kGetScaleWidth(52));
make.height.mas_equalTo(kGetScaleWidth(36));
make.top.mas_equalTo(kGetScaleWidth(55));
}];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImageView);
}];
[self.picImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImageView).with.insets(UIEdgeInsetsMake(kGetScaleWidth(10),kGetScaleWidth(10),kGetScaleWidth(10),kGetScaleWidth(10)));
}];
}
#pragma mark -
- (void)render:(nonnull MessageBaseModel *)model {
MSSessionPublicChatHalImageModel * imageModel = (MSSessionPublicChatHalImageModel *)model;
self.imageModel = imageModel;
XPMessageRemoteExtModel *extModel = imageModel.extModel;
if(extModel == nil)return;
[self.avatarView render:model];
[self.picImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(model.contentSize.height);
make.width.mas_equalTo(model.contentSize.width);
}];
if (imageModel.image) {
self.picImageView.image = imageModel.image;
}else {
[self.picImageView loadImageWithUrl:imageModel.imageUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.picImageView.image = image;
}];
}
[self.bgImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(55));
make.leading.mas_equalTo(kGetScaleWidth(72));
make.width.mas_equalTo(model.contentSize.width+kGetScaleWidth(10));
make.height.mas_equalTo(model.contentSize.height+kGetScaleWidth(10));
make.bottom.mas_equalTo(-kGetScaleWidth(10));
}];
}
#pragma mark - SDPhotoBrowserDelegate
- (NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index {
return [NSURL URLWithString:self.imageModel.url];
}
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
return [UIImageConstant defalutBannerPlaceholder];
}
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageForIndex:(NSInteger)index{
if(self.imageModel.url == nil && self.imageModel.image != nil){
return self.imageModel.image;
}
return nil;
}
-(void)didLeftTapImage{
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
browser.sourceImagesContainerView = self;
browser.delegate = self;
browser.imageCount = 1;
browser.currentImageIndex = 0;
browser.isMe = NO;
[browser show];
}
-(void)didRigthTapImage{
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
browser.sourceImagesContainerView = self;
browser.delegate = self;
browser.imageCount = 1;
browser.currentImageIndex = 0;
browser.isMe = NO;
[browser show];
}
- (UIImage*)resizableImage:(UIImage *)image {
//
CGFloat top = (image.size.height - 1) / 2;
CGFloat left = (image.size.width - 1) / 2;
CGFloat right = (image.size.width - 1) / 2;
CGFloat bottom = (image.size.height - 1) / 2;
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];
}
- (MessageContentChatHallHeadView *)avatarView{
if(!_avatarView){
_avatarView = [[MessageContentChatHallHeadView alloc]initWithFrame:CGRectZero isSelf:NO];
}
return _avatarView;
}
- (UIImageView *)bgImageView{
if(!_bgImageView){
_bgImageView = [UIImageView new];
_bgImageView.userInteractionEnabled = YES;
_bgImageView.image = [self resizableImage:kImage(@"ms_message_headlines_text_left")];
}
return _bgImageView;
}
- (NetImageView *)bubbleImageView{
if(!_bubbleImageView){
_bubbleImageView = [[NetImageView alloc] init];
}
return _bubbleImageView;
}
- (NetImageView *)picImageView{
if(!_picImageView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_picImageView = [[NetImageView alloc]initWithConfig:config];
_picImageView.userInteractionEnabled = YES;
_picImageView.layer.cornerRadius = kGetScaleWidth(8);
_picImageView.layer.masksToBounds = YES;
_picImageView.contentMode = UIViewContentModeScaleAspectFill;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didLeftTapImage)];
[_picImageView addGestureRecognizer:tap];
}
return _picImageView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MSSessionPublicChatHalRightTextCell.h
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import <UIKit/UIKit.h>
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHalRightTextCell : UITableViewCell
- (void)render:(nonnull MessageBaseModel *)model ;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,167 @@
//
// MSSessionPublicChatHalRightTextCell.m
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
#import "QEmotionHelper.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "SpriteSheetImageManager.h"
#import "MessageHeadlinesTextModel.h"
#import "XPMessageRemoteExtModel.h"
#import "MessageContentChatHallHeadView.h"
#import "MSSessionPublicChatHalRightTextCell.h"
@interface MSSessionPublicChatHalRightTextCell()
/**
*/
@property (nonatomic, strong) YYLabel * messageText;
@property(nonatomic,strong) UIImageView *bgImage;
///
@property (nonatomic,strong) NetImageView *bubbleImageView;
@property(nonatomic,strong) MessageContentChatHallHeadView *avatarView;
@end
@implementation MSSessionPublicChatHalRightTextCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
- (void)render:(nonnull MessageBaseModel *)model {
MessageHeadlinesTextModel * textModel = (MessageHeadlinesTextModel *)model;
XPMessageRemoteExtModel *extModel = textModel.extModel;
if(extModel == nil)return;
[self.avatarView render:model];
self.messageText.attributedText = textModel.textAttribute;
self.bubbleImageView.image = nil;
self.bgImage.image = [self resizableImage:kImage(@"ms_message_headlines_text_right")];
NSString *iosBubbleUrl = extModel.iosBubbleUrl;
if(iosBubbleUrl.length > 0){
[self.bubbleImageView loadImageWithUrl:extModel.iosBubbleUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.bgImage.image = nil;
UIImage *image1 = [UIImage imageWithCGImage:image.CGImage scale:2.0 orientation:UIImageOrientationUp];
self.bubbleImageView.image = [self resizableImage:image1];
}];
}
}
-(void)installUI{
self.contentView.backgroundColor = [UIColor clearColor];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarView];
[self.contentView addSubview:self.bgImage];
[self.contentView addSubview:self.bubbleImageView];
[self.contentView addSubview:self.messageText];
}
-(void)installConstraints{
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.top.equalTo(self.contentView);
make.height.mas_equalTo(kGetScaleWidth(48));
}];
[self.bgImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.messageText).offset(-kGetScaleWidth(10));
make.top.equalTo(self.messageText).offset(-kGetScaleWidth(10));
make.bottom.mas_equalTo(self.messageText).offset(kGetScaleWidth(10));
make.right.mas_equalTo(self.messageText).offset(kGetScaleWidth(10));
}];
[self.messageText mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(55));
make.trailing.mas_equalTo(-kGetScaleWidth(82));
make.bottom.mas_equalTo(-kGetScaleWidth(10));
}];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImage);
}];
}
#pragma mark -
- (UIImage*)resizableImage:(UIImage *)image {
//
CGFloat top = (image.size.height - 1) / 2;
CGFloat left = (image.size.width - 1) / 2;
CGFloat right = (image.size.width - 1) / 2;
CGFloat bottom = (image.size.height - 1) / 2;
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];
}
- (UIImageView *)bgImage{
if(!_bgImage){
_bgImage = [UIImageView new];
_bgImage.image = [self resizableImage:kImage(@"ms_message_headlines_text_right")];
}
return _bgImage;
}
- (NetImageView *)bubbleImageView{
if(!_bubbleImageView){
_bubbleImageView = [[NetImageView alloc] init];
}
return _bubbleImageView;
}
- (YYLabel *)messageText {
if (!_messageText) {
_messageText = [[YYLabel alloc]initWithFrame:CGRectZero];
_messageText.textColor = DJDKMIMOMColor.mainTextColor;
_messageText.numberOfLines = 0;
_messageText.font = kFontMedium(14);
_messageText.textColor = [UIColor whiteColor];
_messageText.textAlignment = NSTextAlignmentLeft;
_messageText.userInteractionEnabled = YES;
_messageText.preferredMaxLayoutWidth = kGetScaleWidth(220);
}
return _messageText;
}
- (MessageContentChatHallHeadView *)avatarView{
if(!_avatarView){
_avatarView = [[MessageContentChatHallHeadView alloc]initWithFrame:CGRectZero isSelf:YES];
}
return _avatarView;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -0,0 +1,16 @@
//
// MSSessionPublicChatHalTextCell.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import <UIKit/UIKit.h>
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHalTextCell : UITableViewCell
- (void)render:(nonnull MessageBaseModel *)model ;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,158 @@
//
// MSSessionPublicChatHalTextCell.m
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MSSessionPublicChatHalTextCell.h"
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
#import "QEmotionHelper.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "SpriteSheetImageManager.h"
#import "MessageHeadlinesTextModel.h"
#import "XPMessageRemoteExtModel.h"
#import "MessageContentChatHallHeadView.h"
@interface MSSessionPublicChatHalTextCell ()
/**
*/
@property (nonatomic, strong) YYLabel * messageText;
@property(nonatomic,strong) UIImageView *bgImage;
///
@property (nonatomic,strong) NetImageView *bubbleImageView;
@property(nonatomic,strong) MessageContentChatHallHeadView *avatarView;
@end
@implementation MSSessionPublicChatHalTextCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
- (void)render:(nonnull MessageBaseModel *)model {
MessageHeadlinesTextModel * textModel = (MessageHeadlinesTextModel *)model;
XPMessageRemoteExtModel *extModel = textModel.extModel;
if(extModel == nil)return;
[self.avatarView render:model];
self.messageText.textColor = [UIColor whiteColor];
self.bubbleImageView.image = nil;
NSString *iosBubbleUrl = extModel.iosBubbleUrl;
_bgImage.image = [self resizableImage:kImage(@"ms_message_headlines_text_left")];
if(iosBubbleUrl.length > 0){
[self.bubbleImageView loadImageWithUrl:extModel.iosBubbleUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.bgImage.image = nil;
self.messageText.textColor = UIColorFromRGB(0x333333);
UIImage *image1 = [UIImage imageWithCGImage:image.CGImage scale:2.0 orientation:UIImageOrientationUp];
self.bubbleImageView.image = [self resizableImage:image1];
}];
}
self.messageText.attributedText = textModel.textAttribute;
}
-(void)installUI{
self.contentView.backgroundColor = [UIColor clearColor];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarView];
[self.contentView addSubview:self.bgImage];
[self.contentView addSubview:self.bubbleImageView];
[self.contentView addSubview:self.messageText];
}
-(void)installConstraints{
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.top.equalTo(self.contentView);
make.height.mas_equalTo(kGetScaleWidth(48));
}];
[self.messageText mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(55));
make.leading.mas_equalTo(kGetScaleWidth(82));
make.bottom.mas_equalTo(-kGetScaleWidth(10));
}];
[self.bgImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.messageText).offset(-kGetScaleWidth(10));
make.top.equalTo(self.messageText).offset(-kGetScaleWidth(10));
make.bottom.mas_equalTo(self.messageText).offset(kGetScaleWidth(10));
make.right.mas_equalTo(self.messageText).offset(kGetScaleWidth(10));
}];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgImage);
}];
}
#pragma mark -
- (UIImage*)resizableImage:(UIImage *)image {
//
CGFloat top = (image.size.height - 1) / 2;
CGFloat left = (image.size.width - 1) / 2;
CGFloat right = (image.size.width - 1) / 2;
CGFloat bottom = (image.size.height - 1) / 2;
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];
}
- (UIImageView *)bgImage{
if(!_bgImage){
_bgImage = [UIImageView new];
_bgImage.image = [self resizableImage:kImage(@"ms_message_headlines_text_left")];
}
return _bgImage;
}
- (NetImageView *)bubbleImageView{
if(!_bubbleImageView){
_bubbleImageView = [[NetImageView alloc] init];
}
return _bubbleImageView;
}
- (YYLabel *)messageText {
if (!_messageText) {
_messageText = [[YYLabel alloc]initWithFrame:CGRectZero];
_messageText.textColor = DJDKMIMOMColor.mainTextColor;
_messageText.numberOfLines = 0;
_messageText.font = kFontMedium(14);
_messageText.textColor = [UIColor whiteColor];
_messageText.textAlignment = NSTextAlignmentLeft;
_messageText.userInteractionEnabled = YES;
_messageText.preferredMaxLayoutWidth = kGetScaleWidth(220);
}
return _messageText;
}
- (MessageContentChatHallHeadView *)avatarView{
if(!_avatarView){
_avatarView = [[MessageContentChatHallHeadView alloc]initWithFrame:CGRectZero isSelf:NO];
}
return _avatarView;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -246,7 +246,7 @@
[self.messageContent mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.top.trailing.bottom.mas_equalTo(self.messageBackground);
}];
[self.messageContent.superview layoutIfNeeded];
if (model.isHiddenAvatar) {
self.leftAvatar.hidden= YES;
self.rightAvatar.hidden = YES;

View File

@@ -0,0 +1,16 @@
//
// MSSessionContextHeadlinesView.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import <UIKit/UIKit.h>
#import "MessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionContextHeadlinesView : UIView<MessageContentProtocol>
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,53 @@
//
// MSSessionContextHeadlinesView.m
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MSSessionContextHeadlinesView.h"
#import "MSSessionPublicChatHallTopModel.h"
#import "MessageBaseModel.h"
#import "MessageHeadlinesModel.h"
#import "MSSessionScrollingModel.h"
#import "AttachmentModel.h"
@interface MSSessionContextHeadlinesView()
@property(nonatomic,strong) UILabel *textView;
///
@property (nonatomic,strong) MSSessionPublicChatHallTopModel *messageInfo;
@property (nonatomic,strong) AttachmentModel *attachment;
@property (nonatomic,strong) NIMMessage *message;
@end
@implementation MSSessionContextHeadlinesView
- (instancetype)init {
self = [super init];
if (self) {
[self addSubview:self.textView];
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(kGetScaleWidth(15));
make.centerY.equalTo(self);
}];
}
return self;
}
- (void)render:(nonnull MessageBaseModel *)model {
self.superview.backgroundColor = [UIColor clearColor];
self.message = model.message;
MessageHeadlinesModel *obj = (MessageHeadlinesModel *)model;
MSSessionPublicChatHallTopModel * info = obj.info;
self.messageInfo = info;
self.textView.attributedText = obj.textAtt;
}
#pragma mark -
- (UILabel *)textView{
if(!_textView){
_textView = [UILabel new];
_textView.numberOfLines = 2;
}
return _textView;
}
@end

View File

@@ -0,0 +1,17 @@
//
// MessageContentChatHallHeadView.h
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import <UIKit/UIKit.h>
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageContentChatHallHeadView : UIView
-(instancetype)initWithFrame:(CGRect)frame isSelf:(BOOL)isSelf;
- (void)render:(nonnull MessageBaseModel *)model;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,196 @@
//
// MessageContentChatHallHeadView.m
// YuMi
//
// Created by duoban on 2024/5/16.
//
#import "MessageContentChatHallHeadView.h"
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
#import "QEmotionHelper.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "SpriteSheetImageManager.h"
#import "MessageHeadlinesTextModel.h"
#import "XPMessageRemoteExtModel.h"
#import "MSSessionPublicChatHalImageModel.h"
@interface MessageContentChatHallHeadView()
@property(nonatomic,assign) BOOL isSelf;
///
@property (nonatomic,strong) YYAnimatedImageView *headWearImageView;
///
@property (nonatomic, strong) SpriteSheetImageManager *manager;
/**
*/
@property (nonatomic, strong) NetImageView * avatarView;
@property(nonatomic,strong) UILabel *nameView;
@property(nonatomic,strong) NetImageView *experImage;
@property(nonatomic,strong) NetImageView *charmImage;
@end
@implementation MessageContentChatHallHeadView
-(instancetype)initWithFrame:(CGRect)frame isSelf:(BOOL)isSelf{
self = [super initWithFrame:frame];
if(self){
self.isSelf = isSelf;
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.avatarView];
[self addSubview:self.headWearImageView];
[self addSubview:self.nameView];
[self addSubview:self.experImage];
[self addSubview:self.charmImage];
}
-(void)installConstraints{
if(self.isSelf){
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(15));
make.width.height.mas_equalTo(kGetScaleWidth(48));
make.top.mas_equalTo(kGetScaleWidth(10));
}];
[self.headWearImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.avatarView).with.insets(UIEdgeInsetsMake(-kGetScaleWidth(10),-kGetScaleWidth(10),-kGetScaleWidth(10),-kGetScaleWidth(10)));
}];
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(21));
make.height.mas_equalTo(kGetScaleWidth(18));
make.trailing.mas_equalTo(-kGetScaleWidth(72));
make.leading.equalTo(self.experImage.mas_trailing).mas_offset(kGetScaleWidth(4));
}];
[self.experImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(36));
make.height.mas_equalTo(kGetScaleWidth(18));
make.leading.equalTo(self.charmImage.mas_trailing).mas_offset(kGetScaleWidth(4));
make.centerY.equalTo(self.nameView);
}];
[self.charmImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(36));
make.height.mas_equalTo(kGetScaleWidth(18));
make.leading.mas_greaterThanOrEqualTo(kGetScaleWidth(kGetScaleWidth(64)));
make.centerY.equalTo(self.nameView);
}];
return;
}
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(15));
make.width.height.mas_equalTo(kGetScaleWidth(48));
make.top.mas_equalTo(kGetScaleWidth(10));
}];
[self.headWearImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.avatarView).with.insets(UIEdgeInsetsMake(-kGetScaleWidth(10),-kGetScaleWidth(10),-kGetScaleWidth(10),-kGetScaleWidth(10)));
}];
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(21));
make.height.mas_equalTo(kGetScaleWidth(18));
make.leading.mas_equalTo(kGetScaleWidth(72));
make.trailing.equalTo(self.experImage.mas_leading).mas_offset(-kGetScaleWidth(4));
}];
[self.experImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(36));
make.height.mas_equalTo(kGetScaleWidth(18));
make.trailing.equalTo(self.charmImage.mas_leading).mas_offset(-kGetScaleWidth(4));
make.centerY.equalTo(self.nameView);
}];
[self.charmImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(36));
make.height.mas_equalTo(kGetScaleWidth(18));
make.trailing.mas_lessThanOrEqualTo(-kGetScaleWidth(64));
make.centerY.equalTo(self.nameView);
}];
}
- (void)render:(nonnull MessageBaseModel *)model {
XPMessageRemoteExtModel *extModel ;
if([model isKindOfClass:[MSSessionPublicChatHalImageModel class]]){
MSSessionPublicChatHalImageModel *imageModel = (MSSessionPublicChatHalImageModel *)model;
extModel = imageModel.extModel;
}else{
MessageHeadlinesTextModel * textModel = (MessageHeadlinesTextModel *)model;
extModel = textModel.extModel;
}
if(extModel == nil)return;
self.avatarView.image = nil;
[self.avatarView loadImageWithUrl:extModel.avatar completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.avatarView.image = image;
}];
self.experImage.image = nil;
[self.experImage loadImageWithUrl:extModel.experUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.experImage.image = image;
}];
self.charmImage.image = nil;
[self.charmImage loadImageWithUrl:extModel.charmUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.charmImage.image = image;
}];
self.nameView.text = extModel.nick;
self.headWearImageView.image = nil;
NSString *headwearUrl = extModel.headwearUrl;
if (headwearUrl.length > 0) {
NSURL *url = [NSURL URLWithString:headwearUrl];
@kWeakify(self);
[self.manager loadSpriteSheetImageWithURL:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) {
@kStrongify(self);
self.headWearImageView.image = sprit;
} failureBlock:^(NSError * _Nullable error) {
}];
}
}
#pragma mark -
- (NetImageView *)avatarView{
if(!_avatarView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarView = [[NetImageView alloc]initWithConfig:config];
_avatarView.layer.cornerRadius = kGetScaleWidth(48)/2;
_avatarView.layer.masksToBounds = YES;
}
return _avatarView;
}
- (UILabel *)nameView{
if(!_nameView){
_nameView = [UILabel labelInitWithText:@"" font:kFontBold(14) textColor:UIColorFromRGB(0x333333)];
_nameView.lineBreakMode = self.isSelf ? NSLineBreakByTruncatingHead : NSLineBreakByTruncatingTail;
}
return _nameView;
}
- (YYAnimatedImageView *)headWearImageView {
if (!_headWearImageView) {
_headWearImageView = [[YYAnimatedImageView alloc] init];
_headWearImageView.backgroundColor = [UIColor clearColor];
_headWearImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _headWearImageView;
}
- (SpriteSheetImageManager *)manager {
if (!_manager) {
_manager = [[SpriteSheetImageManager alloc] init];
}
return _manager;
}
- (NetImageView *)experImage{
if(!_experImage){
_experImage = [NetImageView new];
}
return _experImage;
}
- (NetImageView *)charmImage{
if(!_charmImage){
_charmImage = [NetImageView new];
}
return _charmImage;
}
@end

View File

@@ -71,9 +71,7 @@
}];
}
}
-(void)aa{
NSLog(@"%f,%f",self.messageText.frame.size.width,(CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2));
}
- (YYLabel *)messageText {
if (!_messageText) {
_messageText = [[YYLabel alloc]initWithFrame:CGRectZero];
@@ -81,8 +79,6 @@
_messageText.textColor = DJDKMIMOMColor.mainTextColor;
_messageText.numberOfLines = 0;
_messageText.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(aa)];
[_messageText addGestureRecognizer:tap];
}
return _messageText;
}

View File

@@ -14,11 +14,11 @@
@property(nonatomic,strong) YYLabel *contentView;
@property(nonatomic,strong) YYLabel *contentView1;
@property(nonatomic,strong) UILabel *contentView;
@property(nonatomic,strong) UILabel *contentView1;
@property(nonatomic,strong) YYLabel *contentView2;
@property(nonatomic,strong) YYLabel *contentView3;
@property(nonatomic,strong) YYLabel *contentView4;
@property(nonatomic,strong) UILabel *contentView4;
@end
@implementation PIMessageContentServiceReplyView
@@ -51,27 +51,28 @@
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16);
make.trailing.mas_equalTo(14);
make.trailing.mas_equalTo(-14);
make.top.equalTo(self.titleView.mas_bottom).mas_offset(6);
}];
[self.contentView1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16);
make.trailing.mas_equalTo(14);
make.trailing.mas_equalTo(-14);
make.top.equalTo(self.contentView.mas_bottom).mas_offset(6);
}];
[self.contentView2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16);
make.trailing.mas_equalTo(14);
make.trailing.mas_equalTo(-14);
make.top.equalTo(self.contentView1.mas_bottom).mas_offset(4);
}];
[self.contentView3 mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16);
make.trailing.mas_equalTo(14);
make.trailing.mas_equalTo(-14);
make.top.equalTo(self.contentView2.mas_bottom).mas_offset(4);
}];
[self.contentView4 mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(16);
make.trailing.mas_equalTo(14);
make.trailing.mas_equalTo(-14);
make.top.equalTo(self.contentView3.mas_bottom).mas_offset(6);
}];
}
@@ -129,9 +130,9 @@
}
return _titleView;
}
- (YYLabel *)contentView{
- (UILabel *)contentView{
if(!_contentView){
_contentView = [[YYLabel alloc] init];
_contentView = [[UILabel alloc] init];
_contentView.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_contentView.textColor = UIColorFromRGB(0x767585);
_contentView.text = YMLocalizedString(@"PIMessageContentServiceReplyView2");
@@ -139,12 +140,13 @@
}
return _contentView;
}
- (YYLabel *)contentView1{
- (UILabel *)contentView1{
if(!_contentView1){
_contentView1 = [[YYLabel alloc] init];
_contentView1 = [[UILabel alloc] init];
_contentView1.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_contentView1.textColor = UIColorFromRGB(0x767585);
_contentView1.text = YMLocalizedString(@"PIMessageContentServiceReplyView3");
_contentView1.numberOfLines = 2;
}
return _contentView1;
}
@@ -164,13 +166,13 @@
}
return _contentView3;
}
- (YYLabel *)contentView4{
- (UILabel *)contentView4{
if(!_contentView4){
_contentView4 = [[YYLabel alloc] init];
_contentView4 = [[UILabel alloc] init];
_contentView4.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_contentView4.textColor = UIColorFromRGB(0x767585);
_contentView4.text = YMLocalizedString(@"PIMessageContentServiceReplyView6");
_contentView4.numberOfLines = 2;
_contentView4.numberOfLines = 3;
}
return _contentView4;
}

View File

@@ -0,0 +1,20 @@
//
// MSSessionPublicChatHalImageModel.h
// YuMi
//
// Created by duoban on 2024/5/10.
//
#import "MessageBaseModel.h"
#import "XPMessageRemoteExtModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHalImageModel : MessageBaseModel
@property(nonatomic,assign) BOOL isSelf ;
@property(nonatomic,strong) XPMessageRemoteExtModel *extModel;
@property (nonatomic,strong) UIImage *image;
@property (nonatomic,copy) NSString *imageUrl;
@property(nonatomic,strong) NSString *url;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,91 @@
//
// MSSessionPublicChatHalImageModel.m
// YuMi
//
// Created by duoban on 2024/5/10.
//
#import "MSSessionPublicChatHalImageModel.h"
#define MESSAGE_IMAGE_MAX_SIZE (CONTENT_WIDTH_MAX)
#define MESSAGE_IMAGE_Min_SIZE (CONTENT_WIDTH_MAX -100)
@implementation MSSessionPublicChatHalImageModel
- (instancetype)initWithMessage:(NIMMessage *)message {
if (self = [super initWithMessage:message]) {
self.messageType = SessionMessageType_Image;
XPMessageRemoteExtModel *extModel = [XPMessageRemoteExtModel modelWithJSON:message.remoteExt[message.from]];
self.extModel = extModel;
self.isSelf = [[NIMSDK sharedSDK].loginManager.currentAccount isEqualToString:message.from];
NIMImageObject * imageObject = (NIMImageObject*)message.messageObject;
CGFloat attachmentImageMinWidth = (MESSAGE_IMAGE_Min_SIZE);
CGFloat attachmentImageMinHeight = (MESSAGE_IMAGE_Min_SIZE);
CGFloat attachmemtImageMaxWidth = (MESSAGE_IMAGE_MAX_SIZE);
CGFloat attachmentImageMaxHeight = (MESSAGE_IMAGE_MAX_SIZE);
CGSize imageSize;
if (!CGSizeEqualToSize(imageObject.size, CGSizeZero)) {
imageSize = imageObject.size;
}else {
UIImage *image = [UIImage imageWithContentsOfFile:imageObject.thumbPath];
imageSize = image ? image.size : CGSizeZero;
}
CGSize contentSize = [UIImage sizeWithImageOriginSize:imageSize
minSize:CGSizeMake(attachmentImageMinWidth, attachmentImageMinHeight)
maxSize:CGSizeMake(attachmemtImageMaxWidth, attachmentImageMaxHeight)];
self.contentSize = contentSize;
self.height = contentSize.height + kGetScaleWidth(40) + (self.isSelf ? 0 : kGetScaleWidth(65));
UIImage *image = [UIImage imageWithContentsOfFile:imageObject.thumbPath];
if (image) {
self.image = image;
}else {
self.imageUrl = imageObject.url;
}
self.url = imageObject.url;
self.isHiddenAvatar = YES;
}
return self;
}
- (NSMutableAttributedString *)createUrlImageAttribute:(NSString *)imageUrl size:(CGSize)size {
NetImageConfig *config = [[NetImageConfig alloc]init];
///
config.autoLoad = YES;
NetImageView *imageView = [[NetImageView alloc]initWithUrl:imageUrl config:config];
imageView.bounds = CGRectMake(0, 0, size.width, size.height);
imageView.layer.masksToBounds = YES;
imageView.contentMode = UIViewContentModeScaleAspectFit;
NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter];
return attrString;
}
///
/// @param width
- (NSMutableAttributedString *)createSapceAttribute:(CGFloat)width {
UIView *spaceView = [[UIView alloc]init];
spaceView.backgroundColor = [UIColor clearColor];
spaceView.bounds = CGRectMake(0, 0, width, 10);
NSMutableAttributedString * attribute = [NSMutableAttributedString yy_attachmentStringWithContent:spaceView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(spaceView.frame.size.width, spaceView.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter];
return attribute;
}
///
/// @param text
/// @param color
/// @param font
- (NSMutableAttributedString *)createTextAttribute:(NSString *)text color:(UIColor *)color font:(UIFont *)font {
if (text == nil || text.length <= 0) {
text = @"";
}
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text attributes:nil];
attribute.yy_font = font;
attribute.yy_color = color;
attribute.yy_paragraphStyle = [self paragraphStyle];
return attribute;
}
/// ...
- (NSMutableParagraphStyle *)paragraphStyle {
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineSpacing = 4.0f;//
// ()
paraStyle.alignment = NSTextAlignmentLeft;
paraStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
return paraStyle;
}
@end

View File

@@ -0,0 +1,17 @@
//
// MessageHeadlinesModel.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MessageBaseModel.h"
#import "MSSessionPublicChatHallTopModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageHeadlinesModel : MessageBaseModel
@property(nonatomic,strong) MSSessionPublicChatHallTopModel * info;
@property(nonatomic,strong) NSMutableAttributedString *textAtt;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,35 @@
//
// MessageHeadlinesModel.m
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MessageHeadlinesModel.h"
#import "AttachmentModel.h"
@implementation MessageHeadlinesModel
- (instancetype)initWithMessage:(NIMMessage *)message {
if (self = [super initWithMessage:message]) {
self.messageType = SessionMessageType_Custom;
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
AttachmentModel * attach = (AttachmentModel *)obj.attachment;
MSSessionPublicChatHallTopModel * info = [MSSessionPublicChatHallTopModel modelWithJSON:attach.data];
self.info = info;
self.contentSize = CGSizeMake(KScreenWidth, 20);
if (info.nick != nil){
NSString *text = [NSString stringWithFormat:YMLocalizedString(@"MSSessionContextHeadlinesView0"),info.nick];
self.textAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:kFontMedium(9),NSForegroundColorAttributeName:UIColorFromRGB(0x333333)}];
[self.textAtt addAttributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0xDE3446)} range:[text rangeOfString:info.nick]];
}
self.height = (20 + CONTENT_PADDING_V_TOTAL);
self.isHiddenAvatar = YES;
}
return self;
}
- (NSString *)cellContent:(MessageBaseModel *)model {
return @"MSSessionContextHeadlinesView";
}
@end

View File

@@ -0,0 +1,21 @@
//
// MessageHeadlinesTextModel.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MessageBaseModel.h"
#import "XPMessageRemoteExtModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageHeadlinesTextModel : MessageBaseModel
///富文本
@property (nonatomic,strong) NSAttributedString *textAttribute;
@property(nonatomic,assign) BOOL isSelf ;
@property(nonatomic,strong) XPMessageRemoteExtModel *extModel;
@property(nonatomic,assign) CGFloat width;
@property(nonatomic,assign) CGFloat imageHeight;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,99 @@
//
// MessageHeadlinesTextModel.m
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MessageHeadlinesTextModel.h"
#import "QEmotionHelper.h"
@implementation MessageHeadlinesTextModel
- (instancetype)initWithMessage:(NIMMessage *)message {
if (self = [super initWithMessage:message]) {
self.messageType = SessionMessageType_Text;
XPMessageRemoteExtModel *extModel = [XPMessageRemoteExtModel modelWithJSON:message.remoteExt[message.from]];
self.extModel = extModel;
self.isSelf = [[NIMSDK sharedSDK].loginManager.currentAccount isEqualToString:message.from];
NSString * messageText = message.text;
if (!messageText) {
messageText = YMLocalizedString(@"MessageTextModel0");
}
CGFloat width = [UILabel getWidthWithText:messageText height:kGetScaleWidth(36) font:kFontMedium(14)];
width = width > kGetScaleWidth(200) ? kGetScaleWidth(200) : width;
self.width = width >= kGetScaleWidth(220) ? kGetScaleWidth(220) : (width + kGetScaleWidth(25));
CGSize dstRect = CGSizeMake(width, MAXFLOAT);
QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper];
NSMutableAttributedString * attribute = [faceManager attributedStringByText:messageText font:kFontMedium(14)];
if(extModel.iosBubbleUrl.length > 0){
[attribute addAttributes:@{NSForegroundColorAttributeName: UIColorFromRGB(0x333333)} range:[attribute.string rangeOfString:attribute.string]];
}else{
[attribute addAttributes:@{NSForegroundColorAttributeName:self.isSelf ? UIColorFromRGB(0x333333) : [UIColor whiteColor]} range:[attribute.string rangeOfString:attribute.string]];
}
self.textAttribute = attribute;
YYTextContainer *container = [YYTextContainer containerWithSize:dstRect];
container.maximumNumberOfRows = 0;
YYTextLayout *layout = [YYTextLayout layoutWithContainer:container text:attribute];
CGFloat rowHeight = layout.textBoundingSize.height + kGetScaleWidth(25);
self.imageHeight = rowHeight;
self.height = (self.isSelf ? kGetScaleWidth(35) : kGetScaleWidth(65)) + rowHeight;
self.isHiddenAvatar = YES;
}
return self;
}
- (NSMutableAttributedString *)createUrlImageAttribute:(NSString *)imageUrl size:(CGSize)size {
NetImageConfig *config = [[NetImageConfig alloc]init];
///
config.autoLoad = YES;
NetImageView *imageView = [[NetImageView alloc]initWithUrl:imageUrl config:config];
imageView.bounds = CGRectMake(0, 0, size.width, size.height);
imageView.layer.masksToBounds = YES;
imageView.contentMode = UIViewContentModeScaleAspectFit;
NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter];
return attrString;
}
///
/// @param width
- (NSMutableAttributedString *)createSapceAttribute:(CGFloat)width {
UIView *spaceView = [[UIView alloc]init];
spaceView.backgroundColor = [UIColor clearColor];
spaceView.bounds = CGRectMake(0, 0, width, 10);
NSMutableAttributedString * attribute = [NSMutableAttributedString yy_attachmentStringWithContent:spaceView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(spaceView.frame.size.width, spaceView.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter];
return attribute;
}
///
/// @param text
/// @param color
/// @param font
- (NSMutableAttributedString *)createTextAttribute:(NSString *)text color:(UIColor *)color font:(UIFont *)font {
if (text == nil || text.length <= 0) {
text = @"";
}
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text attributes:nil];
attribute.yy_font = font;
attribute.yy_color = color;
attribute.yy_paragraphStyle = [self paragraphStyle];
return attribute;
}
/// ...
- (NSMutableParagraphStyle *)paragraphStyle {
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineSpacing = 4.0f;//
// ()
paraStyle.alignment = NSTextAlignmentLeft;
paraStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
return paraStyle;
}
- (NSString *)cellContent:(MessageBaseModel *)model {
return @"MessageContentHeadLinesText";
}
@end

View File

@@ -0,0 +1,16 @@
//
// MSSessionPublicChatHallVC.h
// YuMi
//
// Created by duoban on 2024/5/6.
//
#import "MvpViewController.h"
#import <NIMSDK/NIMSDK.h>
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHallVC : MvpViewController
@end
NS_ASSUME_NONNULL_END

File diff suppressed because it is too large Load Diff

View File

@@ -675,9 +675,12 @@
#pragma mark - NIMChatManagerDelegate
- (void)onRecvMessages:(NSArray<NIMMessage *> *)messages {
if(!messages.count){
return;
}
NIMMessage *message = messages.firstObject;
NIMSession *session = message.session;
if (![session isEqual:self.session] || !messages.count) {
if (![session isEqual:self.session] ) {
return;
}
for (NIMMessage *message in messages) {

View File

@@ -0,0 +1,17 @@
//
// MSSessionPublicChatHallHeadView.h
// YuMi
//
// Created by duoban on 2024/5/8.
//
#import <UIKit/UIKit.h>
#import "MSSessionPublicChatHallTopModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSSessionPublicChatHallHeadView : UIView
@property(nonatomic,strong) MSSessionPublicChatHallTopModel *__nullable topModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,105 @@
//
// MSSessionPublicChatHallHeadView.m
// YuMi
//
// Created by duoban on 2024/5/8.
//
#import "MSSessionPublicChatHallHeadView.h"
@interface MSSessionPublicChatHallHeadView()
@property(nonatomic,strong) UIImageView *bgImageView;
@property(nonatomic,strong) UILabel *textView;
@property(nonatomic,strong) UIImageView *addIocnView;
@property(nonatomic,strong) UILabel *contentView;
@end
@implementation MSSessionPublicChatHallHeadView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.bgImageView];
[self.bgImageView addSubview:self.addIocnView];
[self.bgImageView addSubview:self.textView];
[self.bgImageView addSubview:self.contentView];
}
-(void)setTopModel:(MSSessionPublicChatHallTopModel *)topModel{
_topModel = topModel;
if(_topModel.recordStatus == 1 || _topModel == nil){
self.contentView.hidden = YES;
self.addIocnView.hidden = NO;
self.textView.hidden = NO;
_bgImageView.image = kImage(@"ms_public_chat_hall_head_bg");
self.contentView.text = @"";
return;
}
self.contentView.hidden = NO;
self.addIocnView.hidden = YES;
self.textView.hidden = YES;
self.contentView.text = _topModel.content;
_bgImageView.image = [kImage(@"ms_public_chat_hall_head_broadcast_bg") ms_SetImageForRTL];
}
-(void)installConstraints{
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(10.5));
make.bottom.mas_equalTo(-kGetScaleWidth(36));
make.centerX.equalTo(self.bgImageView).mas_offset(kGetScaleWidth(8));
}];
[self.addIocnView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(13));
make.centerY.equalTo(self.textView);
make.trailing.equalTo(self.textView.mas_leading).mas_offset(-kGetScaleWidth(3));
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(45.5));
make.centerY.equalTo(self.bgImageView);
make.trailing.mas_equalTo(-kGetScaleWidth(23.5));
make.top.mas_equalTo(kGetScaleWidth(2));
make.bottom.mas_equalTo(-kGetScaleWidth(2));
}];
}
#pragma mark -
- (UIImageView *)bgImageView{
if(!_bgImageView){
_bgImageView = [UIImageView new];
_bgImageView.image = kImage(@"ms_public_chat_hall_head_bg");
_bgImageView.userInteractionEnabled = YES;
}
return _bgImageView;
}
- (UIImageView *)addIocnView{
if(!_addIocnView){
_addIocnView = [UIImageView new];
_addIocnView.image = kImage(@"ms_public_chat_hall_add_icon");
}
return _addIocnView;
}
-(UILabel *)textView{
if(!_textView){
_textView = [UILabel labelInitWithText:YMLocalizedString(@"MSSessionPublicChatHallVC1") font:kFontBold(11) textColor:UIColorFromRGB(0xF9DB3B)];
}
return _textView;
}
- (UILabel *)contentView{
if(!_contentView){
_contentView = [UILabel labelInitWithText:@"" font:kFontBold(14) textColor:UIColorFromRGB(0xFFFADF)];
_contentView.numberOfLines = 0;
_contentView.textAlignment = NSTextAlignmentCenter;
_contentView.minimumScaleFactor = 0.5;
}
return _contentView;
}
@end

View File

@@ -0,0 +1,25 @@
//
// MSSessionReleaseHeadlinesPayView.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol MSSessionReleaseHeadlinesPayViewDelegate <NSObject>
-(void)payReleaseHeadlines;
@end
@interface MSSessionReleaseHeadlinesPayView : UIView
@property(nonatomic,copy) NSString *releaseCoins;
@property(nonatomic,copy) NSString *coins;
@property(nonatomic,assign) BOOL isRoom;
@property(nonatomic,weak) id<MSSessionReleaseHeadlinesPayViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,161 @@
//
// MSSessionReleaseHeadlinesPayView.m
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import "MSSessionReleaseHeadlinesPayView.h"
@interface MSSessionReleaseHeadlinesPayView()
@property(nonatomic,strong) UILabel *titleView;
@property(nonatomic,strong) UILabel *numView;
@property(nonatomic,strong) UILabel *coinsView;
@property(nonatomic,strong) UIImageView *chooseImageView;
@property(nonatomic,strong) UIButton *payBtn;
@property(nonatomic,strong) UIView *bgView;
@property(nonatomic,strong) UIButton *backBtn;
@end
@implementation MSSessionReleaseHeadlinesPayView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6];
[self addSubview:self.backBtn];
[self addSubview:self.bgView];
[self.bgView addSubview:self.titleView];
[self.bgView addSubview:self.numView];
[self.bgView addSubview:self.coinsView];
[self.bgView addSubview:self.chooseImageView];
[self.bgView addSubview:self.payBtn];
}
-(void)backAction{
if(self.isRoom){
[self.superview removeFromSuperview];
return;
}
[self removeFromSuperview];
}
-(void)installConstraints{
[self.backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
make.height.mas_equalTo(kGetScaleWidth(245));
}];
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(19));
make.centerX.equalTo(self.bgView);
}];
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(52));
make.centerX.equalTo(self.bgView);
}];
[self.chooseImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(18));
make.trailing.mas_equalTo(-kGetScaleWidth(27));
make.top.mas_equalTo(kGetScaleWidth(100));
}];
[self.coinsView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(27));
make.centerY.equalTo(self.chooseImageView);
make.trailing.equalTo(self.chooseImageView.mas_leading).mas_offset(-kGetScaleWidth(5));
}];
[self.payBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(208));
make.height.mas_equalTo(kGetScaleWidth(40));
make.centerX.equalTo(self.bgView);
make.top.mas_equalTo(kGetScaleWidth(178));
}];
}
-(void)payBtnAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(payReleaseHeadlines)]){
[self.delegate payReleaseHeadlines];
}
if(self.isRoom){
[self.superview removeFromSuperview];
return;
}
[self removeFromSuperview];
}
-(void)setReleaseCoins:(NSString *)releaseCoins{
_releaseCoins = releaseCoins;
_numView.text = _releaseCoins;
}
- (void)setCoins:(NSString *)coins{
_coins = coins;
UIImage *iconImage = kImage(@"exchange_gold_icon");
UIFont *font = kFontMedium(11);
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@(%@%@)",YMLocalizedString(@"XPNobleCenterPayView2"),YMLocalizedString(@"XPNobleCenterPayView1"),_coins] attributes:@{NSFontAttributeName:font,NSForegroundColorAttributeName:UIColorFromRGB(0x333333)}];
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
attachment.bounds = CGRectMake(0, roundf(font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height);;
attachment.image = iconImage;
[textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0];
[textAtt addAttributes:@{NSFontAttributeName:kFontMedium(14)} range:[textAtt.string rangeOfString:YMLocalizedString(@"XPNobleCenterPayView2")]];
_coinsView.attributedText = textAtt;
}
#pragma mark -
- (UIView *)bgView{
if(!_bgView){
_bgView = [UIView new];
_bgView.backgroundColor = [UIColor whiteColor];
[_bgView setCornerWithLeftTopCorner:kGetScaleWidth(20) rightTopCorner:kGetScaleWidth(20) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, kGetScaleWidth(245))];
}
return _bgView;
}
- (UILabel *)titleView{
if(!_titleView){
_titleView = [UILabel labelInitWithText:YMLocalizedString(@"XPNobleCenterPayView0") font:kFontMedium(15) textColor:UIColorFromRGB(0x333333)];
}
return _titleView;
}
- (UILabel *)numView{
if(!_numView){
_numView = [UILabel labelInitWithText:@"0" font:kFontBold(19) textColor:UIColorFromRGB(0x7C5EFD)];
}
return _numView;
}
- (UILabel *)coinsView{
if(!_coinsView){
_coinsView = [UILabel new];
}
return _coinsView;
}
- (UIImageView *)chooseImageView{
if(!_chooseImageView){
_chooseImageView = [UIImageView new];
_chooseImageView.image = kImage(@"ms_headlines_pay_icon");
}
return _chooseImageView;
}
- (UIButton *)payBtn{
if(!_payBtn){
_payBtn = [UIButton new];
UIImage *image = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0x7E5AFF),UIColorFromRGB(0x52CAD3)] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(kGetScaleWidth(208),kGetScaleWidth(40))];
[_payBtn setBackgroundImage:image forState:UIControlStateNormal];
_payBtn.layer.cornerRadius = kGetScaleWidth(40)/2;
_payBtn.layer.masksToBounds = YES;
[_payBtn setTitle:YMLocalizedString(@"XPMineConfirmGiveDiamondView0") forState:UIControlStateNormal];
[_payBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_payBtn.titleLabel.font = kFontMedium(16);
[_payBtn addTarget:self action:@selector(payBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _payBtn;
}
- (UIButton *)backBtn{
if(!_backBtn){
_backBtn = [UIButton new];
[_backBtn addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
}
return _backBtn;
}
@end

View File

@@ -0,0 +1,28 @@
//
// MSSessionReleaseHeadlinesView.h
// YuMi
//
// Created by duoban on 2024/5/9.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol MSSessionReleaseHeadlinesViewDelegate <NSObject>
-(void)releaseHeadlinesWithText:(NSString *)text;
@end
@interface MSSessionReleaseHeadlinesView : UIView
@property(nonatomic,copy) NSString *sendText;
@property(nonatomic,copy) NSString *golds;
@property(nonatomic,copy) NSString *myCoins;
@property(nonatomic,weak) id<MSSessionReleaseHeadlinesViewDelegate>delegate;
-(void)loadDataForRoom;
@end
NS_ASSUME_NONNULL_END

Some files were not shown because too many files have changed in this diff Show More