修改yinmeng文件夹下的Message,Room,MouduleKit下文件的类型,方法名,加Mew

This commit is contained in:
linyudan
2023-12-05 15:47:44 -08:00
parent 1755bab5c3
commit 9c38bd3008
139 changed files with 1855 additions and 2015 deletions

View File

@@ -156,4 +156,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: cc88fa05da662ee682fc0eeb502faab221faa032
COCOAPODS: 1.12.1
COCOAPODS: 1.14.2

View File

@@ -7,28 +7,27 @@
objects = {
/* Begin PBXBuildFile section */
23270C292B0E037300B9303B /* CHMessageConentAudioView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23270C272B0E037300B9303B /* CHMessageConentAudioView.m */; };
23270C2C2B0E041300B9303B /* CHMessageAudioCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 23270C2B2B0E041300B9303B /* CHMessageAudioCenter.m */; };
23270C292B0E037300B9303B /* MewMessageConentAudioView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23270C272B0E037300B9303B /* MewMessageConentAudioView.m */; };
23270C2C2B0E041300B9303B /* MewMessageAudioCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 23270C2B2B0E041300B9303B /* MewMessageAudioCenter.m */; };
23270C302B0E071B00B9303B /* MewPaymentAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23270C2F2B0E071B00B9303B /* MewPaymentAction.swift */; };
233757562B0CB577001D0B7F /* CHMessagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757262B0CB577001D0B7F /* CHMessagePresenter.m */; };
233757572B0CB577001D0B7F /* MessageMenuModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337572C2B0CB577001D0B7F /* MessageMenuModel.m */; };
233757582B0CB577001D0B7F /* ChatLimitModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337572D2B0CB577001D0B7F /* ChatLimitModel.m */; };
233757592B0CB577001D0B7F /* NIMBadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757312B0CB577001D0B7F /* NIMBadgeView.m */; };
2337575A2B0CB577001D0B7F /* UITableView+NIMScrollToBottom.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757342B0CB577001D0B7F /* UITableView+NIMScrollToBottom.m */; };
233757562B0CB577001D0B7F /* MewMessagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757262B0CB577001D0B7F /* MewMessagePresenter.m */; };
233757572B0CB577001D0B7F /* MewMessageMenuModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337572C2B0CB577001D0B7F /* MewMessageMenuModel.m */; };
233757582B0CB577001D0B7F /* MewChatLimitModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337572D2B0CB577001D0B7F /* MewChatLimitModel.m */; };
233757592B0CB577001D0B7F /* MewNIMBadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757312B0CB577001D0B7F /* MewNIMBadgeView.m */; };
2337575B2B0CB577001D0B7F /* UIView+NIM.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757362B0CB577001D0B7F /* UIView+NIM.m */; };
2337575C2B0CB577001D0B7F /* CHSessionMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757392B0CB577001D0B7F /* CHSessionMessageCell.m */; };
2337575D2B0CB577001D0B7F /* CHSessionToolbarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573B2B0CB577001D0B7F /* CHSessionToolbarView.m */; };
2337575E2B0CB577001D0B7F /* NIMMessageMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573C2B0CB577001D0B7F /* NIMMessageMaker.m */; };
2337575F2B0CB577001D0B7F /* CHSessionInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573D2B0CB577001D0B7F /* CHSessionInfoViewController.m */; };
233757602B0CB577001D0B7F /* SessionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573E2B0CB577001D0B7F /* SessionViewController.m */; };
233757612B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757402B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.m */; };
233757622B0CB577001D0B7F /* CHMessageContentImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757412B0CB577001D0B7F /* CHMessageContentImage.m */; };
233757632B0CB577001D0B7F /* CHMessageContentUnSupportView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757472B0CB577001D0B7F /* CHMessageContentUnSupportView.m */; };
233757642B0CB577001D0B7F /* CHMessageContentText.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757482B0CB577001D0B7F /* CHMessageContentText.m */; };
233757652B0CB577001D0B7F /* CHSessionNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757492B0CB577001D0B7F /* CHSessionNavView.m */; };
233757662B0CB577001D0B7F /* CHSessionAudioRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337574F2B0CB577001D0B7F /* CHSessionAudioRecordView.m */; };
2337575C2B0CB577001D0B7F /* MewSessionMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757392B0CB577001D0B7F /* MewSessionMessageCell.m */; };
2337575D2B0CB577001D0B7F /* MewSessionToolbarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573B2B0CB577001D0B7F /* MewSessionToolbarView.m */; };
2337575E2B0CB577001D0B7F /* MewNIMMessageMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573C2B0CB577001D0B7F /* MewNIMMessageMaker.m */; };
2337575F2B0CB577001D0B7F /* MewSessionInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573D2B0CB577001D0B7F /* MewSessionInfoViewController.m */; };
233757602B0CB577001D0B7F /* MewSessionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337573E2B0CB577001D0B7F /* MewSessionViewController.m */; };
233757612B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757402B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m */; };
233757622B0CB577001D0B7F /* MewMessageContentImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757412B0CB577001D0B7F /* MewMessageContentImage.m */; };
233757632B0CB577001D0B7F /* MewMessageContentUnSupportView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757472B0CB577001D0B7F /* MewMessageContentUnSupportView.m */; };
233757642B0CB577001D0B7F /* MewMessageContentText.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757482B0CB577001D0B7F /* MewMessageContentText.m */; };
233757652B0CB577001D0B7F /* MewSessionNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757492B0CB577001D0B7F /* MewSessionNavView.m */; };
233757662B0CB577001D0B7F /* MewSessionAudioRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337574F2B0CB577001D0B7F /* MewSessionAudioRecordView.m */; };
233757672B0CB577001D0B7F /* Api+Message.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757512B0CB577001D0B7F /* Api+Message.m */; };
233757682B0CB577001D0B7F /* NIMMessageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757542B0CB577001D0B7F /* NIMMessageUtils.m */; };
233757682B0CB577001D0B7F /* MewNIMMessageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 233757542B0CB577001D0B7F /* MewNIMMessageUtils.m */; };
2337576B2B0CB630001D0B7F /* UIView+FilletCorner.m in Sources */ = {isa = PBXBuildFile; fileRef = 2337576A2B0CB630001D0B7F /* UIView+FilletCorner.m */; };
2370514C2B1D7CD500F5DE14 /* YYUtility+Device.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370511C2B1D7CD500F5DE14 /* YYUtility+Device.m */; };
2370514D2B1D7CD500F5DE14 /* YYUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 2370511D2B1D7CD500F5DE14 /* YYUtility.m */; };
@@ -95,22 +94,22 @@
8C9C82C12B0C695600A601BC /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C826E2B0C695600A601BC /* Api.m */; };
8C9C82DC2B0C696900A601BC /* YMConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82DB2B0C696900A601BC /* YMConstant.m */; };
8C9C84172B0C697A00A601BC /* YMWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82DF2B0C697A00A601BC /* YMWebViewController.m */; };
8C9C84182B0C697A00A601BC /* YMHomePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82E32B0C697A00A601BC /* YMHomePresenter.m */; };
8C9C84182B0C697A00A601BC /* MewPartyPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82E32B0C697A00A601BC /* MewPartyPresenter.m */; };
8C9C84192B0C697A00A601BC /* HomeRecommendRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82E92B0C697A00A601BC /* HomeRecommendRoomModel.m */; };
8C9C841A2B0C697A00A601BC /* Api+Home.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82EC2B0C697A00A601BC /* Api+Home.m */; };
8C9C841B2B0C697A00A601BC /* YMRoomPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82F02B0C697A00A601BC /* YMRoomPresenter.m */; };
8C9C841C2B0C697A00A601BC /* RoomInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82F52B0C697A00A601BC /* RoomInfoModel.m */; };
8C9C841E2B0C697A00A601BC /* YMRoomSendTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82FB2B0C697A00A601BC /* YMRoomSendTextView.m */; };
8C9C841A2B0C697A00A601BC /* Api+Party.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82EC2B0C697A00A601BC /* Api+Party.m */; };
8C9C841B2B0C697A00A601BC /* MewRoomPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82F02B0C697A00A601BC /* MewRoomPresenter.m */; };
8C9C841C2B0C697A00A601BC /* MewRoomInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82F52B0C697A00A601BC /* MewRoomInfoModel.m */; };
8C9C841E2B0C697A00A601BC /* MewRoomSendTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82FB2B0C697A00A601BC /* MewRoomSendTextView.m */; };
8C9C841F2B0C697A00A601BC /* CHStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C82FE2B0C697A00A601BC /* CHStageView.m */; };
8C9C84202B0C697A00A601BC /* MicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83022B0C697A00A601BC /* MicroView.m */; };
8C9C84212B0C697A00A601BC /* MicroQueueModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83052B0C697A00A601BC /* MicroQueueModel.m */; };
8C9C84222B0C697A00A601BC /* MicroExtModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83062B0C697A00A601BC /* MicroExtModel.m */; };
8C9C84232B0C697A00A601BC /* MicroStateModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83072B0C697A00A601BC /* MicroStateModel.m */; };
8C9C84242B0C697A00A601BC /* YMRoomMessageContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C830E2B0C697A00A601BC /* YMRoomMessageContainerView.m */; };
8C9C84252B0C697A00A601BC /* YMMessageInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83112B0C697A00A601BC /* YMMessageInfoModel.m */; };
8C9C84262B0C697A00A601BC /* YMMessageRemoteExtModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83122B0C697A00A601BC /* YMMessageRemoteExtModel.m */; };
8C9C84272B0C697A00A601BC /* YMNetImageYYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83162B0C697A00A601BC /* YMNetImageYYLabel.m */; };
8C9C84282B0C697A00A601BC /* YMRoomMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C831A2B0C697A00A601BC /* YMRoomMessageParser.m */; };
8C9C84242B0C697A00A601BC /* MewRoomMessageContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C830E2B0C697A00A601BC /* MewRoomMessageContainerView.m */; };
8C9C84252B0C697A00A601BC /* MewMessageInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83112B0C697A00A601BC /* MewMessageInfoModel.m */; };
8C9C84262B0C697A00A601BC /* MewMessageRemoteExtModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83122B0C697A00A601BC /* MewMessageRemoteExtModel.m */; };
8C9C84272B0C697A00A601BC /* MewNetImageLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83162B0C697A00A601BC /* MewNetImageLabel.m */; };
8C9C84282B0C697A00A601BC /* MewRoomMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C831A2B0C697A00A601BC /* MewRoomMessageParser.m */; };
8C9C842A2B0C697A00A601BC /* Api+Room.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83212B0C697A00A601BC /* Api+Room.m */; };
8C9C84302B0C697A00A601BC /* MewSessionListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83342B0C697A00A601BC /* MewSessionListTableViewCell.m */; };
8C9C84312B0C697A00A601BC /* MewSessionListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C83352B0C697A00A601BC /* MewSessionListViewController.m */; };
@@ -181,69 +180,68 @@
8C9C847A2B0C697A00A601BC /* MewLoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84162B0C697A00A601BC /* MewLoginViewController.m */; };
8C9C847D2B0C6A6400A601BC /* TXFFmpeg.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C9C847C2B0C6A6400A601BC /* TXFFmpeg.xcframework */; };
8C9C847F2B0C6A6A00A601BC /* TXSoundTouch.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C9C847E2B0C6A6A00A601BC /* TXSoundTouch.xcframework */; };
8C9C84842B0D25EF00A601BC /* GiftInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84832B0D25EF00A601BC /* GiftInfoModel.m */; };
8C9C84842B0D25EF00A601BC /* MewGiftInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84832B0D25EF00A601BC /* MewGiftInfoModel.m */; };
8C9C84892B0D286F00A601BC /* Api+Gift.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84882B0D286F00A601BC /* Api+Gift.m */; };
8C9C848C2B0D2B8500A601BC /* GiftReceiveInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C848B2B0D2B8500A601BC /* GiftReceiveInfoModel.m */; };
8C9C84902B0D439800A601BC /* YMRoomMessageFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C848F2B0D439800A601BC /* YMRoomMessageFilter.m */; };
8C9C84942B0D65C300A601BC /* YMRoomAnimationHitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84932B0D65C300A601BC /* YMRoomAnimationHitView.m */; };
8C9C84972B0D65E200A601BC /* YMRoomAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84962B0D65E200A601BC /* YMRoomAnimationView.m */; };
8C9C849E2B0D6A5C00A601BC /* YMGiftStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C849D2B0D6A5C00A601BC /* YMGiftStorage.m */; };
8C9C84AD2B0D9AB900A601BC /* CHRoomMessageHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84AC2B0D9AB900A601BC /* CHRoomMessageHeaderView.m */; };
8C9C848C2B0D2B8500A601BC /* MewGiftReceiveInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C848B2B0D2B8500A601BC /* MewGiftReceiveInfoModel.m */; };
8C9C84902B0D439800A601BC /* MewRoomMessageFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C848F2B0D439800A601BC /* MewRoomMessageFilter.m */; };
8C9C84942B0D65C300A601BC /* MewRoomAnimationHitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84932B0D65C300A601BC /* MewRoomAnimationHitView.m */; };
8C9C84972B0D65E200A601BC /* MewRoomAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84962B0D65E200A601BC /* MewRoomAnimationView.m */; };
8C9C849E2B0D6A5C00A601BC /* MewGiftStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C849D2B0D6A5C00A601BC /* MewGiftStorage.m */; };
8C9C84AD2B0D9AB900A601BC /* MewRoomMessageHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84AC2B0D9AB900A601BC /* MewRoomMessageHeaderView.m */; };
8C9C84B12B0DEAE100A601BC /* YMIButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84B02B0DEAE100A601BC /* YMIButton.m */; };
8C9C84B42B0E951200A601BC /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C9C84B32B0E951200A601BC /* StoreKit.framework */; };
8C9C84BA2B0ECD2100A601BC /* MineRechargePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C84B92B0ECD2100A601BC /* MineRechargePresenter.m */; };
8CAB96F52B1AB15200ED8639 /* CHRoomAnimationGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAB96F42B1AB15200ED8639 /* CHRoomAnimationGroup.m */; };
8CAB96F52B1AB15200ED8639 /* MewRoomAnimationGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAB96F42B1AB15200ED8639 /* MewRoomAnimationGroup.m */; };
8CAB97012B1FE16000ED8639 /* UITableView+NIMScrollToBottom.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAB97002B1FE16000ED8639 /* UITableView+NIMScrollToBottom.m */; };
FFDAAB800AD6BB4653B4427F /* Pods_yinmeng_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1797344FB85F47F60D0CC2A0 /* Pods_yinmeng_ios.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1797344FB85F47F60D0CC2A0 /* Pods_yinmeng_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_yinmeng_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; };
23270C272B0E037300B9303B /* CHMessageConentAudioView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageConentAudioView.m; sourceTree = "<group>"; };
23270C282B0E037300B9303B /* CHMessageConentAudioView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageConentAudioView.h; sourceTree = "<group>"; };
23270C2A2B0E041300B9303B /* CHMessageAudioCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageAudioCenter.h; sourceTree = "<group>"; };
23270C2B2B0E041300B9303B /* CHMessageAudioCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageAudioCenter.m; sourceTree = "<group>"; };
23270C272B0E037300B9303B /* MewMessageConentAudioView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageConentAudioView.m; sourceTree = "<group>"; };
23270C282B0E037300B9303B /* MewMessageConentAudioView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageConentAudioView.h; sourceTree = "<group>"; };
23270C2A2B0E041300B9303B /* MewMessageAudioCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageAudioCenter.h; sourceTree = "<group>"; };
23270C2B2B0E041300B9303B /* MewMessageAudioCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageAudioCenter.m; sourceTree = "<group>"; };
23270C2E2B0E071B00B9303B /* yinmeng-ios-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "yinmeng-ios-Bridging-Header.h"; sourceTree = "<group>"; };
23270C2F2B0E071B00B9303B /* MewPaymentAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MewPaymentAction.swift; sourceTree = "<group>"; };
233757262B0CB577001D0B7F /* CHMessagePresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessagePresenter.m; sourceTree = "<group>"; };
233757272B0CB577001D0B7F /* CHMessagePresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessagePresenter.h; sourceTree = "<group>"; };
233757292B0CB577001D0B7F /* CHMessageProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageProtocol.h; sourceTree = "<group>"; };
2337572B2B0CB577001D0B7F /* ChatLimitModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatLimitModel.h; sourceTree = "<group>"; };
2337572C2B0CB577001D0B7F /* MessageMenuModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageMenuModel.m; sourceTree = "<group>"; };
2337572D2B0CB577001D0B7F /* ChatLimitModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatLimitModel.m; sourceTree = "<group>"; };
2337572E2B0CB577001D0B7F /* MessageMenuModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageMenuModel.h; sourceTree = "<group>"; };
233757312B0CB577001D0B7F /* NIMBadgeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NIMBadgeView.m; sourceTree = "<group>"; };
233757322B0CB577001D0B7F /* UITableView+NIMScrollToBottom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+NIMScrollToBottom.h"; sourceTree = "<group>"; };
233757262B0CB577001D0B7F /* MewMessagePresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessagePresenter.m; sourceTree = "<group>"; };
233757272B0CB577001D0B7F /* MewMessagePresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessagePresenter.h; sourceTree = "<group>"; };
233757292B0CB577001D0B7F /* MewMessageProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageProtocol.h; sourceTree = "<group>"; };
2337572B2B0CB577001D0B7F /* MewChatLimitModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewChatLimitModel.h; sourceTree = "<group>"; };
2337572C2B0CB577001D0B7F /* MewMessageMenuModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageMenuModel.m; sourceTree = "<group>"; };
2337572D2B0CB577001D0B7F /* MewChatLimitModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewChatLimitModel.m; sourceTree = "<group>"; };
2337572E2B0CB577001D0B7F /* MewMessageMenuModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageMenuModel.h; sourceTree = "<group>"; };
233757312B0CB577001D0B7F /* MewNIMBadgeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewNIMBadgeView.m; sourceTree = "<group>"; };
233757332B0CB577001D0B7F /* UIView+NIM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+NIM.h"; sourceTree = "<group>"; };
233757342B0CB577001D0B7F /* UITableView+NIMScrollToBottom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+NIMScrollToBottom.m"; sourceTree = "<group>"; };
233757352B0CB577001D0B7F /* NIMBadgeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMBadgeView.h; sourceTree = "<group>"; };
233757352B0CB577001D0B7F /* MewNIMBadgeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewNIMBadgeView.h; sourceTree = "<group>"; };
233757362B0CB577001D0B7F /* UIView+NIM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+NIM.m"; sourceTree = "<group>"; };
233757382B0CB577001D0B7F /* CHSessionNavView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHSessionNavView.h; sourceTree = "<group>"; };
233757392B0CB577001D0B7F /* CHSessionMessageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHSessionMessageCell.m; sourceTree = "<group>"; };
2337573A2B0CB577001D0B7F /* CHSessionAudioRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHSessionAudioRecordView.h; sourceTree = "<group>"; };
2337573B2B0CB577001D0B7F /* CHSessionToolbarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHSessionToolbarView.m; sourceTree = "<group>"; };
2337573C2B0CB577001D0B7F /* NIMMessageMaker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NIMMessageMaker.m; sourceTree = "<group>"; };
2337573D2B0CB577001D0B7F /* CHSessionInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHSessionInfoViewController.m; sourceTree = "<group>"; };
2337573E2B0CB577001D0B7F /* SessionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SessionViewController.m; sourceTree = "<group>"; };
233757402B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageToolMenuCollectionViewCell.m; sourceTree = "<group>"; };
233757412B0CB577001D0B7F /* CHMessageContentImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageContentImage.m; sourceTree = "<group>"; };
233757422B0CB577001D0B7F /* CHMessageContentText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageContentText.h; sourceTree = "<group>"; };
233757432B0CB577001D0B7F /* CHMessageContentUnSupportView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageContentUnSupportView.h; sourceTree = "<group>"; };
233757442B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageToolMenuCollectionViewCell.h; sourceTree = "<group>"; };
233757452B0CB577001D0B7F /* CHMessageContentProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageContentProtocol.h; sourceTree = "<group>"; };
233757462B0CB577001D0B7F /* CHMessageContentImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMessageContentImage.h; sourceTree = "<group>"; };
233757472B0CB577001D0B7F /* CHMessageContentUnSupportView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageContentUnSupportView.m; sourceTree = "<group>"; };
233757482B0CB577001D0B7F /* CHMessageContentText.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMessageContentText.m; sourceTree = "<group>"; };
233757492B0CB577001D0B7F /* CHSessionNavView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHSessionNavView.m; sourceTree = "<group>"; };
2337574A2B0CB577001D0B7F /* CHSessionMessageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHSessionMessageCell.h; sourceTree = "<group>"; };
2337574B2B0CB577001D0B7F /* SessionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionViewController.h; sourceTree = "<group>"; };
2337574C2B0CB577001D0B7F /* CHSessionInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHSessionInfoViewController.h; sourceTree = "<group>"; };
2337574D2B0CB577001D0B7F /* NIMMessageMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMMessageMaker.h; sourceTree = "<group>"; };
2337574E2B0CB577001D0B7F /* CHSessionToolbarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHSessionToolbarView.h; sourceTree = "<group>"; };
2337574F2B0CB577001D0B7F /* CHSessionAudioRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHSessionAudioRecordView.m; sourceTree = "<group>"; };
233757382B0CB577001D0B7F /* MewSessionNavView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionNavView.h; sourceTree = "<group>"; };
233757392B0CB577001D0B7F /* MewSessionMessageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionMessageCell.m; sourceTree = "<group>"; };
2337573A2B0CB577001D0B7F /* MewSessionAudioRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionAudioRecordView.h; sourceTree = "<group>"; };
2337573B2B0CB577001D0B7F /* MewSessionToolbarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionToolbarView.m; sourceTree = "<group>"; };
2337573C2B0CB577001D0B7F /* MewNIMMessageMaker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewNIMMessageMaker.m; sourceTree = "<group>"; };
2337573D2B0CB577001D0B7F /* MewSessionInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionInfoViewController.m; sourceTree = "<group>"; };
2337573E2B0CB577001D0B7F /* MewSessionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionViewController.m; sourceTree = "<group>"; };
233757402B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageToolMenuCollectionCell.m; sourceTree = "<group>"; };
233757412B0CB577001D0B7F /* MewMessageContentImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageContentImage.m; sourceTree = "<group>"; };
233757422B0CB577001D0B7F /* MewMessageContentText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageContentText.h; sourceTree = "<group>"; };
233757432B0CB577001D0B7F /* MewMessageContentUnSupportView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageContentUnSupportView.h; sourceTree = "<group>"; };
233757442B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageToolMenuCollectionCell.h; sourceTree = "<group>"; };
233757452B0CB577001D0B7F /* MewMessageContentProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageContentProtocol.h; sourceTree = "<group>"; };
233757462B0CB577001D0B7F /* MewMessageContentImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageContentImage.h; sourceTree = "<group>"; };
233757472B0CB577001D0B7F /* MewMessageContentUnSupportView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageContentUnSupportView.m; sourceTree = "<group>"; };
233757482B0CB577001D0B7F /* MewMessageContentText.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageContentText.m; sourceTree = "<group>"; };
233757492B0CB577001D0B7F /* MewSessionNavView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionNavView.m; sourceTree = "<group>"; };
2337574A2B0CB577001D0B7F /* MewSessionMessageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionMessageCell.h; sourceTree = "<group>"; };
2337574B2B0CB577001D0B7F /* MewSessionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionViewController.h; sourceTree = "<group>"; };
2337574C2B0CB577001D0B7F /* MewSessionInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionInfoViewController.h; sourceTree = "<group>"; };
2337574D2B0CB577001D0B7F /* MewNIMMessageMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewNIMMessageMaker.h; sourceTree = "<group>"; };
2337574E2B0CB577001D0B7F /* MewSessionToolbarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewSessionToolbarView.h; sourceTree = "<group>"; };
2337574F2B0CB577001D0B7F /* MewSessionAudioRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionAudioRecordView.m; sourceTree = "<group>"; };
233757512B0CB577001D0B7F /* Api+Message.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Message.m"; sourceTree = "<group>"; };
233757522B0CB577001D0B7F /* Api+Message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Message.h"; sourceTree = "<group>"; };
233757542B0CB577001D0B7F /* NIMMessageUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NIMMessageUtils.m; sourceTree = "<group>"; };
233757552B0CB577001D0B7F /* NIMMessageUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NIMMessageUtils.h; sourceTree = "<group>"; };
233757542B0CB577001D0B7F /* MewNIMMessageUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewNIMMessageUtils.m; sourceTree = "<group>"; };
233757552B0CB577001D0B7F /* MewNIMMessageUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewNIMMessageUtils.h; sourceTree = "<group>"; };
233757692B0CB630001D0B7F /* UIView+FilletCorner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+FilletCorner.h"; sourceTree = "<group>"; };
2337576A2B0CB630001D0B7F /* UIView+FilletCorner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+FilletCorner.m"; sourceTree = "<group>"; };
2370511B2B1D7CD500F5DE14 /* CarrierIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CarrierIdentifier.h; sourceTree = "<group>"; };
@@ -382,21 +380,21 @@
8C9C82DA2B0C696900A601BC /* YMEnum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMEnum.h; sourceTree = "<group>"; };
8C9C82DB2B0C696900A601BC /* YMConstant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMConstant.m; sourceTree = "<group>"; };
8C9C82DF2B0C697A00A601BC /* YMWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMWebViewController.m; sourceTree = "<group>"; };
8C9C82E32B0C697A00A601BC /* YMHomePresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMHomePresenter.m; sourceTree = "<group>"; };
8C9C82E42B0C697A00A601BC /* YMHomePresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMHomePresenter.h; sourceTree = "<group>"; };
8C9C82E62B0C697A00A601BC /* YMHomeProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMHomeProtocol.h; sourceTree = "<group>"; };
8C9C82E32B0C697A00A601BC /* MewPartyPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewPartyPresenter.m; sourceTree = "<group>"; };
8C9C82E42B0C697A00A601BC /* MewPartyPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewPartyPresenter.h; sourceTree = "<group>"; };
8C9C82E62B0C697A00A601BC /* MewPartyProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewPartyProtocol.h; sourceTree = "<group>"; };
8C9C82E82B0C697A00A601BC /* HomeRecommendRoomModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeRecommendRoomModel.h; sourceTree = "<group>"; };
8C9C82E92B0C697A00A601BC /* HomeRecommendRoomModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeRecommendRoomModel.m; sourceTree = "<group>"; };
8C9C82EC2B0C697A00A601BC /* Api+Home.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Home.m"; sourceTree = "<group>"; };
8C9C82ED2B0C697A00A601BC /* Api+Home.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Home.h"; sourceTree = "<group>"; };
8C9C82F02B0C697A00A601BC /* YMRoomPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMRoomPresenter.m; sourceTree = "<group>"; };
8C9C82F12B0C697A00A601BC /* YMRoomPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomPresenter.h; sourceTree = "<group>"; };
8C9C82F32B0C697A00A601BC /* YMRoomProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomProtocol.h; sourceTree = "<group>"; };
8C9C82F52B0C697A00A601BC /* RoomInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RoomInfoModel.m; sourceTree = "<group>"; };
8C9C82F62B0C697A00A601BC /* RoomInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoomInfoModel.h; sourceTree = "<group>"; };
8C9C82F82B0C697A00A601BC /* MicroQueueProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MicroQueueProtocol.h; sourceTree = "<group>"; };
8C9C82FB2B0C697A00A601BC /* YMRoomSendTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMRoomSendTextView.m; sourceTree = "<group>"; };
8C9C82FC2B0C697A00A601BC /* YMRoomSendTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomSendTextView.h; sourceTree = "<group>"; };
8C9C82EC2B0C697A00A601BC /* Api+Party.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Party.m"; sourceTree = "<group>"; };
8C9C82ED2B0C697A00A601BC /* Api+Party.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Party.h"; sourceTree = "<group>"; };
8C9C82F02B0C697A00A601BC /* MewRoomPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomPresenter.m; sourceTree = "<group>"; };
8C9C82F12B0C697A00A601BC /* MewRoomPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomPresenter.h; sourceTree = "<group>"; };
8C9C82F32B0C697A00A601BC /* MewRoomProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomProtocol.h; sourceTree = "<group>"; };
8C9C82F52B0C697A00A601BC /* MewRoomInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomInfoModel.m; sourceTree = "<group>"; };
8C9C82F62B0C697A00A601BC /* MewRoomInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomInfoModel.h; sourceTree = "<group>"; };
8C9C82F82B0C697A00A601BC /* MewMicroQueueProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMicroQueueProtocol.h; sourceTree = "<group>"; };
8C9C82FB2B0C697A00A601BC /* MewRoomSendTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomSendTextView.m; sourceTree = "<group>"; };
8C9C82FC2B0C697A00A601BC /* MewRoomSendTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomSendTextView.h; sourceTree = "<group>"; };
8C9C82FE2B0C697A00A601BC /* CHStageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHStageView.m; sourceTree = "<group>"; };
8C9C83002B0C697A00A601BC /* MicroView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MicroView.h; sourceTree = "<group>"; };
8C9C83012B0C697A00A601BC /* MicroViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MicroViewProtocol.h; sourceTree = "<group>"; };
@@ -408,18 +406,18 @@
8C9C83082B0C697A00A601BC /* MicroExtModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MicroExtModel.h; sourceTree = "<group>"; };
8C9C83092B0C697A00A601BC /* MicroQueueModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MicroQueueModel.h; sourceTree = "<group>"; };
8C9C830A2B0C697A00A601BC /* CHStageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHStageView.h; sourceTree = "<group>"; };
8C9C830B2B0C697A00A601BC /* CHRoomGuestDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHRoomGuestDelegate.h; sourceTree = "<group>"; };
8C9C830E2B0C697A00A601BC /* YMRoomMessageContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMRoomMessageContainerView.m; sourceTree = "<group>"; };
8C9C830F2B0C697A00A601BC /* YMRoomMessageContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomMessageContainerView.h; sourceTree = "<group>"; };
8C9C83112B0C697A00A601BC /* YMMessageInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMMessageInfoModel.m; sourceTree = "<group>"; };
8C9C83122B0C697A00A601BC /* YMMessageRemoteExtModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMMessageRemoteExtModel.m; sourceTree = "<group>"; };
8C9C83132B0C697A00A601BC /* YMMessageRemoteExtModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMMessageRemoteExtModel.h; sourceTree = "<group>"; };
8C9C83142B0C697A00A601BC /* YMMessageInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMMessageInfoModel.h; sourceTree = "<group>"; };
8C9C83162B0C697A00A601BC /* YMNetImageYYLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMNetImageYYLabel.m; sourceTree = "<group>"; };
8C9C83172B0C697A00A601BC /* YMNetImageYYLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMNetImageYYLabel.h; sourceTree = "<group>"; };
8C9C83192B0C697A00A601BC /* YMRoomMessageParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomMessageParser.h; sourceTree = "<group>"; };
8C9C831A2B0C697A00A601BC /* YMRoomMessageParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YMRoomMessageParser.m; sourceTree = "<group>"; };
8C9C831B2B0C697A00A601BC /* YMRoomMessageConstant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YMRoomMessageConstant.h; sourceTree = "<group>"; };
8C9C830B2B0C697A00A601BC /* MewRoomGuestDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomGuestDelegate.h; sourceTree = "<group>"; };
8C9C830E2B0C697A00A601BC /* MewRoomMessageContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomMessageContainerView.m; sourceTree = "<group>"; };
8C9C830F2B0C697A00A601BC /* MewRoomMessageContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageContainerView.h; sourceTree = "<group>"; };
8C9C83112B0C697A00A601BC /* MewMessageInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageInfoModel.m; sourceTree = "<group>"; };
8C9C83122B0C697A00A601BC /* MewMessageRemoteExtModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewMessageRemoteExtModel.m; sourceTree = "<group>"; };
8C9C83132B0C697A00A601BC /* MewMessageRemoteExtModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageRemoteExtModel.h; sourceTree = "<group>"; };
8C9C83142B0C697A00A601BC /* MewMessageInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewMessageInfoModel.h; sourceTree = "<group>"; };
8C9C83162B0C697A00A601BC /* MewNetImageLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewNetImageLabel.m; sourceTree = "<group>"; };
8C9C83172B0C697A00A601BC /* MewNetImageLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewNetImageLabel.h; sourceTree = "<group>"; };
8C9C83192B0C697A00A601BC /* MewRoomMessageParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageParser.h; sourceTree = "<group>"; };
8C9C831A2B0C697A00A601BC /* MewRoomMessageParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewRoomMessageParser.m; sourceTree = "<group>"; };
8C9C831B2B0C697A00A601BC /* MewRoomMessageConstant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageConstant.h; sourceTree = "<group>"; };
8C9C83202B0C697A00A601BC /* Api+Room.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Room.h"; sourceTree = "<group>"; };
8C9C83212B0C697A00A601BC /* Api+Room.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Room.m"; sourceTree = "<group>"; };
8C9C83342B0C697A00A601BC /* MewSessionListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewSessionListTableViewCell.m; sourceTree = "<group>"; };
@@ -571,23 +569,23 @@
8C9C84162B0C697A00A601BC /* MewLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MewLoginViewController.m; sourceTree = "<group>"; };
8C9C847C2B0C6A6400A601BC /* TXFFmpeg.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = TXFFmpeg.xcframework; path = Pods/TXLiteAVSDK_TRTC/TXLiteAVSDK_TRTC/TXFFmpeg.xcframework; sourceTree = "<group>"; };
8C9C847E2B0C6A6A00A601BC /* TXSoundTouch.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = TXSoundTouch.xcframework; path = Pods/TXLiteAVSDK_TRTC/TXLiteAVSDK_TRTC/TXSoundTouch.xcframework; sourceTree = "<group>"; };
8C9C84822B0D25EF00A601BC /* GiftInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiftInfoModel.h; sourceTree = "<group>"; };
8C9C84832B0D25EF00A601BC /* GiftInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiftInfoModel.m; sourceTree = "<group>"; };
8C9C84822B0D25EF00A601BC /* MewGiftInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewGiftInfoModel.h; sourceTree = "<group>"; };
8C9C84832B0D25EF00A601BC /* MewGiftInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewGiftInfoModel.m; sourceTree = "<group>"; };
8C9C84872B0D286F00A601BC /* Api+Gift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Gift.h"; sourceTree = "<group>"; };
8C9C84882B0D286F00A601BC /* Api+Gift.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Gift.m"; sourceTree = "<group>"; };
8C9C848A2B0D2B8500A601BC /* GiftReceiveInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiftReceiveInfoModel.h; sourceTree = "<group>"; };
8C9C848B2B0D2B8500A601BC /* GiftReceiveInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiftReceiveInfoModel.m; sourceTree = "<group>"; };
8C9C848E2B0D439800A601BC /* YMRoomMessageFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YMRoomMessageFilter.h; sourceTree = "<group>"; };
8C9C848F2B0D439800A601BC /* YMRoomMessageFilter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YMRoomMessageFilter.m; sourceTree = "<group>"; };
8C9C84922B0D65C300A601BC /* YMRoomAnimationHitView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YMRoomAnimationHitView.h; sourceTree = "<group>"; };
8C9C84932B0D65C300A601BC /* YMRoomAnimationHitView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YMRoomAnimationHitView.m; sourceTree = "<group>"; };
8C9C84952B0D65E200A601BC /* YMRoomAnimationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YMRoomAnimationView.h; sourceTree = "<group>"; };
8C9C84962B0D65E200A601BC /* YMRoomAnimationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YMRoomAnimationView.m; sourceTree = "<group>"; };
8C9C849C2B0D6A5C00A601BC /* YMGiftStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YMGiftStorage.h; sourceTree = "<group>"; };
8C9C849D2B0D6A5C00A601BC /* YMGiftStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YMGiftStorage.m; sourceTree = "<group>"; };
8C9C849F2B0D6BCF00A601BC /* CHRoomAnimationProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CHRoomAnimationProtocol.h; sourceTree = "<group>"; };
8C9C84AB2B0D9AB900A601BC /* CHRoomMessageHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CHRoomMessageHeaderView.h; sourceTree = "<group>"; };
8C9C84AC2B0D9AB900A601BC /* CHRoomMessageHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CHRoomMessageHeaderView.m; sourceTree = "<group>"; };
8C9C848A2B0D2B8500A601BC /* MewGiftReceiveInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewGiftReceiveInfoModel.h; sourceTree = "<group>"; };
8C9C848B2B0D2B8500A601BC /* MewGiftReceiveInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewGiftReceiveInfoModel.m; sourceTree = "<group>"; };
8C9C848E2B0D439800A601BC /* MewRoomMessageFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageFilter.h; sourceTree = "<group>"; };
8C9C848F2B0D439800A601BC /* MewRoomMessageFilter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomMessageFilter.m; sourceTree = "<group>"; };
8C9C84922B0D65C300A601BC /* MewRoomAnimationHitView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomAnimationHitView.h; sourceTree = "<group>"; };
8C9C84932B0D65C300A601BC /* MewRoomAnimationHitView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomAnimationHitView.m; sourceTree = "<group>"; };
8C9C84952B0D65E200A601BC /* MewRoomAnimationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomAnimationView.h; sourceTree = "<group>"; };
8C9C84962B0D65E200A601BC /* MewRoomAnimationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomAnimationView.m; sourceTree = "<group>"; };
8C9C849C2B0D6A5C00A601BC /* MewGiftStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewGiftStorage.h; sourceTree = "<group>"; };
8C9C849D2B0D6A5C00A601BC /* MewGiftStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewGiftStorage.m; sourceTree = "<group>"; };
8C9C849F2B0D6BCF00A601BC /* MewRoomAnimationProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomAnimationProtocol.h; sourceTree = "<group>"; };
8C9C84AB2B0D9AB900A601BC /* MewRoomMessageHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomMessageHeaderView.h; sourceTree = "<group>"; };
8C9C84AC2B0D9AB900A601BC /* MewRoomMessageHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomMessageHeaderView.m; sourceTree = "<group>"; };
8C9C84AF2B0DEAE100A601BC /* YMIButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YMIButton.h; sourceTree = "<group>"; };
8C9C84B02B0DEAE100A601BC /* YMIButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YMIButton.m; sourceTree = "<group>"; };
8C9C84B22B0E94FA00A601BC /* yinmeng-ios.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "yinmeng-ios.entitlements"; sourceTree = "<group>"; };
@@ -595,9 +593,11 @@
8C9C84B82B0ECD2100A601BC /* MineRechargePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineRechargePresenter.h; sourceTree = "<group>"; };
8C9C84B92B0ECD2100A601BC /* MineRechargePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineRechargePresenter.m; sourceTree = "<group>"; };
8C9C84BE2B0ED1D000A601BC /* MineRechargeProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineRechargeProtocol.h; sourceTree = "<group>"; };
8CAB96F22B1A729300ED8639 /* CHRoomHostDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CHRoomHostDelegate.h; sourceTree = "<group>"; };
8CAB96F32B1AB15200ED8639 /* CHRoomAnimationGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CHRoomAnimationGroup.h; sourceTree = "<group>"; };
8CAB96F42B1AB15200ED8639 /* CHRoomAnimationGroup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CHRoomAnimationGroup.m; sourceTree = "<group>"; };
8CAB96F22B1A729300ED8639 /* MewRoomHostDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomHostDelegate.h; sourceTree = "<group>"; };
8CAB96F32B1AB15200ED8639 /* MewRoomAnimationGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomAnimationGroup.h; sourceTree = "<group>"; };
8CAB96F42B1AB15200ED8639 /* MewRoomAnimationGroup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomAnimationGroup.m; sourceTree = "<group>"; };
8CAB96FF2B1FE16000ED8639 /* UITableView+NIMScrollToBottom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITableView+NIMScrollToBottom.h"; sourceTree = "<group>"; };
8CAB97002B1FE16000ED8639 /* UITableView+NIMScrollToBottom.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITableView+NIMScrollToBottom.m"; sourceTree = "<group>"; };
A22C3BCB2715A2E8FDECEA30 /* Pods-yinmeng-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-yinmeng-ios.release.xcconfig"; path = "Target Support Files/Pods-yinmeng-ios/Pods-yinmeng-ios.release.xcconfig"; sourceTree = "<group>"; };
E9E8A33E3FDD457C53D1E6D7 /* Pods-yinmeng-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-yinmeng-ios.debug.xcconfig"; path = "Target Support Files/Pods-yinmeng-ios/Pods-yinmeng-ios.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -643,8 +643,8 @@
233757252B0CB577001D0B7F /* Presenter */ = {
isa = PBXGroup;
children = (
233757262B0CB577001D0B7F /* CHMessagePresenter.m */,
233757272B0CB577001D0B7F /* CHMessagePresenter.h */,
233757262B0CB577001D0B7F /* MewMessagePresenter.m */,
233757272B0CB577001D0B7F /* MewMessagePresenter.h */,
);
path = Presenter;
sourceTree = "<group>";
@@ -652,7 +652,7 @@
233757282B0CB577001D0B7F /* Protocol */ = {
isa = PBXGroup;
children = (
233757292B0CB577001D0B7F /* CHMessageProtocol.h */,
233757292B0CB577001D0B7F /* MewMessageProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
@@ -660,10 +660,10 @@
2337572A2B0CB577001D0B7F /* Model */ = {
isa = PBXGroup;
children = (
2337572B2B0CB577001D0B7F /* ChatLimitModel.h */,
2337572C2B0CB577001D0B7F /* MessageMenuModel.m */,
2337572D2B0CB577001D0B7F /* ChatLimitModel.m */,
2337572E2B0CB577001D0B7F /* MessageMenuModel.h */,
2337572B2B0CB577001D0B7F /* MewChatLimitModel.h */,
2337572D2B0CB577001D0B7F /* MewChatLimitModel.m */,
2337572E2B0CB577001D0B7F /* MewMessageMenuModel.h */,
2337572C2B0CB577001D0B7F /* MewMessageMenuModel.m */,
);
path = Model;
sourceTree = "<group>";
@@ -680,12 +680,12 @@
233757302B0CB577001D0B7F /* NIMViews */ = {
isa = PBXGroup;
children = (
233757312B0CB577001D0B7F /* NIMBadgeView.m */,
233757322B0CB577001D0B7F /* UITableView+NIMScrollToBottom.h */,
233757352B0CB577001D0B7F /* MewNIMBadgeView.h */,
233757312B0CB577001D0B7F /* MewNIMBadgeView.m */,
233757332B0CB577001D0B7F /* UIView+NIM.h */,
233757342B0CB577001D0B7F /* UITableView+NIMScrollToBottom.m */,
233757352B0CB577001D0B7F /* NIMBadgeView.h */,
233757362B0CB577001D0B7F /* UIView+NIM.m */,
8CAB96FF2B1FE16000ED8639 /* UITableView+NIMScrollToBottom.h */,
8CAB97002B1FE16000ED8639 /* UITableView+NIMScrollToBottom.m */,
);
path = NIMViews;
sourceTree = "<group>";
@@ -693,24 +693,24 @@
233757372B0CB577001D0B7F /* Session */ = {
isa = PBXGroup;
children = (
23270C2A2B0E041300B9303B /* CHMessageAudioCenter.h */,
23270C2B2B0E041300B9303B /* CHMessageAudioCenter.m */,
23270C282B0E037300B9303B /* CHMessageConentAudioView.h */,
23270C272B0E037300B9303B /* CHMessageConentAudioView.m */,
233757382B0CB577001D0B7F /* CHSessionNavView.h */,
233757492B0CB577001D0B7F /* CHSessionNavView.m */,
2337574A2B0CB577001D0B7F /* CHSessionMessageCell.h */,
233757392B0CB577001D0B7F /* CHSessionMessageCell.m */,
2337573A2B0CB577001D0B7F /* CHSessionAudioRecordView.h */,
2337574F2B0CB577001D0B7F /* CHSessionAudioRecordView.m */,
2337574E2B0CB577001D0B7F /* CHSessionToolbarView.h */,
2337573B2B0CB577001D0B7F /* CHSessionToolbarView.m */,
2337574D2B0CB577001D0B7F /* NIMMessageMaker.h */,
2337573C2B0CB577001D0B7F /* NIMMessageMaker.m */,
2337574C2B0CB577001D0B7F /* CHSessionInfoViewController.h */,
2337573D2B0CB577001D0B7F /* CHSessionInfoViewController.m */,
2337574B2B0CB577001D0B7F /* SessionViewController.h */,
2337573E2B0CB577001D0B7F /* SessionViewController.m */,
23270C2A2B0E041300B9303B /* MewMessageAudioCenter.h */,
23270C2B2B0E041300B9303B /* MewMessageAudioCenter.m */,
23270C282B0E037300B9303B /* MewMessageConentAudioView.h */,
23270C272B0E037300B9303B /* MewMessageConentAudioView.m */,
233757382B0CB577001D0B7F /* MewSessionNavView.h */,
233757492B0CB577001D0B7F /* MewSessionNavView.m */,
2337574A2B0CB577001D0B7F /* MewSessionMessageCell.h */,
233757392B0CB577001D0B7F /* MewSessionMessageCell.m */,
2337573A2B0CB577001D0B7F /* MewSessionAudioRecordView.h */,
2337574F2B0CB577001D0B7F /* MewSessionAudioRecordView.m */,
2337574E2B0CB577001D0B7F /* MewSessionToolbarView.h */,
2337573B2B0CB577001D0B7F /* MewSessionToolbarView.m */,
2337574D2B0CB577001D0B7F /* MewNIMMessageMaker.h */,
2337573C2B0CB577001D0B7F /* MewNIMMessageMaker.m */,
2337574C2B0CB577001D0B7F /* MewSessionInfoViewController.h */,
2337573D2B0CB577001D0B7F /* MewSessionInfoViewController.m */,
2337574B2B0CB577001D0B7F /* MewSessionViewController.h */,
2337573E2B0CB577001D0B7F /* MewSessionViewController.m */,
2337573F2B0CB577001D0B7F /* Content */,
);
path = Session;
@@ -719,15 +719,15 @@
2337573F2B0CB577001D0B7F /* Content */ = {
isa = PBXGroup;
children = (
233757442B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.h */,
233757402B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.m */,
233757462B0CB577001D0B7F /* CHMessageContentImage.h */,
233757412B0CB577001D0B7F /* CHMessageContentImage.m */,
233757422B0CB577001D0B7F /* CHMessageContentText.h */,
233757482B0CB577001D0B7F /* CHMessageContentText.m */,
233757432B0CB577001D0B7F /* CHMessageContentUnSupportView.h */,
233757472B0CB577001D0B7F /* CHMessageContentUnSupportView.m */,
233757452B0CB577001D0B7F /* CHMessageContentProtocol.h */,
233757442B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.h */,
233757402B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m */,
233757462B0CB577001D0B7F /* MewMessageContentImage.h */,
233757412B0CB577001D0B7F /* MewMessageContentImage.m */,
233757422B0CB577001D0B7F /* MewMessageContentText.h */,
233757482B0CB577001D0B7F /* MewMessageContentText.m */,
233757432B0CB577001D0B7F /* MewMessageContentUnSupportView.h */,
233757472B0CB577001D0B7F /* MewMessageContentUnSupportView.m */,
233757452B0CB577001D0B7F /* MewMessageContentProtocol.h */,
);
path = Content;
sourceTree = "<group>";
@@ -744,8 +744,8 @@
233757532B0CB577001D0B7F /* Tool */ = {
isa = PBXGroup;
children = (
233757542B0CB577001D0B7F /* NIMMessageUtils.m */,
233757552B0CB577001D0B7F /* NIMMessageUtils.h */,
233757542B0CB577001D0B7F /* MewNIMMessageUtils.m */,
233757552B0CB577001D0B7F /* MewNIMMessageUtils.h */,
);
path = Tool;
sourceTree = "<group>";
@@ -1221,7 +1221,6 @@
isa = PBXGroup;
children = (
8C9C84802B0D25C700A601BC /* ModuleKit */,
8C9C82E12B0C697A00A601BC /* Home */,
8C9C82EE2B0C697A00A601BC /* Room */,
233757242B0CB577001D0B7F /* Message */,
8C9C834D2B0C697A00A601BC /* RTC */,
@@ -1232,23 +1231,11 @@
path = YinMeng;
sourceTree = "<group>";
};
8C9C82E12B0C697A00A601BC /* Home */ = {
isa = PBXGroup;
children = (
8C9C82E22B0C697A00A601BC /* Presenter */,
8C9C82E52B0C697A00A601BC /* Protocol */,
8C9C82E72B0C697A00A601BC /* Model */,
8C9C82EA2B0C697A00A601BC /* View */,
8C9C82EB2B0C697A00A601BC /* Api */,
);
path = Home;
sourceTree = "<group>";
};
8C9C82E22B0C697A00A601BC /* Presenter */ = {
isa = PBXGroup;
children = (
8C9C82E42B0C697A00A601BC /* YMHomePresenter.h */,
8C9C82E32B0C697A00A601BC /* YMHomePresenter.m */,
8C9C82E42B0C697A00A601BC /* MewPartyPresenter.h */,
8C9C82E32B0C697A00A601BC /* MewPartyPresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
@@ -1256,32 +1243,16 @@
8C9C82E52B0C697A00A601BC /* Protocol */ = {
isa = PBXGroup;
children = (
8C9C82E62B0C697A00A601BC /* YMHomeProtocol.h */,
8C9C82E62B0C697A00A601BC /* MewPartyProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
};
8C9C82E72B0C697A00A601BC /* Model */ = {
isa = PBXGroup;
children = (
8C9C82E82B0C697A00A601BC /* HomeRecommendRoomModel.h */,
8C9C82E92B0C697A00A601BC /* HomeRecommendRoomModel.m */,
);
path = Model;
sourceTree = "<group>";
};
8C9C82EA2B0C697A00A601BC /* View */ = {
isa = PBXGroup;
children = (
);
path = View;
sourceTree = "<group>";
};
8C9C82EB2B0C697A00A601BC /* Api */ = {
isa = PBXGroup;
children = (
8C9C82EC2B0C697A00A601BC /* Api+Home.m */,
8C9C82ED2B0C697A00A601BC /* Api+Home.h */,
8C9C82EC2B0C697A00A601BC /* Api+Party.m */,
8C9C82ED2B0C697A00A601BC /* Api+Party.h */,
);
path = Api;
sourceTree = "<group>";
@@ -1301,8 +1272,8 @@
8C9C82EF2B0C697A00A601BC /* Presenter */ = {
isa = PBXGroup;
children = (
8C9C82F02B0C697A00A601BC /* YMRoomPresenter.m */,
8C9C82F12B0C697A00A601BC /* YMRoomPresenter.h */,
8C9C82F02B0C697A00A601BC /* MewRoomPresenter.m */,
8C9C82F12B0C697A00A601BC /* MewRoomPresenter.h */,
);
path = Presenter;
sourceTree = "<group>";
@@ -1310,7 +1281,7 @@
8C9C82F22B0C697A00A601BC /* Protocol */ = {
isa = PBXGroup;
children = (
8C9C82F32B0C697A00A601BC /* YMRoomProtocol.h */,
8C9C82F32B0C697A00A601BC /* MewRoomProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
@@ -1318,8 +1289,8 @@
8C9C82F42B0C697A00A601BC /* Model */ = {
isa = PBXGroup;
children = (
8C9C82F52B0C697A00A601BC /* RoomInfoModel.m */,
8C9C82F62B0C697A00A601BC /* RoomInfoModel.h */,
8C9C82F52B0C697A00A601BC /* MewRoomInfoModel.m */,
8C9C82F62B0C697A00A601BC /* MewRoomInfoModel.h */,
);
path = Model;
sourceTree = "<group>";
@@ -1328,13 +1299,13 @@
isa = PBXGroup;
children = (
8C9C84912B0D659800A601BC /* AnimationView */,
8C9C82F82B0C697A00A601BC /* MicroQueueProtocol.h */,
8C9C82F82B0C697A00A601BC /* MewMicroQueueProtocol.h */,
8C9C82FA2B0C697A00A601BC /* MenuContainerView */,
8C9C82FD2B0C697A00A601BC /* StageView */,
8C9C830B2B0C697A00A601BC /* CHRoomGuestDelegate.h */,
8C9C830B2B0C697A00A601BC /* MewRoomGuestDelegate.h */,
8C9C830D2B0C697A00A601BC /* MessageContainerView */,
8C9C849F2B0D6BCF00A601BC /* CHRoomAnimationProtocol.h */,
8CAB96F22B1A729300ED8639 /* CHRoomHostDelegate.h */,
8C9C849F2B0D6BCF00A601BC /* MewRoomAnimationProtocol.h */,
8CAB96F22B1A729300ED8639 /* MewRoomHostDelegate.h */,
);
path = View;
sourceTree = "<group>";
@@ -1342,8 +1313,8 @@
8C9C82FA2B0C697A00A601BC /* MenuContainerView */ = {
isa = PBXGroup;
children = (
8C9C82FC2B0C697A00A601BC /* YMRoomSendTextView.h */,
8C9C82FB2B0C697A00A601BC /* YMRoomSendTextView.m */,
8C9C82FC2B0C697A00A601BC /* MewRoomSendTextView.h */,
8C9C82FB2B0C697A00A601BC /* MewRoomSendTextView.m */,
);
path = MenuContainerView;
sourceTree = "<group>";
@@ -1385,13 +1356,13 @@
8C9C830D2B0C697A00A601BC /* MessageContainerView */ = {
isa = PBXGroup;
children = (
8C9C830E2B0C697A00A601BC /* YMRoomMessageContainerView.m */,
8C9C830F2B0C697A00A601BC /* YMRoomMessageContainerView.h */,
8C9C830E2B0C697A00A601BC /* MewRoomMessageContainerView.m */,
8C9C830F2B0C697A00A601BC /* MewRoomMessageContainerView.h */,
8C9C83102B0C697A00A601BC /* Model */,
8C9C83152B0C697A00A601BC /* View */,
8C9C83182B0C697A00A601BC /* Tool */,
8C9C84AB2B0D9AB900A601BC /* CHRoomMessageHeaderView.h */,
8C9C84AC2B0D9AB900A601BC /* CHRoomMessageHeaderView.m */,
8C9C84AB2B0D9AB900A601BC /* MewRoomMessageHeaderView.h */,
8C9C84AC2B0D9AB900A601BC /* MewRoomMessageHeaderView.m */,
);
path = MessageContainerView;
sourceTree = "<group>";
@@ -1399,10 +1370,10 @@
8C9C83102B0C697A00A601BC /* Model */ = {
isa = PBXGroup;
children = (
8C9C83112B0C697A00A601BC /* YMMessageInfoModel.m */,
8C9C83122B0C697A00A601BC /* YMMessageRemoteExtModel.m */,
8C9C83132B0C697A00A601BC /* YMMessageRemoteExtModel.h */,
8C9C83142B0C697A00A601BC /* YMMessageInfoModel.h */,
8C9C83112B0C697A00A601BC /* MewMessageInfoModel.m */,
8C9C83122B0C697A00A601BC /* MewMessageRemoteExtModel.m */,
8C9C83132B0C697A00A601BC /* MewMessageRemoteExtModel.h */,
8C9C83142B0C697A00A601BC /* MewMessageInfoModel.h */,
);
path = Model;
sourceTree = "<group>";
@@ -1410,8 +1381,8 @@
8C9C83152B0C697A00A601BC /* View */ = {
isa = PBXGroup;
children = (
8C9C83162B0C697A00A601BC /* YMNetImageYYLabel.m */,
8C9C83172B0C697A00A601BC /* YMNetImageYYLabel.h */,
8C9C83162B0C697A00A601BC /* MewNetImageLabel.m */,
8C9C83172B0C697A00A601BC /* MewNetImageLabel.h */,
);
path = View;
sourceTree = "<group>";
@@ -1419,11 +1390,11 @@
8C9C83182B0C697A00A601BC /* Tool */ = {
isa = PBXGroup;
children = (
8C9C83192B0C697A00A601BC /* YMRoomMessageParser.h */,
8C9C831A2B0C697A00A601BC /* YMRoomMessageParser.m */,
8C9C831B2B0C697A00A601BC /* YMRoomMessageConstant.h */,
8C9C848E2B0D439800A601BC /* YMRoomMessageFilter.h */,
8C9C848F2B0D439800A601BC /* YMRoomMessageFilter.m */,
8C9C83192B0C697A00A601BC /* MewRoomMessageParser.h */,
8C9C831A2B0C697A00A601BC /* MewRoomMessageParser.m */,
8C9C831B2B0C697A00A601BC /* MewRoomMessageConstant.h */,
8C9C848E2B0D439800A601BC /* MewRoomMessageFilter.h */,
8C9C848F2B0D439800A601BC /* MewRoomMessageFilter.m */,
);
path = Tool;
sourceTree = "<group>";
@@ -1990,6 +1961,9 @@
8C9C83FA2B0C697A00A601BC /* Party */ = {
isa = PBXGroup;
children = (
8C9C82EB2B0C697A00A601BC /* Api */,
8C9C82E22B0C697A00A601BC /* Presenter */,
8C9C82E52B0C697A00A601BC /* Protocol */,
8C9C83FB2B0C697A00A601BC /* Model */,
8C9C83FE2B0C697A00A601BC /* View */,
);
@@ -1999,6 +1973,8 @@
8C9C83FB2B0C697A00A601BC /* Model */ = {
isa = PBXGroup;
children = (
8C9C82E82B0C697A00A601BC /* HomeRecommendRoomModel.h */,
8C9C82E92B0C697A00A601BC /* HomeRecommendRoomModel.m */,
8C9C83FC2B0C697A00A601BC /* MewPartyModel.h */,
8C9C83FD2B0C697A00A601BC /* MewPartyModel.m */,
);
@@ -2086,28 +2062,28 @@
8C9C84802B0D25C700A601BC /* ModuleKit */ = {
isa = PBXGroup;
children = (
8C9C84812B0D25D700A601BC /* SendGiftView */,
8C9C84812B0D25D700A601BC /* MewGiftView */,
);
path = ModuleKit;
sourceTree = "<group>";
};
8C9C84812B0D25D700A601BC /* SendGiftView */ = {
8C9C84812B0D25D700A601BC /* MewGiftView */ = {
isa = PBXGroup;
children = (
8C9C849B2B0D6A4600A601BC /* Presenter */,
8C9C84862B0D286000A601BC /* Api */,
8C9C84852B0D284000A601BC /* Model */,
);
path = SendGiftView;
path = MewGiftView;
sourceTree = "<group>";
};
8C9C84852B0D284000A601BC /* Model */ = {
isa = PBXGroup;
children = (
8C9C84822B0D25EF00A601BC /* GiftInfoModel.h */,
8C9C84832B0D25EF00A601BC /* GiftInfoModel.m */,
8C9C848A2B0D2B8500A601BC /* GiftReceiveInfoModel.h */,
8C9C848B2B0D2B8500A601BC /* GiftReceiveInfoModel.m */,
8C9C84822B0D25EF00A601BC /* MewGiftInfoModel.h */,
8C9C84832B0D25EF00A601BC /* MewGiftInfoModel.m */,
8C9C848A2B0D2B8500A601BC /* MewGiftReceiveInfoModel.h */,
8C9C848B2B0D2B8500A601BC /* MewGiftReceiveInfoModel.m */,
);
path = Model;
sourceTree = "<group>";
@@ -2132,12 +2108,12 @@
8C9C84912B0D659800A601BC /* AnimationView */ = {
isa = PBXGroup;
children = (
8C9C84922B0D65C300A601BC /* YMRoomAnimationHitView.h */,
8C9C84932B0D65C300A601BC /* YMRoomAnimationHitView.m */,
8C9C84952B0D65E200A601BC /* YMRoomAnimationView.h */,
8C9C84962B0D65E200A601BC /* YMRoomAnimationView.m */,
8CAB96F32B1AB15200ED8639 /* CHRoomAnimationGroup.h */,
8CAB96F42B1AB15200ED8639 /* CHRoomAnimationGroup.m */,
8C9C84922B0D65C300A601BC /* MewRoomAnimationHitView.h */,
8C9C84932B0D65C300A601BC /* MewRoomAnimationHitView.m */,
8C9C84952B0D65E200A601BC /* MewRoomAnimationView.h */,
8C9C84962B0D65E200A601BC /* MewRoomAnimationView.m */,
8CAB96F32B1AB15200ED8639 /* MewRoomAnimationGroup.h */,
8CAB96F42B1AB15200ED8639 /* MewRoomAnimationGroup.m */,
);
path = AnimationView;
sourceTree = "<group>";
@@ -2145,8 +2121,8 @@
8C9C849B2B0D6A4600A601BC /* Presenter */ = {
isa = PBXGroup;
children = (
8C9C849C2B0D6A5C00A601BC /* YMGiftStorage.h */,
8C9C849D2B0D6A5C00A601BC /* YMGiftStorage.m */,
8C9C849C2B0D6A5C00A601BC /* MewGiftStorage.h */,
8C9C849D2B0D6A5C00A601BC /* MewGiftStorage.m */,
);
path = Presenter;
sourceTree = "<group>";
@@ -2305,10 +2281,10 @@
buildActionMask = 2147483647;
files = (
8C9C84482B0C697A00A601BC /* YMMineSettingTableViewCell.m in Sources */,
233757682B0CB577001D0B7F /* NIMMessageUtils.m in Sources */,
233757682B0CB577001D0B7F /* MewNIMMessageUtils.m in Sources */,
8C9C845C2B0C697A00A601BC /* ClientConfig.m in Sources */,
8C9C843B2B0C697A00A601BC /* TRTCRtcImpl.m in Sources */,
2337575C2B0CB577001D0B7F /* CHSessionMessageCell.m in Sources */,
2337575C2B0CB577001D0B7F /* MewSessionMessageCell.m in Sources */,
8C9C821F2B0C694900A601BC /* AppDelegate.m in Sources */,
8C92A8182B0EF3E9008F362C /* MineModifPayPwdView.m in Sources */,
8C9C84462B0C697A00A601BC /* YMMineSettingViewController.m in Sources */,
@@ -2316,17 +2292,17 @@
8C9C82A92B0C695600A601BC /* BaseNavigationController.m in Sources */,
8C9C82BC2B0C695600A601BC /* UserInfoModel.m in Sources */,
8C9C84602B0C697A00A601BC /* MewVoiceGuideView.m in Sources */,
23270C292B0E037300B9303B /* CHMessageConentAudioView.m in Sources */,
23270C292B0E037300B9303B /* MewMessageConentAudioView.m in Sources */,
237051532B1D7CD500F5DE14 /* MEWCountDownHelper.m in Sources */,
8C9C84312B0C697A00A601BC /* MewSessionListViewController.m in Sources */,
8C9C82AB2B0C695600A601BC /* NetImageConfig.m in Sources */,
8C9C84892B0D286F00A601BC /* Api+Gift.m in Sources */,
237051572B1D7CD500F5DE14 /* MewHUDTool.m in Sources */,
8C9C849E2B0D6A5C00A601BC /* YMGiftStorage.m in Sources */,
8C9C849E2B0D6A5C00A601BC /* MewGiftStorage.m in Sources */,
8C9C843A2B0C697A00A601BC /* BaseRtcImpl.m in Sources */,
8C9C84672B0C697A00A601BC /* MewHeaderView.m in Sources */,
8C9C84662B0C697A00A601BC /* MewUserIntroductionView.m in Sources */,
8CAB96F52B1AB15200ED8639 /* CHRoomAnimationGroup.m in Sources */,
8CAB96F52B1AB15200ED8639 /* MewRoomAnimationGroup.m in Sources */,
8C9C84172B0C697A00A601BC /* YMWebViewController.m in Sources */,
8C92A8232B0FE1DC008F362C /* MewHtmlUrl.m in Sources */,
237051552B1D7CD500F5DE14 /* DESEncrypt.m in Sources */,
@@ -2338,10 +2314,10 @@
8C9C84592B0C697A00A601BC /* TabbarViewController.m in Sources */,
8C9C82BE2B0C695600A601BC /* LoginTicketInfo.m in Sources */,
8C9C84542B0C697A00A601BC /* LoginInputView.m in Sources */,
233757632B0CB577001D0B7F /* CHMessageContentUnSupportView.m in Sources */,
2337575E2B0CB577001D0B7F /* NIMMessageMaker.m in Sources */,
233757632B0CB577001D0B7F /* MewMessageContentUnSupportView.m in Sources */,
2337575E2B0CB577001D0B7F /* MewNIMMessageMaker.m in Sources */,
8C9C82B92B0C695600A601BC /* NSObject+AutoCoding.m in Sources */,
233757622B0CB577001D0B7F /* CHMessageContentImage.m in Sources */,
233757622B0CB577001D0B7F /* MewMessageContentImage.m in Sources */,
8C9C84772B0C697A00A601BC /* MewLoginPhoneView.m in Sources */,
8C9C84692B0C697A00A601BC /* YMHomeFilterView.m in Sources */,
8C9C84532B0C697A00A601BC /* LoginForgetPasswordViewController.m in Sources */,
@@ -2349,7 +2325,7 @@
8C9C82AF2B0C695600A601BC /* TTAlertConfig.m in Sources */,
8C9C82B02B0C695600A601BC /* TTAlertButtonConfig.m in Sources */,
8C9C82B22B0C695600A601BC /* TTActionSheetConfig.m in Sources */,
8C9C841C2B0C697A00A601BC /* RoomInfoModel.m in Sources */,
8C9C841C2B0C697A00A601BC /* MewRoomInfoModel.m in Sources */,
2337575B2B0CB577001D0B7F /* UIView+NIM.m in Sources */,
2370515B2B1D7CD500F5DE14 /* MEWThemeColor.m in Sources */,
8C9C843F2B0C697A00A601BC /* FansInfoModel.m in Sources */,
@@ -2357,30 +2333,31 @@
8C9C82BF2B0C695600A601BC /* AccountModel.m in Sources */,
237051512B1D7CD500F5DE14 /* NSArray+MewSafe.m in Sources */,
2370515E2B1D7CD500F5DE14 /* NSObject+MEWExtension.m in Sources */,
233757652B0CB577001D0B7F /* CHSessionNavView.m in Sources */,
233757652B0CB577001D0B7F /* MewSessionNavView.m in Sources */,
8C9C84722B0C697A00A601BC /* MewPartyListCollectionViewCell.m in Sources */,
8C9C846F2B0C697A00A601BC /* MewRoomMessageTableCell.m in Sources */,
8C9C84282B0C697A00A601BC /* YMRoomMessageParser.m in Sources */,
8C9C84282B0C697A00A601BC /* MewRoomMessageParser.m in Sources */,
8C9C84302B0C697A00A601BC /* MewSessionListTableViewCell.m in Sources */,
2370515C2B1D7CD500F5DE14 /* MEWRechargeStorage.m in Sources */,
237051592B1D7CD500F5DE14 /* NewEncryptTool.m in Sources */,
8C9C84652B0C697A00A601BC /* MewShowVoiceView.m in Sources */,
233757592B0CB577001D0B7F /* NIMBadgeView.m in Sources */,
8CAB97012B1FE16000ED8639 /* UITableView+NIMScrollToBottom.m in Sources */,
233757592B0CB577001D0B7F /* MewNIMBadgeView.m in Sources */,
8C9C846D2B0C697A00A601BC /* MewRoomRightView.m in Sources */,
8C9C84582B0C697A00A601BC /* MainPresenter.m in Sources */,
233757562B0CB577001D0B7F /* CHMessagePresenter.m in Sources */,
233757562B0CB577001D0B7F /* MewMessagePresenter.m in Sources */,
8C9C84512B0C697A00A601BC /* LoginPasswordPresent.m in Sources */,
8C9C841F2B0C697A00A601BC /* CHStageView.m in Sources */,
8C9C844D2B0C697A00A601BC /* LoginForgetPasswordPresent.m in Sources */,
8C9C82C12B0C695600A601BC /* Api.m in Sources */,
23270C2C2B0E041300B9303B /* CHMessageAudioCenter.m in Sources */,
23270C2C2B0E041300B9303B /* MewMessageAudioCenter.m in Sources */,
2370514F2B1D7CD500F5DE14 /* UIImage+RW.m in Sources */,
8C9C844A2B0C697A00A601BC /* Api+Mine.m in Sources */,
8C9C82A82B0C695600A601BC /* BaseViewController.m in Sources */,
8C9C84782B0C697A00A601BC /* MewLoginPasswordView.m in Sources */,
8C9C84622B0C697A00A601BC /* MewVoiceDiscView.m in Sources */,
8C9C82AE2B0C695600A601BC /* TTPopup.m in Sources */,
8C9C84AD2B0D9AB900A601BC /* CHRoomMessageHeaderView.m in Sources */,
8C9C84AD2B0D9AB900A601BC /* MewRoomMessageHeaderView.m in Sources */,
8C9C84442B0C697A00A601BC /* YMMineCollectRoomCell.m in Sources */,
8C9C82B52B0C695600A601BC /* TTActionSheetView.m in Sources */,
8C9C82B32B0C695600A601BC /* TTPopupManagerService.m in Sources */,
@@ -2398,21 +2375,20 @@
8C9C84222B0C697A00A601BC /* MicroExtModel.m in Sources */,
8C9C843C2B0C697A00A601BC /* RtcManager.m in Sources */,
8C9C84BA2B0ECD2100A601BC /* MineRechargePresenter.m in Sources */,
8C9C84182B0C697A00A601BC /* YMHomePresenter.m in Sources */,
8C9C841E2B0C697A00A601BC /* YMRoomSendTextView.m in Sources */,
8C9C84182B0C697A00A601BC /* MewPartyPresenter.m in Sources */,
8C9C841E2B0C697A00A601BC /* MewRoomSendTextView.m in Sources */,
8C9C843E2B0C697A00A601BC /* YMMineSettingPresenter.m in Sources */,
8C9C84732B0C697A00A601BC /* MewPartyViewController.m in Sources */,
2370514C2B1D7CD500F5DE14 /* YYUtility+Device.m in Sources */,
8C4D53622AFD4CF700238AE6 /* main.m in Sources */,
233757642B0CB577001D0B7F /* CHMessageContentText.m in Sources */,
8C9C84242B0C697A00A601BC /* YMRoomMessageContainerView.m in Sources */,
233757642B0CB577001D0B7F /* MewMessageContentText.m in Sources */,
8C9C84242B0C697A00A601BC /* MewRoomMessageContainerView.m in Sources */,
8C9C84612B0C697A00A601BC /* MewPushExclusiveVoiceView.m in Sources */,
8C9C845D2B0C697A00A601BC /* MewHomePresenter.m in Sources */,
2337575A2B0CB577001D0B7F /* UITableView+NIMScrollToBottom.m in Sources */,
8C9C84252B0C697A00A601BC /* YMMessageInfoModel.m in Sources */,
8C9C84252B0C697A00A601BC /* MewMessageInfoModel.m in Sources */,
23270C302B0E071B00B9303B /* MewPaymentAction.swift in Sources */,
8C9C84792B0C697A00A601BC /* MewLoginNumberViewController.m in Sources */,
233757582B0CB577001D0B7F /* ChatLimitModel.m in Sources */,
233757582B0CB577001D0B7F /* MewChatLimitModel.m in Sources */,
8C9C82BA2B0C695600A601BC /* AccountInfoStorage.m in Sources */,
8C9C846E2B0C697A00A601BC /* MewRoomHeaderView.m in Sources */,
8C9C84492B0C697A00A601BC /* YMMineAboutUsViewController.m in Sources */,
@@ -2421,22 +2397,22 @@
8C9C84502B0C697A00A601BC /* LoginVerifCodePresent.m in Sources */,
8C9C844C2B0C697A00A601BC /* CustomAttachmentDecoder.m in Sources */,
8C9C845E2B0C697A00A601BC /* AudioPlayerManager.m in Sources */,
8C9C848C2B0D2B8500A601BC /* GiftReceiveInfoModel.m in Sources */,
8C9C848C2B0D2B8500A601BC /* MewGiftReceiveInfoModel.m in Sources */,
8C9C84572B0C697A00A601BC /* Api+Login.m in Sources */,
2337575D2B0CB577001D0B7F /* CHSessionToolbarView.m in Sources */,
2337575D2B0CB577001D0B7F /* MewSessionToolbarView.m in Sources */,
237051522B1D7CD500F5DE14 /* MEWUploadFile.m in Sources */,
8C9C84192B0C697A00A601BC /* HomeRecommendRoomModel.m in Sources */,
2370515A2B1D7CD500F5DE14 /* MEWGCDHelper.m in Sources */,
233757612B0CB577001D0B7F /* CHMessageToolMenuCollectionViewCell.m in Sources */,
233757612B0CB577001D0B7F /* MewMessageToolMenuCollectionCell.m in Sources */,
8C9C82B62B0C695600A601BC /* TTPopupService.m in Sources */,
233757662B0CB577001D0B7F /* CHSessionAudioRecordView.m in Sources */,
233757662B0CB577001D0B7F /* MewSessionAudioRecordView.m in Sources */,
233757672B0CB577001D0B7F /* Api+Message.m in Sources */,
8C9C841A2B0C697A00A601BC /* Api+Home.m in Sources */,
8C9C841A2B0C697A00A601BC /* Api+Party.m in Sources */,
8C9C82AD2B0C695600A601BC /* YMEmptyTableViewCell.m in Sources */,
8C9C845F2B0C697A00A601BC /* MewHomeViewController.m in Sources */,
8C9C84422B0C697A00A601BC /* RechargeListModel.m in Sources */,
8C9C845A2B0C697A00A601BC /* ClientDataModel.m in Sources */,
8C9C84972B0D65E200A601BC /* YMRoomAnimationView.m in Sources */,
8C9C84972B0D65E200A601BC /* MewRoomAnimationView.m in Sources */,
2370514E2B1D7CD500F5DE14 /* YYUtility+App.m in Sources */,
8C9C82202B0C694900A601BC /* AppDelegate+ThirdConfig.m in Sources */,
8C9C84202B0C697A00A601BC /* MicroView.m in Sources */,
@@ -2448,17 +2424,17 @@
8C9C84472B0C697A00A601BC /* MewMineCollectionTableViewCell.m in Sources */,
8C9C844E2B0C697A00A601BC /* LoginPresenter.m in Sources */,
8C9C84642B0C697A00A601BC /* MewRightFollowVoiceView.m in Sources */,
8C9C84842B0D25EF00A601BC /* GiftInfoModel.m in Sources */,
8C9C84842B0D25EF00A601BC /* MewGiftInfoModel.m in Sources */,
8C9C84742B0C697A00A601BC /* MewRechargeViewController.m in Sources */,
8C9C84272B0C697A00A601BC /* YMNetImageYYLabel.m in Sources */,
8C9C84272B0C697A00A601BC /* MewNetImageLabel.m in Sources */,
8C9C842A2B0C697A00A601BC /* Api+Room.m in Sources */,
8C9C84902B0D439800A601BC /* YMRoomMessageFilter.m in Sources */,
8C9C84902B0D439800A601BC /* MewRoomMessageFilter.m in Sources */,
8C92A8072B0EEDD0008F362C /* LoginVerifBindPhoneViewController.m in Sources */,
8C9C84412B0C697A00A601BC /* MineCollectRoomModel.m in Sources */,
2337576B2B0CB630001D0B7F /* UIView+FilletCorner.m in Sources */,
8C92A81C2B0EF449008F362C /* UIButton+EnlargeTouchArea.m in Sources */,
8C9C82B72B0C695600A601BC /* HttpRequestHelper.m in Sources */,
8C9C841B2B0C697A00A601BC /* YMRoomPresenter.m in Sources */,
8C9C841B2B0C697A00A601BC /* MewRoomPresenter.m in Sources */,
8C9C82A72B0C695600A601BC /* YMCurrentVCStackManager.m in Sources */,
8C9C82B82B0C695600A601BC /* BaseMvpPresenter.m in Sources */,
8C9C84702B0C697A00A601BC /* MewRoomViewController.m in Sources */,
@@ -2469,21 +2445,21 @@
2370514D2B1D7CD500F5DE14 /* YYUtility.m in Sources */,
8C9C84452B0C697A00A601BC /* YMMineCollectRoomViewController.m in Sources */,
8C9C82AC2B0C695600A601BC /* NetImageView.m in Sources */,
2337575F2B0CB577001D0B7F /* CHSessionInfoViewController.m in Sources */,
2337575F2B0CB577001D0B7F /* MewSessionInfoViewController.m in Sources */,
8C9C846B2B0C697A00A601BC /* MewSocialMicroView.m in Sources */,
233757572B0CB577001D0B7F /* MessageMenuModel.m in Sources */,
233757572B0CB577001D0B7F /* MewMessageMenuModel.m in Sources */,
8C9C844B2B0C697A00A601BC /* AttachmentModel.m in Sources */,
237051582B1D7CD500F5DE14 /* MEWTimer.m in Sources */,
237051562B1D7CD500F5DE14 /* MEWBase64.m in Sources */,
8C92A8112B0EEFAE008F362C /* LoginBindPhonePresent.m in Sources */,
8C9C84562B0C697A00A601BC /* LoginFullInfoViewController.m in Sources */,
8C9C84262B0C697A00A601BC /* YMMessageRemoteExtModel.m in Sources */,
8C9C84262B0C697A00A601BC /* MewMessageRemoteExtModel.m in Sources */,
8C92A8142B0EF1D8008F362C /* MineLoginPasswordViewController.m in Sources */,
8C9C82AA2B0C695600A601BC /* UIImageConstant.m in Sources */,
8C9C82BB2B0C695600A601BC /* BaseModel.m in Sources */,
8C9C84942B0D65C300A601BC /* YMRoomAnimationHitView.m in Sources */,
8C9C84942B0D65C300A601BC /* MewRoomAnimationHitView.m in Sources */,
8C9C82B12B0C695600A601BC /* TTAlertMessageAttributedConfig.m in Sources */,
233757602B0CB577001D0B7F /* SessionViewController.m in Sources */,
233757602B0CB577001D0B7F /* MewSessionViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2645,7 +2621,7 @@
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -2692,7 +2668,7 @@
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",

View File

@@ -149,7 +149,7 @@
NSString *ticket = [[AccountInfoStorage instance] getTicket];
NSString *type = state ? @"1" : @"2";
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] attentionUserSuccess:state];
[[self getView] mew_attentionUserSuccess:state];
}] uid:uid likedUid:targetUid ticket:ticket type:type];
}

View File

@@ -6,6 +6,7 @@
//
#import <Foundation/Foundation.h>
@class UserInfoModel;
NS_ASSUME_NONNULL_BEGIN
@@ -28,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getUserDetailInfoSuccess:(UserInfoModel *)userInfo;;
/// 关注用户成功
- (void)attentionUserSuccess:(BOOL)status;
- (void)mew_attentionUserSuccess:(BOOL)status;
/// 关注用户失败
- (void)attentionUserFail;
/// 获取两个人的关注成功

View File

@@ -18,7 +18,7 @@
#import "YMMineSettingViewController.h"
#import "MewMineCollectionViewController.h"
#import "MewRechargeViewController.h"
#import "SessionViewController.h"
#import "MewSessionViewController.h"
#import <NIMSDK/NIMSDK.h>
/// Tool
#import "YMMacro.h"
@@ -145,7 +145,7 @@
}
// ||
- (void)attentionUserSuccess:(BOOL)status {
- (void)mew_attentionUserSuccess:(BOOL)status {
[MewHUDTool showSuccessWithMessage: status ? @"关注成功" : @"取消关注成功"];
[self.userIntroductionView updateAttentionState:status];
}
@@ -255,7 +255,7 @@
- (void)userIntrodctionViewWithUserOption:(NSInteger)optionType {
if (optionType == 2) { //
NIMSession *session = [NIMSession session:self.targetUid type:NIMSessionTypeP2P];
SessionViewController *vc = [[SessionViewController alloc] initWithSession:session];
MewSessionViewController *vc = [[MewSessionViewController alloc] initWithSession:session];
[self.navigationController pushViewController:vc animated:YES];
} else {

View File

@@ -10,12 +10,12 @@
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
/// View
#import "NIMBadgeView.h"
#import "MewNIMBadgeView.h"
/// Tool
#import "ClientConfig.h"
#import "NetImageView.h"
#import "MEWThemeColor.h"
#import "NIMMessageUtils.h"
#import "MewNIMMessageUtils.h"
#import "MewTimeIntervalUtils.h"
#import "UIView+NIM.h"
#import "UIView+FilletCorner.h"
@@ -34,7 +34,7 @@
///
@property (nonatomic,strong) UILabel *timeLabel;
///
@property (nonatomic,strong) NIMBadgeView *badgeView;
@property (nonatomic,strong) MewNIMBadgeView *badgeView;
/// 线
//@property (nonatomic,strong) UIView *divider;
@end
@@ -49,7 +49,7 @@
self.nameLabel.text = user.userInfo.nickName;
[self.nameLabel sizeToFit];
self.messageLabel.text = [NIMMessageUtils messageContent:recent.lastMessage];
self.messageLabel.text = [MewNIMMessageUtils Mew_MessageContent:recent.lastMessage];
///
if (recent.lastMessage) {
@@ -214,9 +214,9 @@
return _timeLabel;
}
- (NIMBadgeView *)badgeView {
- (MewNIMBadgeView *)badgeView {
if (!_badgeView) {
_badgeView = [NIMBadgeView viewWithBadgeTip:@"1"];
_badgeView = [MewNIMBadgeView Mew_ViewWithBadgeTip:@"1"];
_badgeView.layer.cornerRadius = 9;
_badgeView.layer.masksToBounds = YES;
}

View File

@@ -14,7 +14,7 @@
#import "YMMacro.h"
#import "ClientConfig.h"
#import <Masonry/Masonry.h>
#import "SessionViewController.h"
#import "MewSessionViewController.h"
@interface MewSessionListViewController ()<UITableViewDelegate, UITableViewDataSource,
NIMConversationManagerDelegate,NIMLoginManagerDelegate>
@@ -195,7 +195,7 @@
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController *vc = [[SessionViewController alloc] initWithSession:recentSession.session];
MewSessionViewController *vc = [[MewSessionViewController alloc] initWithSession:recentSession.session];
[self.navigationController pushViewController:vc animated:YES];
}

View File

@@ -0,0 +1,21 @@
//
// Api+Home.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import "Api.h"
NS_ASSUME_NONNULL_BEGIN
@interface Api (Party)
/// 请求推荐房间列表
/// @param completion 完成
/// @param uid 用户的uid
+ (void)mew_partyRecommendRoomListComplection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,20 @@
//
// Api+Home.m
// mew-ios
//
// Created by on 2023/11/19.
//
#import "Api+Party.h"
#import "NewEncryptTool.h"
@implementation Api (Party)
///
/// @param completion
/// @param uid uid
+ (void)mew_partyRecommendRoomListComplection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"QFTxN/O9DfSc+M1EAx2zzw=="];///home/tab/homeV2
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
}
@end

View File

@@ -44,16 +44,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString *roomId;
///房主的uid
@property (nonatomic,copy) NSString *uid;
///房间简介
@property(nonatomic, copy) NSString *roomDesc;
///排列的顺序
@property (nonatomic,strong) NSNumber * seq;
///最新推荐上面的标签
@property (nonatomic,copy) NSString *iconContent;
///是否在跨房PK中
@property (nonatomic, assign) BOOL crossPking;
///是否是推荐房间
@property (nonatomic, assign) BOOL isRecommend;
///麦上用户
@property (nonatomic, strong) NSArray<HomePartyMicUserModel *> *micUsers;

View File

@@ -0,0 +1,17 @@
//
// MewHomePresenter.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewPartyPresenter : BaseMvpPresenter
- (void)mew_partyRecommendRoomList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,28 @@
//
// MewHomePresenter.m
// mew-ios
//
// Created by on 2023/11/19.
//
#import "MewPartyPresenter.h"
#import "AccountInfoStorage.h"
#import "HomeRecommendRoomModel.h"
#import "Api+Party.h"
#import "MewPartyProtocol.h"
#import "NSArray+MewSafe.h"
#import "NSObject+MEWExtension.h"
@implementation MewPartyPresenter
///
- (void)mew_partyRecommendRoomList {
NSString *uid = [AccountInfoStorage instance].getUid;
[Api mew_partyRecommendRoomListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeRecommendRoomModel mewModelsWithArray:data.data];
[[self getView] mew_partyRecommendRoomListSuccess:array];
}fail:^(NSInteger code, NSString * _Nullable msg) {
// [[self getView] getmew_partyRecommendRoomListFail:msg state:state];
}] uid:uid];
}
@end

View File

@@ -0,0 +1,18 @@
//
// MewHomeProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol MewPartyProtocol <NSObject>
/// 请求推荐房间列表完成
- (void)mew_partyRecommendRoomListSuccess:(NSArray *)list;
@end
NS_ASSUME_NONNULL_END

View File

@@ -18,10 +18,10 @@
#import "MewPartyModel.h"
#import "HomeRecommendRoomModel.h"
/// Presenter
#import "YMHomePresenter.h"
#import "YMHomeProtocol.h"
#import "MewPartyPresenter.h"
#import "MewHomeProtocol.h"
@interface MewPartyViewController ()<UICollectionViewDelegate, UICollectionViewDataSource, YMHomeProtocol>
@interface MewPartyViewController ()<UICollectionViewDelegate, UICollectionViewDataSource, MewHomeProtocol>
@property (nonatomic, strong) UIImageView *contentBgImageView;
//
@@ -49,8 +49,8 @@
return YES;
}
- (YMHomePresenter *)createPresenter {
return [[YMHomePresenter alloc] init];
- (MewPartyPresenter *)createPresenter {
return [[MewPartyPresenter alloc] init];
}
#pragma mark - Life Cycle
@@ -70,12 +70,11 @@
#pragma mark - Load Data
- (void)loadData {
[self.presenter homeRecommendRoomList];
[self.presenter mew_partyRecommendRoomList];
}
#pragma mark - YMHomeProtocol
- (void)homeRecommendRoomListSuccess:(NSArray *)list {
#pragma mark - MewHomeProtocol
- (void)mew_partyRecommendRoomListSuccess:(NSArray *)list {
self.homeRecommendModels = list;
[self.partyCollectionView reloadData];
}

View File

@@ -12,18 +12,18 @@
#import "MewRoomHeaderView.h"
#import "MewRoomRightView.h"
#import "MewSocialStageView.h"
#import "YMRoomMessageContainerView.h"
#import "YMRoomSendTextView.h"
#import "YMRoomAnimationView.h"
#import "MewRoomMessageContainerView.h"
#import "MewRoomSendTextView.h"
#import "MewRoomAnimationView.h"
///Model
#import "UserInfoModel.h"
#import "RoomInfoModel.h"
#import "YMMessageInfoModel.h"
#import "MewRoomInfoModel.h"
#import "MewMessageInfoModel.h"
#import "AttachmentModel.h"
#import "MicroQueueModel.h"
#import "GiftInfoModel.h"
#import "GiftReceiveInfoModel.h"
#import "YMMessageRemoteExtModel.h"
#import "MewGiftInfoModel.h"
#import "MewGiftReceiveInfoModel.h"
#import "MewMessageRemoteExtModel.h"
///Tool
#import "AccountInfoStorage.h"
#import "MEWHUDTool.h"
@@ -31,33 +31,33 @@
#import "NSArray+MEWSafe.h"
#import "RtcManager.h"
///P
#import "YMRoomPresenter.h"
#import "YMRoomProtocol.h"
#import "CHRoomHostDelegate.h"
#import "MewRoomPresenter.h"
#import "MewRoomProtocol.h"
#import "MewRoomHostDelegate.h"
/// Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
@interface MewRoomViewController ()<YMRoomProtocol,
@interface MewRoomViewController ()<MewRoomProtocol,
NIMChatroomManagerDelegate, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMLoginManagerDelegate,
CHRoomHostDelegate, MewRoomRightViewDelegate, MewRoomHeaderViewDelegate>
MewRoomHostDelegate, MewRoomRightViewDelegate, MewRoomHeaderViewDelegate>
//
@property (nonatomic, strong) UIImageView *roomBgImageView;
@property (nonatomic, strong) MewRoomHeaderView *roomHeaderView;
@property (nonatomic, strong) MewRoomRightView *roomRightView;
@property (nonatomic, strong) CHStageView *roomStageView;
@property (nonatomic, strong) YMRoomMessageContainerView *roomMessageView;
@property (nonatomic, strong) MewRoomMessageContainerView *roomMessageView;
///view
@property (nonatomic,strong) YMRoomAnimationView *roomAnimationView;
@property (nonatomic,strong) MewRoomAnimationView *roomAnimationView;
@property (nonatomic, strong) UIImageView *emojiImageView;
/// Uid
@property (nonatomic, strong) NSString *roomUid;
///
@property (nonatomic, strong) UserInfoModel *userInfo;
///
@property (nonatomic, strong) RoomInfoModel *roomInfo;
@property (nonatomic, strong) MewRoomInfoModel *roomInfo;
/// emoji
@property (nonatomic, assign) BOOL isPlayEmojiAnimation;
@property (nonatomic, copy) NSArray<NSString *> *emojiArrays;
@@ -67,8 +67,8 @@
@implementation MewRoomViewController
#pragma mark - Super
- (YMRoomPresenter *)createPresenter {
return [[YMRoomPresenter alloc] init];
- (MewRoomPresenter *)createPresenter {
return [[MewRoomPresenter alloc] init];
}
- (BOOL)isHiddenNavBar {
@@ -83,7 +83,7 @@
self.emojiArrays = @[@"mew_room_emoji_deyi",@"mew_room_emoji_happy",@"mew_room_emoji_sex",@"mew_room_emoji_suprise"];
self.playEmojiArrays = [NSMutableArray array];
self.isPlayEmojiAnimation = NO;
[self.presenter initEnterCurrentRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
[self.presenter mew_initEnterCurrentRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
//
[[NIMSDK sharedSDK].chatroomManager addDelegate:self];
@@ -132,7 +132,7 @@
{
NSMutableDictionary *lastRoomInfoDic = [NSMutableDictionary dictionaryWithDictionary:[self.roomInfo mewModel2dictionary]];
[lastRoomInfoDic addEntriesFromDictionary: ((NSString *)data[@"roomInfo"]).mewToJSONObject];
[self.roomStageView onRoomInfoUpdate];
[self.roomStageView mew_onRoomInfoUpdate];
// [self.roomMessageView onRoomUpdate];
}
break;
@@ -164,21 +164,21 @@
}
self.roomInfo.onlineNum = onLineNumber;
// [self.roomHeaderView onRoomUpdate];
[self.roomStageView handleNIMNotificationMessage:message];
[self.roomAnimationView handleNIMNotificationMessage:message];
[self.roomMessageView handleNIMNotificationMessage:message];
[self.roomStageView mew_handleNIMNotificationMessage:message];
[self.roomAnimationView mew_handleNIMNotificationMessage:message];
[self.roomMessageView mew_handleNIMNotificationMessage:message];
} else if (message.messageType == NIMMessageTypeCustom) {
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
[self.roomStageView handleNIMCustomMessage:message];
[self.roomAnimationView handleNIMCustomMessage:message];
[self.roomStageView mew_handleNIMCustomMessage:message];
[self.roomAnimationView mew_handleNIMCustomMessage:message];
[self.roomMessageView handleNIMCustomMessage:message];
[self.roomMessageView mew_handleNIMCustomMessage:message];
}
} else if(message.messageType == NIMMessageTypeText) {
[self.roomMessageView handleNIMTextMessage:message];
[self.roomMessageView mew_handleNIMTextMessage:message];
} else if(message.messageType == NIMMessageTypeTip) {
[self.roomMessageView handleNIMTextMessage:message];
[self.roomMessageView mew_handleNIMTextMessage:message];
}
}
}
@@ -202,14 +202,14 @@
if (message.messageType == NIMMessageTypeCustom) {
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
[self.roomStageView handleNIMCustomMessage:message];
[self.roomAnimationView handleNIMCustomMessage:message];
[self.roomMessageView handleNIMCustomMessage:message];
[self.roomStageView mew_handleNIMCustomMessage:message];
[self.roomAnimationView mew_handleNIMCustomMessage:message];
[self.roomMessageView mew_handleNIMCustomMessage:message];
}
} else if(message.messageType == NIMMessageTypeText) {
[self.roomMessageView handleNIMTextMessage:message];
[self.roomMessageView mew_handleNIMTextMessage:message];
}
}
@@ -225,28 +225,28 @@
return YES;
}
#pragma mark - CHRoomHostDelegate
- (RoomInfoModel *)getRoomInformation {
#pragma mark - MewRoomHostDelegate
- (MewRoomInfoModel *)mew_getRoomInformation {
return self.roomInfo;
}
- (UserInfoModel *)getUserInformation {
- (UserInfoModel *)mew_getUserInformation {
return self.userInfo;
}
/// 退
- (void)exitCurrentRoom {
- (void)mew_exitCurrentRoom {
//
[self.roomAnimationView resumeAnimationTimer];
[self.roomAnimationView mew_resumeAnimationTimer];
//
[self.presenter exitNIMCurrentRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[self.presenter mew_exitNIMCurrentRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[[RtcManager instance] exitRoom];
[self.presenter reportUserOutRoom:[NSString stringWithFormat:@"%ld",self.roomInfo.uid]];
[self.presenter mew_reportUserOutRoom:[NSString stringWithFormat:@"%ld",self.roomInfo.uid]];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (UINavigationController *)getCurrentNavigationController {
- (UINavigationController *)mew_getCurrentNavigationController {
return self.navigationController;
}
@@ -260,29 +260,29 @@
}
}
- (CGPoint)animationPointAtStageViewByUid:(NSString *)uid {
return [self.roomStageView animationPointAtStageViewByUid:uid];
- (CGPoint)mew_animationPointAtStageViewByUid:(NSString *)uid {
return [self.roomStageView mew_animationPointAtStageViewByUid:uid];
}
#pragma mark - YMRoomProtocol
#pragma mark - MewRoomProtocol
///
- (void)initEnterCurrentRoomSuccess:(RoomInfoModel *)roomInfo user:(UserInfoModel *)userInfo {
- (void)mew_initEnterCurrentRoomSuccess:(MewRoomInfoModel *)roomInfo user:(UserInfoModel *)userInfo {
[MewHUDTool hideHUDInView:self.navigationController.view];
self.userInfo = userInfo;
self.roomInfo = roomInfo;
if (roomInfo.valid) {
[self.roomHeaderView onRoomEntered];
[self.presenter enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld",self.roomInfo.roomId] user:self.userInfo];
[self.roomHeaderView mew_onRoomEntered];
[self.presenter mew_enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld",self.roomInfo.roomId] user:self.userInfo];
} else {
if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", userInfo.uid]]) {
//
if (roomInfo.roomId > 0) {
[self.presenter openUserRoom:roomInfo.title type:roomInfo.type roomPwd:@"" roomDesc:roomInfo.roomDesc backPic:@"" mgId:@""];
[self.presenter mew_openUserRoom:roomInfo.title type:roomInfo.type roomPwd:@"" roomDesc:roomInfo.roomDesc backPic:@"" mgId:@""];
} else {
NSString *title = [NSString stringWithFormat:@"%@的房间",userInfo.nick];
RoomType type = RoomType_Game;
[self.presenter openUserRoom:title type:type roomPwd:@"" roomDesc:@"" backPic:@"" mgId:@""];
[self.presenter mew_openUserRoom:title type:type roomPwd:@"" roomDesc:@"" backPic:@"" mgId:@""];
}
} else {
[self showSuccessToast:@"房主已下线"];
@@ -292,19 +292,19 @@
}
//
- (void)openCurrentRoomSuccess:(RoomInfoModel *)roomInfo {
- (void)openCurrentRoomSuccess:(MewRoomInfoModel *)roomInfo {
self.roomInfo = roomInfo;
[self.roomHeaderView onRoomEntered];
[self.presenter enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.roomHeaderView mew_onRoomEntered];
[self.presenter mew_enterNIMCurrentRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
}
// IM
- (void)enterCurrentRoomSuccess:(NIMChatroom *)chatRoom {
[MewHUDTool hideHUDInView:self.navigationController.view];
[self.roomStageView onRoomEntered];
[self.roomStageView mew_onRoomEntered];
if (self.roomInfo != nil) {
[self.presenter reportUserInterRoom:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]];
[self.presenter mew_reportUserInterRoom:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]];
}
self.roomInfo.onlineNum = chatRoom.onlineUserCount;
@@ -323,7 +323,7 @@
}
///
- (void)sendGiftSuccess:(GiftReceiveInfoModel *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount {
- (void)mew_sendRoomGiftSuccess:(MewGiftReceiveInfoModel *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount {
[MewHUDTool hideHUD];
[self sendCustomMessage:receiveInfo oringinDic:originDic];
@@ -331,7 +331,7 @@
}
///
- (void)sendGiftFailWithCode:(NSInteger)code msg:(NSString *)msg {
- (void)mew_sendRoomGiftFailWithCode:(NSInteger)code msg:(NSString *)msg {
[MewHUDTool hideHUD];
if (code == 31005) {//
@@ -343,7 +343,7 @@
/// IM
- (void)sendCustomMessage:(GiftReceiveInfoModel *)eceiveModel oringinDic:(NSDictionary *)originDic {
- (void)sendCustomMessage:(MewGiftReceiveInfoModel *)eceiveModel oringinDic:(NSDictionary *)originDic {
///
NSMutableDictionary *data = [NSMutableDictionary dictionary];
[data addEntriesFromDictionary:originDic];
@@ -359,14 +359,14 @@
}
- (void)sendCustomMessage:(AttachmentModel *)attachment {
NSString *sessionID = [NSString stringWithFormat:@"%ld", [self getRoomInformation].roomId];
NSString *sessionID = [NSString stringWithFormat:@"%ld", [self mew_getRoomInformation].roomId];
NIMMessage *message = [[NIMMessage alloc] init];
NIMCustomObject *object = [[NIMCustomObject alloc] init];
object.attachment = attachment;
message.messageObject = object;
UserInfoModel *userInfo = [self getUserInformation];
YMMessageRemoteExtModel *extModel = [[YMMessageRemoteExtModel alloc] init];
UserInfoModel *userInfo = [self mew_getUserInformation];
MewMessageRemoteExtModel *extModel = [[MewMessageRemoteExtModel alloc] init];
NSMutableDictionary *remoteExt = [NSMutableDictionary dictionaryWithObject:extModel.mewModel2dictionary forKey:[NSString stringWithFormat:@"%ld",userInfo.uid]];
message.remoteExt = remoteExt;
///
@@ -383,7 +383,7 @@
} else if (target == 1) {
// 退
[self exitCurrentRoom];
[self mew_exitCurrentRoom];
} else {
//
[self reportButton];
@@ -396,7 +396,7 @@
- (void)didSelectMewRoomRightViewWithTarget:(NSInteger)target {
if (target == 0) {
//
[YMRoomSendTextView showTextView:self.view.superview.superview delegate:self];
[MewRoomSendTextView Mew_ShowTextView:self.view.superview.superview delegate:self];
} else if (target == 1) {
//
[self randomEmoji];
@@ -457,7 +457,7 @@
}
[MewHUDTool showLoadingWithMessage:@"赠送中..."];
[self.presenter sendGift:mewStageView.selectUid roomUid:self.roomUid];
[self.presenter mew_sendRoomGift:mewStageView.selectUid roomUid:self.roomUid];
}
@@ -583,9 +583,9 @@
return _roomStageView;
}
- (YMRoomMessageContainerView *)roomMessageView {
- (MewRoomMessageContainerView *)roomMessageView {
if (!_roomMessageView) {
_roomMessageView = [[YMRoomMessageContainerView alloc] initWithDelegate:self];
_roomMessageView = [[MewRoomMessageContainerView alloc] initWithDelegate:self];
}
return _roomMessageView;
}
@@ -597,9 +597,9 @@
return _emojiImageView;
}
- (YMRoomAnimationView *)roomAnimationView {
- (MewRoomAnimationView *)roomAnimationView {
if (!_roomAnimationView) {
_roomAnimationView = [[YMRoomAnimationView alloc] initWithDelegate:self];
_roomAnimationView = [[MewRoomAnimationView alloc] initWithDelegate:self];
}
return _roomAnimationView;
}

View File

@@ -6,8 +6,8 @@
//
#import <UIKit/UIKit.h>
#import "CHRoomHostDelegate.h"
#import "CHRoomGuestDelegate.h"
#import "MewRoomHostDelegate.h"
#import "MewRoomGuestDelegate.h"
NS_ASSUME_NONNULL_BEGIN
/// index : 1 - 退出房间 2-举报房间
@@ -23,9 +23,9 @@ typedef void(^selectFilterClouse)(NSInteger index);
- (void)didSelectMewRoomHeaderViewTarget:(NSInteger)target;
@end
@interface MewRoomHeaderView : UIView<CHRoomGuestDelegate>
@interface MewRoomHeaderView : UIView<MewRoomGuestDelegate>
- (instancetype)initWithDelegate:(id<CHRoomHostDelegate>)delegate;
- (instancetype)initWithDelegate:(id<MewRoomHostDelegate>)delegate;
@property (nonatomic, weak) id<MewRoomHeaderViewDelegate> delegate;
@end

View File

@@ -143,7 +143,7 @@ static MewRoomHeaderFilterView *_filterView = nil;
/// 退
@property (nonatomic, strong) UIButton *filterButton;
@property (nonatomic, weak) id<CHRoomHostDelegate> hostDelegate;
@property (nonatomic, weak) id<MewRoomHostDelegate> hostDelegate;
///
@property (nonatomic, assign) BOOL hadShowCollectInScreen;
@@ -152,7 +152,7 @@ static MewRoomHeaderFilterView *_filterView = nil;
@implementation MewRoomHeaderView
#pragma mark - Init
- (instancetype)initWithDelegate:(id<CHRoomHostDelegate>)delegate {
- (instancetype)initWithDelegate:(id<MewRoomHostDelegate>)delegate {
self = [super init];
if (self) {
_hostDelegate = delegate;
@@ -161,9 +161,9 @@ static MewRoomHeaderFilterView *_filterView = nil;
return self;
}
#pragma mark - CHRoomGuestDelegate
- (void)onRoomEntered {
RoomInfoModel* roomInfo = self.hostDelegate.getRoomInformation;
#pragma mark - MewRoomGuestDelegate
- (void)mew_onRoomEntered {
MewRoomInfoModel* roomInfo = self.hostDelegate.mew_getRoomInformation;
if (roomInfo) {
self.roomTitleLabel.text = roomInfo.title;
@@ -182,8 +182,8 @@ static MewRoomHeaderFilterView *_filterView = nil;
- (void)roomCollectButtonAction:(UIButton *)sender {
NSString *type = sender.selected ? @"2" : @"1";
NSString *uid = [AccountInfoStorage instance].getUid;
NSString *roomUid = [NSString stringWithFormat:@"%ld",self.hostDelegate.getRoomInformation.uid];
[Api collectRoom:^(BaseModel * _Nonnull data, NSInteger code, NSString * _Nonnull msg) {
NSString *roomUid = [NSString stringWithFormat:@"%ld",self.hostDelegate.mew_getRoomInformation.uid];
[Api Mew_CollectRoom:^(BaseModel * _Nonnull data, NSInteger code, NSString * _Nonnull msg) {
if (code == 200) {
sender.selected = !sender.selected;
if ([type isEqualToString:@"1"]) {///

View File

@@ -6,13 +6,13 @@
//
#import <UIKit/UIKit.h>
@class YMMessageInfoModel;
@class MewMessageInfoModel;
NS_ASSUME_NONNULL_BEGIN
@interface MewRoomMessageTableCell : UITableViewCell
@property (nonatomic, strong) YMMessageInfoModel *messageInfo;
@property (nonatomic, strong) MewMessageInfoModel *messageInfo;
@end

View File

@@ -6,23 +6,23 @@
//
#import "MewRoomMessageTableCell.h"
#import "YMNetImageYYLabel.h"
#import "MewNetImageLabel.h"
#import "NetImageView.h"
#import "YMRoomMessageConstant.h"
#import "MewRoomMessageConstant.h"
#import "YMMacro.h"
#import "MEWThemeColor.h"
#import "MEWThemeColor.h"
#import "UIImage+Utils.h"
#import <Masonry/Masonry.h>
#import <YYText/YYText.h>
#import "YMMessageInfoModel.h"
#import "MewMessageInfoModel.h"
@interface MewRoomMessageTableCell()
///
@property (nonatomic,strong) NetImageView *bubbleImageView;
///
@property (nonatomic,strong) YMNetImageYYLabel *contentLabel;
@property (nonatomic,strong) MewNetImageLabel *contentLabel;
@end
@@ -37,7 +37,7 @@
}
#pragma mark - Set
- (void)setMessageInfo:(YMMessageInfoModel *)messageInfo {
- (void)setMessageInfo:(MewMessageInfoModel *)messageInfo {
_messageInfo = messageInfo;
if (_messageInfo) {
self.contentLabel.attributedText = _messageInfo.content;
@@ -92,9 +92,9 @@
return _bubbleImageView;
}
- (YMNetImageYYLabel *)contentLabel {
- (MewNetImageLabel *)contentLabel {
if (!_contentLabel) {
_contentLabel = [[YMNetImageYYLabel alloc] init];
_contentLabel = [[MewNetImageLabel alloc] init];
_contentLabel.preferredMaxLayoutWidth = kRoomMessageMaxWidth - 24;
_contentLabel.numberOfLines = 0;
_contentLabel.textColor = UIColor.whiteColor;

View File

@@ -87,7 +87,7 @@
return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV2;
}
- (CGPoint)animationPointAtStageViewByUid:(NSString *)uid {
- (CGPoint)mew_animationPointAtStageViewByUid:(NSString *)uid {
NSInteger index = [self getIndexByUid:uid];
CGPoint point = CGPointZero;

View File

@@ -1,33 +0,0 @@
//
// Api+Home.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import "Api.h"
NS_ASSUME_NONNULL_BEGIN
@interface Api (Home)
/// 查看推荐列表
/// @param complection 完成
/// @param uid 用户的uid
/// @param tabId tabid
/// @param pageNum 当前的页数
/// @param pageSize 一页有多少个
+ (void)getRecommendListComplection:(HttpRequestHelperCompletion)complection
uid:(NSString *)uid
tabId:(NSString *)tabId
pageNum:(NSString *)pageNum
pageSize:(NSString *)pageSize;
/// 请求推荐房间列表
/// @param completion 完成
/// @param uid 用户的uid
+ (void)homeRecommendRoomListComplection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,31 +0,0 @@
//
// Api+Home.m
// mew-ios
//
// Created by on 2023/11/19.
//
#import "Api+Home.h"
#import "NewEncryptTool.h"
@implementation Api (Home)
///
/// @param complection
/// @param uid uid
/// @param tabId tabid
/// @param pageNum
/// @param pageSize
+ (void)getRecommendListComplection:(HttpRequestHelperCompletion)complection uid:(NSString *)uid tabId:(NSString *)tabId pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"O27OsHzajhPM8UtfxngyAA=="];///home/tab/mapV2
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, tabId, pageNum, pageSize, nil];
}
///
/// @param completion
/// @param uid uid
+ (void)homeRecommendRoomListComplection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"QFTxN/O9DfSc+M1EAx2zzw=="];///home/tab/homeV2
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
}
@end

View File

@@ -1,24 +0,0 @@
//
// YMHomePresenter.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface YMHomePresenter : BaseMvpPresenter
/// 请求首页
/// @param tabId id
/// @param page 当前的页数
/// @param pageSize 一页有多少个
- (void)getRecommendRoomList:(NSString *)tabId page:(int)page pageSize:(int)pageSize state:(BOOL)state;
- (void)homeRecommendRoomList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,46 +0,0 @@
//
// YMHomePresenter.m
// mew-ios
//
// Created by on 2023/11/19.
//
#import "YMHomePresenter.h"
#import "AccountInfoStorage.h"
#import "HomeRecommendRoomModel.h"
#import "Api+Home.h"
#import "YMHomeProtocol.h"
#import "NSArray+MewSafe.h"
#import "NSObject+MEWExtension.h"
@implementation YMHomePresenter
///
/// @param tabId id
/// @param page
/// @param pageSize
- (void)getRecommendRoomList:(NSString *)tabId page:(int)page pageSize:(int)pageSize state:(BOOL)state {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * pageStr = [NSString stringWithFormat:@"%d", page];
NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize];
[Api getRecommendListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeRecommendRoomModel mewModelsWithArray:data.data];
[[self getView] getHomeRecommendRoomListSuccess:array state:state];
}fail:^(NSInteger code, NSString * _Nullable msg) {
// [[self getView] getHomeRecommendRoomListFail:msg state:state];
}showLoading:NO] uid:uid tabId:tabId pageNum:pageStr pageSize:pageSizeStr];
}
///
- (void)homeRecommendRoomList {
NSString *uid = [AccountInfoStorage instance].getUid;
[Api homeRecommendRoomListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeRecommendRoomModel mewModelsWithArray:data.data];
[[self getView] homeRecommendRoomListSuccess:array];
// [[self getView] getHomeRecommendRoomListSuccess:array state:state];
}fail:^(NSInteger code, NSString * _Nullable msg) {
// [[self getView] getHomeRecommendRoomListFail:msg state:state];
}] uid:uid];
}
@end

View File

@@ -1,22 +0,0 @@
//
// YMHomeProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/19.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol YMHomeProtocol <NSObject>
///首页推荐房间的
- (void)getHomeRecommendRoomListSuccess:(NSArray *)list state:(BOOL)state;
///首页推荐房间失败
- (void)getHomeRecommendRoomListFail:(NSString *)message state:(BOOL)state;
/// 请求推荐房间列表完成
- (void)homeRecommendRoomListSuccess:(NSArray *)list;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,7 +10,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface Api (Message)
+ (void)getChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid;
+ (void)Mew_GetChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -8,7 +8,7 @@
#import "Api+Message.h"
#import "NewEncryptTool.h"
@implementation Api (Message)
+ (void)getChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid {
+ (void)Mew_GetChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"ml84Zo9PhMJ69iyUKDccSccouVGFyLv2OiwzJUi0qGI="];///privateChat/limit
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, receiverUid,nil];
}

View File

@@ -1,12 +0,0 @@
//
// ChatLimitModel.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "ChatLimitModel.h"
@implementation ChatLimitModel
@end

View File

@@ -1,27 +0,0 @@
//
// MessageMenuModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/21.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, MessageMenuType) {
///发送图片
MessageMenuType_Photo = 1,
///送礼物
MessageMenuType_Gift
};
@interface MessageMenuModel : NSObject
///图片
@property (nonatomic,strong) NSString *imageName;
///类型
@property (nonatomic,assign) MessageMenuType type;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// MessageMenuModel.m
// xplan-ios
//
// Created by on 2022/4/21.
//
#import "MessageMenuModel.h"
@implementation MessageMenuModel
@end

View File

@@ -1,5 +1,5 @@
//
// ChatLimitModel.h
// MewChatLimitModel.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
@@ -9,7 +9,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface ChatLimitModel : NSObject
@interface MewChatLimitModel : NSObject
@property(nonatomic,assign) int model;
@property (nonatomic, assign) BOOL chat;

View File

@@ -0,0 +1,12 @@
//
// MewChatLimitModel.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "MewChatLimitModel.h"
@implementation MewChatLimitModel
@end

View File

@@ -0,0 +1,27 @@
//
// MewMessageMenuModel.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/21.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, MewMessageMenuType) {
///发送图片
Mew_MessageMenuType_Photo = 1,
///送礼物
Mew_MessageMenuType_Gift
};
@interface MewMessageMenuModel : NSObject
///图片
@property (nonatomic,strong) NSString *imageName;
///类型
@property (nonatomic,assign) MewMessageMenuType type;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// MewMessageMenuModel.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "MewMessageMenuModel.h"
@implementation MewMessageMenuModel
@end

View File

@@ -1,25 +0,0 @@
//
// CHMessagePresenter.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHMessagePresenter : BaseMvpPresenter
- (void)getChatLimitReceiverUid:(NSString *)receiverUid;
/// 获取用户信息
/// @param uid 用户uid
- (void)getUserInfo:(NSString *)uid;
///是否关注当前用户
- (void)getFansLike:(NSString *)likeUid;
/// 关注用户
/// @param targetUid 目标用户的uid
- (void)attentionUser:(NSString *)targetUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,25 @@
//
// MewMessagePresenter.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMessagePresenter : BaseMvpPresenter
- (void)mew_getChatLimitReceiverUid:(NSString *)receiverUid;
/// 获取用户信息
/// @param uid 用户uid
- (void)mew_getMessageUserInfo:(NSString *)uid;
///是否关注当前用户
- (void)mew_getFansLike:(NSString *)likeUid;
/// 关注用户
/// @param targetUid 目标用户的uid
- (void)mew_attentionMessageUser:(NSString *)targetUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,56 +1,56 @@
//
// CHMessagePresenter.m
// MewMessagePresenter.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHMessagePresenter.h"
#import "MewMessagePresenter.h"
#import "Api+Mine.h"
#import "Api+Message.h"
//Model
#import "UserInfoModel.h"
#import "AccountInfoStorage.h"
#import "ChatLimitModel.h"
#import "MewChatLimitModel.h"
//Protocol
#import "CHMessageProtocol.h"
#import "MewMessageProtocol.h"
@implementation CHMessagePresenter
- (void)getChatLimitReceiverUid:(NSString *)receiverUid {
[Api getChatLimit:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
ChatLimitModel *chatLimit = [ChatLimitModel mewModelWithJSON:data.data];
[[self getView] onGetLimitChat:chatLimit];
@implementation MewMessagePresenter
- (void)mew_getChatLimitReceiverUid:(NSString *)receiverUid {
[Api Mew_GetChatLimit:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
MewChatLimitModel *chatLimit = [MewChatLimitModel mewModelWithJSON:data.data];
[[self getView] mew_onGetLimitChat:chatLimit];
} showLoading:NO errorToast:NO] receiverUid:receiverUid];
}
///
/// @param uid uid
- (void)getUserInfo:(NSString *)uid {
- (void)mew_getMessageUserInfo:(NSString *)uid {
[Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel mewModelWithDictionary:data.data];
[[self getView] onGetSessionUserInfoSuccess:infoModel];
[[self getView] mew_onGetSessionUserInfoSuccess:infoModel];
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]onGetSessionUserInfoFail];
[[self getView]mew_onGetSessionUserInfoFail];
}] uid:uid page:@"1" pageSize:@"20"];
}
///
- (void)getFansLike:(NSString *)likeUid {
- (void)mew_getFansLike:(NSString *)likeUid {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api attentionStatusCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
BOOL isLike = [data.data boolValue];
[[self getView] getFansLikeSuccess:isLike];
[[self getView] mew_getFansLikeSuccess:isLike];
}] uid:uid isLikeUid:likeUid];
}
///
/// @param targetUid uid
- (void)attentionUser:(NSString *)targetUid {
- (void)mew_attentionMessageUser:(NSString *)targetUid {
NSString * uid = [[AccountInfoStorage instance] getUid];
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * type = @"1";
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] attentionUserSuccess:targetUid];
[[self getView] mew_attentionUserSuccess:targetUid];
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAttentionUserNotification" object:nil];
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type];
}

View File

@@ -1,27 +0,0 @@
//
// CHMessageProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <Foundation/Foundation.h>
@class ChatLimitModel, UserInfoModel;
NS_ASSUME_NONNULL_BEGIN
@protocol CHMessageProtocol <NSObject>
- (void)onGetLimitChat:(ChatLimitModel *)chatLimit;
///获取用户信息成功
- (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo;
///获取用户信息失败
- (void)onGetSessionUserInfoFail;
///获取粉丝喜欢成功
- (void)getFansLikeSuccess:(BOOL)isLike;
///关注成功
- (void)attentionUserSuccess:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,27 @@
//
// MewMessageProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <Foundation/Foundation.h>
@class MewChatLimitModel, UserInfoModel;
NS_ASSUME_NONNULL_BEGIN
@protocol MewMessageProtocol <NSObject>
- (void)mew_onGetLimitChat:(MewChatLimitModel *)chatLimit;
///获取用户信息成功
- (void)mew_onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo;
///获取用户信息失败
- (void)mew_onGetSessionUserInfoFail;
///获取粉丝喜欢成功
- (void)mew_getFansLikeSuccess:(BOOL)isLike;
///关注成功
- (void)mew_attentionUserSuccess:(NSString *)uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,5 +1,5 @@
//
// NIMMessageUtils.h
// MewNIMMessageUtils.h
// mew-ios
//
// Created by 触海 on 2023/11/10.
@@ -10,9 +10,9 @@
NS_ASSUME_NONNULL_BEGIN
@interface NIMMessageUtils : NSObject
@interface MewNIMMessageUtils : NSObject
/// NIMMessage 转换成字符串
+ (NSString *)messageContent:(NIMMessage*)message;
+ (NSString *)Mew_MessageContent:(NIMMessage*)message;
@end

View File

@@ -1,16 +1,16 @@
//
// NIMMessageUtils.m
// MewNIMMessageUtils.m
// mew-ios
//
// Created by on 2023/11/10.
//
#import "NIMMessageUtils.h"
#import "MewNIMMessageUtils.h"
@implementation NIMMessageUtils
@implementation MewNIMMessageUtils
/// NIMMessage
+ (NSString *)messageContent:(NIMMessage *)message {
+ (NSString *)Mew_MessageContent:(NIMMessage *)message {
NSString *text = @"";
switch (message.messageType) {
case NIMMessageTypeText:

View File

@@ -1,5 +1,5 @@
//
// NIMBadgeView.h
// MewNIMBadgeView.h
// NIMKit
//
// Created by chris on 15/2/12.
@@ -8,11 +8,11 @@
#import <UIKit/UIKit.h>
@interface NIMBadgeView : UIView
@interface MewNIMBadgeView : UIView
@property (nonatomic, copy) NSString *badgeValue;
+ (instancetype)viewWithBadgeTip:(NSString *)badgeValue;
+ (instancetype)Mew_ViewWithBadgeTip:(NSString *)badgeValue;
@end

View File

@@ -1,5 +1,5 @@
//
// NIMBadgeView.m
// MewNIMBadgeView.m
// NIMKit
//
// Created by chris on 15/2/12.
@@ -7,9 +7,9 @@
//
#import "NIMBadgeView.h"
#import "MewNIMBadgeView.h"
@interface NIMBadgeView ()
@interface MewNIMBadgeView ()
@property (strong) UIColor *badgeBackgroundColor;
@@ -27,14 +27,14 @@
@end
@implementation NIMBadgeView
@implementation MewNIMBadgeView
+ (instancetype)viewWithBadgeTip:(NSString *)badgeValue{
+ (instancetype)Mew_ViewWithBadgeTip:(NSString *)badgeValue{
if (!badgeValue) {
badgeValue = @"";
}
NIMBadgeView *instance = [[NIMBadgeView alloc] init];
instance.frame = [instance frameWithStr:badgeValue];
MewNIMBadgeView *instance = [[MewNIMBadgeView alloc] init];
instance.frame = [instance mew_frameWithStr:badgeValue];
instance.badgeValue = badgeValue;
return instance;
@@ -60,9 +60,9 @@
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
if ([[self badgeValue] length]) {
[self drawWithContent:rect context:context];
[self mew_drawWithContent:rect context:context];
}else{
[self drawWithOutContent:rect context:context];
[self mew_drawWithOutContent:rect context:context];
}
CGContextRestoreGState(context);
}
@@ -76,12 +76,14 @@
}
_badgeTopPadding = 2.f;
self.frame = [self frameWithStr:badgeValue];
self.frame = [self mew_frameWithStr:badgeValue];
[self setNeedsDisplay];
}
- (CGSize)badgeSizeWithStr:(NSString *)badgeValue{
#pragma mark - Private Method
- (CGSize)mew_badgeSizeWithStr:(NSString *)badgeValue{
if (!badgeValue || badgeValue.length == 0) {
return CGSizeZero;
}
@@ -92,8 +94,8 @@
return size;
}
- (CGRect)frameWithStr:(NSString *)badgeValue{
CGSize badgeSize = [self badgeSizeWithStr:badgeValue];
- (CGRect)mew_frameWithStr:(NSString *)badgeValue{
CGSize badgeSize = [self mew_badgeSizeWithStr:badgeValue];
CGRect badgeFrame = CGRectMake(self.frame.origin.x, self.frame.origin.y, badgeSize.width + self.badgeLeftPadding * 2 + self.whiteCircleWidth * 2, badgeSize.height + self.badgeTopPadding * 2 + self.whiteCircleWidth * 2);//8=2*2-+2*2-
return badgeFrame;
}
@@ -101,7 +103,7 @@
#pragma mark - Private
- (void)drawWithContent:(CGRect)rect context:(CGContextRef)context{
- (void)mew_drawWithContent:(CGRect)rect context:(CGContextRef)context{
CGRect bodyFrame = self.bounds;
CGRect bkgFrame = CGRectInset(self.bounds, self.whiteCircleWidth, self.whiteCircleWidth);
CGRect badgeSize = CGRectInset(self.bounds, self.whiteCircleWidth + self.badgeLeftPadding, self.whiteCircleWidth + self.badgeTopPadding);
@@ -158,7 +160,7 @@
}
- (void)drawWithOutContent:(CGRect)rect context:(CGContextRef)context{
- (void)mew_drawWithOutContent:(CGRect)rect context:(CGContextRef)context{
CGRect bodyFrame = self.bounds;
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextFillEllipseInRect(context, bodyFrame);

View File

@@ -1,17 +0,0 @@
//
// CHMessageConentAudioView.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/22.
//
#import <UIKit/UIKit.h>
#import "CHMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHMessageConentAudioView : UIView<CHMessageContentProtocol>
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,26 +0,0 @@
//
// CHSessionAudioRecordView.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/21.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface CHSessionAudioRecordView : UIView
- (void)configAudioRecord:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation;
///开始录音
- (void)beginAudioRecord;
///取消录音
- (void)cancelAudioRecord;
///完成录音
- (void)finishAudioRecord;
///更新进度
- (void)updateAudioRecordProgress:(NSTimeInterval)recordTime;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,30 +0,0 @@
//
// CHSessionMessageCell.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
@class NIMMessage;
NS_ASSUME_NONNULL_BEGIN
@protocol CHSessionMessageCellDelegate <NSObject>
- (void)didTapAvatarWithUid:(NSString *)uid;
///发送失败点击了重试
- (void)didFailRetryMessage:(NIMMessage *)message;
@end
@interface CHSessionMessageCell : UITableViewCell
+ (CGFloat)measureHeight:(NIMMessage *)message;
- (void)renderWithMessage:(NIMMessage *)message;
+ (NSString *)cellContent:(NIMMessage *)message;
@property (nonatomic,weak) id<CHSessionMessageCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,33 +0,0 @@
//
// CHSessionNavView.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
@class CHSessionNavView;
NS_ASSUME_NONNULL_BEGIN
@protocol CHSessionNavViewDelegate <NSObject>
///点击了举报
- (void)sessionNavView:(CHSessionNavView *)view didClickReport:(UIButton *)sender;
///点击了关注
- (void)sessionNavView:(CHSessionNavView *)view didClickLike:(UIButton *)sender;
///点击了返回
- (void)sessionNavView:(CHSessionNavView *)view didClickBack:(UIButton *)sender;
@end
@interface CHSessionNavView : UIView
@property (nonatomic,copy) NSString *userId;
///标题
@property (nonatomic,copy) NSString *title;
///是否已经关注了
@property (nonatomic,assign) BOOL isLike;
///代理
@property (nonatomic,weak) id<CHSessionNavViewDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,29 +0,0 @@
//
// MessageToolbarView.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class MessageMenuModel;
@protocol CHSessionToolbarViewDelegate <NSObject>
- (void)keyboardWillChangeFrame:(CGRect)rect;
- (void)sendTextMessage:(NSString *)text;
- (void)audioRecordCompletion:(NSString *)recordPath;
- (void)didSelectMenuItem:(MessageMenuModel *)info;
@end
@interface CHSessionToolbarView : UIView
///代理
@property (nonatomic,weak) id<CHSessionToolbarViewDelegate> delegate;
@property(nonatomic,assign) int model;
@property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled;
///折叠 菜单view
- (void)foldToolMenuView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,17 +0,0 @@
//
// CHMessageContentUnSupportView.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
#import "CHMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHMessageContentUnSupportView : UIView<CHMessageContentProtocol>
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,16 +0,0 @@
//
// CHMessageToolMenuCollectionViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface CHMessageToolMenuCollectionViewCell : UICollectionViewCell
@property (nonatomic,copy) NSString *imageName;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,16 +1,16 @@
//
// CHMessageContentText.h
// MewMessageContentImage.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
#import "CHMessageContentProtocol.h"
#import "MewMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHMessageContentText : UIView<CHMessageContentProtocol>
@interface MewMessageContentImage : UIView<MewMessageContentProtocol>
@end

View File

@@ -1,28 +1,26 @@
//
// CHMessageContentImage.m
// MewMessageContentImage.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHMessageContentImage.h"
#import "MewMessageContentImage.h"
#import "NetImageView.h"
//#import "SDPhotoBrowser.h"
#import <NIMSDK/NIMSDK.h>
#import <Masonry/Masonry.h>
#import "UIImage+Utils.h"
#define MESSAGE_IMAGE_MAX_SIZE (CONTENT_WIDTH_MAX)
#define MESSAGE_IMAGE_Min_SIZE (CONTENT_WIDTH_MAX -100)
@interface CHMessageContentImage()
//<SDPhotoBrowserDelegate>
@interface MewMessageContentImage()
@property (nonatomic, strong) NetImageView * messageImage;
@property (nonatomic,strong) NIMImageObject *imageObject;
@end
@implementation CHMessageContentImage
@implementation MewMessageContentImage
- (instancetype)init {
self = [super init];
@@ -36,7 +34,7 @@
return self;
}
+ (CGFloat)measureHeight:(NIMMessage *)message {
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
if (!message || message.messageType != NIMMessageTypeImage) return 0;
NIMImageObject *imageObject = (NIMImageObject*)[message messageObject];
CGFloat attachmentImageMinWidth = (MESSAGE_IMAGE_Min_SIZE);
@@ -56,7 +54,7 @@
return contentSize.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL;
}
- (void)render:(NIMMessage *)message {
- (void)mew_renderMessage:(NIMMessage *)message {
NIMImageObject * imageObject = (NIMImageObject*) message.messageObject;
self.imageObject = imageObject;
CGFloat attachmentImageMinWidth = (MESSAGE_IMAGE_Min_SIZE);
@@ -86,10 +84,7 @@
}
}
#pragma mark - SDPhotoBrowserDelegate
- (void)didTapImage {
}
#pragma mark - Get
- (NetImageView *)messageImage {
if (!_messageImage) {
@@ -97,8 +92,8 @@
_messageImage.userInteractionEnabled = YES;
_messageImage.layer.masksToBounds = YES;
_messageImage.contentMode = UIViewContentModeScaleAspectFill;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapImage)];
[_messageImage addGestureRecognizer:tap];
// UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapImage)];
// [_messageImage addGestureRecognizer:tap];
}
return _messageImage;
}

View File

@@ -1,5 +1,5 @@
//
// CHMessageContentProtocol.h
// MewMessageContentProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
@@ -17,10 +17,10 @@
NS_ASSUME_NONNULL_BEGIN
@protocol CHMessageContentProtocol <NSObject>
@protocol MewMessageContentProtocol <NSObject>
+ (CGFloat)measureHeight:(NIMMessage *)message;
- (void)render:(NIMMessage *)message;
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message;
- (void)mew_renderMessage:(NIMMessage *)message;
@end

View File

@@ -1,16 +1,16 @@
//
// CHMessageContentImage.h
// MewMessageContentText.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
#import "CHMessageContentProtocol.h"
#import "MewMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHMessageContentImage : UIView<CHMessageContentProtocol>
@interface MewMessageContentText : UIView<MewMessageContentProtocol>
@end

View File

@@ -1,13 +1,13 @@
//
// CHMessageContentText.m
// MewMessageContentText.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHMessageContentText.h"
#import "MewMessageContentText.h"
#import "CHMessageContentText.h"
#import "MewMessageContentText.h"
#import "MEWThemeColor.h"
#import "NSObject+MEWExtension.h"
@@ -17,7 +17,7 @@
#define MESSAGE_TEXT_PADDING 10
@interface CHMessageContentText()
@interface MewMessageContentText()
/**
@@ -26,9 +26,9 @@
@end
@implementation CHMessageContentText
@implementation MewMessageContentText
+ (CGFloat)measureHeight:(NIMMessage *)message {
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
NSString * messageText = message.text;
if (!messageText) {
messageText = @"未知消息类型";
@@ -36,7 +36,7 @@
CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2, MAXFLOAT);
CGFloat msgHeight = [messageText boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin attributes:[CHMessageContentText messageTextAttibutes] context:nil].size.height;
CGFloat msgHeight = [messageText boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin attributes:[MewMessageContentText messageTextAttibutes] context:nil].size.height;
return msgHeight + MESSAGE_TEXT_PADDING * 2 + CONTENT_PADDING_V_TOTAL;
}
@@ -62,12 +62,12 @@
return self;
}
- (void)render:(nonnull NIMMessage *)message {
- (void)mew_renderMessage:(nonnull NIMMessage *)message {
NSString * messageText = message.text;
if (!messageText || (message.messageType != NIMMessageTypeTip && message.messageType != NIMMessageTypeText)) {
messageText = @"未知消息类型";
}
_messageText.attributedText = [[NSAttributedString alloc] initWithString:messageText attributes:[CHMessageContentText messageTextAttibutes]];
_messageText.attributedText = [[NSAttributedString alloc] initWithString:messageText attributes:[MewMessageContentText messageTextAttibutes]];
}
- (UILabel *)messageText {

View File

@@ -0,0 +1,17 @@
//
// MewMessageContentUnSupportView.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
#import "MewMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMessageContentUnSupportView : UIView<MewMessageContentProtocol>
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +1,12 @@
//
// CHMessageContentUnSupportView.m
// MewMessageContentUnSupportView.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHMessageContentUnSupportView.h"
#import "MewMessageContentUnSupportView.h"
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
@@ -15,21 +15,21 @@
#define MESSAGE_TEXT_PADDING 10
@interface CHMessageContentUnSupportView ()
@interface MewMessageContentUnSupportView ()
///
@property (nonatomic,strong) UILabel *unSupportLabel;
@end
@implementation CHMessageContentUnSupportView
@implementation MewMessageContentUnSupportView
+ (CGFloat)measureHeight:(NIMMessage *)message {
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
NSString * messageText = @"暂不支持此种类型消息";
CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2, MAXFLOAT);
CGFloat msgHeight = [messageText boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size.height;
return msgHeight + MESSAGE_TEXT_PADDING * 2 + CONTENT_PADDING_V_TOTAL;
}
- (void)render:(NIMMessage *)message {
- (void)mew_renderMessage:(NIMMessage *)message {
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
NSLog(@"%@", @"aaaaa");
}

View File

@@ -0,0 +1,16 @@
//
// MewMessageToolMenuCollectionCell.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewMessageToolMenuCollectionCell : UICollectionViewCell
@property (nonatomic,copy) NSString *imageName;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,56 @@
//
// MewMessageToolMenuCollectionCell.m
// yinmeng-ios
//
// Created by on 2023/11/20.
//
#import "MewMessageToolMenuCollectionCell.h"
///Third
#import <Masonry/Masonry.h>
@interface MewMessageToolMenuCollectionCell ()
@property (nonatomic,strong) UIImageView *logoImageView;
@end
@implementation MewMessageToolMenuCollectionCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.logoImageView];
}
- (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView);
}];
}
#pragma mark - Getters And Setters
- (void)setImageName:(NSString *)imageName {
_imageName = imageName;
if (_imageName) {
self.logoImageView.image = [UIImage imageNamed:_imageName];
}
}
- (UIImageView *)logoImageView {
if (!_logoImageView) {
_logoImageView = [[UIImageView alloc] init];
_logoImageView.userInteractionEnabled = YES;
}
return _logoImageView;
}
@end

View File

@@ -1,8 +1,8 @@
//
// CHMessageToolMenuCollectionViewCell.m
// xplan-ios
// yinmeng-ios
//
// Created by on 2022/4/20.
// Created by on 2023/11/20.
//
#import "CHMessageToolMenuCollectionViewCell.h"

View File

@@ -1,18 +1,18 @@
//
// CHMessageAudioCenter.h
// xplan-ios
// MewMessageAudioCenter.h
// yinmeng-ios
//
// Created by 冯硕 on 2022/4/22.
// Created by 触海 on 2023/11/22.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class NIMMessage;
@interface CHMessageAudioCenter : NSObject
@interface MewMessageAudioCenter : NSObject
+ (instancetype)shareInstance;
@property (nonatomic,strong, readonly) NIMMessage *currentPlayingMessage;
- (void)playAudioMessage:(NIMMessage *)message;
- (void)mew_playAudioMessage:(NIMMessage *)message;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,25 +1,25 @@
//
// CHMessageAudioCenter.m
// xplan-ios
// MewMessageAudioCenter.m
// yinmeng-ios
//
// Created by on 2022/4/22.
// Created by on 2023/11/22.
//
#import "CHMessageAudioCenter.h"
#import "MewMessageAudioCenter.h"
#import <NIMSDK/NIMSDK.h>
@interface CHMessageAudioCenter ()<NIMMediaManagerDelegate>
@interface MewMessageAudioCenter ()<NIMMediaManagerDelegate>
@property (nonatomic,assign) NSInteger retryCount;
@property (nonatomic,strong,nullable) NIMMessage *currentPlayingMessage;
@end
@implementation CHMessageAudioCenter
@implementation MewMessageAudioCenter
+ (instancetype)shareInstance {
static CHMessageAudioCenter *instance;
static MewMessageAudioCenter *instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[CHMessageAudioCenter alloc] init];
instance = [[MewMessageAudioCenter alloc] init];
});
return instance;
}
@@ -37,7 +37,7 @@
_retryCount = 3;
}
- (void)playAudioMessage:(NIMMessage *)message {
- (void)mew_playAudioMessage:(NIMMessage *)message {
NIMAudioObject *audioObject = (NIMAudioObject *)message.messageObject;
if ([audioObject isKindOfClass:[NIMAudioObject class]]) {
self.currentPlayingMessage = message;
@@ -48,7 +48,6 @@
#pragma mark - NIMMediaManagerDelegate
- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error
{
if (error) {

View File

@@ -0,0 +1,17 @@
//
// MewMessageConentAudioView.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/22.
//
#import <UIKit/UIKit.h>
#import "MewMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface MewMessageConentAudioView : UIView<MewMessageContentProtocol>
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,19 +1,19 @@
//
// CHMessageConentAudioView.m
// xplan-ios
// MewMessageConentAudioView.m
// yinmeng-ios
//
// Created by on 2022/4/22.
// Created by on 2023/11/22.
//
#import "CHMessageConentAudioView.h"
#import "MewMessageConentAudioView.h"
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
///Tool
#import "MEWThemeColor.h"
#import "CHMessageAudioCenter.h"
@interface CHMessageConentAudioView ()<NIMMediaManagerDelegate>
#import "MewMessageAudioCenter.h"
@interface MewMessageConentAudioView ()<NIMMediaManagerDelegate>
///
@property (nonatomic,strong) UIView * backView;
///
@@ -26,7 +26,7 @@
@property (nonatomic,assign) BOOL isPlaying;
@end
@implementation CHMessageConentAudioView
@implementation MewMessageConentAudioView
- (void)dealloc {
[[NIMSDK sharedSDK].mediaManager removeDelegate:self];
@@ -71,7 +71,7 @@
#pragma mark - NIMMediaManagerDelegate
- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error {
if(filePath && !error) {
if ([CHMessageAudioCenter shareInstance].currentPlayingMessage == self.message) {
if ([MewMessageAudioCenter shareInstance].currentPlayingMessage == self.message) {
[self.audioImageView startAnimating];
}
}
@@ -82,8 +82,29 @@
UIImage * thirdImage = [UIImage imageNamed:@"mew_message_content_audio_playing_third"];
self.audioImageView.image = thirdImage;
}
#pragma mark - MewMessageContentProtocol
+ (CGFloat)mew_sesstionMeasureHeight:(NIMMessage *)message {
NSInteger audioContentHeight = 30;
return (audioContentHeight + CONTENT_PADDING_V_TOTAL+ MESSAGE_PADDING * 2);
}
- (void)mew_renderMessage:(NIMMessage *)message {
self.message = message;
NIMAudioObject *audioContent = (NIMAudioObject*)[message messageObject];
NSAssert([audioContent isKindOfClass:[NIMAudioObject class]], @"message should be audio");
CGFloat value = 2*atan((audioContent.duration/1000.0-1)/10.0)/M_PI;
NSInteger audioContentMinWidth = (CONTENT_WIDTH_MAX - 180);
NSInteger audioContentMaxWidth = (CONTENT_WIDTH_MAX - 100);
CGFloat audioWidth = (audioContentMaxWidth - audioContentMinWidth)* value + audioContentMinWidth;
[self.backView mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(audioWidth);;
}];
self.timeLabel.text = [NSString stringWithFormat:@"%zd\"",(audioContent.duration+500)/1000];//
}
#pragma mark - Event Response
- (void)didTapBackRecognizer {
- (void)mew_didTapBackRecognizer {
if ([self.message attachmentDownloadState] == NIMMessageAttachmentDownloadStateDownloaded) {
if ([[NIMSDK sharedSDK].mediaManager isPlaying]) {
[[NIMSDK sharedSDK].mediaManager stopPlay];
@@ -95,7 +116,7 @@
} else {
self.isPlaying = YES;
[[NIMSDK sharedSDK].mediaManager switchAudioOutputDevice:NIMAudioOutputDeviceSpeaker];
[[CHMessageAudioCenter shareInstance] playAudioMessage:self.message];
[[MewMessageAudioCenter shareInstance] mew_playAudioMessage:self.message];
}
}
}
@@ -105,7 +126,7 @@
if (!_backView) {
_backView = [[UIView alloc] init];
_backView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapBackRecognizer)];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mew_didTapBackRecognizer)];
[_backView addGestureRecognizer:tap];
}
return _backView;
@@ -135,24 +156,7 @@
return _audioImageView;
}
+ (CGFloat)measureHeight:(NIMMessage *)message {
NSInteger audioContentHeight = 30;
return (audioContentHeight + CONTENT_PADDING_V_TOTAL+ MESSAGE_PADDING * 2);
}
- (void)render:(NIMMessage *)message {
self.message = message;
NIMAudioObject *audioContent = (NIMAudioObject*)[message messageObject];
NSAssert([audioContent isKindOfClass:[NIMAudioObject class]], @"message should be audio");
CGFloat value = 2*atan((audioContent.duration/1000.0-1)/10.0)/M_PI;
NSInteger audioContentMinWidth = (CONTENT_WIDTH_MAX - 180);
NSInteger audioContentMaxWidth = (CONTENT_WIDTH_MAX - 100);
CGFloat audioWidth = (audioContentMaxWidth - audioContentMinWidth)* value + audioContentMinWidth;
[self.backView mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(audioWidth);;
}];
self.timeLabel.text = [NSString stringWithFormat:@"%zd\"",(audioContent.duration+500)/1000];//
}

View File

@@ -0,0 +1,24 @@
//
// MewNIMMessageMaker.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/28.
//
#import <Foundation/Foundation.h>
#import <NIMSDK/NIMSDK.h>
@interface MewNIMMessageMaker : NSObject
+ (NIMMessage*)Mew_MsgWithText:(NSString *)text;
+ (NIMMessage *)Mew_MsgWithAudio:(NSString *)filePath;
+ (NIMMessage *)Mew_MsgWithImage:(UIImage *)image;
+ (NIMMessage *)Mew_MsgWithImagePath:(NSString *)path;
+ (NIMMessage *)Mew_MsgWithImageData:(NSData *)data extension:(NSString *)extension;
@end

View File

@@ -1,16 +1,16 @@
//
// NIMMessageMaker.m
// xplan-ios
// MewNIMMessageMaker.m
// yinmeng-ios
//
// Created by zu on 2021/11/28.
// Created by on 2023/11/28.
//
#import "NIMMessageMaker.h"
#import "MewNIMMessageMaker.h"
#import "YMConstant.h"
@implementation NIMMessageMaker
@implementation MewNIMMessageMaker
+ (NIMMessage*)msgWithText:(NSString*)text
+ (NIMMessage*)Mew_MsgWithText:(NSString*)text
{
NIMMessage *textMessage = [[NIMMessage alloc] init];
textMessage.text = text;
@@ -18,7 +18,7 @@
return textMessage;
}
+ (NIMMessage*)msgWithAudio:(NSString*)filePath
+ (NIMMessage*)Mew_MsgWithAudio:(NSString*)filePath
{
NIMAudioObject *audioObject = [[NIMAudioObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage];
NIMMessage *message = [[NIMMessage alloc] init];
@@ -28,39 +28,26 @@
return message;
}
+ (NIMMessage*)msgWithVideo:(NSString*)filePath
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NIMVideoObject *videoObject = [[NIMVideoObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage];
videoObject.displayName = [NSString stringWithFormat:@"视频发送于%@", dateString];
NIMMessage *message = [[NIMMessage alloc] init];
message.messageObject = videoObject;
message.apnsContent = @"发来了一段视频";
[self setupMessage:message];
return message;
}
+ (NIMMessage*)msgWithImage:(UIImage*)image
+ (NIMMessage*)Mew_MsgWithImage:(UIImage*)image
{
NIMImageObject *imageObject = [[NIMImageObject alloc] initWithImage:image scene:NIMNOSSceneTypeMessage];
NIMImageOption *option = [[NIMImageOption alloc] init];
option.compressQuality = 0.7;
imageObject.option = option;
return [NIMMessageMaker generateImageMessage:imageObject];
return [MewNIMMessageMaker generateImageMessage:imageObject];
}
+ (NIMMessage *)msgWithImagePath:(NSString*)path
+ (NIMMessage *)Mew_MsgWithImagePath:(NSString*)path
{
NIMImageObject * imageObject = [[NIMImageObject alloc] initWithFilepath:path scene:NIMNOSSceneTypeMessage];
return [NIMMessageMaker generateImageMessage:imageObject];
return [MewNIMMessageMaker generateImageMessage:imageObject];
}
+ (NIMMessage *)msgWithImageData:(NSData *)data extension:(NSString *)extension
+ (NIMMessage *)Mew_MsgWithImageData:(NSData *)data extension:(NSString *)extension
{
NIMImageObject *imageObject = [[NIMImageObject alloc] initWithData:data extension:extension];
return [NIMMessageMaker generateImageMessage:imageObject];
return [MewNIMMessageMaker generateImageMessage:imageObject];
}
+ (NIMMessage *)generateImageMessage:(NIMImageObject *)imageObject
@@ -96,26 +83,3 @@
@end
@implementation NIMCommentMaker
+ (NIMQuickComment *)commentWithType:(int64_t)type
content:(NSString *)content
ext:(NSString *)ext
{
NIMQuickComment *comment = [[NIMQuickComment alloc] init];
comment.ext = ext;
NIMQuickCommentSetting *setting = [[NIMQuickCommentSetting alloc] init];
setting.needPush = YES;
setting.needBadge = YES;
setting.pushTitle = @"你收到了一条快捷评论";
setting.pushContent = content;
setting.pushPayload = @{
@"key" : @"value"
};
comment.setting = setting;
comment.replyType = type;
return comment;
}
@end

View File

@@ -0,0 +1,26 @@
//
// MewSessionAudioRecordView.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/21.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MewSessionAudioRecordView : UIView
- (void)mew_configAudioRecord:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation;
///开始录音
- (void)mew_beginAudioRecord;
///取消录音
- (void)mew_cancelAudioRecord;
///完成录音
- (void)mew_finishAudioRecord;
///更新进度
- (void)mew_updateAudioRecordProgress:(NSTimeInterval)recordTime;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,16 +1,16 @@
//
// CHSessionAudioRecordView.m
// xplan-ios
// MewSessionAudioRecordView.m
// yinmeng-ios
//
// Created by on 2022/4/21.
// Created by on 2023/11/21.
//
#import "CHSessionAudioRecordView.h"
#import "MewSessionAudioRecordView.h"
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
@interface CHSessionAudioRecordView ()
@interface MewSessionAudioRecordView ()
///
@property (nonatomic,strong) UIView * backView;
///
@@ -21,7 +21,7 @@
@property (nonatomic,strong) UILabel *timeLabel;
@end
@implementation CHSessionAudioRecordView
@implementation MewSessionAudioRecordView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
@@ -32,7 +32,7 @@
return self;
}
#pragma mark - Public Method
- (void)configAudioRecord:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation {
- (void)mew_configAudioRecord:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation {
self.logoImageView.image = [UIImage imageNamed:imageName];
if (isAnimation) {
[self.logoImageView startAnimating];
@@ -43,22 +43,22 @@
}
///
- (void)beginAudioRecord {
- (void)mew_beginAudioRecord {
self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager recordForDuration:60];
}
///
- (void)cancelAudioRecord {
- (void)mew_cancelAudioRecord {
self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager cancelRecord];
}
///
- (void)finishAudioRecord {
- (void)mew_finishAudioRecord {
self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager stopRecord];
}
- (void)updateAudioRecordProgress:(NSTimeInterval)recordTime {
- (void)mew_updateAudioRecordProgress:(NSTimeInterval)recordTime {
NSInteger minutes = (NSInteger)recordTime / 60;
NSInteger seconds = (NSInteger)recordTime % 60;
self.timeLabel.text = [NSString stringWithFormat:@"%02zd:%02zd", minutes, seconds];

View File

@@ -1,15 +1,15 @@
//
// CHSessionInfoViewController.h
// xplan-ios
// MewSessionInfoViewController.h
// yinmeng-ios
//
// Created by 冯硕 on 2022/4/25.
// Created by 触海 on 2023/11/25.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface CHSessionInfoViewController : BaseViewController
@interface MewSessionInfoViewController : BaseViewController
///用户的id
@property (nonatomic,copy) NSString *userId;
@end

View File

@@ -1,11 +1,11 @@
//
// CHSessionInfoViewController.m
// xplan-ios
// MewSessionInfoViewController.m
// yinmeng-ios
//
// Created by on 2022/4/25.
// Created by on 2023/11/25.
//
#import "CHSessionInfoViewController.h"
#import "MewSessionInfoViewController.h"
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
@@ -18,7 +18,7 @@
#import "YMWebViewController.h"
@interface CHSessionInfoViewController ()
@interface MewSessionInfoViewController ()
///
@property (nonatomic,strong) UIStackView *stackView;
///view
@@ -42,7 +42,7 @@
@end
@implementation CHSessionInfoViewController
@implementation MewSessionInfoViewController
- (void)viewDidLoad {
[super viewDidLoad];
@@ -131,7 +131,7 @@
}
#pragma mark - Event Response
- (void)blackButtonAction:(UIButton *)sender {
- (void)mew_blackButtonAction:(UIButton *)sender {
NSString *title = nil;
NSString *message = nil;
BOOL isInBlack = [[NIMSDK sharedSDK].userManager isUserInBlackList:self.userId];
@@ -172,7 +172,7 @@
}];
}
- (void)reportButtonAction:(UIButton *)sender {
- (void)mew_reportButtonAction:(UIButton *)sender {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"举报内容" message:@""
preferredStyle:UIAlertControllerStyleActionSheet];
@@ -212,11 +212,6 @@
}
- (void)didTapUserRecognizer {
// XPMineUserInfoViewController * mineVC = [[XPMineUserInfoViewController alloc] init];
// mineVC.uid = self.userId.integerValue;
// [self.navigationController pushViewController:mineVC animated:YES];
}
#pragma mark - Getters And Setters
- (UIStackView *)stackView {
@@ -234,8 +229,6 @@
if (!_infoView) {
_infoView = [[UIView alloc] init];
_infoView.backgroundColor = [MEWThemeColor mewAppCellBackgroundColor];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapUserRecognizer)];
[_infoView addGestureRecognizer:tap];
_infoView.hidden = YES;
}
return _infoView;
@@ -300,7 +293,7 @@
[_reportButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateNormal];
_reportButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
[_reportButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]];
[_reportButton addTarget:self action:@selector(reportButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_reportButton addTarget:self action:@selector(mew_reportButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _reportButton;
}
@@ -322,8 +315,7 @@
[_blackButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateSelected];
_blackButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
[_blackButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]];
[_blackButton addTarget:self action:@selector(blackButtonAction:) forControlEvents:UIControlEventTouchUpInside];
// _blackButton.hidden = YES;
[_blackButton addTarget:self action:@selector(mew_blackButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _blackButton;
}

View File

@@ -0,0 +1,30 @@
//
// MewSessionMessageCell.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
@class NIMMessage;
NS_ASSUME_NONNULL_BEGIN
@protocol MewSessionMessageCellDelegate <NSObject>
- (void)mew_didTapAvatarWithUid:(NSString *)uid;
///发送失败点击了重试
- (void)mew_didFailRetryMessage:(NIMMessage *)message;
@end
@interface MewSessionMessageCell : UITableViewCell
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message;
- (void)mew_renderWithMessage:(NIMMessage *)message;
+ (NSString *)mew_cellMessageContent:(NIMMessage *)message;
@property (nonatomic,weak) id<MewSessionMessageCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,17 +1,17 @@
//
// CHSessionMessageCell.m
// MewSessionMessageCell.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHSessionMessageCell.h"
#import "MewSessionMessageCell.h"
/// View
#import "NetImageView.h"
#import "CHMessageContentUnSupportView.h"
#import "CHMessageContentText.h"
#import "CHMessageContentImage.h"
#import "CHMessageConentAudioView.h"
#import "MewMessageContentUnSupportView.h"
#import "MewMessageContentText.h"
#import "MewMessageContentImage.h"
#import "MewMessageConentAudioView.h"
///Tool
#import "MEWThemeColor.h"
#import "YMMacro.h"
@@ -20,11 +20,11 @@
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
/// P
#import "CHMessageContentProtocol.h"
#import "MewMessageContentProtocol.h"
///Model
//#import "AttachmentModel.h"
@interface CHSessionMessageCell()
@interface MewSessionMessageCell()
/** */
@property (nonatomic, strong) NetImageView * leftAvatar;
@@ -39,16 +39,16 @@
@property (nonatomic, strong) MASConstraint * messageBackgroundRight;
/** */
@property (nonatomic, strong) UIView<CHMessageContentProtocol> * messageContent;
@property (nonatomic, strong) UIView<MewMessageContentProtocol> * messageContent;
///
@property (nonatomic,strong) NIMMessage *currentMessage;
@end
@implementation CHSessionMessageCell
@implementation MewSessionMessageCell
#pragma mark - Public Method
+ (CGFloat)measureHeight:(NIMMessage *)message {
+ (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
CGFloat minHeight = AVATAR_SIZE + AVATAR_MARGIN_H * 2;
if (!message) {
return minHeight;
@@ -58,16 +58,16 @@
switch (message.messageType) {
case NIMMessageTypeText:
case NIMMessageTypeTip:
measureHeight = [CHMessageContentText measureHeight:message];
measureHeight = [MewMessageContentText mew_sessionMeasureHeight:message];
break;
case NIMMessageTypeImage:
measureHeight = [CHMessageContentImage measureHeight:message];
measureHeight = [MewMessageContentImage mew_sessionMeasureHeight:message];
break;
case NIMMessageTypeAudio:
measureHeight = [CHMessageConentAudioView measureHeight:message];
measureHeight = [MewMessageConentAudioView mew_sessionMeasureHeight:message];
break;
case NIMMessageTypeCustom:
measureHeight = [self customMessageMeasureHeight:message];
measureHeight = [self mew_customMessageMeasureHeight:message];
break;
default:
break;
@@ -77,7 +77,7 @@
}
- (void)renderWithMessage:(NIMMessage *)message {
- (void)mew_renderWithMessage:(NIMMessage *)message {
self.currentMessage = message;
NSString * avatarUrl = [[NIMSDK sharedSDK].userManager userInfo:message.from].userInfo.avatarUrl;
avatarUrl = [avatarUrl stringByReplacingOccurrencesOfString:@"https" withString:@"http"];
@@ -96,10 +96,10 @@
self.leftAvatar.imageUrl = (avatarUrl == nil ||avatarUrl.length == 0) ? [NewEncryptTool MEW_aesDecrypt:@"xdPnNelVD/RTlTKFqgSrESDPcNF6Diqb8sLg+HEvxpvjDdTLom1euQUOAOppjx15"] : avatarUrl;;
}
[self handleMessageFail:message];
if ([self messageShowAvatar:message]) {
self.leftAvatar.hidden= [self messageShowAvatar:message];
self.rightAvatar.hidden = [self messageShowAvatar:message];
[self mew_handleMessageFail:message];
if ([self mew_messageShowAvatar:message]) {
self.leftAvatar.hidden= [self mew_messageShowAvatar:message];
self.rightAvatar.hidden = [self mew_messageShowAvatar:message];
}
if (self.messageContent) {
@@ -109,26 +109,26 @@
switch (message.messageType) {
case NIMMessageTypeText:
case NIMMessageTypeTip:
if (![self.messageContent isKindOfClass:[CHMessageContentText class]]) {
self.messageContent = [[CHMessageContentText alloc] init];
if (![self.messageContent isKindOfClass:[MewMessageContentText class]]) {
self.messageContent = [[MewMessageContentText alloc] init];
}
break;
case NIMMessageTypeImage:
if (![self.messageContent isKindOfClass:[CHMessageContentImage class]]) {
self.messageContent = [[CHMessageContentImage alloc] init];
if (![self.messageContent isKindOfClass:[MewMessageContentImage class]]) {
self.messageContent = [[MewMessageContentImage alloc] init];
}
break;
case NIMMessageTypeAudio:
if (![self.messageContent isKindOfClass:[CHMessageConentAudioView class]]) {
self.messageContent = [[CHMessageConentAudioView alloc] init];
if (![self.messageContent isKindOfClass:[MewMessageConentAudioView class]]) {
self.messageContent = [[MewMessageConentAudioView alloc] init];
}
break;
case NIMMessageTypeCustom:
self.messageContent = [self getCustomMessageContentView:message];
self.messageContent = [self mew_getCustomMessageContentView:message];
break;
default:
if (![self.messageContent isKindOfClass:[CHMessageContentUnSupportView class]]) {
self.messageContent = [[CHMessageContentUnSupportView alloc] init];
if (![self.messageContent isKindOfClass:[MewMessageContentUnSupportView class]]) {
self.messageContent = [[MewMessageContentUnSupportView alloc] init];
}
break;
}
@@ -137,64 +137,63 @@
[self.messageContent mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.right.bottom.mas_equalTo(self.messageBackground);
}];
[self.messageContent render:message];
[self.messageContent mew_renderMessage:message];
}
+ (NSString *)cellContent:(NIMMessage *)message {
+ (NSString *)mew_cellMessageContent:(NIMMessage *)message {
if (message.messageType == NIMMessageTypeText || message.messageType == NIMMessageTypeTip) {
return @"CHMessageContentText";
return @"MewMessageContentText";
} else if(message.messageType == NIMMessageTypeImage) {
return @"CHMessageContentImage";
return @"MewMessageContentImage";
}else if(message.messageType == NIMMessageTypeAudio) {
return @"CHMessageConentAudioView";
return @"MewMessageConentAudioView";
} else if(message.messageType == NIMMessageTypeCustom) {
return @"CHMessageContentUnSupportView";
return @"MewMessageContentUnSupportView";
} else {
return @"CHMessageContentUnSupportView";
return @"MewMessageContentUnSupportView";
}
}
#pragma mark - Action Event
//
- (void)rightAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) {
[self.delegate didTapAvatarWithUid:self.currentMessage.from];
- (void)mew_rightAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didTapAvatarWithUid:)]) {
[self.delegate mew_didTapAvatarWithUid:self.currentMessage.from];
}
}
//
- (void)leftAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) {
[self.delegate didTapAvatarWithUid:self.currentMessage.from];
- (void)mew_leftAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didTapAvatarWithUid:)]) {
[self.delegate mew_didTapAvatarWithUid:self.currentMessage.from];
}
}
//
- (void)failButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(didFailRetry:)]) {
[self.delegate didFailRetryMessage:self.currentMessage];
- (void)mew_failButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didFailRetryMessage:)]) {
[self.delegate mew_didFailRetryMessage:self.currentMessage];
}
}
#pragma mark - Private Method
///
+ (CGFloat)customMessageMeasureHeight:(NIMMessage *)message {
+ (CGFloat)mew_customMessageMeasureHeight:(NIMMessage *)message {
//
return [CHMessageContentUnSupportView measureHeight:message];
return [MewMessageContentUnSupportView mew_sessionMeasureHeight:message];
}
- (UIView<CHMessageContentProtocol> *)getCustomMessageContentView:(NIMMessage *)message {
if ([self.messageContent isKindOfClass:[CHMessageContentUnSupportView class]]) {
- (UIView<MewMessageContentProtocol> *)mew_getCustomMessageContentView:(NIMMessage *)message {
if ([self.messageContent isKindOfClass:[MewMessageContentUnSupportView class]]) {
return self.messageContent;
}
return [[CHMessageContentUnSupportView alloc] init];
return [[MewMessageContentUnSupportView alloc] init];
}
///
- (void)handleMessageFail:(NIMMessage *)message {
- (void)mew_handleMessageFail:(NIMMessage *)message {
BOOL isHiddenFail = YES;
if (!message.isReceivedMsg) { //
// noyes
@@ -228,7 +227,7 @@
}
///
- (BOOL)messageShowAvatar:(NIMMessage *)message {
- (BOOL)mew_messageShowAvatar:(NIMMessage *)message {
return NO;
}
@@ -286,7 +285,7 @@
_leftAvatar.layer.cornerRadius = 45.f / 2;
_leftAvatar.hidden = YES;
_leftAvatar.userInteractionEnabled = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftAvatarTapRecognizer)];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mew_leftAvatarTapRecognizer)];
[_leftAvatar addGestureRecognizer:tap];
}
return _leftAvatar;
@@ -303,7 +302,7 @@
_rightAvatar.layer.cornerRadius = 45.f / 2;
_rightAvatar.hidden = YES;
_rightAvatar.userInteractionEnabled = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rightAvatarTapRecognizer)];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mew_rightAvatarTapRecognizer)];
[_rightAvatar addGestureRecognizer:tap];
}
return _rightAvatar;
@@ -324,7 +323,7 @@
_failButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_failButton setImage:[UIImage imageNamed:@"mew_message_session_download_fail"] forState:UIControlStateNormal];
[_failButton setImage:[UIImage imageNamed:@"mew_message_session_download_fail"] forState:UIControlStateSelected];
[_failButton addTarget:self action:@selector(failButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_failButton addTarget:self action:@selector(mew_failButtonAction:) forControlEvents:UIControlEventTouchUpInside];
_failButton.hidden = YES;
}
return _failButton;

View File

@@ -0,0 +1,33 @@
//
// MewSessionNavView.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
//
#import <UIKit/UIKit.h>
@class MewSessionNavView;
NS_ASSUME_NONNULL_BEGIN
@protocol MewSessionNavViewDelegate <NSObject>
///点击了举报
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickReport:(UIButton *)sender;
///点击了关注
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickLike:(UIButton *)sender;
///点击了返回
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickBack:(UIButton *)sender;
@end
@interface MewSessionNavView : UIView
@property (nonatomic,copy) NSString *userId;
///标题
@property (nonatomic,copy) NSString *title;
///是否已经关注了
@property (nonatomic,assign) BOOL isLike;
///代理
@property (nonatomic,weak) id<MewSessionNavViewDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,11 +1,11 @@
//
// CHSessionNavView.m
// MewSessionNavView.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "CHSessionNavView.h"
#import "MewSessionNavView.h"
/// Tool
#import "MEWThemeColor.h"
#import <NIMSDK/NIMSDK.h>
@@ -13,7 +13,7 @@
/// Third
#import <Masonry/Masonry.h>
@interface CHSessionNavView ()
@interface MewSessionNavView ()
///
@property (nonatomic,strong) UIButton *backButton;
///
@@ -25,7 +25,7 @@
@property (nonatomic,strong) UIButton *reportButton;
@end
@implementation CHSessionNavView
@implementation MewSessionNavView
#pragma mark - Init
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
@@ -37,22 +37,22 @@
#pragma mark - Action Event
- (void)backButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickBack:)]) {
[self.delegate sessionNavView:self didClickBack:sender];
- (void)mew_backButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickBack:)]) {
[self.delegate mew_sessionNavView:self didClickBack:sender];
}
}
- (void)likeButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickLike:)]) {
[self.delegate sessionNavView:self didClickLike:sender];
- (void)mew_likeButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickLike:)]) {
[self.delegate mew_sessionNavView:self didClickLike:sender];
}
}
- (void)reportButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickReport:)]) {
[self.delegate sessionNavView:self didClickReport:sender];
- (void)mew_reportButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickReport:)]) {
[self.delegate mew_sessionNavView:self didClickReport:sender];
}
}
@@ -91,6 +91,8 @@
make.right.equalTo(self.reportButton.mas_left).mas_offset(-14);
}];
}
#pragma mark - Set
- (void)setUserId:(NSString *)userId {
_userId = userId;
if (_userId.length > 0) {
@@ -124,8 +126,7 @@
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateNormal];
[_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateSelected];
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
// [_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
[_backButton addTarget:self action:@selector(mew_backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _backButton;
}
@@ -150,7 +151,7 @@
[_likeButton setTitleColor:UIColorMewFromRGB(0xFFDA24) forState:UIControlStateNormal];
_likeButton.layer.borderWidth = 0.5;
_likeButton.layer.borderColor = UIColorMewFromRGB(0xFFDA24).CGColor;
[_likeButton addTarget:self action:@selector(likeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_likeButton addTarget:self action:@selector(mew_likeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
_likeButton.hidden = NO;
}
return _likeButton;
@@ -161,7 +162,7 @@
_reportButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_reportButton setImage:[UIImage imageNamed:@"mew_message_session_nav_report"] forState:UIControlStateNormal];
[_reportButton setImage:[UIImage imageNamed:@"mew_message_session_nav_report"] forState:UIControlStateSelected];
[_reportButton addTarget:self action:@selector(reportButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_reportButton addTarget:self action:@selector(mew_reportButtonAction:) forControlEvents:UIControlEventTouchUpInside];
_reportButton.hidden = NO;
}
return _reportButton;

View File

@@ -0,0 +1,29 @@
//
// MessageToolbarView.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class MewMessageMenuModel;
@protocol MewSessionToolbarViewDelegate <NSObject>
- (void)mew_keyboardWillChangeFrame:(CGRect)rect;
- (void)mew_sendTextMessage:(NSString *)text;
- (void)mew_audioRecordCompletion:(NSString *)recordPath;
- (void)mew_didSelectMenuItem:(MewMessageMenuModel *)info;
@end
@interface MewSessionToolbarView : UIView
///代理
@property (nonatomic,weak) id<MewSessionToolbarViewDelegate> delegate;
@property(nonatomic,assign) int model;
@property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled;
///折叠 菜单view
- (void)mew_foldToolMenuView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,11 +1,11 @@
//
// MessageToolbarView.m
// xplan-ios
// yinmeng-ios
//
// Created by on 2022/4/20.
// Created by on 2023/11/20.
//
#import "CHSessionToolbarView.h"
#import "MewSessionToolbarView.h"
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
@@ -14,15 +14,15 @@
#import "YMMacro.h"
#import "NSArray+MewSafe.h"
///Model
#import "MessageMenuModel.h"
#import "MewMessageMenuModel.h"
///View
#import "CHMessageToolMenuCollectionViewCell.h"
#import "CHSessionAudioRecordView.h"
#import "MewMessageToolMenuCollectionCell.h"
#import "MewSessionAudioRecordView.h"
#define TOOL_HEIGHT 60
#define MENU_HEIGHT 130
@interface CHSessionToolbarView ()<UICollectionViewDelegate, UICollectionViewDataSource, UITextFieldDelegate, NIMMediaManagerDelegate>
@interface MewSessionToolbarView ()<UICollectionViewDelegate, UICollectionViewDataSource, UITextFieldDelegate, NIMMediaManagerDelegate>
///
@property (nonatomic,strong) UIStackView *stackView;
///
@@ -44,12 +44,12 @@
///view
@property (nonatomic,strong) UIView * placeView;
///
@property (nonatomic,strong) NSArray<MessageMenuModel *> *menuList;
@property (nonatomic,strong) NSArray<MewMessageMenuModel *> *menuList;
///view
@property (nonatomic,strong) CHSessionAudioRecordView *audioRecordView;
@property (nonatomic,strong) MewSessionAudioRecordView *audioRecordView;
@end
@implementation CHSessionToolbarView
@implementation MewSessionToolbarView
- (void)dealloc {
[[NIMSDK sharedSDK].mediaManager removeDelegate:self];
@@ -59,15 +59,15 @@
self = [super initWithFrame:frame];
if (self) {
[[NIMSDK sharedSDK].mediaManager addDelegate:self];
[self addNotification];
[self addAudioButtonAction];
[self mew_addNotification];
[self mew_addAudioButtonAction];
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Public Method
- (void)foldToolMenuView {
- (void)mew_foldToolMenuView {
[self.inputView resignFirstResponder];
if (self.collectionView.hidden == NO) {
self.collectionView.hidden = YES;
@@ -75,18 +75,18 @@
}
}
#pragma mark - Private Method
- (void)addAudioButtonAction {
- (void)mew_addAudioButtonAction {
///button 70px out in enter exit
[self.audioButton addTarget:self action:@selector(audioTouchDownAction) forControlEvents:UIControlEventTouchDown];
[self.audioButton addTarget:self action:@selector(audioTouchUpOutsideAction) forControlEvents:UIControlEventTouchUpOutside];
[self.audioButton addTarget:self action:@selector(audioTouchUpInsideAction) forControlEvents:UIControlEventTouchUpInside];
[self.audioButton addTarget:self action:@selector(audioTouchDragEnterAction) forControlEvents:UIControlEventTouchDragEnter];
[self.audioButton addTarget:self action:@selector(audioTouchDragExitAction) forControlEvents:UIControlEventTouchDragExit];
[self.audioButton addTarget:self action:@selector(mew_audioTouchDownAction) forControlEvents:UIControlEventTouchDown];
[self.audioButton addTarget:self action:@selector(mew_audioTouchUpOutsideAction) forControlEvents:UIControlEventTouchUpOutside];
[self.audioButton addTarget:self action:@selector(mew_audioTouchUpInsideAction) forControlEvents:UIControlEventTouchUpInside];
[self.audioButton addTarget:self action:@selector(mew_audioTouchDragEnterAction) forControlEvents:UIControlEventTouchDragEnter];
[self.audioButton addTarget:self action:@selector(mew_audioTouchDragExitAction) forControlEvents:UIControlEventTouchDragExit];
}
- (void)addNotification {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
- (void)mew_addNotification {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mew_keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mew_keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
- (void)initSubViews {
@@ -154,8 +154,8 @@
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CHMessageToolMenuCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([CHMessageToolMenuCollectionViewCell class]) forIndexPath:indexPath];
MessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
MewMessageToolMenuCollectionCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMessageToolMenuCollectionCell class]) forIndexPath:indexPath];
MewMessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
cell.imageName = model.imageName;
return cell;
}
@@ -163,9 +163,9 @@
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
if (self.menuList.count > 0) {
MessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectMenuItem:)]) {
[self.delegate didSelectMenuItem:model];
MewMessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didSelectMenuItem:)]) {
[self.delegate mew_didSelectMenuItem:model];
}
}
}
@@ -173,8 +173,8 @@
#pragma mark - UITextFieldDelegate
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField.text.length >0) {
if (self.delegate && [self.delegate respondsToSelector:@selector(sendTextMessage:)]) {
[self.delegate sendTextMessage:textField.text];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sendTextMessage:)]) {
[self.delegate mew_sendTextMessage:textField.text];
textField.text = nil;
}
}
@@ -200,8 +200,8 @@
*/
- (void)recordAudio:(nullable NSString *)filePath didCompletedWithError:(nullable NSError *)error {
if (filePath.length > 0 && error == nil) {
if (self.delegate && [self.delegate respondsToSelector:@selector(audioRecordCompletion:)]) {
[self.delegate audioRecordCompletion:filePath];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_audioRecordCompletion:)]) {
[self.delegate mew_audioRecordCompletion:filePath];
}
}
NSLog(@"录制音频完成后的回调 %@", filePath);
@@ -220,18 +220,18 @@
* @param currentTime
*/
- (void)recordAudioProgress:(NSTimeInterval)currentTime {
[self.audioRecordView updateAudioRecordProgress:currentTime];
[self.audioRecordView mew_updateAudioRecordProgress:currentTime];
}
/**
*
*/
- (void)recordAudioInterruptionBegin {
[self.audioRecordView cancelAudioRecord];
[self.audioRecordView mew_cancelAudioRecord];
}
#pragma mark - Event Response
- (void)keyboardWillShow:(NSNotification *)notification {
- (void)mew_keyboardWillShow:(NSNotification *)notification {
if (self.collectionView.hidden == NO) {
self.collectionView.hidden = YES;
self.moreButton.selected = NO;
@@ -245,24 +245,24 @@
NSInteger animationCurveOption = (animationCurve << 16);
double animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:animationDuration delay:0.0 options:animationCurveOption animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
}
} completion:^(BOOL finished) {
}];
}
- (void)keyboardWillHidden:(NSNotification*)notification {
- (void)mew_keyboardWillHidden:(NSNotification*)notification {
CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0);
[UIView animateWithDuration:0.25 animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
}
}];
}
- (void)changeButtonAction:(UIButton *)sender {
- (void)mew_changeButtonAction:(UIButton *)sender {
sender.selected = !sender.selected;
self.inputBackView.hidden = sender.selected;
self.audioButton.hidden = !sender.selected;
@@ -275,20 +275,20 @@
}
}
- (void)moreButtonAction:(UIButton *)sender {
- (void)mew_moreButtonAction:(UIButton *)sender {
sender.selected = !sender.selected;
self.collectionView.hidden = !sender.selected;
[self.inputView resignFirstResponder];
CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0);
[UIView animateWithDuration:0.25 animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame];
if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
}
}];
}
- (void)audioTouchDownAction {
- (void)mew_audioTouchDownAction {
self.audioButton.selected = YES;
///
if (!self.audioRecordView.superview) {
@@ -296,34 +296,34 @@
[self.audioRecordView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(self.audioRecordView.superview);
}];
[self.audioRecordView configAudioRecord:@"mew_message_tool_audio_record_first" title:@"手指上滑,取消发送" isAnimation:YES];
[self.audioRecordView beginAudioRecord];
[self.audioRecordView mew_configAudioRecord:@"mew_message_tool_audio_record_first" title:@"手指上滑,取消发送" isAnimation:YES];
[self.audioRecordView mew_beginAudioRecord];
}
}
- (void)audioTouchUpOutsideAction {
- (void)mew_audioTouchUpOutsideAction {
self.audioButton.selected = NO;
///
[self.audioRecordView cancelAudioRecord];
[self.audioRecordView mew_cancelAudioRecord];
[self.audioRecordView removeFromSuperview];
}
- (void)audioTouchUpInsideAction {
- (void)mew_audioTouchUpInsideAction {
self.audioButton.selected = NO;
///
[self.audioRecordView finishAudioRecord];
[self.audioRecordView mew_finishAudioRecord];
[self.audioRecordView removeFromSuperview];
}
- (void)audioTouchDragEnterAction {
- (void)mew_audioTouchDragEnterAction {
///
[self.audioRecordView configAudioRecord:@"mew_message_tool_audio_record_first" title:@"手指上滑,取消发送" isAnimation:YES];
[self.audioRecordView mew_configAudioRecord:@"mew_message_tool_audio_record_first" title:@"手指上滑,取消发送" isAnimation:YES];
}
- (void)audioTouchDragExitAction {
- (void)mew_audioTouchDragExitAction {
///
[self.audioRecordView configAudioRecord:@"mew_message_tool_audio_record_cancel" title:@"松开手指 取消发送" isAnimation:NO];
[self.audioRecordView mew_configAudioRecord:@"mew_message_tool_audio_record_cancel" title:@"松开手指 取消发送" isAnimation:NO];
}
#pragma mark - Getters And Setters
@@ -366,7 +366,7 @@
_changeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_changeButton setImage:[UIImage imageNamed:@"mew_message_session_tool_text"] forState:UIControlStateNormal];
[_changeButton setImage:[UIImage imageNamed:@"mew_message_session_tool_audio"] forState:UIControlStateSelected];
[_changeButton addTarget:self action:@selector(changeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_changeButton addTarget:self action:@selector(mew_changeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _changeButton;
}
@@ -428,7 +428,7 @@
_moreButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_moreButton setImage:[UIImage imageNamed:@"mew_message_session_tool_more_normal"] forState:UIControlStateNormal];
[_moreButton setImage:[UIImage imageNamed:@"message_session_tool_more_select"] forState:UIControlStateSelected];
[_moreButton addTarget:self action:@selector(moreButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_moreButton addTarget:self action:@selector(mew_moreButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _moreButton;
}
@@ -445,7 +445,7 @@
_collectionView.delegate = self;
_collectionView.backgroundColor = [UIColor clearColor];
_collectionView.hidden = YES;
[_collectionView registerClass:[CHMessageToolMenuCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([CHMessageToolMenuCollectionViewCell class])];
[_collectionView registerClass:[MewMessageToolMenuCollectionCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMessageToolMenuCollectionCell class])];
}
return _collectionView;
}
@@ -458,11 +458,11 @@
return _placeView;
}
- (NSArray<MessageMenuModel *> *)menuList {
- (NSArray<MewMessageMenuModel *> *)menuList {
if (!_menuList) {
MessageMenuModel * phototModel = [[MessageMenuModel alloc] init];
MewMessageMenuModel * phototModel = [[MewMessageMenuModel alloc] init];
phototModel.imageName = @"mew_message_session_menu_photo";
phototModel.type= MessageMenuType_Photo;
phototModel.type= Mew_MessageMenuType_Photo;
@@ -471,9 +471,9 @@
return _menuList;
}
- (CHSessionAudioRecordView *)audioRecordView {
- (MewSessionAudioRecordView *)audioRecordView {
if (!_audioRecordView) {
_audioRecordView = [[CHSessionAudioRecordView alloc] init];
_audioRecordView = [[MewSessionAudioRecordView alloc] init];
}
return _audioRecordView;
}

View File

@@ -1,5 +1,5 @@
//
// SessionViewController.h
// MewSessionViewController.h
// mew-ios
//
// Created by 触海 on 2023/11/16.
@@ -10,7 +10,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface SessionViewController : MvpViewController
@interface MewSessionViewController : MvpViewController
- (instancetype)initWithSession:(NIMSession *)session;
@end

View File

@@ -1,14 +1,14 @@
//
// SessionViewController.m
// MewSessionViewController.m
// mew-ios
//
// Created by on 2023/11/16.
//
#import "SessionViewController.h"
#import "MewSessionViewController.h"
/// View
#import "CHSessionNavView.h"
#import "CHSessionMessageCell.h"
#import "MewSessionNavView.h"
#import "MewSessionMessageCell.h"
/// Tool
#import "YMMacro.h"
#import "MEWThemeColor.h"
@@ -22,44 +22,41 @@
#import <MJRefresh/MJRefresh.h>
#import <IQKeyboardManager/IQKeyboardManager.h>
/// Presenter
#import "CHMessagePresenter.h"
#import "CHMessageProtocol.h"
#import "MewMessagePresenter.h"
#import "MewMessageProtocol.h"
#import <TZImagePickerController/TZImagePickerController.h>
/// Model
#import "ChatLimitModel.h"
#import "MewChatLimitModel.h"
#import "UserInfoModel.h"
#import "CHSessionInfoViewController.h"
#import "CHSessionToolbarView.h"
#import "NIMMessageMaker.h"
#import "MessageMenuModel.h"
#import "MewSessionInfoViewController.h"
#import "MewSessionToolbarView.h"
#import "MewNIMMessageMaker.h"
#import "MewMessageMenuModel.h"
@interface SessionViewController ()<CHSessionToolbarViewDelegate,CHSessionNavViewDelegate,CHSessionMessageCellDelegate,CHMessageProtocol,
@interface MewSessionViewController ()<MewSessionToolbarViewDelegate,MewSessionNavViewDelegate,MewSessionMessageCellDelegate,MewMessageProtocol,
UITableViewDelegate, UITableViewDataSource,
NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMMediaManagerDelegate,TZImagePickerControllerDelegate>
///
@property (nonatomic,strong) CHSessionNavView *sessionNavView;
@property (nonatomic,strong) MewSessionNavView *sessionNavView;
///
@property (nonatomic, strong) UITableView * sessionTableView;
///
@property (nonatomic,strong) CHSessionToolbarView *toolbarView;
//
@property (nonatomic,strong) MewSessionToolbarView *toolbarView;
@property (nonatomic, strong) NIMSession * session;
///
@property (nonatomic, strong) NSMutableArray<NIMMessage *> * messages;
/////
//@property (nonatomic,strong) NIMMessage *lastMessage;
//
@property (nonatomic, strong) UserInfoModel *userInfo;
@end
@implementation SessionViewController
@implementation MewSessionViewController
- (BOOL)isHiddenNavBar {
return YES;
}
- (CHMessagePresenter *)createPresenter {
return [[CHMessagePresenter alloc] init];
- (MewMessagePresenter *)createPresenter {
return [[MewMessagePresenter alloc] init];
}
#pragma mark - Life Cycle
- (void)viewDidLoad {
@@ -69,14 +66,14 @@
self.view.backgroundColor = [UIColor whiteColor];
[[NIMSDK sharedSDK].chatManager addDelegate:self];
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
[self initHeaderAndFooterRefresh];
[self mew_initHeaderAndFooterRefresh];
[IQKeyboardManager sharedManager].enable = NO;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.presenter getFansLike:self.session.sessionId];
[self.presenter mew_getFansLike:self.session.sessionId];
self.sessionNavView.userId = self.session.sessionId;
}
@@ -98,26 +95,26 @@
}
#pragma mark - CHSessionNavViewDelegate ()
- (void)sessionNavView:(CHSessionNavView *)view didClickBack:(UIButton *)sender {
#pragma mark - MewSessionNavViewDelegate ()
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickBack:(UIButton *)sender {
[self.navigationController popViewControllerAnimated:NO];
}
//
- (void)CHSessionNavView:(CHSessionNavView *)view didClickLike:(UIButton *)sender {
[self.presenter attentionUser:self.session.sessionId];
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickLike:(UIButton *)sender {
[self.presenter mew_attentionMessageUser:self.session.sessionId];
}
//
- (void)sessionNavView:(CHSessionNavView *)view didClickReport:(UIButton *)sender {
CHSessionInfoViewController * reportVC = [[CHSessionInfoViewController alloc] init];
- (void)mew_sessionNavView:(MewSessionNavView *)view didClickReport:(UIButton *)sender {
MewSessionInfoViewController * reportVC = [[MewSessionInfoViewController alloc] init];
reportVC.userId = self.session.sessionId;
[self.navigationController pushViewController:reportVC animated:YES];
}
#pragma mark - CHSessionMessageCellDelegate(cell)
#pragma mark - MewSessionMessageCellDelegate(cell)
// cell
- (void)didTapAvatarWithUid:(NSString *)uid {
- (void)mew_didTapAvatarWithUid:(NSString *)uid {
if ([[ClientConfig shareConfig].configInfo.officialMsgUids containsObject:self.session.sessionId]
|| [[ClientConfig shareConfig].configInfo.officialAccountUids containsObject:self.session.sessionId]) {
//
@@ -130,7 +127,7 @@
}
// cell
- (void)didFailRetryMessage:(NIMMessage *)message {
- (void)mew_didFailRetryMessage:(NIMMessage *)message {
if (message.isReceivedMsg) {
[[NIMSDK sharedSDK].chatManager fetchMessageAttachment:message error:nil];
} else {
@@ -139,9 +136,9 @@
}
#pragma mark - CHMessageProtocol
#pragma mark - MewMessageProtocol
///
- (void)onGetLimitChat:(ChatLimitModel *)chatLimit {
- (void)mew_onGetLimitChat:(MewChatLimitModel *)chatLimit {
BOOL chatDisabled;
if (chatLimit.model == 2) {
chatDisabled = !chatLimit.chat;
@@ -153,7 +150,7 @@
}
//
- (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo {
- (void)mew_onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo {
_userInfo = userInfo;
if (userInfo.nick.length > 0) {
@@ -163,12 +160,12 @@
}
//
- (void)onGetSessionUserInfoFail {
- (void)mew_onGetSessionUserInfoFail {
}
//
- (void)getFansLikeSuccess:(BOOL)isLike {
- (void)mew_getFansLikeSuccess:(BOOL)isLike {
if ([[ClientConfig shareConfig].configInfo.officialMsgUids containsObject:self.session.sessionId]
|| [[ClientConfig shareConfig].configInfo.officialAccountUids containsObject:self.session.sessionId]) {
//
@@ -179,7 +176,7 @@
}
//
- (void)attentionUserSuccess:(NSString *)uid {
- (void)mew_attentionUserSuccess:(NSString *)uid {
if ([uid isEqualToString:self.session.sessionId]) {
self.sessionNavView.isLike = YES;
}
@@ -213,7 +210,7 @@
return;
}
if (![self isExistMessage:message]) {
if (![self mew_isExistMessage:message]) {
[self.messages addObject:message];
}
@@ -263,44 +260,44 @@
- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
NIMMessage * message = [self.messages mewSafeObjectAtIndex:indexPath.row];
NSString * identifier = [CHSessionMessageCell cellContent:message];
NSString * identifier = [MewSessionMessageCell mew_cellMessageContent:message];
///cell
CHSessionMessageCell * cell = [tableView dequeueReusableCellWithIdentifier:identifier];
MewSessionMessageCell * cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
/// identifier
[tableView registerClass:[CHSessionMessageCell class] forCellReuseIdentifier:identifier];
[tableView registerClass:[MewSessionMessageCell class] forCellReuseIdentifier:identifier];
/// cell
cell = [tableView dequeueReusableCellWithIdentifier:identifier];
}
cell.delegate = self;
cell.selectionStyle = 0;
[cell renderWithMessage:[self.messages mewSafeObjectAtIndex:indexPath.row]];
[cell mew_renderWithMessage:[self.messages mewSafeObjectAtIndex:indexPath.row]];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NIMMessage *msg = [self.messages mewSafeObjectAtIndex:indexPath.row];
return [CHSessionMessageCell measureHeight:msg];
return [MewSessionMessageCell mew_sessionMeasureHeight:msg];
}
#pragma mark - Private Method ()
///
- (void)initHeaderAndFooterRefresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
- (void)mew_initHeaderAndFooterRefresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(mew_headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [MEWThemeColor mewSecondTextColor];
header.lastUpdatedTimeLabel.textColor = [MEWThemeColor mewSecondTextColor];
self.sessionTableView.mj_header = header;
[self headerRefresh];
[self mew_headerRefresh];
[self initData];
}
///
- (void)headerRefresh {
- (void)mew_headerRefresh {
if (self.messages.count > 0) {
[[[NIMSDK sharedSDK] conversationManager] messagesInSession:self.session message:self.messages.firstObject limit:20 completion:^(NSError * _Nullable error, NSArray<NIMMessage *> * _Nullable messages) {
[self.sessionTableView.mj_header endRefreshing];
@@ -332,14 +329,14 @@
self.sessionNavView.title = @"加载中...";
}
[[NIMSDK sharedSDK].conversationManager markAllMessagesReadInSession:self.session];
[self.presenter getChatLimitReceiverUid:self.session.sessionId];
[self.presenter getUserInfo:self.session.sessionId];
[self.presenter mew_getChatLimitReceiverUid:self.session.sessionId];
[self.presenter mew_getMessageUserInfo:self.session.sessionId];
self.sessionNavView.userId = self.session.sessionId;
//
}
//
- (BOOL)isExistMessage:(NIMMessage *)message {
- (BOOL)mew_isExistMessage:(NIMMessage *)message {
BOOL isExist = NO;
NIMMessage *model;
for (NIMMessage *item in self.messages.reverseObjectEnumerator.allObjects) {
@@ -383,10 +380,10 @@
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[self.toolbarView foldToolMenuView];
[self.toolbarView mew_foldToolMenuView];
}
#pragma mark - MessageToolbarViewDelegate
- (void)keyboardWillChangeFrame:(CGRect)rect {
- (void)mew_keyboardWillChangeFrame:(CGRect)rect {
CGFloat heightFromBottom = rect.size.height;
heightFromBottom = MAX(0.0, heightFromBottom);
[self.toolbarView mas_updateConstraints:^(MASConstraintMaker *make) {
@@ -395,12 +392,12 @@
[self.sessionTableView nim_scrollToBottom:NO];
}
- (void)sendTextMessage:(NSString *)text {
NIMMessage *message = [NIMMessageMaker msgWithText:text];
- (void)mew_sendTextMessage:(NSString *)text {
NIMMessage *message = [MewNIMMessageMaker Mew_MsgWithText:text];
[[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil];
}
- (void)didSelectMenuItem:(MessageMenuModel *)info {
- (void)mew_didSelectMenuItem:(MewMessageMenuModel *)info {
UIWindow * currentWindow;
for (int i = 0; i < [UIApplication sharedApplication].windows.count; i++) {
@@ -415,7 +412,7 @@
currentWindow.windowLevel = -1;
}
switch (info.type) {
case MessageMenuType_Photo:
case Mew_MessageMenuType_Photo:
{
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self];
imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen;
@@ -433,8 +430,8 @@
}
}
- (void)audioRecordCompletion:(NSString *)recordPath {
NIMMessage *message = [NIMMessageMaker msgWithAudio:recordPath];
- (void)mew_audioRecordCompletion:(NSString *)recordPath {
NIMMessage *message = [MewNIMMessageMaker Mew_MsgWithAudio:recordPath];
[[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil];
}
@@ -443,16 +440,16 @@
[photos enumerateObjectsUsingBlock:^(UIImage * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj) {
//
NIMMessage * message = [NIMMessageMaker msgWithImage:obj];
NIMMessage * message = [MewNIMMessageMaker Mew_MsgWithImage:obj];
//
[[NIMSDK sharedSDK].chatManager sendMessage:message toSession:self.session error:nil];
}
}];
}
#pragma mark - Get
- (CHSessionNavView *)sessionNavView {
- (MewSessionNavView *)sessionNavView {
if (!_sessionNavView) {
_sessionNavView = [[CHSessionNavView alloc] init];
_sessionNavView = [[MewSessionNavView alloc] init];
_sessionNavView.delegate = self;
}
return _sessionNavView;
@@ -466,7 +463,7 @@
_sessionTableView.backgroundColor = UIColorMewFromRGB(0xF8F8FB);
_sessionTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_sessionTableView.showsVerticalScrollIndicator = NO;
[_sessionTableView registerClass:[CHSessionMessageCell class] forCellReuseIdentifier:NSStringFromClass([CHSessionMessageCell class])];
[_sessionTableView registerClass:[MewSessionMessageCell class] forCellReuseIdentifier:NSStringFromClass([MewSessionMessageCell class])];
}
return _sessionTableView;
}
@@ -479,9 +476,9 @@
}
return _messages;
}
- (CHSessionToolbarView *)toolbarView {
- (MewSessionToolbarView *)toolbarView {
if (!_toolbarView) {
_toolbarView = [[CHSessionToolbarView alloc] init];
_toolbarView = [[MewSessionToolbarView alloc] init];
_toolbarView.delegate = self;
_toolbarView.sendDisabled = NO;
}

View File

@@ -1,34 +0,0 @@
//
// NIMMessageMaker.h
// xplan-ios
//
// Created by zu on 2021/11/28.
//
#import <Foundation/Foundation.h>
#import <NIMSDK/NIMSDK.h>
@interface NIMMessageMaker : NSObject
+ (NIMMessage*)msgWithText:(NSString *)text;
+ (NIMMessage *)msgWithAudio:(NSString *)filePath;
+ (NIMMessage *)msgWithImage:(UIImage *)image;
+ (NIMMessage *)msgWithImagePath:(NSString *)path;
+ (NIMMessage *)msgWithImageData:(NSData *)data extension:(NSString *)extension;
+ (NIMMessage *)msgWithVideo:(NSString *)filePath;
@end
@interface NIMCommentMaker : NSObject
+ (NIMQuickComment *)commentWithType:(int64_t)type
content:(NSString *)content
ext:(NSString *)ext;
@end

View File

@@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomUid 房间的ID
/// @param msg 喊话的
/// @param uid 用户的id
+ (void)requestSendGift:(HttpRequestHelperCompletion)complection
+ (void)Mew_RequestSendGift:(HttpRequestHelperCompletion)complection
targetUids:(NSString *)targetUids
giftNum:(NSString *)giftNum
sendType:(NSString *)sendType

View File

@@ -19,7 +19,7 @@
/// @param roomUid ID
/// @param msg
/// @param uid id
+ (void)requestSendGift:(HttpRequestHelperCompletion)complection
+ (void)Mew_RequestSendGift:(HttpRequestHelperCompletion)complection
targetUids:(NSString *)targetUids
giftNum:(NSString *)giftNum
sendType:(NSString *)sendType

View File

@@ -1,5 +1,5 @@
//
// GiftInfoModel.h
// MewGiftInfoModel.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/21.
@@ -15,13 +15,8 @@ typedef NS_ENUM(NSUInteger, GiftSendType) {
GiftSendType_OnMic = 3, //房间内给坑位上的人送礼物
};
///礼物播放类型0 无, 1 MP4、VAP播放)
typedef NS_ENUM(NSUInteger, GiftOtherViewType) {
GiftOtherViewTypeNormal = 0,
GiftOtherViewTypeMp4 = 1,
};
@interface GiftInfoModel : NSObject
@interface MewGiftInfoModel : NSObject
///礼物id
@property (nonatomic, assign)NSInteger giftId;
///礼物名字
@@ -30,17 +25,6 @@ typedef NS_ENUM(NSUInteger, GiftOtherViewType) {
@property (nonatomic, assign)double goldPrice;
///礼物url
@property (nonatomic, copy)NSString *giftUrl;
//@property (nonatomic, assign) GiftType giftType;//礼物类型
///礼物文件类型 0 其他, 1 mp4
@property (nonatomic, assign) GiftOtherViewType otherViewType;
///mp4类型特效url
@property (nonatomic, copy) NSString *viewUrl;
///是否有vgg特效
@property (assign, nonatomic) BOOL hasVggPic;
///动效url
@property (copy, nonatomic) NSString *vggUrl;
@end

View File

@@ -0,0 +1,12 @@
//
// MewGiftInfoModel.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "MewGiftInfoModel.h"
@implementation MewGiftInfoModel
@end

View File

@@ -1,16 +1,16 @@
//
// GiftReceiveInfoModel.h
// MewGiftReceiveInfoModel.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/21.
//
#import "NSObject+MEWExtension.h"
#import "GiftInfoModel.h"
#import "MewGiftInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface GiftReceiveInfoModel : NSObject
@interface MewGiftReceiveInfoModel : NSObject
///目标的uid
@property(nonatomic,copy)NSString * targetUid;
///目标的头像
@@ -19,9 +19,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString *targetNick;
@property (nonatomic,strong) NSArray<NSString *> *targetUids;
///礼物信息
@property (nonatomic,strong) GiftInfoModel *gift;
@property (nonatomic,strong) MewGiftInfoModel *gift;
///礼物信息
@property (nonatomic,strong) GiftInfoModel *giftInfo;
@property (nonatomic,strong) MewGiftInfoModel *giftInfo;
///送礼物的人uid
@property(nonatomic, assign)NSString * uid;
///礼物的id
@@ -34,10 +34,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic) NSInteger giftNum;
///礼物名字
@property (nonatomic,strong)NSString *giftName;
///动效url
@property (copy,nonatomic) NSString *vggUrl;
///vap动效url
@property (nonatomic, copy) NSString *viewUrl;
// 这里先写死string

View File

@@ -0,0 +1,12 @@
//
// MewGiftReceiveInfoModel.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "MewGiftReceiveInfoModel.h"
@implementation MewGiftReceiveInfoModel
@end

View File

@@ -1,23 +1,22 @@
//
// YMGiftStorage.h
// MewGiftStorage.h
// yinmeng-ios
//
// Created by 触海 on 2023/11/21.
//
#import <Foundation/Foundation.h>
@class GiftInfoModel;
@class MewGiftInfoModel;
NS_ASSUME_NONNULL_BEGIN
@interface YMGiftStorage : NSObject
@interface MewGiftStorage : NSObject
+ (instancetype)shareStorage;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)copy NS_UNAVAILABLE;
- (instancetype)mutableCopy NS_UNAVAILABLE;
- (NSArray<GiftInfoModel *> *)getGiftDatasource:(NSString *)roomuid;
- (void)saveGiftDatasource:(NSArray<GiftInfoModel *> *)giftArray roomUid:(NSString *)roomUid;
- (void)mew_saveGiftDatasource:(NSArray<MewGiftInfoModel *> *)giftArray roomUid:(NSString *)roomUid;
/**
uid
@@ -25,10 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
*/
/// 获取当前房间的数据中的礼物
/// @param giftId 礼物的id
- (GiftInfoModel *)findGiftInfo:(NSString *)giftId;
- (MewGiftInfoModel *)mew_findGiftInfo:(NSString *)giftId;
///礼物数据写入本地
- (void)writeGiftToDirectory:(NSArray *)array;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,93 @@
//
// MewGiftStorage.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "MewGiftStorage.h"
#import "MewGiftInfoModel.h"
#import "NSObject+MEWExtension.h"
#import "NSArray+MewSafe.h"
@interface MewGiftStorage()
///key:id value:
@property (nonatomic, strong) NSCache<NSString *, NSArray<MewGiftInfoModel *> *> *roomGiftCache;
///uid
@property (nonatomic,copy) NSString *currentRoomUid;
///
@property (nonatomic,assign) BOOL isWriteToFile;
@end
@implementation MewGiftStorage
+ (instancetype)shareStorage {
static dispatch_once_t onceToken;
static MewGiftStorage * storage;
dispatch_once(&onceToken, ^{
storage = [[MewGiftStorage alloc] init];
});
return storage;
}
- (void)mew_saveGiftDatasource:(NSArray<MewGiftInfoModel *> *)giftArray roomUid:(NSString *)roomUid {
if (giftArray.count > 0 && roomUid.length > 0) {
[self.roomGiftCache setObject:giftArray forKey:roomUid];
}
}
///
/// @param giftId id
- (MewGiftInfoModel *)mew_findGiftInfo:(NSString *)giftId {
MewGiftInfoModel * giftInfo = [self mew_getGiftInfoFromDirectory:giftId];
if (giftInfo) {
return giftInfo;
}
if (self.currentRoomUid) {
NSArray<MewGiftInfoModel *> *giftLists = [self.roomGiftCache objectForKey:self.currentRoomUid];
if (giftLists.count > 0) {
__block MewGiftInfoModel * giftInfo;
[giftLists enumerateObjectsUsingBlock:^(MewGiftInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj.giftId == giftId.integerValue) {
giftInfo = obj;
*stop = YES;
}
}];
return giftInfo;
}
}
return nil;
}
- (NSCache<NSString *,NSArray<MewGiftInfoModel *> *> *)roomGiftCache {
if (!_roomGiftCache) {
_roomGiftCache = [[NSCache alloc] init];
//
_roomGiftCache.countLimit = 10;
}
return _roomGiftCache;
}
- (MewGiftInfoModel *)mew_getGiftInfoFromDirectory:(NSString *)giftId {
//
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *pathFile = [path stringByAppendingPathComponent:@"Gift"];
//
BOOL isDir =NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL existed = [fileManager fileExistsAtPath:pathFile isDirectory:&isDir];
MewGiftInfoModel * giftInfo;
if (existed) {
NSString *aPath = [pathFile stringByAppendingPathComponent:giftId];
NSDictionary * dic = [NSKeyedUnarchiver unarchiveObjectWithFile:aPath];
giftInfo = [MewGiftInfoModel mewModelWithDictionary:dic];
}
return giftInfo;
}
@end

View File

@@ -1,12 +0,0 @@
//
// GiftInfoModel.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "GiftInfoModel.h"
@implementation GiftInfoModel
@end

View File

@@ -1,12 +0,0 @@
//
// GiftReceiveInfoModel.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "GiftReceiveInfoModel.h"
@implementation GiftReceiveInfoModel
@end

View File

@@ -1,125 +0,0 @@
//
// YMGiftStorage.m
// yinmeng-ios
//
// Created by on 2023/11/21.
//
#import "YMGiftStorage.h"
#import "GiftInfoModel.h"
#import "NSObject+MEWExtension.h"
#import "NSArray+MewSafe.h"
@interface YMGiftStorage()
///key:id value:
@property (nonatomic, strong) NSCache<NSString *, NSArray<GiftInfoModel *> *> *roomGiftCache;
///uid
@property (nonatomic,copy) NSString *currentRoomUid;
///
@property (nonatomic,assign) BOOL isWriteToFile;
@end
@implementation YMGiftStorage
+ (instancetype)shareStorage {
static dispatch_once_t onceToken;
static YMGiftStorage * storage;
dispatch_once(&onceToken, ^{
storage = [[YMGiftStorage alloc] init];
});
return storage;
}
- (void)saveGiftDatasource:(NSArray<GiftInfoModel *> *)giftArray roomUid:(NSString *)roomUid {
if (giftArray.count > 0 && roomUid.length > 0) {
[self.roomGiftCache setObject:giftArray forKey:roomUid];
}
}
- (NSArray<GiftInfoModel *> *)getGiftDatasource:(NSString *)roomuid {
if (roomuid.length > 0) {
self.currentRoomUid = roomuid;
NSArray *giftLists = [self.roomGiftCache objectForKey:roomuid];
if (giftLists.count >= 0) {
return giftLists;
}
}
return nil;
}
///
/// @param giftId id
- (GiftInfoModel *)findGiftInfo:(NSString *)giftId {
GiftInfoModel * giftInfo = [self getGiftInfoFromDirectory:giftId];
if (giftInfo) {
return giftInfo;
}
if (self.currentRoomUid) {
NSArray<GiftInfoModel *> *giftLists = [self.roomGiftCache objectForKey:self.currentRoomUid];
if (giftLists.count > 0) {
__block GiftInfoModel * giftInfo;
[giftLists enumerateObjectsUsingBlock:^(GiftInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj.giftId == giftId.integerValue) {
giftInfo = obj;
*stop = YES;
}
}];
return giftInfo;
}
}
return nil;
}
- (NSCache<NSString *,NSArray<GiftInfoModel *> *> *)roomGiftCache {
if (!_roomGiftCache) {
_roomGiftCache = [[NSCache alloc] init];
//
_roomGiftCache.countLimit = 10;
}
return _roomGiftCache;
}
- (void)writeGiftToDirectory:(NSArray *)array {
///IO
if (self.isWriteToFile) {
return;
}
NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString * giftDirPath = [path stringByAppendingPathComponent:@"Gift"];
//
BOOL isDir =NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL existed = [fileManager fileExistsAtPath:giftDirPath isDirectory:&isDir];
if ( !(isDir ==YES && existed == YES) ){
//
[fileManager createDirectoryAtPath:giftDirPath withIntermediateDirectories:YES attributes:nil error:nil];
}
for (int i = 0; i< array.count; i++) {
GiftInfoModel * giftInfoModel = [array mewSafeObjectAtIndex:i];
NSString *giftPath = [giftDirPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%ld", giftInfoModel.giftId]];
[NSKeyedArchiver archiveRootObject:giftInfoModel.mewModel2dictionary toFile:giftPath];
}
self.isWriteToFile = YES;
}
- (GiftInfoModel *)getGiftInfoFromDirectory:(NSString *)giftId {
//
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *pathFile = [path stringByAppendingPathComponent:@"Gift"];
//
BOOL isDir =NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL existed = [fileManager fileExistsAtPath:pathFile isDirectory:&isDir];
GiftInfoModel * giftInfo;
if (existed) {
NSString *aPath = [pathFile stringByAppendingPathComponent:giftId];
NSDictionary * dic = [NSKeyedUnarchiver unarchiveObjectWithFile:aPath];
giftInfo = [GiftInfoModel mewModelWithDictionary:dic];
}
return giftInfo;
}
@end

View File

@@ -6,7 +6,7 @@
//
#import "Api.h"
#import "RoomInfoModel.h"
#import "MewRoomInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param complection 完成
/// @param uid 用户的uid
/// @param intoUid 自己的Uid 判断当前进房用户是否是平台超管 判断进房用户是否开启青少年
+ (void)getRoomInformation:(HttpRequestHelperCompletion)complection
+ (void)Mew_GetRoomInformation:(HttpRequestHelperCompletion)complection
uid:(NSString *)uid
intoUid:(NSString *)intoUid;
@@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid 用户的uid
/// @param ticket 用户的ticket
/// @param mgId 小游戏的id
+ (void)openRoom:(HttpRequestHelperCompletion)complection
+ (void)Mew_OpenRoom:(HttpRequestHelperCompletion)complection
title:(NSString *)title
type:(RoomType)type
roomPwd:(NSString *)roomPwd
@@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomId 房间的id
/// @param position 坑位的序号
/// @param ticket ticket
+ (void)roomMicUpMic:(HttpRequestHelperCompletion)complection
+ (void)Mew_RoomMicUpMic:(HttpRequestHelperCompletion)complection
micUid:(NSString *)micUid
roomId:(NSString *)roomId
position:(NSString *)position
@@ -59,7 +59,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomId 房间的id
/// @param position 坑位的序号
/// @param ticket ticket
+ (void)roomMicDownMic:(HttpRequestHelperCompletion)complection
+ (void)Mew_RoomMicDownMic:(HttpRequestHelperCompletion)complection
micUid:(NSString *)micUid
roomId:(NSString *)roomId
position:(NSString *)position
@@ -71,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid uid
/// @param type 1 收藏 2 取消收藏 3批量取消收藏
/// @param roomUids 批量删除的房间uid,用逗号隔开
+ (void)collectRoom:(HttpRequestHelperCompletion)completion
+ (void)Mew_CollectRoom:(HttpRequestHelperCompletion)completion
roomUid:(NSString *)roomUid
uid:(NSString *)uid
type:(NSString *)type
@@ -82,14 +82,14 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid 用户uid
/// @param roomUid 房间uid
/// @param ticket ticket
+ (void)requestReportUserInterRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket;
+ (void)Mew_RequestReportUserInterRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket;
/// 上报用户退房
/// @param completion 完成
/// @param uid 用户uid
/// @param roomUid 房间uid
/// @param ticket ticket
+ (void)requestReportUserOutRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket;
+ (void)Mew_RequestReportUserOutRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket;
@end

View File

@@ -13,7 +13,7 @@
/// @param complection
/// @param uid uid
/// @param intoUid Uid
+ (void)getRoomInformation:(HttpRequestHelperCompletion)complection uid:(NSString *)uid intoUid:(NSString *)intoUid {
+ (void)Mew_GetRoomInformation:(HttpRequestHelperCompletion)complection uid:(NSString *)uid intoUid:(NSString *)intoUid {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"gs8/IEqGWXCD7Cn4Hs11dw=="];///room/get
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, intoUid, nil];
}
@@ -28,7 +28,7 @@
/// @param uid uid
/// @param ticket ticket
/// @param mgId id
+ (void)openRoom:(HttpRequestHelperCompletion)complection
+ (void)Mew_OpenRoom:(HttpRequestHelperCompletion)complection
title:(NSString *)title
type:(RoomType)type
roomPwd:(NSString *)roomPwd
@@ -48,7 +48,7 @@
/// @param roomId id
/// @param position
/// @param ticket ticket
+ (void)roomMicUpMic:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket {
+ (void)Mew_RoomMicUpMic:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"8gpgcXMk36xfvm6d+muZng=="];///room/mic/upmic
[self makeRequest:getUrl method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, micUid, roomId, position, ticket, nil];
}
@@ -59,7 +59,7 @@
/// @param roomId id
/// @param position
/// @param ticket ticket
+ (void)roomMicDownMic:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket {
+ (void)Mew_RoomMicDownMic:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"yLlyaDpUfo8seQvUf2xVE1pDQw0kPWhe5imJar+ZYGs="];//room/mic/downmic
[Api makeRequest:getUrl method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, micUid, roomId, position, ticket, nil];
}
@@ -70,7 +70,7 @@
/// @param uid uid
/// @param type 1 2 3
/// @param roomUids uid,
+ (void)collectRoom:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid type:(NSString *)type roomUids:(NSString *)roomUids {
+ (void)Mew_CollectRoom:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid type:(NSString *)type roomUids:(NSString *)roomUids {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"GQiHXUlHz3kGtxBxaDpYOg=="];///fans/fansRoom
[Api makeRequest:getUrl method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, uid, type, roomUids, nil];
}
@@ -81,7 +81,7 @@
/// @param uid uid
/// @param roomUid uid
/// @param ticket ticket
+ (void)requestReportUserInterRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket {
+ (void)Mew_RequestReportUserInterRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"+RPS7HavWT0Wo413/I2TLA=="];///userroom/inV2
[self makeRequest:getUrl method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, ticket, nil];
}
@@ -92,7 +92,7 @@
/// @param uid uid
/// @param roomUid uid
/// @param ticket ticket
+ (void)requestReportUserOutRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket {
+ (void)Mew_RequestReportUserOutRoom:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket {
NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"eGme6ANFUqQGdpX/DtfRrg=="];///userroom/outV2
[self makeRequest:getUrl method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, ticket, nil];
}

View File

@@ -1,5 +1,5 @@
//
// RoomInfoModel.h
// MewRoomInfoModel.h
// mew-ios
//
// Created by 触海 on 2023/11/7.
@@ -14,7 +14,7 @@ typedef NS_ENUM(NSInteger, RoomType) {
RoomType_MiniGame = 7//小游戏房
};
@interface RoomInfoModel : NSObject
@interface MewRoomInfoModel : NSObject
@property (nonatomic , copy) NSString *avatar; //房间头像
@property (nonatomic , assign) NSInteger onlineNum; //在线人数

View File

@@ -0,0 +1,12 @@
//
// MewRoomInfoModel.m
// mew-ios
//
// Created by on 2023/11/7.
//
#import "MewRoomInfoModel.h"
@implementation MewRoomInfoModel
@end

View File

@@ -1,12 +0,0 @@
//
// RoomInfoModel.m
// mew-ios
//
// Created by on 2023/11/7.
//
#import "RoomInfoModel.h"
@implementation RoomInfoModel
@end

View File

@@ -1,33 +1,33 @@
//
// YMRoomPresenter.h
// MewRoomPresenter.h
// mew-ios
//
// Created by 触海 on 2023/11/7.
//
#import "BaseMvpPresenter.h"
#import "RoomInfoModel.h"
#import "MewRoomInfoModel.h"
@class UserInfoModel;
NS_ASSUME_NONNULL_BEGIN
@interface YMRoomPresenter : BaseMvpPresenter
@interface MewRoomPresenter : BaseMvpPresenter
/// 进入房间
/// - Parameters:
/// - roomUid: 房间Uid
/// - uid: 用户Uid
- (void)initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid;
- (void)mew_initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid;
/// 云信进房
/// - Parameters:
/// - roomUid: 房间Uid
/// - userInfo: 用户Uid
- (void)enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo;
- (void)mew_enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo;
/// 云信退房
/// - Parameter roomUid: 房间Uid
- (void)exitNIMCurrentRoom:(NSString *)roomUid;
- (void)mew_exitNIMCurrentRoom:(NSString *)roomUid;
/// 开启用户自己的房间
/// @param title 房间标题
@@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomDesc 房间介绍
/// @param backPic 房间背景
/// @param mgId 小游戏的id
- (void)openUserRoom:(NSString *)title
- (void)mew_openUserRoom:(NSString *)title
type:(RoomType)type
roomPwd:(NSString *)roomPwd
roomDesc:(NSString *)roomDesc
@@ -45,16 +45,16 @@ NS_ASSUME_NONNULL_BEGIN
/// 上报用户进房
/// @param roomUid 房间uid
- (void)reportUserInterRoom:(NSString *)roomUid;
- (void)mew_reportUserInterRoom:(NSString *)roomUid;
/// 上报用户退房
/// @param roomUid 房间uid
- (void)reportUserOutRoom:(NSString *)roomUid;
- (void)mew_reportUserOutRoom:(NSString *)roomUid;
/// Mew 送礼物
/// @param targetUids 送礼物的人
/// @param roomUid 房主的uid
- (void)sendGift:(NSString *)targetUids
- (void)mew_sendRoomGift:(NSString *)targetUids
roomUid:(NSString *)roomUid;
@end

View File

@@ -1,36 +1,36 @@
//
// YMRoomPresenter.m
// MewRoomPresenter.m
// mew-ios
//
// Created by on 2023/11/7.
//
#import "YMRoomPresenter.h"
#import "MewRoomPresenter.h"
///Api
#import "Api+Room.h"
#import "Api+Gift.h"
///Model
#import "UserInfoModel.h"
#import "RoomInfoModel.h"
#import "MewRoomInfoModel.h"
#import "AccountInfoStorage.h"
#import "YMMessageRemoteExtModel.h"
#import "GiftReceiveInfoModel.h"
#import "MewMessageRemoteExtModel.h"
#import "MewGiftReceiveInfoModel.h"
///P
#import "YMRoomProtocol.h"
#import "MewRoomProtocol.h"
///Third
#import <ReactiveObjC/ReactiveObjC.h>
#import <NIMSDK/NIMSDK.h>
@implementation YMRoomPresenter
@implementation MewRoomPresenter
#pragma mark - Public Method
- (void)initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid {
- (void)mew_initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid {
RACSubject *room = [RACSubject subject];
RACSubject *user = [RACSubject subject];
/// RAC
[[RACSignal combineLatest:@[room, user] reduce:^id(RoomInfoModel *room, UserInfoModel *user){
[[self getView] initEnterCurrentRoomSuccess:room user:user];
[[RACSignal combineLatest:@[room, user] reduce:^id(MewRoomInfoModel *room, UserInfoModel *user){
[[self getView] mew_initEnterCurrentRoomSuccess:room user:user];
return nil;
}] subscribeError:^(NSError * _Nullable error) {
[[self getView] enterCurrentRoomFail:error.code];
@@ -47,8 +47,8 @@
}] uid:uid];
///
[Api getRoomInformation:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
RoomInfoModel *roomInfo = [RoomInfoModel mewModelWithJSON:data.data];
[Api Mew_GetRoomInformation:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
MewRoomInfoModel *roomInfo = [MewRoomInfoModel mewModelWithJSON:data.data];
[room sendNext:roomInfo];
[room sendCompleted];
} fail:^(NSInteger code, NSString * _Nullable msg) {
@@ -57,10 +57,10 @@
}
///
- (void)enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo {
- (void)mew_enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo {
NIMChatroomEnterRequest *request = [[NIMChatroomEnterRequest alloc] init];
request.roomId = roomUid;
YMMessageRemoteExtModel *extModel = [[YMMessageRemoteExtModel alloc] init];
MewMessageRemoteExtModel *extModel = [[MewMessageRemoteExtModel alloc] init];
extModel.erbanNo = userInfo.erbanNo;
extModel.vipIcon = userInfo.userVipInfoVO.vipIcon;
extModel.gender = userInfo.gender;
@@ -77,7 +77,7 @@
}
/// 退
- (void)exitNIMCurrentRoom:(NSString *)roomUid {
- (void)mew_exitNIMCurrentRoom:(NSString *)roomUid {
[[NIMSDK sharedSDK].chatroomManager exitChatroom:roomUid completion:nil];
}
@@ -89,7 +89,7 @@
/// @param roomDesc
/// @param backPic
/// @param mgId id
- (void)openUserRoom:(NSString *)title
- (void)mew_openUserRoom:(NSString *)title
type:(RoomType)type
roomPwd:(NSString *)roomPwd
roomDesc:(NSString *)roomDesc
@@ -117,8 +117,8 @@
mgId = @"0";
}
[Api openRoom:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
RoomInfoModel *roomInfo = [RoomInfoModel mewModelWithJSON:data.data];
[Api Mew_OpenRoom:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
MewRoomInfoModel *roomInfo = [MewRoomInfoModel mewModelWithJSON:data.data];
[[self getView] openCurrentRoomSuccess:roomInfo];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] enterCurrentRoomFail:code];
@@ -127,11 +127,11 @@
///
/// @param roomUid uid
- (void)reportUserInterRoom:(NSString *)roomUid {
- (void)mew_reportUserInterRoom:(NSString *)roomUid {
if ([[AccountInfoStorage instance] getTicket].length < 1) {
return;
}
[Api requestReportUserInterRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[Api Mew_RequestReportUserInterRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} uid:[[AccountInfoStorage instance] getUid] roomUid:roomUid ticket:[[AccountInfoStorage instance] getTicket]];
}
@@ -139,11 +139,11 @@
/// 退
/// @param roomUid uid
- (void)reportUserOutRoom:(NSString *)roomUid {
- (void)mew_reportUserOutRoom:(NSString *)roomUid {
if ([[AccountInfoStorage instance] getTicket].length < 1) {
return;
}
[Api requestReportUserOutRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[Api Mew_RequestReportUserOutRoom:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
} uid:[[AccountInfoStorage instance] getUid] roomUid:roomUid ticket:[[AccountInfoStorage instance] getTicket]];
}
@@ -151,7 +151,7 @@
/// Mew
/// @param targetUids
/// @param roomUid uid
- (void)sendGift:(NSString *)targetUids
- (void)mew_sendRoomGift:(NSString *)targetUids
roomUid:(NSString *)roomUid {
NSString *uid = [AccountInfoStorage instance].getUid;
NSString *giftNum = @"1";
@@ -166,14 +166,14 @@
//
NSString *roomSendType = @"3";
[Api requestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GiftReceiveInfoModel *receive = [GiftReceiveInfoModel mewModelWithJSON:data.data];
[Api Mew_RequestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
MewGiftReceiveInfoModel *receive = [MewGiftReceiveInfoModel mewModelWithJSON:data.data];
receive.sourceType = giftSource;
receive.roomSendGiftType = roomSendType;
[[self getView] sendGiftSuccess:receive originDic:data.data uidCount:1];
[[self getView] mew_sendRoomGiftSuccess:receive originDic:data.data uidCount:1];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] sendGiftFailWithCode:code msg:msg];
[[self getView] mew_sendRoomGiftFailWithCode:code msg:msg];
}] targetUids:targetUids giftNum:giftNum sendType:sendType giftId:giftId giftSource:giftSource giftType:giftType roomUid:roomUid msg:@"" uid:uid];
}

View File

@@ -1,32 +1,32 @@
//
// YMRoomProtocol.h
// MewRoomProtocol.h
// mew-ios
//
// Created by 触海 on 2023/11/7.
//
#import <Foundation/Foundation.h>
@class RoomInfoModel, NIMChatroom, GiftReceiveInfoModel;
@class MewRoomInfoModel, NIMChatroom, MewGiftReceiveInfoModel;
NS_ASSUME_NONNULL_BEGIN
@protocol YMRoomProtocol <NSObject>
@protocol MewRoomProtocol <NSObject>
/// 进入房间成功
- (void)initEnterCurrentRoomSuccess:(RoomInfoModel *)roomInfo user:(UserInfoModel *)userInfo;
- (void)mew_initEnterCurrentRoomSuccess:(MewRoomInfoModel *)roomInfo user:(UserInfoModel *)userInfo;
///开启房间成功
- (void)openCurrentRoomSuccess:(RoomInfoModel *)roomInfo;
- (void)openCurrentRoomSuccess:(MewRoomInfoModel *)roomInfo;
///进入房间成功
- (void)enterCurrentRoomSuccess:(NIMChatroom *)chatRoom;
///进入房间失败(当前获取用户信息、获取房间信息、开启房间、进入云信房间失败,均会导致进房失败)
- (void)enterCurrentRoomFail:(NSInteger)code;
///获取当前房间的信息,个播房
//- (void)getCurrentRoomInfoSuccess:(RoomInfoModel *_Nullable)roomInfo;
//- (void)getCurrentRoomInfoSuccess:(MewRoomInfoModel *_Nullable)roomInfo;
/// Mew 送礼物成功。房间内给麦位上的某个用户送普通的薯片礼物,默认写死
- (void)sendGiftSuccess:(GiftReceiveInfoModel *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount;
- (void)mew_sendRoomGiftSuccess:(MewGiftReceiveInfoModel *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount;
///送礼物失败
- (void)sendGiftFailWithCode:(NSInteger)code msg:(NSString *)msg;
- (void)mew_sendRoomGiftFailWithCode:(NSInteger)code msg:(NSString *)msg;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,5 +1,5 @@
//
// CHRoomAnimationGroup.h
// MewRoomAnimationGroup.h
// yinmeng-ios
//
// Created by 触海 on 2023/12/1.
@@ -10,12 +10,12 @@
NS_ASSUME_NONNULL_BEGIN
@interface CHRoomAnimationGroup : NSObject
@interface MewRoomAnimationGroup : NSObject
/// 图片运动的动画组
/// @param startPoint 开始的点
/// @param endPoint 结束的点
+ (CAAnimationGroup *)createGiftAnimationStartPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint;
+ (CAAnimationGroup *)Mew_CreateGiftAnimationStartPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint;
@end
NS_ASSUME_NONNULL_END

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