修改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 PODFILE CHECKSUM: cc88fa05da662ee682fc0eeb502faab221faa032
COCOAPODS: 1.12.1 COCOAPODS: 1.14.2

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,7 +14,7 @@
#import "YMMacro.h" #import "YMMacro.h"
#import "ClientConfig.h" #import "ClientConfig.h"
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import "SessionViewController.h" #import "MewSessionViewController.h"
@interface MewSessionListViewController ()<UITableViewDelegate, UITableViewDataSource, @interface MewSessionListViewController ()<UITableViewDelegate, UITableViewDataSource,
NIMConversationManagerDelegate,NIMLoginManagerDelegate> NIMConversationManagerDelegate,NIMLoginManagerDelegate>
@@ -195,7 +195,7 @@
[tableView deselectRowAtIndexPath:indexPath animated:YES]; [tableView deselectRowAtIndexPath:indexPath animated:YES];
NIMRecentSession *recentSession = self.recentSessions[indexPath.row]; 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]; [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; @property (nonatomic,copy) NSString *roomId;
///房主的uid ///房主的uid
@property (nonatomic,copy) NSString *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; @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 "MewPartyModel.h"
#import "HomeRecommendRoomModel.h" #import "HomeRecommendRoomModel.h"
/// Presenter /// Presenter
#import "YMHomePresenter.h" #import "MewPartyPresenter.h"
#import "YMHomeProtocol.h" #import "MewHomeProtocol.h"
@interface MewPartyViewController ()<UICollectionViewDelegate, UICollectionViewDataSource, YMHomeProtocol> @interface MewPartyViewController ()<UICollectionViewDelegate, UICollectionViewDataSource, MewHomeProtocol>
@property (nonatomic, strong) UIImageView *contentBgImageView; @property (nonatomic, strong) UIImageView *contentBgImageView;
// //
@@ -49,8 +49,8 @@
return YES; return YES;
} }
- (YMHomePresenter *)createPresenter { - (MewPartyPresenter *)createPresenter {
return [[YMHomePresenter alloc] init]; return [[MewPartyPresenter alloc] init];
} }
#pragma mark - Life Cycle #pragma mark - Life Cycle
@@ -70,12 +70,11 @@
#pragma mark - Load Data #pragma mark - Load Data
- (void)loadData { - (void)loadData {
[self.presenter homeRecommendRoomList]; [self.presenter mew_partyRecommendRoomList];
} }
#pragma mark - YMHomeProtocol #pragma mark - MewHomeProtocol
- (void)mew_partyRecommendRoomListSuccess:(NSArray *)list {
- (void)homeRecommendRoomListSuccess:(NSArray *)list {
self.homeRecommendModels = list; self.homeRecommendModels = list;
[self.partyCollectionView reloadData]; [self.partyCollectionView reloadData];
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -87,7 +87,7 @@
return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV2; return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV2;
} }
- (CGPoint)animationPointAtStageViewByUid:(NSString *)uid { - (CGPoint)mew_animationPointAtStageViewByUid:(NSString *)uid {
NSInteger index = [self getIndexByUid:uid]; NSInteger index = [self getIndexByUid:uid];
CGPoint point = CGPointZero; 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 NS_ASSUME_NONNULL_BEGIN
@interface Api (Message) @interface Api (Message)
+ (void)getChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid; + (void)Mew_GetChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -8,7 +8,7 @@
#import "Api+Message.h" #import "Api+Message.h"
#import "NewEncryptTool.h" #import "NewEncryptTool.h"
@implementation Api (Message) @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 NSString *getUrl = [NewEncryptTool MEW_aesDecrypt:@"ml84Zo9PhMJ69iyUKDccSccouVGFyLv2OiwzJUi0qGI="];///privateChat/limit
[self makeRequest:getUrl method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, receiverUid,nil]; [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 // mew-ios
// //
// Created by 触海 on 2023/11/16. // Created by 触海 on 2023/11/16.
@@ -9,7 +9,7 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface ChatLimitModel : NSObject @interface MewChatLimitModel : NSObject
@property(nonatomic,assign) int model; @property(nonatomic,assign) int model;
@property (nonatomic, assign) BOOL chat; @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 // mew-ios
// //
// Created by on 2023/11/16. // Created by on 2023/11/16.
// //
#import "CHMessagePresenter.h" #import "MewMessagePresenter.h"
#import "Api+Mine.h" #import "Api+Mine.h"
#import "Api+Message.h" #import "Api+Message.h"
//Model //Model
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "AccountInfoStorage.h" #import "AccountInfoStorage.h"
#import "ChatLimitModel.h" #import "MewChatLimitModel.h"
//Protocol //Protocol
#import "CHMessageProtocol.h" #import "MewMessageProtocol.h"
@implementation CHMessagePresenter @implementation MewMessagePresenter
- (void)getChatLimitReceiverUid:(NSString *)receiverUid { - (void)mew_getChatLimitReceiverUid:(NSString *)receiverUid {
[Api getChatLimit:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api Mew_GetChatLimit:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
ChatLimitModel *chatLimit = [ChatLimitModel mewModelWithJSON:data.data]; MewChatLimitModel *chatLimit = [MewChatLimitModel mewModelWithJSON:data.data];
[[self getView] onGetLimitChat:chatLimit]; [[self getView] mew_onGetLimitChat:chatLimit];
} showLoading:NO errorToast:NO] receiverUid:receiverUid]; } showLoading:NO errorToast:NO] receiverUid:receiverUid];
} }
/// ///
/// @param uid uid /// @param uid uid
- (void)getUserInfo:(NSString *)uid { - (void)mew_getMessageUserInfo:(NSString *)uid {
[Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel mewModelWithDictionary:data.data]; UserInfoModel * infoModel = [UserInfoModel mewModelWithDictionary:data.data];
[[self getView] onGetSessionUserInfoSuccess:infoModel]; [[self getView] mew_onGetSessionUserInfoSuccess:infoModel];
}fail:^(NSInteger code, NSString * _Nullable msg) { }fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]onGetSessionUserInfoFail]; [[self getView]mew_onGetSessionUserInfoFail];
}] uid:uid page:@"1" pageSize:@"20"]; }] uid:uid page:@"1" pageSize:@"20"];
} }
/// ///
- (void)getFansLike:(NSString *)likeUid { - (void)mew_getFansLike:(NSString *)likeUid {
NSString * uid = [AccountInfoStorage instance].getUid; NSString * uid = [AccountInfoStorage instance].getUid;
[Api attentionStatusCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api attentionStatusCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
BOOL isLike = [data.data boolValue]; BOOL isLike = [data.data boolValue];
[[self getView] getFansLikeSuccess:isLike]; [[self getView] mew_getFansLikeSuccess:isLike];
}] uid:uid isLikeUid:likeUid]; }] uid:uid isLikeUid:likeUid];
} }
/// ///
/// @param targetUid uid /// @param targetUid uid
- (void)attentionUser:(NSString *)targetUid { - (void)mew_attentionMessageUser:(NSString *)targetUid {
NSString * uid = [[AccountInfoStorage instance] getUid]; NSString * uid = [[AccountInfoStorage instance] getUid];
NSString * ticket = [[AccountInfoStorage instance] getTicket]; NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * type = @"1"; NSString * type = @"1";
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] attentionUserSuccess:targetUid]; [[self getView] mew_attentionUserSuccess:targetUid];
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAttentionUserNotification" object:nil]; [[NSNotificationCenter defaultCenter]postNotificationName:@"kAttentionUserNotification" object:nil];
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type]; } 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 // mew-ios
// //
// Created by 触海 on 2023/11/10. // Created by 触海 on 2023/11/10.
@@ -10,9 +10,9 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface NIMMessageUtils : NSObject @interface MewNIMMessageUtils : NSObject
/// NIMMessage 转换成字符串 /// NIMMessage 转换成字符串
+ (NSString *)messageContent:(NIMMessage*)message; + (NSString *)Mew_MessageContent:(NIMMessage*)message;
@end @end

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
// //
// NIMBadgeView.m // MewNIMBadgeView.m
// NIMKit // NIMKit
// //
// Created by chris on 15/2/12. // 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; @property (strong) UIColor *badgeBackgroundColor;
@@ -27,14 +27,14 @@
@end @end
@implementation NIMBadgeView @implementation MewNIMBadgeView
+ (instancetype)viewWithBadgeTip:(NSString *)badgeValue{ + (instancetype)Mew_ViewWithBadgeTip:(NSString *)badgeValue{
if (!badgeValue) { if (!badgeValue) {
badgeValue = @""; badgeValue = @"";
} }
NIMBadgeView *instance = [[NIMBadgeView alloc] init]; MewNIMBadgeView *instance = [[MewNIMBadgeView alloc] init];
instance.frame = [instance frameWithStr:badgeValue]; instance.frame = [instance mew_frameWithStr:badgeValue];
instance.badgeValue = badgeValue; instance.badgeValue = badgeValue;
return instance; return instance;
@@ -60,9 +60,9 @@
CGContextRef context = UIGraphicsGetCurrentContext(); CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context); CGContextSaveGState(context);
if ([[self badgeValue] length]) { if ([[self badgeValue] length]) {
[self drawWithContent:rect context:context]; [self mew_drawWithContent:rect context:context];
}else{ }else{
[self drawWithOutContent:rect context:context]; [self mew_drawWithOutContent:rect context:context];
} }
CGContextRestoreGState(context); CGContextRestoreGState(context);
} }
@@ -76,12 +76,14 @@
} }
_badgeTopPadding = 2.f; _badgeTopPadding = 2.f;
self.frame = [self frameWithStr:badgeValue]; self.frame = [self mew_frameWithStr:badgeValue];
[self setNeedsDisplay]; [self setNeedsDisplay];
} }
- (CGSize)badgeSizeWithStr:(NSString *)badgeValue{
#pragma mark - Private Method
- (CGSize)mew_badgeSizeWithStr:(NSString *)badgeValue{
if (!badgeValue || badgeValue.length == 0) { if (!badgeValue || badgeValue.length == 0) {
return CGSizeZero; return CGSizeZero;
} }
@@ -92,8 +94,8 @@
return size; return size;
} }
- (CGRect)frameWithStr:(NSString *)badgeValue{ - (CGRect)mew_frameWithStr:(NSString *)badgeValue{
CGSize badgeSize = [self badgeSizeWithStr: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- 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; return badgeFrame;
} }
@@ -101,7 +103,7 @@
#pragma mark - Private #pragma mark - Private
- (void)drawWithContent:(CGRect)rect context:(CGContextRef)context{ - (void)mew_drawWithContent:(CGRect)rect context:(CGContextRef)context{
CGRect bodyFrame = self.bounds; CGRect bodyFrame = self.bounds;
CGRect bkgFrame = CGRectInset(self.bounds, self.whiteCircleWidth, self.whiteCircleWidth); CGRect bkgFrame = CGRectInset(self.bounds, self.whiteCircleWidth, self.whiteCircleWidth);
CGRect badgeSize = CGRectInset(self.bounds, self.whiteCircleWidth + self.badgeLeftPadding, self.whiteCircleWidth + self.badgeTopPadding); 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; CGRect bodyFrame = self.bounds;
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]); CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextFillEllipseInRect(context, bodyFrame); 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 // mew-ios
// //
// Created by 触海 on 2023/11/16. // Created by 触海 on 2023/11/16.
// //
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "CHMessageContentProtocol.h" #import "MewMessageContentProtocol.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface CHMessageContentText : UIView<CHMessageContentProtocol> @interface MewMessageContentImage : UIView<MewMessageContentProtocol>
@end @end

View File

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

View File

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

View File

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

View File

@@ -1,13 +1,13 @@
// //
// CHMessageContentText.m // MewMessageContentText.m
// mew-ios // mew-ios
// //
// Created by on 2023/11/16. // Created by on 2023/11/16.
// //
#import "CHMessageContentText.h" #import "MewMessageContentText.h"
#import "CHMessageContentText.h" #import "MewMessageContentText.h"
#import "MEWThemeColor.h" #import "MEWThemeColor.h"
#import "NSObject+MEWExtension.h" #import "NSObject+MEWExtension.h"
@@ -17,7 +17,7 @@
#define MESSAGE_TEXT_PADDING 10 #define MESSAGE_TEXT_PADDING 10
@interface CHMessageContentText() @interface MewMessageContentText()
/** /**
@@ -26,9 +26,9 @@
@end @end
@implementation CHMessageContentText @implementation MewMessageContentText
+ (CGFloat)measureHeight:(NIMMessage *)message { + (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
NSString * messageText = message.text; NSString * messageText = message.text;
if (!messageText) { if (!messageText) {
messageText = @"未知消息类型"; messageText = @"未知消息类型";
@@ -36,7 +36,7 @@
CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2, MAXFLOAT); 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; return msgHeight + MESSAGE_TEXT_PADDING * 2 + CONTENT_PADDING_V_TOTAL;
} }
@@ -62,12 +62,12 @@
return self; return self;
} }
- (void)render:(nonnull NIMMessage *)message { - (void)mew_renderMessage:(nonnull NIMMessage *)message {
NSString * messageText = message.text; NSString * messageText = message.text;
if (!messageText || (message.messageType != NIMMessageTypeTip && message.messageType != NIMMessageTypeText)) { if (!messageText || (message.messageType != NIMMessageTypeTip && message.messageType != NIMMessageTypeText)) {
messageText = @"未知消息类型"; messageText = @"未知消息类型";
} }
_messageText.attributedText = [[NSAttributedString alloc] initWithString:messageText attributes:[CHMessageContentText messageTextAttibutes]]; _messageText.attributedText = [[NSAttributedString alloc] initWithString:messageText attributes:[MewMessageContentText messageTextAttibutes]];
} }
- (UILabel *)messageText { - (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 // mew-ios
// //
// Created by on 2023/11/16. // Created by on 2023/11/16.
// //
#import "CHMessageContentUnSupportView.h" #import "MewMessageContentUnSupportView.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@@ -15,21 +15,21 @@
#define MESSAGE_TEXT_PADDING 10 #define MESSAGE_TEXT_PADDING 10
@interface CHMessageContentUnSupportView () @interface MewMessageContentUnSupportView ()
/// ///
@property (nonatomic,strong) UILabel *unSupportLabel; @property (nonatomic,strong) UILabel *unSupportLabel;
@end @end
@implementation CHMessageContentUnSupportView @implementation MewMessageContentUnSupportView
+ (CGFloat)measureHeight:(NIMMessage *)message { + (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
NSString * messageText = @"暂不支持此种类型消息"; NSString * messageText = @"暂不支持此种类型消息";
CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2, MAXFLOAT); 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; 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; return msgHeight + MESSAGE_TEXT_PADDING * 2 + CONTENT_PADDING_V_TOTAL;
} }
- (void)render:(NIMMessage *)message { - (void)mew_renderMessage:(NIMMessage *)message {
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
NSLog(@"%@", @"aaaaa"); 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 // CHMessageToolMenuCollectionViewCell.m
// xplan-ios // yinmeng-ios
// //
// Created by on 2022/4/20. // Created by on 2023/11/20.
// //
#import "CHMessageToolMenuCollectionViewCell.h" #import "CHMessageToolMenuCollectionViewCell.h"

View File

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

View File

@@ -1,25 +1,25 @@
// //
// CHMessageAudioCenter.m // MewMessageAudioCenter.m
// xplan-ios // yinmeng-ios
// //
// Created by on 2022/4/22. // Created by on 2023/11/22.
// //
#import "CHMessageAudioCenter.h" #import "MewMessageAudioCenter.h"
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@interface CHMessageAudioCenter ()<NIMMediaManagerDelegate> @interface MewMessageAudioCenter ()<NIMMediaManagerDelegate>
@property (nonatomic,assign) NSInteger retryCount; @property (nonatomic,assign) NSInteger retryCount;
@property (nonatomic,strong,nullable) NIMMessage *currentPlayingMessage; @property (nonatomic,strong,nullable) NIMMessage *currentPlayingMessage;
@end @end
@implementation CHMessageAudioCenter @implementation MewMessageAudioCenter
+ (instancetype)shareInstance { + (instancetype)shareInstance {
static CHMessageAudioCenter *instance; static MewMessageAudioCenter *instance;
static dispatch_once_t onceToken; static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ dispatch_once(&onceToken, ^{
instance = [[CHMessageAudioCenter alloc] init]; instance = [[MewMessageAudioCenter alloc] init];
}); });
return instance; return instance;
} }
@@ -37,7 +37,7 @@
_retryCount = 3; _retryCount = 3;
} }
- (void)playAudioMessage:(NIMMessage *)message { - (void)mew_playAudioMessage:(NIMMessage *)message {
NIMAudioObject *audioObject = (NIMAudioObject *)message.messageObject; NIMAudioObject *audioObject = (NIMAudioObject *)message.messageObject;
if ([audioObject isKindOfClass:[NIMAudioObject class]]) { if ([audioObject isKindOfClass:[NIMAudioObject class]]) {
self.currentPlayingMessage = message; self.currentPlayingMessage = message;
@@ -48,7 +48,6 @@
#pragma mark - NIMMediaManagerDelegate #pragma mark - NIMMediaManagerDelegate
- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error - (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error
{ {
if (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 // MewMessageConentAudioView.m
// xplan-ios // yinmeng-ios
// //
// Created by on 2022/4/22. // Created by on 2023/11/22.
// //
#import "CHMessageConentAudioView.h" #import "MewMessageConentAudioView.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
///Tool ///Tool
#import "MEWThemeColor.h" #import "MEWThemeColor.h"
#import "CHMessageAudioCenter.h" #import "MewMessageAudioCenter.h"
@interface CHMessageConentAudioView ()<NIMMediaManagerDelegate> @interface MewMessageConentAudioView ()<NIMMediaManagerDelegate>
/// ///
@property (nonatomic,strong) UIView * backView; @property (nonatomic,strong) UIView * backView;
/// ///
@@ -26,7 +26,7 @@
@property (nonatomic,assign) BOOL isPlaying; @property (nonatomic,assign) BOOL isPlaying;
@end @end
@implementation CHMessageConentAudioView @implementation MewMessageConentAudioView
- (void)dealloc { - (void)dealloc {
[[NIMSDK sharedSDK].mediaManager removeDelegate:self]; [[NIMSDK sharedSDK].mediaManager removeDelegate:self];
@@ -71,7 +71,7 @@
#pragma mark - NIMMediaManagerDelegate #pragma mark - NIMMediaManagerDelegate
- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error { - (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error {
if(filePath && !error) { if(filePath && !error) {
if ([CHMessageAudioCenter shareInstance].currentPlayingMessage == self.message) { if ([MewMessageAudioCenter shareInstance].currentPlayingMessage == self.message) {
[self.audioImageView startAnimating]; [self.audioImageView startAnimating];
} }
} }
@@ -82,8 +82,29 @@
UIImage * thirdImage = [UIImage imageNamed:@"mew_message_content_audio_playing_third"]; UIImage * thirdImage = [UIImage imageNamed:@"mew_message_content_audio_playing_third"];
self.audioImageView.image = thirdImage; 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 #pragma mark - Event Response
- (void)didTapBackRecognizer { - (void)mew_didTapBackRecognizer {
if ([self.message attachmentDownloadState] == NIMMessageAttachmentDownloadStateDownloaded) { if ([self.message attachmentDownloadState] == NIMMessageAttachmentDownloadStateDownloaded) {
if ([[NIMSDK sharedSDK].mediaManager isPlaying]) { if ([[NIMSDK sharedSDK].mediaManager isPlaying]) {
[[NIMSDK sharedSDK].mediaManager stopPlay]; [[NIMSDK sharedSDK].mediaManager stopPlay];
@@ -95,7 +116,7 @@
} else { } else {
self.isPlaying = YES; self.isPlaying = YES;
[[NIMSDK sharedSDK].mediaManager switchAudioOutputDevice:NIMAudioOutputDeviceSpeaker]; [[NIMSDK sharedSDK].mediaManager switchAudioOutputDevice:NIMAudioOutputDeviceSpeaker];
[[CHMessageAudioCenter shareInstance] playAudioMessage:self.message]; [[MewMessageAudioCenter shareInstance] mew_playAudioMessage:self.message];
} }
} }
} }
@@ -105,7 +126,7 @@
if (!_backView) { if (!_backView) {
_backView = [[UIView alloc] init]; _backView = [[UIView alloc] init];
_backView.backgroundColor = [UIColor clearColor]; _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]; [_backView addGestureRecognizer:tap];
} }
return _backView; return _backView;
@@ -135,24 +156,7 @@
return _audioImageView; 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 // MewNIMMessageMaker.m
// xplan-ios // yinmeng-ios
// //
// Created by zu on 2021/11/28. // Created by on 2023/11/28.
// //
#import "NIMMessageMaker.h" #import "MewNIMMessageMaker.h"
#import "YMConstant.h" #import "YMConstant.h"
@implementation NIMMessageMaker @implementation MewNIMMessageMaker
+ (NIMMessage*)msgWithText:(NSString*)text + (NIMMessage*)Mew_MsgWithText:(NSString*)text
{ {
NIMMessage *textMessage = [[NIMMessage alloc] init]; NIMMessage *textMessage = [[NIMMessage alloc] init];
textMessage.text = text; textMessage.text = text;
@@ -18,7 +18,7 @@
return textMessage; return textMessage;
} }
+ (NIMMessage*)msgWithAudio:(NSString*)filePath + (NIMMessage*)Mew_MsgWithAudio:(NSString*)filePath
{ {
NIMAudioObject *audioObject = [[NIMAudioObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage]; NIMAudioObject *audioObject = [[NIMAudioObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage];
NIMMessage *message = [[NIMMessage alloc] init]; NIMMessage *message = [[NIMMessage alloc] init];
@@ -28,39 +28,26 @@
return message; 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]; NIMImageObject *imageObject = [[NIMImageObject alloc] initWithImage:image scene:NIMNOSSceneTypeMessage];
NIMImageOption *option = [[NIMImageOption alloc] init]; NIMImageOption *option = [[NIMImageOption alloc] init];
option.compressQuality = 0.7; option.compressQuality = 0.7;
imageObject.option = option; 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]; 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]; NIMImageObject *imageObject = [[NIMImageObject alloc] initWithData:data extension:extension];
return [NIMMessageMaker generateImageMessage:imageObject]; return [MewNIMMessageMaker generateImageMessage:imageObject];
} }
+ (NIMMessage *)generateImageMessage:(NIMImageObject *)imageObject + (NIMMessage *)generateImageMessage:(NIMImageObject *)imageObject
@@ -96,26 +83,3 @@
@end @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 // MewSessionAudioRecordView.m
// xplan-ios // yinmeng-ios
// //
// Created by on 2022/4/21. // Created by on 2023/11/21.
// //
#import "CHSessionAudioRecordView.h" #import "MewSessionAudioRecordView.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@interface CHSessionAudioRecordView () @interface MewSessionAudioRecordView ()
/// ///
@property (nonatomic,strong) UIView * backView; @property (nonatomic,strong) UIView * backView;
/// ///
@@ -21,7 +21,7 @@
@property (nonatomic,strong) UILabel *timeLabel; @property (nonatomic,strong) UILabel *timeLabel;
@end @end
@implementation CHSessionAudioRecordView @implementation MewSessionAudioRecordView
- (instancetype)initWithFrame:(CGRect)frame { - (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame]; self = [super initWithFrame:frame];
@@ -32,7 +32,7 @@
return self; return self;
} }
#pragma mark - Public Method #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]; self.logoImageView.image = [UIImage imageNamed:imageName];
if (isAnimation) { if (isAnimation) {
[self.logoImageView startAnimating]; [self.logoImageView startAnimating];
@@ -43,22 +43,22 @@
} }
/// ///
- (void)beginAudioRecord { - (void)mew_beginAudioRecord {
self.timeLabel.text = @"00:00"; self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager recordForDuration:60]; [[NIMSDK sharedSDK].mediaManager recordForDuration:60];
} }
/// ///
- (void)cancelAudioRecord { - (void)mew_cancelAudioRecord {
self.timeLabel.text = @"00:00"; self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager cancelRecord]; [[NIMSDK sharedSDK].mediaManager cancelRecord];
} }
/// ///
- (void)finishAudioRecord { - (void)mew_finishAudioRecord {
self.timeLabel.text = @"00:00"; self.timeLabel.text = @"00:00";
[[NIMSDK sharedSDK].mediaManager stopRecord]; [[NIMSDK sharedSDK].mediaManager stopRecord];
} }
- (void)updateAudioRecordProgress:(NSTimeInterval)recordTime { - (void)mew_updateAudioRecordProgress:(NSTimeInterval)recordTime {
NSInteger minutes = (NSInteger)recordTime / 60; NSInteger minutes = (NSInteger)recordTime / 60;
NSInteger seconds = (NSInteger)recordTime % 60; NSInteger seconds = (NSInteger)recordTime % 60;
self.timeLabel.text = [NSString stringWithFormat:@"%02zd:%02zd", minutes, seconds]; self.timeLabel.text = [NSString stringWithFormat:@"%02zd:%02zd", minutes, seconds];

View File

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

View File

@@ -1,11 +1,11 @@
// //
// CHSessionInfoViewController.m // MewSessionInfoViewController.m
// xplan-ios // yinmeng-ios
// //
// Created by on 2022/4/25. // Created by on 2023/11/25.
// //
#import "CHSessionInfoViewController.h" #import "MewSessionInfoViewController.h"
///Third ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@@ -18,7 +18,7 @@
#import "YMWebViewController.h" #import "YMWebViewController.h"
@interface CHSessionInfoViewController () @interface MewSessionInfoViewController ()
/// ///
@property (nonatomic,strong) UIStackView *stackView; @property (nonatomic,strong) UIStackView *stackView;
///view ///view
@@ -42,7 +42,7 @@
@end @end
@implementation CHSessionInfoViewController @implementation MewSessionInfoViewController
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
@@ -131,7 +131,7 @@
} }
#pragma mark - Event Response #pragma mark - Event Response
- (void)blackButtonAction:(UIButton *)sender { - (void)mew_blackButtonAction:(UIButton *)sender {
NSString *title = nil; NSString *title = nil;
NSString *message = nil; NSString *message = nil;
BOOL isInBlack = [[NIMSDK sharedSDK].userManager isUserInBlackList:self.userId]; 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:@"" UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"举报内容" message:@""
preferredStyle:UIAlertControllerStyleActionSheet]; 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 #pragma mark - Getters And Setters
- (UIStackView *)stackView { - (UIStackView *)stackView {
@@ -234,8 +229,6 @@
if (!_infoView) { if (!_infoView) {
_infoView = [[UIView alloc] init]; _infoView = [[UIView alloc] init];
_infoView.backgroundColor = [MEWThemeColor mewAppCellBackgroundColor]; _infoView.backgroundColor = [MEWThemeColor mewAppCellBackgroundColor];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapUserRecognizer)];
[_infoView addGestureRecognizer:tap];
_infoView.hidden = YES; _infoView.hidden = YES;
} }
return _infoView; return _infoView;
@@ -300,7 +293,7 @@
[_reportButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateNormal]; [_reportButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateNormal];
_reportButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; _reportButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
[_reportButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]]; [_reportButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]];
[_reportButton addTarget:self action:@selector(reportButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_reportButton addTarget:self action:@selector(mew_reportButtonAction:) forControlEvents:UIControlEventTouchUpInside];
} }
return _reportButton; return _reportButton;
} }
@@ -322,8 +315,7 @@
[_blackButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateSelected]; [_blackButton setTitleColor:[MEWThemeColor mewMainTextColor] forState:UIControlStateSelected];
_blackButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; _blackButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
[_blackButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]]; [_blackButton setBackgroundColor:[MEWThemeColor mewAppCellBackgroundColor]];
[_blackButton addTarget:self action:@selector(blackButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_blackButton addTarget:self action:@selector(mew_blackButtonAction:) forControlEvents:UIControlEventTouchUpInside];
// _blackButton.hidden = YES;
} }
return _blackButton; 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 // mew-ios
// //
// Created by on 2023/11/16. // Created by on 2023/11/16.
// //
#import "CHSessionMessageCell.h" #import "MewSessionMessageCell.h"
/// View /// View
#import "NetImageView.h" #import "NetImageView.h"
#import "CHMessageContentUnSupportView.h" #import "MewMessageContentUnSupportView.h"
#import "CHMessageContentText.h" #import "MewMessageContentText.h"
#import "CHMessageContentImage.h" #import "MewMessageContentImage.h"
#import "CHMessageConentAudioView.h" #import "MewMessageConentAudioView.h"
///Tool ///Tool
#import "MEWThemeColor.h" #import "MEWThemeColor.h"
#import "YMMacro.h" #import "YMMacro.h"
@@ -20,11 +20,11 @@
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
/// P /// P
#import "CHMessageContentProtocol.h" #import "MewMessageContentProtocol.h"
///Model ///Model
//#import "AttachmentModel.h" //#import "AttachmentModel.h"
@interface CHSessionMessageCell() @interface MewSessionMessageCell()
/** */ /** */
@property (nonatomic, strong) NetImageView * leftAvatar; @property (nonatomic, strong) NetImageView * leftAvatar;
@@ -39,16 +39,16 @@
@property (nonatomic, strong) MASConstraint * messageBackgroundRight; @property (nonatomic, strong) MASConstraint * messageBackgroundRight;
/** */ /** */
@property (nonatomic, strong) UIView<CHMessageContentProtocol> * messageContent; @property (nonatomic, strong) UIView<MewMessageContentProtocol> * messageContent;
/// ///
@property (nonatomic,strong) NIMMessage *currentMessage; @property (nonatomic,strong) NIMMessage *currentMessage;
@end @end
@implementation CHSessionMessageCell @implementation MewSessionMessageCell
#pragma mark - Public Method #pragma mark - Public Method
+ (CGFloat)measureHeight:(NIMMessage *)message { + (CGFloat)mew_sessionMeasureHeight:(NIMMessage *)message {
CGFloat minHeight = AVATAR_SIZE + AVATAR_MARGIN_H * 2; CGFloat minHeight = AVATAR_SIZE + AVATAR_MARGIN_H * 2;
if (!message) { if (!message) {
return minHeight; return minHeight;
@@ -58,16 +58,16 @@
switch (message.messageType) { switch (message.messageType) {
case NIMMessageTypeText: case NIMMessageTypeText:
case NIMMessageTypeTip: case NIMMessageTypeTip:
measureHeight = [CHMessageContentText measureHeight:message]; measureHeight = [MewMessageContentText mew_sessionMeasureHeight:message];
break; break;
case NIMMessageTypeImage: case NIMMessageTypeImage:
measureHeight = [CHMessageContentImage measureHeight:message]; measureHeight = [MewMessageContentImage mew_sessionMeasureHeight:message];
break; break;
case NIMMessageTypeAudio: case NIMMessageTypeAudio:
measureHeight = [CHMessageConentAudioView measureHeight:message]; measureHeight = [MewMessageConentAudioView mew_sessionMeasureHeight:message];
break; break;
case NIMMessageTypeCustom: case NIMMessageTypeCustom:
measureHeight = [self customMessageMeasureHeight:message]; measureHeight = [self mew_customMessageMeasureHeight:message];
break; break;
default: default:
break; break;
@@ -77,7 +77,7 @@
} }
- (void)renderWithMessage:(NIMMessage *)message { - (void)mew_renderWithMessage:(NIMMessage *)message {
self.currentMessage = message; self.currentMessage = message;
NSString * avatarUrl = [[NIMSDK sharedSDK].userManager userInfo:message.from].userInfo.avatarUrl; NSString * avatarUrl = [[NIMSDK sharedSDK].userManager userInfo:message.from].userInfo.avatarUrl;
avatarUrl = [avatarUrl stringByReplacingOccurrencesOfString:@"https" withString:@"http"]; 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.leftAvatar.imageUrl = (avatarUrl == nil ||avatarUrl.length == 0) ? [NewEncryptTool MEW_aesDecrypt:@"xdPnNelVD/RTlTKFqgSrESDPcNF6Diqb8sLg+HEvxpvjDdTLom1euQUOAOppjx15"] : avatarUrl;;
} }
[self handleMessageFail:message]; [self mew_handleMessageFail:message];
if ([self messageShowAvatar:message]) { if ([self mew_messageShowAvatar:message]) {
self.leftAvatar.hidden= [self messageShowAvatar:message]; self.leftAvatar.hidden= [self mew_messageShowAvatar:message];
self.rightAvatar.hidden = [self messageShowAvatar:message]; self.rightAvatar.hidden = [self mew_messageShowAvatar:message];
} }
if (self.messageContent) { if (self.messageContent) {
@@ -109,26 +109,26 @@
switch (message.messageType) { switch (message.messageType) {
case NIMMessageTypeText: case NIMMessageTypeText:
case NIMMessageTypeTip: case NIMMessageTypeTip:
if (![self.messageContent isKindOfClass:[CHMessageContentText class]]) { if (![self.messageContent isKindOfClass:[MewMessageContentText class]]) {
self.messageContent = [[CHMessageContentText alloc] init]; self.messageContent = [[MewMessageContentText alloc] init];
} }
break; break;
case NIMMessageTypeImage: case NIMMessageTypeImage:
if (![self.messageContent isKindOfClass:[CHMessageContentImage class]]) { if (![self.messageContent isKindOfClass:[MewMessageContentImage class]]) {
self.messageContent = [[CHMessageContentImage alloc] init]; self.messageContent = [[MewMessageContentImage alloc] init];
} }
break; break;
case NIMMessageTypeAudio: case NIMMessageTypeAudio:
if (![self.messageContent isKindOfClass:[CHMessageConentAudioView class]]) { if (![self.messageContent isKindOfClass:[MewMessageConentAudioView class]]) {
self.messageContent = [[CHMessageConentAudioView alloc] init]; self.messageContent = [[MewMessageConentAudioView alloc] init];
} }
break; break;
case NIMMessageTypeCustom: case NIMMessageTypeCustom:
self.messageContent = [self getCustomMessageContentView:message]; self.messageContent = [self mew_getCustomMessageContentView:message];
break; break;
default: default:
if (![self.messageContent isKindOfClass:[CHMessageContentUnSupportView class]]) { if (![self.messageContent isKindOfClass:[MewMessageContentUnSupportView class]]) {
self.messageContent = [[CHMessageContentUnSupportView alloc] init]; self.messageContent = [[MewMessageContentUnSupportView alloc] init];
} }
break; break;
} }
@@ -137,64 +137,63 @@
[self.messageContent mas_makeConstraints:^(MASConstraintMaker *make) { [self.messageContent mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.right.bottom.mas_equalTo(self.messageBackground); 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) { if (message.messageType == NIMMessageTypeText || message.messageType == NIMMessageTypeTip) {
return @"CHMessageContentText"; return @"MewMessageContentText";
} else if(message.messageType == NIMMessageTypeImage) { } else if(message.messageType == NIMMessageTypeImage) {
return @"CHMessageContentImage"; return @"MewMessageContentImage";
}else if(message.messageType == NIMMessageTypeAudio) { }else if(message.messageType == NIMMessageTypeAudio) {
return @"CHMessageConentAudioView"; return @"MewMessageConentAudioView";
} else if(message.messageType == NIMMessageTypeCustom) { } else if(message.messageType == NIMMessageTypeCustom) {
return @"CHMessageContentUnSupportView"; return @"MewMessageContentUnSupportView";
} else { } else {
return @"CHMessageContentUnSupportView"; return @"MewMessageContentUnSupportView";
} }
} }
#pragma mark - Action Event #pragma mark - Action Event
// //
- (void)rightAvatarTapRecognizer { - (void)mew_rightAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didTapAvatarWithUid:)]) {
[self.delegate didTapAvatarWithUid:self.currentMessage.from]; [self.delegate mew_didTapAvatarWithUid:self.currentMessage.from];
} }
} }
// //
- (void)leftAvatarTapRecognizer { - (void)mew_leftAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didTapAvatarWithUid:)]) {
[self.delegate didTapAvatarWithUid:self.currentMessage.from]; [self.delegate mew_didTapAvatarWithUid:self.currentMessage.from];
} }
} }
// //
- (void)failButtonAction:(UIButton *)sender { - (void)mew_failButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(didFailRetry:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didFailRetryMessage:)]) {
[self.delegate didFailRetryMessage:self.currentMessage]; [self.delegate mew_didFailRetryMessage:self.currentMessage];
} }
} }
#pragma mark - Private Method #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 { - (UIView<MewMessageContentProtocol> *)mew_getCustomMessageContentView:(NIMMessage *)message {
if ([self.messageContent isKindOfClass:[CHMessageContentUnSupportView class]]) { if ([self.messageContent isKindOfClass:[MewMessageContentUnSupportView class]]) {
return self.messageContent; return self.messageContent;
} }
return [[CHMessageContentUnSupportView alloc] init]; return [[MewMessageContentUnSupportView alloc] init];
} }
/// ///
- (void)handleMessageFail:(NIMMessage *)message { - (void)mew_handleMessageFail:(NIMMessage *)message {
BOOL isHiddenFail = YES; BOOL isHiddenFail = YES;
if (!message.isReceivedMsg) { // if (!message.isReceivedMsg) { //
// noyes // noyes
@@ -228,7 +227,7 @@
} }
/// ///
- (BOOL)messageShowAvatar:(NIMMessage *)message { - (BOOL)mew_messageShowAvatar:(NIMMessage *)message {
return NO; return NO;
} }
@@ -286,7 +285,7 @@
_leftAvatar.layer.cornerRadius = 45.f / 2; _leftAvatar.layer.cornerRadius = 45.f / 2;
_leftAvatar.hidden = YES; _leftAvatar.hidden = YES;
_leftAvatar.userInteractionEnabled = 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]; [_leftAvatar addGestureRecognizer:tap];
} }
return _leftAvatar; return _leftAvatar;
@@ -303,7 +302,7 @@
_rightAvatar.layer.cornerRadius = 45.f / 2; _rightAvatar.layer.cornerRadius = 45.f / 2;
_rightAvatar.hidden = YES; _rightAvatar.hidden = YES;
_rightAvatar.userInteractionEnabled = 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]; [_rightAvatar addGestureRecognizer:tap];
} }
return _rightAvatar; return _rightAvatar;
@@ -324,7 +323,7 @@
_failButton = [UIButton buttonWithType:UIButtonTypeCustom]; _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:UIControlStateNormal];
[_failButton setImage:[UIImage imageNamed:@"mew_message_session_download_fail"] forState:UIControlStateSelected]; [_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; _failButton.hidden = YES;
} }
return _failButton; 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 // mew-ios
// //
// Created by on 2023/11/16. // Created by on 2023/11/16.
// //
#import "CHSessionNavView.h" #import "MewSessionNavView.h"
/// Tool /// Tool
#import "MEWThemeColor.h" #import "MEWThemeColor.h"
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@@ -13,7 +13,7 @@
/// Third /// Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
@interface CHSessionNavView () @interface MewSessionNavView ()
/// ///
@property (nonatomic,strong) UIButton *backButton; @property (nonatomic,strong) UIButton *backButton;
/// ///
@@ -25,7 +25,7 @@
@property (nonatomic,strong) UIButton *reportButton; @property (nonatomic,strong) UIButton *reportButton;
@end @end
@implementation CHSessionNavView @implementation MewSessionNavView
#pragma mark - Init #pragma mark - Init
- (instancetype)initWithFrame:(CGRect)frame { - (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame]; self = [super initWithFrame:frame];
@@ -37,22 +37,22 @@
#pragma mark - Action Event #pragma mark - Action Event
- (void)backButtonAction:(UIButton *)sender { - (void)mew_backButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickBack:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickBack:)]) {
[self.delegate sessionNavView:self didClickBack:sender]; [self.delegate mew_sessionNavView:self didClickBack:sender];
} }
} }
- (void)likeButtonAction:(UIButton *)sender { - (void)mew_likeButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickLike:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickLike:)]) {
[self.delegate sessionNavView:self didClickLike:sender]; [self.delegate mew_sessionNavView:self didClickLike:sender];
} }
} }
- (void)reportButtonAction:(UIButton *)sender { - (void)mew_reportButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickReport:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sessionNavView:didClickReport:)]) {
[self.delegate sessionNavView:self didClickReport:sender]; [self.delegate mew_sessionNavView:self didClickReport:sender];
} }
} }
@@ -91,6 +91,8 @@
make.right.equalTo(self.reportButton.mas_left).mas_offset(-14); make.right.equalTo(self.reportButton.mas_left).mas_offset(-14);
}]; }];
} }
#pragma mark - Set
- (void)setUserId:(NSString *)userId { - (void)setUserId:(NSString *)userId {
_userId = userId; _userId = userId;
if (_userId.length > 0) { if (_userId.length > 0) {
@@ -124,8 +126,7 @@
_backButton = [UIButton buttonWithType:UIButtonTypeCustom]; _backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateNormal]; [_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateNormal];
[_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateSelected]; [_backButton setImage:[UIImage imageNamed:@"mew_common_nav_back"] forState:UIControlStateSelected];
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_backButton addTarget:self action:@selector(mew_backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
// [_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
} }
return _backButton; return _backButton;
} }
@@ -150,7 +151,7 @@
[_likeButton setTitleColor:UIColorMewFromRGB(0xFFDA24) forState:UIControlStateNormal]; [_likeButton setTitleColor:UIColorMewFromRGB(0xFFDA24) forState:UIControlStateNormal];
_likeButton.layer.borderWidth = 0.5; _likeButton.layer.borderWidth = 0.5;
_likeButton.layer.borderColor = UIColorMewFromRGB(0xFFDA24).CGColor; _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; _likeButton.hidden = NO;
} }
return _likeButton; return _likeButton;
@@ -161,7 +162,7 @@
_reportButton = [UIButton buttonWithType:UIButtonTypeCustom]; _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:UIControlStateNormal];
[_reportButton setImage:[UIImage imageNamed:@"mew_message_session_nav_report"] forState:UIControlStateSelected]; [_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; _reportButton.hidden = NO;
} }
return _reportButton; 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 // 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 ///Third
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@@ -14,15 +14,15 @@
#import "YMMacro.h" #import "YMMacro.h"
#import "NSArray+MewSafe.h" #import "NSArray+MewSafe.h"
///Model ///Model
#import "MessageMenuModel.h" #import "MewMessageMenuModel.h"
///View ///View
#import "CHMessageToolMenuCollectionViewCell.h" #import "MewMessageToolMenuCollectionCell.h"
#import "CHSessionAudioRecordView.h" #import "MewSessionAudioRecordView.h"
#define TOOL_HEIGHT 60 #define TOOL_HEIGHT 60
#define MENU_HEIGHT 130 #define MENU_HEIGHT 130
@interface CHSessionToolbarView ()<UICollectionViewDelegate, UICollectionViewDataSource, UITextFieldDelegate, NIMMediaManagerDelegate> @interface MewSessionToolbarView ()<UICollectionViewDelegate, UICollectionViewDataSource, UITextFieldDelegate, NIMMediaManagerDelegate>
/// ///
@property (nonatomic,strong) UIStackView *stackView; @property (nonatomic,strong) UIStackView *stackView;
/// ///
@@ -44,12 +44,12 @@
///view ///view
@property (nonatomic,strong) UIView * placeView; @property (nonatomic,strong) UIView * placeView;
/// ///
@property (nonatomic,strong) NSArray<MessageMenuModel *> *menuList; @property (nonatomic,strong) NSArray<MewMessageMenuModel *> *menuList;
///view ///view
@property (nonatomic,strong) CHSessionAudioRecordView *audioRecordView; @property (nonatomic,strong) MewSessionAudioRecordView *audioRecordView;
@end @end
@implementation CHSessionToolbarView @implementation MewSessionToolbarView
- (void)dealloc { - (void)dealloc {
[[NIMSDK sharedSDK].mediaManager removeDelegate:self]; [[NIMSDK sharedSDK].mediaManager removeDelegate:self];
@@ -59,15 +59,15 @@
self = [super initWithFrame:frame]; self = [super initWithFrame:frame];
if (self) { if (self) {
[[NIMSDK sharedSDK].mediaManager addDelegate:self]; [[NIMSDK sharedSDK].mediaManager addDelegate:self];
[self addNotification]; [self mew_addNotification];
[self addAudioButtonAction]; [self mew_addAudioButtonAction];
[self initSubViews]; [self initSubViews];
[self initSubViewConstraints]; [self initSubViewConstraints];
} }
return self; return self;
} }
#pragma mark - Public Method #pragma mark - Public Method
- (void)foldToolMenuView { - (void)mew_foldToolMenuView {
[self.inputView resignFirstResponder]; [self.inputView resignFirstResponder];
if (self.collectionView.hidden == NO) { if (self.collectionView.hidden == NO) {
self.collectionView.hidden = YES; self.collectionView.hidden = YES;
@@ -75,18 +75,18 @@
} }
} }
#pragma mark - Private Method #pragma mark - Private Method
- (void)addAudioButtonAction { - (void)mew_addAudioButtonAction {
///button 70px out in enter exit ///button 70px out in enter exit
[self.audioButton addTarget:self action:@selector(audioTouchDownAction) forControlEvents:UIControlEventTouchDown]; [self.audioButton addTarget:self action:@selector(mew_audioTouchDownAction) forControlEvents:UIControlEventTouchDown];
[self.audioButton addTarget:self action:@selector(audioTouchUpOutsideAction) forControlEvents:UIControlEventTouchUpOutside]; [self.audioButton addTarget:self action:@selector(mew_audioTouchUpOutsideAction) forControlEvents:UIControlEventTouchUpOutside];
[self.audioButton addTarget:self action:@selector(audioTouchUpInsideAction) forControlEvents:UIControlEventTouchUpInside]; [self.audioButton addTarget:self action:@selector(mew_audioTouchUpInsideAction) forControlEvents:UIControlEventTouchUpInside];
[self.audioButton addTarget:self action:@selector(audioTouchDragEnterAction) forControlEvents:UIControlEventTouchDragEnter]; [self.audioButton addTarget:self action:@selector(mew_audioTouchDragEnterAction) forControlEvents:UIControlEventTouchDragEnter];
[self.audioButton addTarget:self action:@selector(audioTouchDragExitAction) forControlEvents:UIControlEventTouchDragExit]; [self.audioButton addTarget:self action:@selector(mew_audioTouchDragExitAction) forControlEvents:UIControlEventTouchDragExit];
} }
- (void)addNotification { - (void)mew_addNotification {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mew_keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mew_keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
} }
- (void)initSubViews { - (void)initSubViews {
@@ -154,8 +154,8 @@
} }
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CHMessageToolMenuCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([CHMessageToolMenuCollectionViewCell class]) forIndexPath:indexPath]; MewMessageToolMenuCollectionCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMessageToolMenuCollectionCell class]) forIndexPath:indexPath];
MessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row]; MewMessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
cell.imageName = model.imageName; cell.imageName = model.imageName;
return cell; return cell;
} }
@@ -163,9 +163,9 @@
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[collectionView deselectItemAtIndexPath:indexPath animated:YES]; [collectionView deselectItemAtIndexPath:indexPath animated:YES];
if (self.menuList.count > 0) { if (self.menuList.count > 0) {
MessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row]; MewMessageMenuModel * model = [self.menuList mewSafeObjectAtIndex:indexPath.row];
if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectMenuItem:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_didSelectMenuItem:)]) {
[self.delegate didSelectMenuItem:model]; [self.delegate mew_didSelectMenuItem:model];
} }
} }
} }
@@ -173,8 +173,8 @@
#pragma mark - UITextFieldDelegate #pragma mark - UITextFieldDelegate
- (BOOL)textFieldShouldReturn:(UITextField *)textField { - (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField.text.length >0) { if (textField.text.length >0) {
if (self.delegate && [self.delegate respondsToSelector:@selector(sendTextMessage:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_sendTextMessage:)]) {
[self.delegate sendTextMessage:textField.text]; [self.delegate mew_sendTextMessage:textField.text];
textField.text = nil; textField.text = nil;
} }
} }
@@ -200,8 +200,8 @@
*/ */
- (void)recordAudio:(nullable NSString *)filePath didCompletedWithError:(nullable NSError *)error { - (void)recordAudio:(nullable NSString *)filePath didCompletedWithError:(nullable NSError *)error {
if (filePath.length > 0 && error == nil) { if (filePath.length > 0 && error == nil) {
if (self.delegate && [self.delegate respondsToSelector:@selector(audioRecordCompletion:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_audioRecordCompletion:)]) {
[self.delegate audioRecordCompletion:filePath]; [self.delegate mew_audioRecordCompletion:filePath];
} }
} }
NSLog(@"录制音频完成后的回调 %@", filePath); NSLog(@"录制音频完成后的回调 %@", filePath);
@@ -220,18 +220,18 @@
* @param currentTime * @param currentTime
*/ */
- (void)recordAudioProgress:(NSTimeInterval)currentTime { - (void)recordAudioProgress:(NSTimeInterval)currentTime {
[self.audioRecordView updateAudioRecordProgress:currentTime]; [self.audioRecordView mew_updateAudioRecordProgress:currentTime];
} }
/** /**
* *
*/ */
- (void)recordAudioInterruptionBegin { - (void)recordAudioInterruptionBegin {
[self.audioRecordView cancelAudioRecord]; [self.audioRecordView mew_cancelAudioRecord];
} }
#pragma mark - Event Response #pragma mark - Event Response
- (void)keyboardWillShow:(NSNotification *)notification { - (void)mew_keyboardWillShow:(NSNotification *)notification {
if (self.collectionView.hidden == NO) { if (self.collectionView.hidden == NO) {
self.collectionView.hidden = YES; self.collectionView.hidden = YES;
self.moreButton.selected = NO; self.moreButton.selected = NO;
@@ -245,24 +245,24 @@
NSInteger animationCurveOption = (animationCurve << 16); NSInteger animationCurveOption = (animationCurve << 16);
double animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; double animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:animationDuration delay:0.0 options:animationCurveOption animations:^{ [UIView animateWithDuration:animationDuration delay:0.0 options:animationCurveOption animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame]; [self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
} }
} completion:^(BOOL finished) { } completion:^(BOOL finished) {
}]; }];
} }
- (void)keyboardWillHidden:(NSNotification*)notification { - (void)mew_keyboardWillHidden:(NSNotification*)notification {
CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0); CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0);
[UIView animateWithDuration:0.25 animations:^{ [UIView animateWithDuration:0.25 animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame]; [self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
} }
}]; }];
} }
- (void)changeButtonAction:(UIButton *)sender { - (void)mew_changeButtonAction:(UIButton *)sender {
sender.selected = !sender.selected; sender.selected = !sender.selected;
self.inputBackView.hidden = sender.selected; self.inputBackView.hidden = sender.selected;
self.audioButton.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; sender.selected = !sender.selected;
self.collectionView.hidden = !sender.selected; self.collectionView.hidden = !sender.selected;
[self.inputView resignFirstResponder]; [self.inputView resignFirstResponder];
CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0); CGRect keyboardEndFrame = CGRectMake(0, 0, 0, 0);
[UIView animateWithDuration:0.25 animations:^{ [UIView animateWithDuration:0.25 animations:^{
if (self.delegate && [self.delegate respondsToSelector:@selector(keyboardWillChangeFrame:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(mew_keyboardWillChangeFrame:)]) {
[self.delegate keyboardWillChangeFrame:keyboardEndFrame]; [self.delegate mew_keyboardWillChangeFrame:keyboardEndFrame];
} }
}]; }];
} }
- (void)audioTouchDownAction { - (void)mew_audioTouchDownAction {
self.audioButton.selected = YES; self.audioButton.selected = YES;
/// ///
if (!self.audioRecordView.superview) { if (!self.audioRecordView.superview) {
@@ -296,34 +296,34 @@
[self.audioRecordView mas_makeConstraints:^(MASConstraintMaker *make) { [self.audioRecordView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(self.audioRecordView.superview); make.center.mas_equalTo(self.audioRecordView.superview);
}]; }];
[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];
[self.audioRecordView beginAudioRecord]; [self.audioRecordView mew_beginAudioRecord];
} }
} }
- (void)audioTouchUpOutsideAction { - (void)mew_audioTouchUpOutsideAction {
self.audioButton.selected = NO; self.audioButton.selected = NO;
/// ///
[self.audioRecordView cancelAudioRecord]; [self.audioRecordView mew_cancelAudioRecord];
[self.audioRecordView removeFromSuperview]; [self.audioRecordView removeFromSuperview];
} }
- (void)audioTouchUpInsideAction { - (void)mew_audioTouchUpInsideAction {
self.audioButton.selected = NO; self.audioButton.selected = NO;
/// ///
[self.audioRecordView finishAudioRecord]; [self.audioRecordView mew_finishAudioRecord];
[self.audioRecordView removeFromSuperview]; [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 #pragma mark - Getters And Setters
@@ -366,7 +366,7 @@
_changeButton = [UIButton buttonWithType:UIButtonTypeCustom]; _changeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_changeButton setImage:[UIImage imageNamed:@"mew_message_session_tool_text"] forState:UIControlStateNormal]; [_changeButton setImage:[UIImage imageNamed:@"mew_message_session_tool_text"] forState:UIControlStateNormal];
[_changeButton setImage:[UIImage imageNamed:@"mew_message_session_tool_audio"] forState:UIControlStateSelected]; [_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; return _changeButton;
} }
@@ -428,7 +428,7 @@
_moreButton = [UIButton buttonWithType:UIButtonTypeCustom]; _moreButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_moreButton setImage:[UIImage imageNamed:@"mew_message_session_tool_more_normal"] forState:UIControlStateNormal]; [_moreButton setImage:[UIImage imageNamed:@"mew_message_session_tool_more_normal"] forState:UIControlStateNormal];
[_moreButton setImage:[UIImage imageNamed:@"message_session_tool_more_select"] forState:UIControlStateSelected]; [_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; return _moreButton;
} }
@@ -445,7 +445,7 @@
_collectionView.delegate = self; _collectionView.delegate = self;
_collectionView.backgroundColor = [UIColor clearColor]; _collectionView.backgroundColor = [UIColor clearColor];
_collectionView.hidden = YES; _collectionView.hidden = YES;
[_collectionView registerClass:[CHMessageToolMenuCollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([CHMessageToolMenuCollectionViewCell class])]; [_collectionView registerClass:[MewMessageToolMenuCollectionCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMessageToolMenuCollectionCell class])];
} }
return _collectionView; return _collectionView;
} }
@@ -458,11 +458,11 @@
return _placeView; return _placeView;
} }
- (NSArray<MessageMenuModel *> *)menuList { - (NSArray<MewMessageMenuModel *> *)menuList {
if (!_menuList) { if (!_menuList) {
MessageMenuModel * phototModel = [[MessageMenuModel alloc] init]; MewMessageMenuModel * phototModel = [[MewMessageMenuModel alloc] init];
phototModel.imageName = @"mew_message_session_menu_photo"; phototModel.imageName = @"mew_message_session_menu_photo";
phototModel.type= MessageMenuType_Photo; phototModel.type= Mew_MessageMenuType_Photo;
@@ -471,9 +471,9 @@
return _menuList; return _menuList;
} }
- (CHSessionAudioRecordView *)audioRecordView { - (MewSessionAudioRecordView *)audioRecordView {
if (!_audioRecordView) { if (!_audioRecordView) {
_audioRecordView = [[CHSessionAudioRecordView alloc] init]; _audioRecordView = [[MewSessionAudioRecordView alloc] init];
} }
return _audioRecordView; return _audioRecordView;
} }

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
// //
// GiftInfoModel.h // MewGiftInfoModel.h
// yinmeng-ios // yinmeng-ios
// //
// Created by 触海 on 2023/11/21. // Created by 触海 on 2023/11/21.
@@ -15,13 +15,8 @@ typedef NS_ENUM(NSUInteger, GiftSendType) {
GiftSendType_OnMic = 3, //房间内给坑位上的人送礼物 GiftSendType_OnMic = 3, //房间内给坑位上的人送礼物
}; };
///礼物播放类型0 无, 1 MP4、VAP播放)
typedef NS_ENUM(NSUInteger, GiftOtherViewType) {
GiftOtherViewTypeNormal = 0,
GiftOtherViewTypeMp4 = 1,
};
@interface GiftInfoModel : NSObject @interface MewGiftInfoModel : NSObject
///礼物id ///礼物id
@property (nonatomic, assign)NSInteger giftId; @property (nonatomic, assign)NSInteger giftId;
///礼物名字 ///礼物名字
@@ -30,17 +25,6 @@ typedef NS_ENUM(NSUInteger, GiftOtherViewType) {
@property (nonatomic, assign)double goldPrice; @property (nonatomic, assign)double goldPrice;
///礼物url ///礼物url
@property (nonatomic, copy)NSString *giftUrl; @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 @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 // yinmeng-ios
// //
// Created by 触海 on 2023/11/21. // Created by 触海 on 2023/11/21.
// //
#import "NSObject+MEWExtension.h" #import "NSObject+MEWExtension.h"
#import "GiftInfoModel.h" #import "MewGiftInfoModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface GiftReceiveInfoModel : NSObject @interface MewGiftReceiveInfoModel : NSObject
///目标的uid ///目标的uid
@property(nonatomic,copy)NSString * targetUid; @property(nonatomic,copy)NSString * targetUid;
///目标的头像 ///目标的头像
@@ -19,9 +19,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString *targetNick; @property (nonatomic,copy) NSString *targetNick;
@property (nonatomic,strong) NSArray<NSString *> *targetUids; @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 ///送礼物的人uid
@property(nonatomic, assign)NSString * uid; @property(nonatomic, assign)NSString * uid;
///礼物的id ///礼物的id
@@ -34,10 +34,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic) NSInteger giftNum; @property (assign, nonatomic) NSInteger giftNum;
///礼物名字 ///礼物名字
@property (nonatomic,strong)NSString *giftName; @property (nonatomic,strong)NSString *giftName;
///动效url
@property (copy,nonatomic) NSString *vggUrl;
///vap动效url
@property (nonatomic, copy) NSString *viewUrl;
// 这里先写死string // 这里先写死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 // yinmeng-ios
// //
// Created by 触海 on 2023/11/21. // Created by 触海 on 2023/11/21.
// //
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
@class GiftInfoModel; @class MewGiftInfoModel;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface YMGiftStorage : NSObject @interface MewGiftStorage : NSObject
+ (instancetype)shareStorage; + (instancetype)shareStorage;
- (instancetype)init NS_UNAVAILABLE; - (instancetype)init NS_UNAVAILABLE;
- (instancetype)copy NS_UNAVAILABLE; - (instancetype)copy NS_UNAVAILABLE;
- (instancetype)mutableCopy 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 uid
@@ -25,10 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
*/ */
/// 获取当前房间的数据中的礼物 /// 获取当前房间的数据中的礼物
/// @param giftId 礼物的id /// @param giftId 礼物的id
- (GiftInfoModel *)findGiftInfo:(NSString *)giftId; - (MewGiftInfoModel *)mew_findGiftInfo:(NSString *)giftId;
///礼物数据写入本地
- (void)writeGiftToDirectory:(NSArray *)array;
@end @end
NS_ASSUME_NONNULL_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 "Api.h"
#import "RoomInfoModel.h" #import "MewRoomInfoModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param complection 完成 /// @param complection 完成
/// @param uid 用户的uid /// @param uid 用户的uid
/// @param intoUid 自己的Uid 判断当前进房用户是否是平台超管 判断进房用户是否开启青少年 /// @param intoUid 自己的Uid 判断当前进房用户是否是平台超管 判断进房用户是否开启青少年
+ (void)getRoomInformation:(HttpRequestHelperCompletion)complection + (void)Mew_GetRoomInformation:(HttpRequestHelperCompletion)complection
uid:(NSString *)uid uid:(NSString *)uid
intoUid:(NSString *)intoUid; intoUid:(NSString *)intoUid;
@@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid 用户的uid /// @param uid 用户的uid
/// @param ticket 用户的ticket /// @param ticket 用户的ticket
/// @param mgId 小游戏的id /// @param mgId 小游戏的id
+ (void)openRoom:(HttpRequestHelperCompletion)complection + (void)Mew_OpenRoom:(HttpRequestHelperCompletion)complection
title:(NSString *)title title:(NSString *)title
type:(RoomType)type type:(RoomType)type
roomPwd:(NSString *)roomPwd roomPwd:(NSString *)roomPwd
@@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomId 房间的id /// @param roomId 房间的id
/// @param position 坑位的序号 /// @param position 坑位的序号
/// @param ticket ticket /// @param ticket ticket
+ (void)roomMicUpMic:(HttpRequestHelperCompletion)complection + (void)Mew_RoomMicUpMic:(HttpRequestHelperCompletion)complection
micUid:(NSString *)micUid micUid:(NSString *)micUid
roomId:(NSString *)roomId roomId:(NSString *)roomId
position:(NSString *)position position:(NSString *)position
@@ -59,7 +59,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomId 房间的id /// @param roomId 房间的id
/// @param position 坑位的序号 /// @param position 坑位的序号
/// @param ticket ticket /// @param ticket ticket
+ (void)roomMicDownMic:(HttpRequestHelperCompletion)complection + (void)Mew_RoomMicDownMic:(HttpRequestHelperCompletion)complection
micUid:(NSString *)micUid micUid:(NSString *)micUid
roomId:(NSString *)roomId roomId:(NSString *)roomId
position:(NSString *)position position:(NSString *)position
@@ -71,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid uid /// @param uid uid
/// @param type 1 收藏 2 取消收藏 3批量取消收藏 /// @param type 1 收藏 2 取消收藏 3批量取消收藏
/// @param roomUids 批量删除的房间uid,用逗号隔开 /// @param roomUids 批量删除的房间uid,用逗号隔开
+ (void)collectRoom:(HttpRequestHelperCompletion)completion + (void)Mew_CollectRoom:(HttpRequestHelperCompletion)completion
roomUid:(NSString *)roomUid roomUid:(NSString *)roomUid
uid:(NSString *)uid uid:(NSString *)uid
type:(NSString *)type type:(NSString *)type
@@ -82,14 +82,14 @@ NS_ASSUME_NONNULL_BEGIN
/// @param uid 用户uid /// @param uid 用户uid
/// @param roomUid 房间uid /// @param roomUid 房间uid
/// @param ticket ticket /// @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 completion 完成
/// @param uid 用户uid /// @param uid 用户uid
/// @param roomUid 房间uid /// @param roomUid 房间uid
/// @param ticket ticket /// @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 @end

View File

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

View File

@@ -1,5 +1,5 @@
// //
// RoomInfoModel.h // MewRoomInfoModel.h
// mew-ios // mew-ios
// //
// Created by 触海 on 2023/11/7. // Created by 触海 on 2023/11/7.
@@ -14,7 +14,7 @@ typedef NS_ENUM(NSInteger, RoomType) {
RoomType_MiniGame = 7//小游戏房 RoomType_MiniGame = 7//小游戏房
}; };
@interface RoomInfoModel : NSObject @interface MewRoomInfoModel : NSObject
@property (nonatomic , copy) NSString *avatar; //房间头像 @property (nonatomic , copy) NSString *avatar; //房间头像
@property (nonatomic , assign) NSInteger onlineNum; //在线人数 @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 // mew-ios
// //
// Created by 触海 on 2023/11/7. // Created by 触海 on 2023/11/7.
// //
#import "BaseMvpPresenter.h" #import "BaseMvpPresenter.h"
#import "RoomInfoModel.h" #import "MewRoomInfoModel.h"
@class UserInfoModel; @class UserInfoModel;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface YMRoomPresenter : BaseMvpPresenter @interface MewRoomPresenter : BaseMvpPresenter
/// 进入房间 /// 进入房间
/// - Parameters: /// - Parameters:
/// - roomUid: 房间Uid /// - roomUid: 房间Uid
/// - uid: 用户Uid /// - uid: 用户Uid
- (void)initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid; - (void)mew_initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid;
/// 云信进房 /// 云信进房
/// - Parameters: /// - Parameters:
/// - roomUid: 房间Uid /// - roomUid: 房间Uid
/// - userInfo: 用户Uid /// - userInfo: 用户Uid
- (void)enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo; - (void)mew_enterNIMCurrentRoom:(NSString *)roomUid user:(UserInfoModel *)userInfo;
/// 云信退房 /// 云信退房
/// - Parameter roomUid: 房间Uid /// - Parameter roomUid: 房间Uid
- (void)exitNIMCurrentRoom:(NSString *)roomUid; - (void)mew_exitNIMCurrentRoom:(NSString *)roomUid;
/// 开启用户自己的房间 /// 开启用户自己的房间
/// @param title 房间标题 /// @param title 房间标题
@@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param roomDesc 房间介绍 /// @param roomDesc 房间介绍
/// @param backPic 房间背景 /// @param backPic 房间背景
/// @param mgId 小游戏的id /// @param mgId 小游戏的id
- (void)openUserRoom:(NSString *)title - (void)mew_openUserRoom:(NSString *)title
type:(RoomType)type type:(RoomType)type
roomPwd:(NSString *)roomPwd roomPwd:(NSString *)roomPwd
roomDesc:(NSString *)roomDesc roomDesc:(NSString *)roomDesc
@@ -45,16 +45,16 @@ NS_ASSUME_NONNULL_BEGIN
/// 上报用户进房 /// 上报用户进房
/// @param roomUid 房间uid /// @param roomUid 房间uid
- (void)reportUserInterRoom:(NSString *)roomUid; - (void)mew_reportUserInterRoom:(NSString *)roomUid;
/// 上报用户退房 /// 上报用户退房
/// @param roomUid 房间uid /// @param roomUid 房间uid
- (void)reportUserOutRoom:(NSString *)roomUid; - (void)mew_reportUserOutRoom:(NSString *)roomUid;
/// Mew 送礼物 /// Mew 送礼物
/// @param targetUids 送礼物的人 /// @param targetUids 送礼物的人
/// @param roomUid 房主的uid /// @param roomUid 房主的uid
- (void)sendGift:(NSString *)targetUids - (void)mew_sendRoomGift:(NSString *)targetUids
roomUid:(NSString *)roomUid; roomUid:(NSString *)roomUid;
@end @end

View File

@@ -1,36 +1,36 @@
// //
// YMRoomPresenter.m // MewRoomPresenter.m
// mew-ios // mew-ios
// //
// Created by on 2023/11/7. // Created by on 2023/11/7.
// //
#import "YMRoomPresenter.h" #import "MewRoomPresenter.h"
///Api ///Api
#import "Api+Room.h" #import "Api+Room.h"
#import "Api+Gift.h" #import "Api+Gift.h"
///Model ///Model
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "RoomInfoModel.h" #import "MewRoomInfoModel.h"
#import "AccountInfoStorage.h" #import "AccountInfoStorage.h"
#import "YMMessageRemoteExtModel.h" #import "MewMessageRemoteExtModel.h"
#import "GiftReceiveInfoModel.h" #import "MewGiftReceiveInfoModel.h"
///P ///P
#import "YMRoomProtocol.h" #import "MewRoomProtocol.h"
///Third ///Third
#import <ReactiveObjC/ReactiveObjC.h> #import <ReactiveObjC/ReactiveObjC.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
@implementation YMRoomPresenter @implementation MewRoomPresenter
#pragma mark - Public Method #pragma mark - Public Method
- (void)initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid { - (void)mew_initEnterCurrentRoom:(NSString *)roomUid user:(NSString *)uid {
RACSubject *room = [RACSubject subject]; RACSubject *room = [RACSubject subject];
RACSubject *user = [RACSubject subject]; RACSubject *user = [RACSubject subject];
/// RAC /// RAC
[[RACSignal combineLatest:@[room, user] reduce:^id(RoomInfoModel *room, UserInfoModel *user){ [[RACSignal combineLatest:@[room, user] reduce:^id(MewRoomInfoModel *room, UserInfoModel *user){
[[self getView] initEnterCurrentRoomSuccess:room user:user]; [[self getView] mew_initEnterCurrentRoomSuccess:room user:user];
return nil; return nil;
}] subscribeError:^(NSError * _Nullable error) { }] subscribeError:^(NSError * _Nullable error) {
[[self getView] enterCurrentRoomFail:error.code]; [[self getView] enterCurrentRoomFail:error.code];
@@ -47,8 +47,8 @@
}] uid:uid]; }] uid:uid];
/// ///
[Api getRoomInformation:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api Mew_GetRoomInformation:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
RoomInfoModel *roomInfo = [RoomInfoModel mewModelWithJSON:data.data]; MewRoomInfoModel *roomInfo = [MewRoomInfoModel mewModelWithJSON:data.data];
[room sendNext:roomInfo]; [room sendNext:roomInfo];
[room sendCompleted]; [room sendCompleted];
} fail:^(NSInteger code, NSString * _Nullable msg) { } 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]; NIMChatroomEnterRequest *request = [[NIMChatroomEnterRequest alloc] init];
request.roomId = roomUid; request.roomId = roomUid;
YMMessageRemoteExtModel *extModel = [[YMMessageRemoteExtModel alloc] init]; MewMessageRemoteExtModel *extModel = [[MewMessageRemoteExtModel alloc] init];
extModel.erbanNo = userInfo.erbanNo; extModel.erbanNo = userInfo.erbanNo;
extModel.vipIcon = userInfo.userVipInfoVO.vipIcon; extModel.vipIcon = userInfo.userVipInfoVO.vipIcon;
extModel.gender = userInfo.gender; extModel.gender = userInfo.gender;
@@ -77,7 +77,7 @@
} }
/// 退 /// 退
- (void)exitNIMCurrentRoom:(NSString *)roomUid { - (void)mew_exitNIMCurrentRoom:(NSString *)roomUid {
[[NIMSDK sharedSDK].chatroomManager exitChatroom:roomUid completion:nil]; [[NIMSDK sharedSDK].chatroomManager exitChatroom:roomUid completion:nil];
} }
@@ -89,7 +89,7 @@
/// @param roomDesc /// @param roomDesc
/// @param backPic /// @param backPic
/// @param mgId id /// @param mgId id
- (void)openUserRoom:(NSString *)title - (void)mew_openUserRoom:(NSString *)title
type:(RoomType)type type:(RoomType)type
roomPwd:(NSString *)roomPwd roomPwd:(NSString *)roomPwd
roomDesc:(NSString *)roomDesc roomDesc:(NSString *)roomDesc
@@ -117,8 +117,8 @@
mgId = @"0"; mgId = @"0";
} }
[Api openRoom:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api Mew_OpenRoom:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
RoomInfoModel *roomInfo = [RoomInfoModel mewModelWithJSON:data.data]; MewRoomInfoModel *roomInfo = [MewRoomInfoModel mewModelWithJSON:data.data];
[[self getView] openCurrentRoomSuccess:roomInfo]; [[self getView] openCurrentRoomSuccess:roomInfo];
} fail:^(NSInteger code, NSString * _Nullable msg) { } fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] enterCurrentRoomFail:code]; [[self getView] enterCurrentRoomFail:code];
@@ -127,11 +127,11 @@
/// ///
/// @param roomUid uid /// @param roomUid uid
- (void)reportUserInterRoom:(NSString *)roomUid { - (void)mew_reportUserInterRoom:(NSString *)roomUid {
if ([[AccountInfoStorage instance] getTicket].length < 1) { if ([[AccountInfoStorage instance] getTicket].length < 1) {
return; 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]]; } uid:[[AccountInfoStorage instance] getUid] roomUid:roomUid ticket:[[AccountInfoStorage instance] getTicket]];
} }
@@ -139,11 +139,11 @@
/// 退 /// 退
/// @param roomUid uid /// @param roomUid uid
- (void)reportUserOutRoom:(NSString *)roomUid { - (void)mew_reportUserOutRoom:(NSString *)roomUid {
if ([[AccountInfoStorage instance] getTicket].length < 1) { if ([[AccountInfoStorage instance] getTicket].length < 1) {
return; 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]]; } uid:[[AccountInfoStorage instance] getUid] roomUid:roomUid ticket:[[AccountInfoStorage instance] getTicket]];
} }
@@ -151,7 +151,7 @@
/// Mew /// Mew
/// @param targetUids /// @param targetUids
/// @param roomUid uid /// @param roomUid uid
- (void)sendGift:(NSString *)targetUids - (void)mew_sendRoomGift:(NSString *)targetUids
roomUid:(NSString *)roomUid { roomUid:(NSString *)roomUid {
NSString *uid = [AccountInfoStorage instance].getUid; NSString *uid = [AccountInfoStorage instance].getUid;
NSString *giftNum = @"1"; NSString *giftNum = @"1";
@@ -166,14 +166,14 @@
// //
NSString *roomSendType = @"3"; NSString *roomSendType = @"3";
[Api requestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api Mew_RequestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GiftReceiveInfoModel *receive = [GiftReceiveInfoModel mewModelWithJSON:data.data]; MewGiftReceiveInfoModel *receive = [MewGiftReceiveInfoModel mewModelWithJSON:data.data];
receive.sourceType = giftSource; receive.sourceType = giftSource;
receive.roomSendGiftType = roomSendType; 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) { } 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]; }] 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 // mew-ios
// //
// Created by 触海 on 2023/11/7. // Created by 触海 on 2023/11/7.
// //
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
@class RoomInfoModel, NIMChatroom, GiftReceiveInfoModel; @class MewRoomInfoModel, NIMChatroom, MewGiftReceiveInfoModel;
NS_ASSUME_NONNULL_BEGIN 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)enterCurrentRoomSuccess:(NIMChatroom *)chatRoom;
///进入房间失败(当前获取用户信息、获取房间信息、开启房间、进入云信房间失败,均会导致进房失败) ///进入房间失败(当前获取用户信息、获取房间信息、开启房间、进入云信房间失败,均会导致进房失败)
- (void)enterCurrentRoomFail:(NSInteger)code; - (void)enterCurrentRoomFail:(NSInteger)code;
///获取当前房间的信息,个播房 ///获取当前房间的信息,个播房
//- (void)getCurrentRoomInfoSuccess:(RoomInfoModel *_Nullable)roomInfo; //- (void)getCurrentRoomInfoSuccess:(MewRoomInfoModel *_Nullable)roomInfo;
/// Mew 送礼物成功。房间内给麦位上的某个用户送普通的薯片礼物,默认写死 /// 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 @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

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

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