Compare commits

...

10 Commits

Author SHA1 Message Date
edwinQQQ
3a817bb947 在 MsRoomMessageMainView 和 XPRoomMessageContainerView 中添加了主线程调度以确保 UI 更新的安全性,同时实现了安全插入逻辑以处理数据与 UI 不一致的情况,优化了本地化字符串以提升用户体验。 2025-09-22 16:18:07 +08:00
edwinQQQ
ae0f1993e3 移除公共房间管理器中的配置更新通知逻辑,新增 RtcManager 的代理更新方法以支持动态代理切换,优化 StageViewManager 的清理逻辑,确保在清理过程中正确处理视图层级和内存管理,同时更新本地化字符串以提升用户体验。 2025-09-22 15:22:07 +08:00
edwinQQQ
024936570c 优化音量评估参数,将最大评估时间从900毫秒更改为300毫秒;在处理公共房间消息时,新增对 NIM 通知对象的类型检查,确保在特定事件类型下不进行处理;扩展礼物和游戏相关的横幅清理逻辑,确保在特定条件下正确移除横幅;新增清理 CP 相关横幅的逻辑,确保在关闭礼物特效时不再展示;实现麦克风队列的深度复制,确保数据一致性;重置声波动画状态以避免视图复用问题。 2025-09-19 23:17:56 +08:00
edwinQQQ
33e42234ca 删除当前用户切换麦克风时的云信消息发送流程文档,并修复视频时长检查逻辑,将最大时长从555秒更改为10秒,同时更新本地化字符串以反映此更改。确保代码整洁性和可读性。 2025-09-19 17:36:35 +08:00
edwinQQQ
11795a57a1 注释掉了处理 NIM 通知消息中的用户 ID 比较逻辑,以提升代码整洁性和可读性。 2025-09-19 12:01:16 +08:00
edwinQQQ
55e78cade4 移除旧的房间进度条背景图像,新增房间进度条组图像,并更新相关的 Contents.json 文件以反映更改。同时,注释掉了比值标签的发光和描边效果代码,以提升代码整洁性。 2025-09-19 11:52:24 +08:00
edwinQQQ
651db0121b 移除多个文件中的 TODO 注释,提升代码整洁性和可读性。 2025-09-18 17:36:53 +08:00
edwinQQQ
22c7cdb1e8 移除多个文件中的 TODO 注释,优化代码可读性,增强逻辑清晰度。 2025-09-18 14:30:21 +08:00
edwinQQQ
ddd54b96c5 移除与“精灵夺宝”相关的代码和逻辑,优化 UI 元素的约束设置,增强按钮的适应性和可读性,同时更新本地化字符串以确保准确性。 2025-09-18 14:22:39 +08:00
edwinQQQ
888098e2a5 移除“精灵夺宝”相关内容 2025-09-18 11:23:48 +08:00
185 changed files with 860 additions and 15442 deletions

View File

@@ -264,66 +264,6 @@
237FD35D2C0F187B00B5335C /* pi_app_logo_new_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 237FD35C2C0F187B00B5335C /* pi_app_logo_new_bg.png */; };
238A90072BA9729200828123 /* PIUniversalBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238A90062BA9729200828123 /* PIUniversalBannerView.m */; };
238A900A2BA9756600828123 /* PIUniversalBannerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238A90092BA9756600828123 /* PIUniversalBannerModel.m */; };
238B37A32AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */; };
238B37A42AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */; };
238B37A52AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */; };
238B37A62AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */; };
238B37A72AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */; };
238B37A82AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */; };
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */; };
238B37AA2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */; };
238B37AB2AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */; };
238B37AC2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */; };
238B37AD2AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */; };
238B37AE2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */; };
238B37AF2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */; };
238B37B02AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */; };
238B37B12AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */; };
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */; };
238B37B32AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */; };
238B37B42AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */; };
238B37B52AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */; };
238B37B62AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */; };
238B37B72AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */; };
238B37B82AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */; };
238B37B92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */; };
238B37BA2AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */; };
238B37BB2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */; };
238B37BC2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */; };
238B37BD2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */; };
238B37BE2AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */; };
238B37BF2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */; };
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */; };
238B37C12AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */; };
238B37C22AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */; };
238B37C32AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */; };
238B37C42AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */; };
238B37C52AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */; };
238B37C62AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */; };
238B37C72AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */; };
238B37C82AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */; };
238B37C92AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */; };
238B37CA2AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */; };
238B37CB2AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */; };
238B37CC2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */; };
238B37CD2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */; };
238B37CE2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */; };
238B37CF2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */; };
238B37D02AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */; };
238B37D12AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */; };
238B37D22AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */; };
238B37D32AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */; };
238B37D42AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */; };
238B37D52AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */; };
238B37D62AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */; };
238B37D72AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */; };
238B37D82AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */; };
238B37D92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */; };
238B37DA2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */; };
238B37DB2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */; };
238B37DC2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */; };
238B37DD2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */; };
238B37DE2AC55A2C00BFC9D5 /* Api+TreasureFairy.m in Sources */ = {isa = PBXBuildFile; fileRef = 238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */; };
238ED83A2AE2891D0014EF9D /* PIRoomEnterRedPacketView.m in Sources */ = {isa = PBXBuildFile; fileRef = 238ED8392AE2891D0014EF9D /* PIRoomEnterRedPacketView.m */; };
239141C62AE129F700322CA9 /* PIInputScrollingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239141C52AE129F700322CA9 /* PIInputScrollingView.m */; };
239141C92AE1358F00322CA9 /* PIInputEntireServerScrollingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 239141C82AE1358F00322CA9 /* PIInputEntireServerScrollingView.m */; };
@@ -427,9 +367,6 @@
23E9E9AA2A80FDF100B792F2 /* XPNewMineHallIncomeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9A92A80FDF100B792F2 /* XPNewMineHallIncomeCell.m */; };
23E9E9B72A82200500B792F2 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 23E9E9B62A82200500B792F2 /* GoogleService-Info.plist */; };
23E9EA6B2A83808000B792F2 /* ContentTreasureFairyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA6A2A83808000B792F2 /* ContentTreasureFairyModel.m */; };
23E9EA792A8385CC00B792F2 /* XPTreasureFairyGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */; };
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */; };
23E9EA7F2A839B2F00B792F2 /* MessageTreasureFairyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */; };
23E9EA842A84B6FD00B792F2 /* XPMineUserInfoTagModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA802A84B6FC00B792F2 /* XPMineUserInfoTagModel.m */; };
23E9EA852A84B6FD00B792F2 /* XPSoundCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA832A84B6FD00B792F2 /* XPSoundCardModel.m */; };
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA862A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m */; };
@@ -2226,127 +2163,6 @@
238A90062BA9729200828123 /* PIUniversalBannerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIUniversalBannerView.m; sourceTree = "<group>"; };
238A90082BA9756600828123 /* PIUniversalBannerModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIUniversalBannerModel.h; sourceTree = "<group>"; };
238A90092BA9756600828123 /* PIUniversalBannerModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIUniversalBannerModel.m; sourceTree = "<group>"; };
238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyPresenter.m; sourceTree = "<group>"; };
238B37252AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyPresenter.h; sourceTree = "<group>"; };
238B37272AC55A2C00BFC9D5 /* XPTreasureFailyProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyProtocol.h; sourceTree = "<group>"; };
238B37292AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyConvertRecordModel.h; sourceTree = "<group>"; };
238B372A2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyInfoModel.h; sourceTree = "<group>"; };
238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyLimitModel.m; sourceTree = "<group>"; };
238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFailyKeyInfoModel.m; sourceTree = "<group>"; };
238B372D2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFailryMessageModel.h; sourceTree = "<group>"; };
238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairySendRecordModel.m; sourceTree = "<group>"; };
238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyRewardModel.m; sourceTree = "<group>"; };
238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyTrialsRecordModel.m; sourceTree = "<group>"; };
238B37312AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyBallInfoModel.h; sourceTree = "<group>"; };
238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyUserInfoModel.m; sourceTree = "<group>"; };
238B37332AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyFragmentModel.h; sourceTree = "<group>"; };
238B37342AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFailyKeyInfoModel.h; sourceTree = "<group>"; };
238B37352AC55A2C00BFC9D5 /* TreasureFairyLimitModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyLimitModel.h; sourceTree = "<group>"; };
238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyInfoModel.m; sourceTree = "<group>"; };
238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyConvertRecordModel.m; sourceTree = "<group>"; };
238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFailryMessageModel.m; sourceTree = "<group>"; };
238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyBallInfoModel.m; sourceTree = "<group>"; };
238B373A2AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyTrialsRecordModel.h; sourceTree = "<group>"; };
238B373B2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyRewardModel.h; sourceTree = "<group>"; };
238B373C2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairySendRecordModel.h; sourceTree = "<group>"; };
238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureFairyFragmentModel.m; sourceTree = "<group>"; };
238B373E2AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureFairyUserInfoModel.h; sourceTree = "<group>"; };
238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyViewController.m; sourceTree = "<group>"; };
238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultCell.m; sourceTree = "<group>"; };
238B37432AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordCell.h; sourceTree = "<group>"; };
238B37442AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyResultGiftCell.h; sourceTree = "<group>"; };
238B37452AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendRecordCell.h; sourceTree = "<group>"; };
238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyFriendCell.m; sourceTree = "<group>"; };
238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizePoolCell.m; sourceTree = "<group>"; };
238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeRecordCell.m; sourceTree = "<group>"; };
238B37492AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsRecordCell.h; sourceTree = "<group>"; };
238B374A2AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingExchangeCell.h; sourceTree = "<group>"; };
238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonCell.m; sourceTree = "<group>"; };
238B374C2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultCell.h; sourceTree = "<group>"; };
238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyResultGiftCell.m; sourceTree = "<group>"; };
238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordCell.m; sourceTree = "<group>"; };
238B374F2AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyFriendCell.h; sourceTree = "<group>"; };
238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendRecordCell.m; sourceTree = "<group>"; };
238B37512AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeRecordCell.h; sourceTree = "<group>"; };
238B37522AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizePoolCell.h; sourceTree = "<group>"; };
238B37532AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonCell.h; sourceTree = "<group>"; };
238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingExchangeCell.m; sourceTree = "<group>"; };
238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsRecordCell.m; sourceTree = "<group>"; };
238B37572AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordSubView.h; sourceTree = "<group>"; };
238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyFriendView.m; sourceTree = "<group>"; };
238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySummonView.m; sourceTree = "<group>"; };
238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendView.m; sourceTree = "<group>"; };
238B375B2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendRecordView.h; sourceTree = "<group>"; };
238B375C2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySummonGiftView.h; sourceTree = "<group>"; };
238B375D2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyDrawView.h; sourceTree = "<group>"; };
238B375E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingView.h; sourceTree = "<group>"; };
238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsContentView.m; sourceTree = "<group>"; };
238B37602AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsBallView.h; sourceTree = "<group>"; };
238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBottomView.m; sourceTree = "<group>"; };
238B37622AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsView.h; sourceTree = "<group>"; };
238B37632AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardView.h; sourceTree = "<group>"; };
238B37642AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailrySummonBallView.h; sourceTree = "<group>"; };
238B37652AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyShopingRecordView.h; sourceTree = "<group>"; };
238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultView.m; sourceTree = "<group>"; };
238B37672AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyExchangeView.h; sourceTree = "<group>"; };
238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPoolRecordView.m; sourceTree = "<group>"; };
238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyNewSummonView.m; sourceTree = "<group>"; };
238B376A2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBallView.h; sourceTree = "<group>"; };
238B376B2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardSuccessView.h; sourceTree = "<group>"; };
238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyDrawSubView.m; sourceTree = "<group>"; };
238B376D2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PITreasureFairyBuyElfShardInputNumView.h; sourceTree = "<group>"; };
238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMessageSendView.m; sourceTree = "<group>"; };
238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBallContentView.m; sourceTree = "<group>"; };
238B37702AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsRecordView.h; sourceTree = "<group>"; };
238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMoreView.m; sourceTree = "<group>"; };
238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyMyView.m; sourceTree = "<group>"; };
238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeRecordView.m; sourceTree = "<group>"; };
238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyPrizeGiftView.m; sourceTree = "<group>"; };
238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreResultSmallView.m; sourceTree = "<group>"; };
238B37762AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreView.h; sourceTree = "<group>"; };
238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizePoolView.m; sourceTree = "<group>"; };
238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyWebView.m; sourceTree = "<group>"; };
238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyPrizeSubView.m; sourceTree = "<group>"; };
238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailyResultView.m; sourceTree = "<group>"; };
238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyDrawView.m; sourceTree = "<group>"; };
238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySendRecordView.m; sourceTree = "<group>"; };
238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairySummonGiftView.m; sourceTree = "<group>"; };
238B377E2AC55A2C00BFC9D5 /* XPTreasureFairySendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySendView.h; sourceTree = "<group>"; };
238B377F2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairySummonView.h; sourceTree = "<group>"; };
238B37802AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyFriendView.h; sourceTree = "<group>"; };
238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordSubView.m; sourceTree = "<group>"; };
238B37822AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPoolRecordView.h; sourceTree = "<group>"; };
238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyExchangeView.m; sourceTree = "<group>"; };
238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingRecordView.m; sourceTree = "<group>"; };
238B37852AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultView.h; sourceTree = "<group>"; };
238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFailrySummonBallView.m; sourceTree = "<group>"; };
238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardView.m; sourceTree = "<group>"; };
238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsView.m; sourceTree = "<group>"; };
238B37892AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBottomView.h; sourceTree = "<group>"; };
238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsBallView.m; sourceTree = "<group>"; };
238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyShopingView.m; sourceTree = "<group>"; };
238B378C2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyTrialsContentView.h; sourceTree = "<group>"; };
238B378D2AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMoreView.h; sourceTree = "<group>"; };
238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyTrialsRecordView.m; sourceTree = "<group>"; };
238B378F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyBallContentView.h; sourceTree = "<group>"; };
238B37902AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMessageSendView.h; sourceTree = "<group>"; };
238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardInputNumView.m; sourceTree = "<group>"; };
238B37922AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyDrawSubView.h; sourceTree = "<group>"; };
238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PITreasureFairyBuyElfShardSuccessView.m; sourceTree = "<group>"; };
238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyBallView.m; sourceTree = "<group>"; };
238B37952AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyNewSummonView.h; sourceTree = "<group>"; };
238B37962AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeSubView.h; sourceTree = "<group>"; };
238B37972AC55A2C00BFC9D5 /* XPTreasureFailyResultView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyResultView.h; sourceTree = "<group>"; };
238B37982AC55A2C00BFC9D5 /* XPTreasureFairyWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyWebView.h; sourceTree = "<group>"; };
238B37992AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizePoolView.h; sourceTree = "<group>"; };
238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyStoreView.m; sourceTree = "<group>"; };
238B379B2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyStoreResultSmallView.h; sourceTree = "<group>"; };
238B379C2AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFailyPrizeGiftView.h; sourceTree = "<group>"; };
238B379D2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyPrizeRecordView.h; sourceTree = "<group>"; };
238B379E2AC55A2C00BFC9D5 /* XPTreasureFairyMyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyMyView.h; sourceTree = "<group>"; };
238B379F2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyViewController.h; sourceTree = "<group>"; };
238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+TreasureFairy.m"; sourceTree = "<group>"; };
238B37A22AC55A2C00BFC9D5 /* Api+TreasureFairy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+TreasureFairy.h"; sourceTree = "<group>"; };
238ED8382AE2891D0014EF9D /* PIRoomEnterRedPacketView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIRoomEnterRedPacketView.h; sourceTree = "<group>"; };
238ED8392AE2891D0014EF9D /* PIRoomEnterRedPacketView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIRoomEnterRedPacketView.m; sourceTree = "<group>"; };
239141C42AE129F700322CA9 /* PIInputScrollingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIInputScrollingView.h; sourceTree = "<group>"; };
@@ -2543,12 +2359,6 @@
23E9E9B62A82200500B792F2 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
23E9EA692A83808000B792F2 /* ContentTreasureFairyModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentTreasureFairyModel.h; sourceTree = "<group>"; };
23E9EA6A2A83808000B792F2 /* ContentTreasureFairyModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContentTreasureFairyModel.m; sourceTree = "<group>"; };
23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPTreasureFairyGiftView.m; sourceTree = "<group>"; };
23E9EA782A8385CC00B792F2 /* XPTreasureFairyGiftView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPTreasureFairyGiftView.h; sourceTree = "<group>"; };
23E9EA7A2A83977300B792F2 /* MessageContentTreasureFairyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageContentTreasureFairyView.h; sourceTree = "<group>"; };
23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageContentTreasureFairyView.m; sourceTree = "<group>"; };
23E9EA7D2A839B2F00B792F2 /* MessageTreasureFairyModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageTreasureFairyModel.h; sourceTree = "<group>"; };
23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageTreasureFairyModel.m; sourceTree = "<group>"; };
23E9EA802A84B6FC00B792F2 /* XPMineUserInfoTagModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoTagModel.m; sourceTree = "<group>"; };
23E9EA812A84B6FC00B792F2 /* XPSoundCardModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPSoundCardModel.h; sourceTree = "<group>"; };
23E9EA822A84B6FC00B792F2 /* XPMineUserInfoTagModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoTagModel.h; sourceTree = "<group>"; };
@@ -5649,8 +5459,6 @@
18F403A72758B67900A6C548 /* Content */ = {
isa = PBXGroup;
children = (
23E9EA7A2A83977300B792F2 /* MessageContentTreasureFairyView.h */,
23E9EA7B2A83977400B792F2 /* MessageContentTreasureFairyView.m */,
E81060D62987613E00B772F0 /* SesssionModel */,
18F403A32758B5F900A6C548 /* MessageContentProtocol.h */,
E885D53A2977FBFD004DC088 /* MessageTimeView.h */,
@@ -6312,190 +6120,6 @@
path = Api;
sourceTree = "<group>";
};
238B37222AC55A2C00BFC9D5 /* TreasureFairy */ = {
isa = PBXGroup;
children = (
238B37232AC55A2C00BFC9D5 /* Presenter */,
238B37262AC55A2C00BFC9D5 /* Protocol */,
238B37282AC55A2C00BFC9D5 /* Model */,
238B373F2AC55A2C00BFC9D5 /* View */,
238B37A02AC55A2C00BFC9D5 /* Api */,
);
path = TreasureFairy;
sourceTree = "<group>";
};
238B37232AC55A2C00BFC9D5 /* Presenter */ = {
isa = PBXGroup;
children = (
238B37242AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m */,
238B37252AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.h */,
);
path = Presenter;
sourceTree = "<group>";
};
238B37262AC55A2C00BFC9D5 /* Protocol */ = {
isa = PBXGroup;
children = (
238B37272AC55A2C00BFC9D5 /* XPTreasureFailyProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
};
238B37282AC55A2C00BFC9D5 /* Model */ = {
isa = PBXGroup;
children = (
238B37292AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.h */,
238B372A2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.h */,
238B372B2AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m */,
238B372C2AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m */,
238B372D2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.h */,
238B372E2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m */,
238B372F2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m */,
238B37302AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m */,
238B37312AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.h */,
238B37322AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m */,
238B37332AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.h */,
238B37342AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.h */,
238B37352AC55A2C00BFC9D5 /* TreasureFairyLimitModel.h */,
238B37362AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m */,
238B37372AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m */,
238B37382AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m */,
238B37392AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m */,
238B373A2AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.h */,
238B373B2AC55A2C00BFC9D5 /* TreasureFairyRewardModel.h */,
238B373C2AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.h */,
238B373D2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m */,
238B373E2AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.h */,
);
path = Model;
sourceTree = "<group>";
};
238B373F2AC55A2C00BFC9D5 /* View */ = {
isa = PBXGroup;
children = (
238B37412AC55A2C00BFC9D5 /* Cell */,
238B37562AC55A2C00BFC9D5 /* View */,
238B379F2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.h */,
238B37402AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m */,
);
path = View;
sourceTree = "<group>";
};
238B37412AC55A2C00BFC9D5 /* Cell */ = {
isa = PBXGroup;
children = (
238B37442AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.h */,
238B374D2AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m */,
238B374F2AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.h */,
238B37462AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m */,
238B37532AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.h */,
238B374B2AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m */,
238B37522AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.h */,
238B37472AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m */,
238B37512AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.h */,
238B37482AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m */,
238B37452AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.h */,
238B37502AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m */,
238B374A2AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.h */,
238B37542AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m */,
238B37432AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.h */,
238B374E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m */,
238B374C2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.h */,
238B37422AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m */,
238B37492AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.h */,
238B37552AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m */,
);
path = Cell;
sourceTree = "<group>";
};
238B37562AC55A2C00BFC9D5 /* View */ = {
isa = PBXGroup;
children = (
238B376D2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.h */,
238B37912AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m */,
238B376B2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.h */,
238B37932AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m */,
238B37632AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.h */,
238B37872AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m */,
238B37642AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.h */,
238B37862AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m */,
238B379C2AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.h */,
238B37742AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m */,
238B37972AC55A2C00BFC9D5 /* XPTreasureFailyResultView.h */,
238B377A2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m */,
238B378F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.h */,
238B376F2AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m */,
238B376A2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.h */,
238B37942AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m */,
238B37892AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.h */,
238B37612AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m */,
238B37922AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.h */,
238B376C2AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m */,
238B375D2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.h */,
238B377B2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m */,
238B37672AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.h */,
238B37832AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m */,
238B37802AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.h */,
238B37582AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m */,
238B37902AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.h */,
238B376E2AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m */,
238B378D2AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.h */,
238B37712AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m */,
238B379E2AC55A2C00BFC9D5 /* XPTreasureFairyMyView.h */,
238B37722AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m */,
238B37952AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.h */,
238B37692AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m */,
238B37822AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.h */,
238B37682AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m */,
238B37992AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.h */,
238B37772AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m */,
238B379D2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.h */,
238B37732AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m */,
238B37962AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.h */,
238B37792AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m */,
238B375B2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.h */,
238B377C2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m */,
238B377E2AC55A2C00BFC9D5 /* XPTreasureFairySendView.h */,
238B375A2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m */,
238B37572AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.h */,
238B37812AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m */,
238B37652AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.h */,
238B37842AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m */,
238B375E2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.h */,
238B378B2AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m */,
238B379B2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.h */,
238B37752AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m */,
238B37852AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.h */,
238B37662AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m */,
238B37762AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.h */,
238B379A2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m */,
238B375C2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.h */,
238B377D2AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m */,
238B377F2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.h */,
238B37592AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m */,
238B37602AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.h */,
238B378A2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m */,
238B378C2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.h */,
238B375F2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m */,
238B37702AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.h */,
238B378E2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m */,
238B37622AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.h */,
238B37882AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m */,
238B37982AC55A2C00BFC9D5 /* XPTreasureFairyWebView.h */,
238B37782AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m */,
);
path = View;
sourceTree = "<group>";
};
238B37A02AC55A2C00BFC9D5 /* Api */ = {
isa = PBXGroup;
children = (
238B37A12AC55A2C00BFC9D5 /* Api+TreasureFairy.m */,
238B37A22AC55A2C00BFC9D5 /* Api+TreasureFairy.h */,
);
path = Api;
sourceTree = "<group>";
};
239D0F932BFB3284002977CE /* MSRoomOnLineView */ = {
isa = PBXGroup;
children = (
@@ -8243,8 +7867,6 @@
E81060ED2987C35700B772F0 /* MessageTextClickModel.m */,
E81060EF2987C52B00B772F0 /* MessageGuildModel.h */,
E81060F02987C52B00B772F0 /* MessageGuildModel.m */,
23E9EA7D2A839B2F00B792F2 /* MessageTreasureFairyModel.h */,
23E9EA7E2A839B2F00B792F2 /* MessageTreasureFairyModel.m */,
E81060F22987C6B200B772F0 /* MessageOpenLiveModel.h */,
E81060F32987C6B200B772F0 /* MessageOpenLiveModel.m */,
E81060F52987C8A700B772F0 /* MessageApplicationShareModel.h */,
@@ -8743,8 +8365,6 @@
4C71C6A12D06DB3D00ECCA24 /* GiftAnimationManager.m */,
4C71C69D2D069D2B00ECCA24 /* GiftAnimationHelper.h */,
4C71C69E2D069D2B00ECCA24 /* GiftAnimationHelper.m */,
23E9EA782A8385CC00B792F2 /* XPTreasureFairyGiftView.h */,
23E9EA772A8385CB00B792F2 /* XPTreasureFairyGiftView.m */,
E8E21A9928B4BD92008F7C9D /* XPRoomGraffitiGiftAnimationView.h */,
E8E21A9A28B4BD92008F7C9D /* XPRoomGraffitiGiftAnimationView.m */,
9BC9DAED27E33B3F009EE409 /* XPRoomGiftAnimationParser.h */,
@@ -10842,7 +10462,6 @@
9BA812D328BF52A500783EA7 /* SendRedPacket */,
E8412F9A2779BAC2006E1101 /* Setting */,
2305EEE62AD677D300AD403C /* RoomPhotoAlbum */,
238B37222AC55A2C00BFC9D5 /* TreasureFairy */,
E8AEAEEA27141ACC0017FCE0 /* StageView */,
9BFE0D8F289903F600F53C24 /* TaskTip */,
180806F92729A354001FD836 /* ThemeColor+Room.h */,
@@ -12195,7 +11814,6 @@
E87DF4C22A42C900009C1185 /* XPNoteView.m in Sources */,
E8AB631328ADDCF20023B0D2 /* XPMonentsTopicHeaderView.m in Sources */,
4C84A9C22E5ED593002C10FC /* GameBannerGestureManager.m in Sources */,
238B37B52AC55A2C00BFC9D5 /* XPTreasureFailyResultGiftCell.m in Sources */,
23E9E9982A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m in Sources */,
9B86D886281942D200494FCD /* SocialMicroView.m in Sources */,
54E8C4D62CC78DA900646C44 /* VipSettingViewController.m in Sources */,
@@ -12236,7 +11854,6 @@
E89D60BD271D647A001F8895 /* XPRoomPresenter.m in Sources */,
E8751E5C28A62A530056EF44 /* XPSailingViewController.m in Sources */,
9B7D904D287BC5E20033A45E /* AnchorRoomScrollView.m in Sources */,
238B37D12AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordSubView.m in Sources */,
E8899C822785A694007944BE /* DatingInfoModel.m in Sources */,
9BB89DC327FE7F3A00586A83 /* XPAnchorFansRelationModel.m in Sources */,
E8AC723226F49710007D6E91 /* XPMineNotificationTableViewCell.m in Sources */,
@@ -12250,14 +11867,12 @@
23D321E82ADFED10006B259C /* PIRoomSendRedPacketItemVC.m in Sources */,
E85E7B2A2A4EB0D300B6D00A /* XPGuildTimeMonthPickerView.m in Sources */,
E87E62782A3F5907002F68C9 /* XPNewHomePartyTableViewCell.m in Sources */,
238B37B72AC55A2C00BFC9D5 /* XPTreasureFairySendRecordCell.m in Sources */,
E8950183282CAC6A007E459A /* XPMomentsPhotoView.m in Sources */,
E8AC721E26F472BF007D6E91 /* XPMineSettingProtocol.h in Sources */,
E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */,
E81E09C9290F71BF00A1F410 /* XPAdvertiseView.m in Sources */,
4CD15D912D7E902800D9279F /* LoginViewController.m in Sources */,
2305F3412AD94D5200AD403C /* XPMaskManagerVC.m in Sources */,
238B37D32AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordView.m in Sources */,
4CFFEFD02D3A5E130035D016 /* Api+SuperAdmin.m in Sources */,
9BC5C91F277C902B007C8719 /* XPReleaseRadioView.m in Sources */,
E84843AF27F59E7E0050D365 /* XPRoomPKResultView.m in Sources */,
@@ -12288,7 +11903,6 @@
E87DF4CC2A42C960009C1185 /* HomeBannerInfoModel.m in Sources */,
235714892BECC38F004C81D6 /* MessageHeadlinesTextModel.m in Sources */,
E8664EDF27E45EC7000171BA /* XPRoomPKRecordPresenter.m in Sources */,
238B37B62AC55A2C00BFC9D5 /* XPTreasureFairyShopingRecordCell.m in Sources */,
23FF25762ABD66B90064E904 /* XPFreeGiftsObtainView.m in Sources */,
E81C27A226EF23490031E639 /* YUMINNNN.h in Sources */,
E80E900C27E0358900434B90 /* XPRoomTopicAlertView.m in Sources */,
@@ -12302,7 +11916,6 @@
4C6E1F752CEAEC3C0073D0A3 /* ShoppingMallTagView.m in Sources */,
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */,
238B37A62AC55A2C00BFC9D5 /* TreasureFairySendRecordModel.m in Sources */,
E8AB632F28AE19DE0023B0D2 /* XPMomentMinePresenter.m in Sources */,
E85E7B042A4EB0D200B6D00A /* XPGuildIncomeDetailPresenter.m in Sources */,
54B9C6F32C9D27F3003F1CC5 /* XPMineMultipleContentTableViewCell.m in Sources */,
@@ -12310,7 +11923,6 @@
4C886BEB2E014AE5006F0BA7 /* MedalsPresenter.m in Sources */,
9BD9A17C27A0EE24004186FE /* XPMineVisitorViewController.m in Sources */,
2369F9912A89CE0E00563B48 /* PIUserSexView.m in Sources */,
238B37D92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordView.m in Sources */,
239D0FAB2BFCB88D002977CE /* XPRoomFunctionContainerView.m in Sources */,
E82109B026F1D83500FC3319 /* LoginBindPhonePresent.m in Sources */,
E81C1B1F27705F7A0020D1E4 /* XPArrangeMicViewController.m in Sources */,
@@ -12342,7 +11954,6 @@
E86507EB281A88A9006951B0 /* MessageContentSkillCardView.m in Sources */,
E8B825CA26EA1231009E8E9F /* LoginVerifCodeViewController.m in Sources */,
189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */,
238B37B82AC55A2C00BFC9D5 /* XPTreasureFairyShopingExchangeCell.m in Sources */,
E8412FA62779BED1006E1101 /* XPRoomSettingTableViewCell.m in Sources */,
9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */,
E8AFF7E3298CA1E500FBDE32 /* SessionSayHelloCountModel.m in Sources */,
@@ -12366,7 +11977,6 @@
4C7F2A672E0BE0AB002F5058 /* FirstRechargeModel.m in Sources */,
54F469382C29C3B400A83655 /* XPMineAlbumTableViewCell.m in Sources */,
23E9EAA12A84C53900B792F2 /* TTNewAlertView.m in Sources */,
238B37BC2AC55A2C00BFC9D5 /* XPTreasureFairySendView.m in Sources */,
544B19B02CA1299500885BEB /* CPBindingAnimation.m in Sources */,
E8DEC9A12764A5D20078CB70 /* XPRoomMoreItemModel.m in Sources */,
E80EC81028ACD84000D133C5 /* QExtendBoardView.m in Sources */,
@@ -12381,10 +11991,8 @@
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */,
E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */,
4CFFEFCD2D3A4E410035D016 /* AppOfficalManagerActionsViewController.m in Sources */,
238B37B32AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordCell.m in Sources */,
23CEFC512AFB8FC100576D89 /* SystemUtil.m in Sources */,
E8659909273E800D00EE349D /* XPGiftCollectionViewFlowLayout.m in Sources */,
238B37BD2AC55A2C00BFC9D5 /* XPTreasureFairyTrialsContentView.m in Sources */,
E85E7B262A4EB0D300B6D00A /* XPMineGuildViewController.m in Sources */,
E86596512701A1C000846EBD /* StatisticsService.m in Sources */,
54E82EAB2CA9261000C931D9 /* Api+Boom.m in Sources */,
@@ -12433,9 +12041,7 @@
E81C1B2F277071670020D1E4 /* XPArrangeMicInfoModel.m in Sources */,
9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */,
E83ABF00280EC45700322EE4 /* MessageContentApplicationShareView.m in Sources */,
238B37D82AC55A2C00BFC9D5 /* XPTreasureFairyShopingView.m in Sources */,
F1D8556F2931FC86008C418F /* XPRoomYearActivityView.m in Sources */,
238B37C72AC55A2C00BFC9D5 /* XPTreasureFairyPrizeRecordView.m in Sources */,
E8B9843628ABA8B40022D026 /* XPMonentPublishSuccessView.m in Sources */,
238ED83A2AE2891D0014EF9D /* PIRoomEnterRedPacketView.m in Sources */,
23E9E9972A80C3A100B792F2 /* XPMineGuildPersonalBillRecordVC.m in Sources */,
@@ -12456,13 +12062,11 @@
1427218E29A75F6F00C7C423 /* HTTPMessage.m in Sources */,
4C45C1A52E6825F300E73A44 /* XPTurboModeConstants.m in Sources */,
239D0FE72C049D61002977CE /* MSRoomGameMsgView.m in Sources */,
238B37BE2AC55A2C00BFC9D5 /* XPTreasureFairyBottomView.m in Sources */,
9B42869828C1E06B009034D2 /* XPRedPacketModel.m in Sources */,
233423D62AB0397500B1253F /* PIMessageContentServiceReplyView.m in Sources */,
18EE3FE22750C29D00A452BF /* NIMBadgeView.m in Sources */,
E82EE0F8272FDDFA00D15DC1 /* UserPrivacyView.m in Sources */,
2331C1672A5EB71000E1D940 /* NobleLevelUpModel.m in Sources */,
238B37DD2AC55A2C00BFC9D5 /* XPTreasureFairyStoreView.m in Sources */,
9BA812E428BF70A600783EA7 /* XPRoomRedPacketPwdView.m in Sources */,
23E9EB1B2A84D28A00B792F2 /* XPMineUserInfoEditTagView.m in Sources */,
237B94BE2A984DA7007853E3 /* XPRoomTrumpetViewController.m in Sources */,
@@ -12487,7 +12091,6 @@
23E9E9A42A80DEAF00B792F2 /* XPMineGuildPersonalBillRecordContentView.m in Sources */,
E81C1B262770663B0020D1E4 /* XPArrangeMicTableViewCell.m in Sources */,
4CD47BCC2E61ADE400BCDA46 /* XPSocialAction.m in Sources */,
238B37D22AC55A2C00BFC9D5 /* XPTreasureFairyExchangeView.m in Sources */,
E81A652B2834E4F600F55894 /* XPMomentsAttentionViewController.m in Sources */,
E8E20BEC2816A5B90033B688 /* XPMineBlackListViewController.m in Sources */,
E8AC722F26F49610007D6E91 /* XPMineNotificationItemModel.m in Sources */,
@@ -12497,8 +12100,6 @@
2331C1B12A60F32D00E1D940 /* XPCandyTreeGiftView.m in Sources */,
9B1B72BC28003E06003FACE9 /* XPAnchorPKTableViewCell.m in Sources */,
E8E70D7A26F2F16600F03460 /* XPMinePresent.m in Sources */,
238B37AA2AC55A2C00BFC9D5 /* TreasureFairyInfoModel.m in Sources */,
238B37A42AC55A2C00BFC9D5 /* TreasureFairyLimitModel.m in Sources */,
E87DF4D42A42C9B1009C1185 /* HomeRecommendRoomModel.m in Sources */,
23E9EAB22A84C9DE00B792F2 /* XPMineUserInfoTagViewCell.m in Sources */,
9B42869C28C1FD3D009034D2 /* XPOpenRedPacketCell.m in Sources */,
@@ -12535,7 +12136,6 @@
E81060E82987720F00B772F0 /* MessageUnSupportModel.m in Sources */,
E8D34D6028082BA5009C4835 /* XPMineUserDataPresenter.m in Sources */,
E84CBCE4284372D800D43221 /* XPRoomHalfMessageView.m in Sources */,
238B37A52AC55A2C00BFC9D5 /* TreasureFailyKeyInfoModel.m in Sources */,
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
23CEFC4F2AFB8FC100576D89 /* BSSDLayoutUtil.m in Sources */,
E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */,
@@ -12544,17 +12144,13 @@
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
23B8D8D82B85F8B900CA472F /* PIHoemCategoryTitleCell.m in Sources */,
E81C279D26EEEC620031E639 /* YUMIConstant.m in Sources */,
238B37AF2AC55A2C00BFC9D5 /* XPTreasureFairyViewController.m in Sources */,
238B37DB2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardSuccessView.m in Sources */,
9B734F73288A787000CBDAA9 /* XPMineAccountView.m in Sources */,
239141C92AE1358F00322CA9 /* PIInputEntireServerScrollingView.m in Sources */,
E8AA6EF227DF1E97009B4C2B /* XPRoomTopicPresenter.m in Sources */,
9BF4BEBC28D4182E009CF6C2 /* XPOpenRedPacketModel.m in Sources */,
E873EB0C2809850D0071030D /* MessageContentCustomView.m in Sources */,
238B37D42AC55A2C00BFC9D5 /* XPTreasureFailrySummonBallView.m in Sources */,
E884C36F2743AAC800E1EBED /* AttachmentModel.m in Sources */,
E8AC721926F46E0B007D6E91 /* XPMineSettingItemModel.m in Sources */,
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */,
9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */,
E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */,
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */,
@@ -12572,7 +12168,6 @@
4CC312242D7987A200F57A07 /* ShareHelder.m in Sources */,
E88863D3278ED4C0004BCFAB /* Timestamp.m in Sources */,
23E7FE9C2BB6CD42008F6800 /* XPNobleCenterWindow.m in Sources */,
238B37BF2AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultView.m in Sources */,
E88863CF278EC393004BCFAB /* XPAcrossRoomPKPrizeView.m in Sources */,
4CE3A9462D22754C003F0796 /* RechargeUserModel.m in Sources */,
239D0FFD2C05D086002977CE /* MSRoomGameQuitGameView.m in Sources */,
@@ -12580,7 +12175,6 @@
E87DF5082A42CE79009C1185 /* XPInRoomRecordPresenter.m in Sources */,
239D0FD82C047DD8002977CE /* MSTabbarRoomGameModel.m in Sources */,
189DD6FF26E20E5900AB55B1 /* HttpRequestHelper.m in Sources */,
238B37DE2AC55A2C00BFC9D5 /* Api+TreasureFairy.m in Sources */,
E85E7B062A4EB0D200B6D00A /* XPGuildSearchPresenter.m in Sources */,
E8788945273A55C200BF1D57 /* XPGiftInfoView.m in Sources */,
9BF5192628801D4700B6BE92 /* XPAcrossRoomPKCountDownView.m in Sources */,
@@ -12688,7 +12282,6 @@
E85E7B432A4EB0D300B6D00A /* XPMineExchangeAuthorityHeadView.m in Sources */,
23194DD02AD14BF000649F51 /* DDLog.m in Sources */,
189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */,
238B37AE2AC55A2C00BFC9D5 /* TreasureFairyFragmentModel.m in Sources */,
E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */,
18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */,
E85E7B472A4EB0D300B6D00A /* XPMineGuildManagerPerTableViewCell.m in Sources */,
@@ -12705,10 +12298,8 @@
23E9EA6B2A83808000B792F2 /* ContentTreasureFairyModel.m in Sources */,
E85E7B3E2A4EB0D300B6D00A /* XPGuildIncomeRecordTableViewCell.m in Sources */,
E8A88D2727E8193400CA8837 /* XPRoomPKSelectUserView.m in Sources */,
238B37C12AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonView.m in Sources */,
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */,
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
238B37AB2AC55A2C00BFC9D5 /* TreasureFairyConvertRecordModel.m in Sources */,
4CEB9EAD2D09AA0400443480 /* SexAgeLabel.m in Sources */,
23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */,
142721B229A7647F00C7C423 /* XPBlankViewController.m in Sources */,
@@ -12718,9 +12309,7 @@
236B2E482AA07D06003967A8 /* XPLittleGameMiniStageView.m in Sources */,
E85E7B1C2A4EB0D200B6D00A /* XPMineHallAnchorIncomeStatisViewController.m in Sources */,
4CD15D952D7FE9E400D9279F /* LoginTypesViewController.m in Sources */,
238B37C32AC55A2C00BFC9D5 /* XPTreasureFairyMessageSendView.m in Sources */,
239BEEDB2AA1E058005CDA94 /* PIHoemCategoryTitleView.m in Sources */,
238B37CA2AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolView.m in Sources */,
E81060FD2987CC9100B772F0 /* MessageLevelUpgradeModel.m in Sources */,
2305EF0D2AD7CC9A00AD403C /* PIRoomPhotoAlbumChooseGiftCell.m in Sources */,
237700FA2BCCD25500D661F1 /* YYLabel+MSRTL.m in Sources */,
@@ -12756,7 +12345,6 @@
E81A653F283511BE00F55894 /* XPMonentsInteractiveViewController.m in Sources */,
1464C5EA29A45FC300AF7C94 /* XPButton.m in Sources */,
54E82EB12CA93BE200C931D9 /* BoomInfoViewController.m in Sources */,
238B37C82AC55A2C00BFC9D5 /* XPTreasureFailyPrizeGiftView.m in Sources */,
2331C17E2A5ECCF600E1D940 /* XPNobleCenterPayView.m in Sources */,
E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */,
E8B3E8092848B871009746AB /* InviteUserInfoModel.m in Sources */,
@@ -12819,7 +12407,6 @@
E878B85B2835F3BF00E22DCF /* XPMonentsInteractiveTableViewCell.m in Sources */,
9BCFB828289BAC7D0093D863 /* XPMineHeadFunctionItemLayout.m in Sources */,
E8D34D6428084E40009C4835 /* XPMineUserInfoGiftWallViewController.m in Sources */,
238B37CE2AC55A2C00BFC9D5 /* XPTreasureFairyDrawView.m in Sources */,
E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */,
9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */,
E85E7B302A4EB0D300B6D00A /* XPGuildIncomeHeaderView.m in Sources */,
@@ -12860,8 +12447,6 @@
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */,
4C1392992D6DB4CD00A6DFB5 /* MoliMoneyLabel.m in Sources */,
23CEFC622AFB8FC100576D89 /* BSLogNetDetailViewController.m in Sources */,
238B37CF2AC55A2C00BFC9D5 /* XPTreasureFairySendRecordView.m in Sources */,
238B37C52AC55A2C00BFC9D5 /* XPTreasureFairyMoreView.m in Sources */,
E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */,
189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */,
4C71C6A22D06DB3D00ECCA24 /* GiftAnimationManager.m in Sources */,
@@ -12870,7 +12455,6 @@
E87E62762A3F5907002F68C9 /* XPNewHomePlayTableViewCell.m in Sources */,
186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */,
18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */,
238B37A32AC55A2C00BFC9D5 /* XPTreasureFailyPresenter.m in Sources */,
18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */,
23B8D8DB2B85FDDD00CA472F /* PIHomeCategoryTitleModel.m in Sources */,
2331C1762A5EB71000E1D940 /* ThemeColor+NobleCenter.m in Sources */,
@@ -12891,7 +12475,6 @@
9BD63FAE277EE97A006EB744 /* XPReleaseRadioPresenter.m in Sources */,
9B1FC3D827E49C36006EFFE0 /* XPMineDressBubbleCollectionViewCell.m in Sources */,
9BE01AEA2893CB4400B50299 /* XPDressSearchViewController.m in Sources */,
238B37DA2AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardInputNumView.m in Sources */,
E8751E6B28A64C6E0056EF44 /* XPSailingRankTableViewCell.m in Sources */,
9B1B72B528003664003FACE9 /* Api+AnchorPk.m in Sources */,
23194DCC2AD14BF000649F51 /* DDTTYLogger.m in Sources */,
@@ -12907,7 +12490,6 @@
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */,
E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */,
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */,
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */,
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */,
233423CA2AAEE97500B1253F /* XPCandyTreeConfirmBuyView.m in Sources */,
E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */,
@@ -12929,7 +12511,6 @@
4C5C37232D0C1C7900BA9AB8 /* RegionListViewController.m in Sources */,
4CE746C62D9297C30094E496 /* BravoGiftTipModel.m in Sources */,
4CCFDA032DD59211009BD2FD /* Api+EventCenter.m in Sources */,
238B37CC2AC55A2C00BFC9D5 /* XPTreasureFairyPrizeSubView.m in Sources */,
E81125C4296E57B7000D9804 /* QinputPhotoView.m in Sources */,
E880B3A1278BD60C00A83B0D /* XPAcrossRoomPKSelectRoomView.m in Sources */,
9B3C181A292CE4FA003AF543 /* XPAnchorPKMatchView.m in Sources */,
@@ -13052,7 +12633,6 @@
E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */,
E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */,
E8E20BE828169BDC0033B688 /* XPMineLoginPasswordPresenter.m in Sources */,
238B37D52AC55A2C00BFC9D5 /* PITreasureFairyBuyElfShardView.m in Sources */,
E85E7B3F2A4EB0D300B6D00A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */,
9B1EF3D227E81C0600554295 /* XPMineDressUpBubbleViewController.m in Sources */,
2331C1AB2A60F32D00E1D940 /* CandyTreeResultModel.m in Sources */,
@@ -13071,13 +12651,11 @@
E86F6185284F4E4800E8EC9A /* RoomHalfHourRankModel.m in Sources */,
9B208A362779B50100F9E54A /* GiftNobleInfoModel.m in Sources */,
E80A086227F2AC190027B30C /* RoomPKDetailInfoModel.m in Sources */,
238B37CD2AC55A2C00BFC9D5 /* XPTreasureFailyResultView.m in Sources */,
4CAFF00A2DD342A400CD81DF /* MessagePublicEventModel.m in Sources */,
E824545126F5CE6E00BE8163 /* XPMineModifPayPwdPresenter.m in Sources */,
E8098CB1282E86EF0090B9F0 /* XPMomentsContentView.m in Sources */,
E85E3FA728B7A6F000268DC8 /* MessageContentMonentsView.m in Sources */,
E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */,
238B37DC2AC55A2C00BFC9D5 /* XPTreasureFairyBallView.m in Sources */,
23CEFC4B2AFB8FC100576D89 /* BSUIDemoUtil.m in Sources */,
E8B9842D28AB77F10022D026 /* XPMonentsPublishTopicView.m in Sources */,
239141C62AE129F700322CA9 /* PIInputScrollingView.m in Sources */,
@@ -13110,7 +12688,6 @@
E8AC721C26F4720B007D6E91 /* XPMineSettingPresent.m in Sources */,
2305EF102AD8006900AD403C /* PIRoomMessagePhotoAlbumCell.m in Sources */,
4C0B4A502E65A68800D67F73 /* XPRoomAppManagerAction.m in Sources */,
238B37BA2AC55A2C00BFC9D5 /* XPTreasureFairyFriendView.m in Sources */,
E81060EE2987C35700B772F0 /* MessageTextClickModel.m in Sources */,
E87AE8C5284E1A8400CAFBB3 /* XPRoomNewUserGreetView.m in Sources */,
E87E627B2A3F5A0D002F68C9 /* XPNewHomeRecommendPresenter.m in Sources */,
@@ -13177,7 +12754,6 @@
9B7B605B27BB53060070BB72 /* XPAnchorAudienceUpMicView.m in Sources */,
4CF67BA52DF9568C00EE5A28 /* BaseModelVo.m in Sources */,
23CEFC522AFB8FC100576D89 /* BSFileOptionModel.m in Sources */,
238B37D02AC55A2C00BFC9D5 /* XPTreasureFairySummonGiftView.m in Sources */,
14DCAD0E299B6AD900A7DD31 /* XPForgetPwdViewController.m in Sources */,
23194DD12AD14BF000649F51 /* DDAbstractDatabaseLogger.m in Sources */,
545831A02C2AEFAF00364026 /* TenMicStageView.m in Sources */,
@@ -13197,7 +12773,6 @@
2331C1712A5EB71000E1D940 /* XPNobleCenterTableHeadView.m in Sources */,
181D7F212727D9DB00B7C059 /* SocialStageView.m in Sources */,
E8AB630D28ADD8C60023B0D2 /* XPMomentTopicContainerViewController.m in Sources */,
23E9EA7C2A83977400B792F2 /* MessageContentTreasureFairyView.m in Sources */,
4C85DB812DCDD83E00FD9839 /* CreateEventPresenter.m in Sources */,
E8D4DE472940473500EC788D /* GiftTwelveStarFirstModel.m in Sources */,
547B30F92CB511700041E962 /* RoomBoomEntryView.m in Sources */,
@@ -13207,7 +12782,6 @@
2331C1B82A60F32D00E1D940 /* XPRoomHalfWebView.m in Sources */,
9BFE0D8E2898C8C300F53C24 /* XPAnchorCardSkillCollectionViewCell.m in Sources */,
54AE7E172C9AE589006D2BE2 /* CPListViewController.m in Sources */,
238B37A92AC55A2C00BFC9D5 /* TreasureFairyUserInfoModel.m in Sources */,
E85E7B382A4EB0D300B6D00A /* XPMineGuildSearchMemberTableViewCell.m in Sources */,
23D321D52ADD0F05006B259C /* Api+PhotoAlbum.m in Sources */,
23E9EA842A84B6FD00B792F2 /* XPMineUserInfoTagModel.m in Sources */,
@@ -13237,7 +12811,6 @@
186A534626FC6ED900D67B2C /* TTPopup.m in Sources */,
9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */,
E81C278C26EAFAF60031E639 /* Base64.m in Sources */,
238B37C92AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultSmallView.m in Sources */,
544B19B62CA14A7100885BEB /* CPGiftBanner.m in Sources */,
E8C1CD7027D894B800376F83 /* RoomFaceTitleItemModel.m in Sources */,
E85E7B4B2A4EB0D300B6D00A /* XPMineGuildManagerSetViewController.m in Sources */,
@@ -13291,9 +12864,7 @@
1464C5F929A4D00000AF7C94 /* XPIAPRechargeHeaderView.m in Sources */,
E83645A82A40AF5400E0DBE4 /* NSBundle+Localizable.m in Sources */,
4CAE69CC2E69A2DB00A9FC35 /* MicMidpointRectManager.m in Sources */,
23E9EA7F2A839B2F00B792F2 /* MessageTreasureFairyModel.m in Sources */,
E8778AFB2989034200CF139B /* XPSessionSayHelloEmptyTableViewCell.m in Sources */,
238B37B02AC55A2C00BFC9D5 /* XPTreasureFairyStoreResultCell.m in Sources */,
E88B5CC126FB407B00DA9178 /* XPMineUserInfoViewController.m in Sources */,
2331C1AC2A60F32D00E1D940 /* CandyTreeRecordModel.m in Sources */,
540EC1D32C89998500F3BF0D /* GiftComboManager.m in Sources */,
@@ -13301,7 +12872,6 @@
E81E09CF290F750800A1F410 /* AdvertiseModel.m in Sources */,
2305F3472AD94E9D00AD403C /* XPMaskManagerCell.m in Sources */,
E852D74428633A08001465ED /* MonentsCommentModel.m in Sources */,
238B37C42AC55A2C00BFC9D5 /* XPTreasureFairyBallContentView.m in Sources */,
E8C1CD6D27D8938C00376F83 /* XPRoomFaceTitleCollectionViewCell.m in Sources */,
548E01C62C3F78360071C83D /* FeedBackViewController.m in Sources */,
E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */,
@@ -13311,11 +12881,9 @@
E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */,
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */,
E87DF4EC2A42CB60009C1185 /* XPSearchListTableViewCell.m in Sources */,
238B37C22AC55A2C00BFC9D5 /* XPTreasureFairyDrawSubView.m in Sources */,
E85E7B052A4EB0D200B6D00A /* XPClanPresenter.m in Sources */,
E85E7BA52A4EC99300B6D00A /* XPMineChooseGiveDiamondView.m in Sources */,
E8F63CB1298B553500B338BA /* SessionSayHelloLevelModel.m in Sources */,
238B37BB2AC55A2C00BFC9D5 /* XPTreasureFairySummonView.m in Sources */,
236B2E4B2AA07D06003967A8 /* XPLittleGameRoomListView.m in Sources */,
9BE01AD428927E9C00B50299 /* XPDressUpShopListViewController.m in Sources */,
4CD47BBE2E619F1700BCDA46 /* XPRoomMoreMenuAction.m in Sources */,
@@ -13325,20 +12893,17 @@
E824545926F5E65900BE8163 /* XPMineVerifIdentityView.m in Sources */,
E841ED61280FB0BD00904808 /* ContentLevelUpgradeModel.m in Sources */,
23CEFC632AFB8FC100576D89 /* BSRealTextView.m in Sources */,
238B37B92AC55A2C00BFC9D5 /* XPTreasureFairyTrialsRecordCell.m in Sources */,
236B2E542AA08757003967A8 /* LittleGameScrollStageView.m in Sources */,
189DD74026E21C3F00AB55B1 /* YYUtility+App.m in Sources */,
E85E7B182A4EB0D200B6D00A /* ClanDetailInfoModel.m in Sources */,
236B2E452AA07D06003967A8 /* NSData+RW.m in Sources */,
E85E7B272A4EB0D300B6D00A /* XPGuildSuperAdminMenuView.m in Sources */,
189DD74526E21CCC00AB55B1 /* YYReachability.m in Sources */,
238B37D62AC55A2C00BFC9D5 /* XPTreasureFairyTrialsView.m in Sources */,
E82109AD26F1C8A000FC3319 /* CountDownHelper.m in Sources */,
E878B8582835F0D300E22DCF /* MonentsInteractiveModel.m in Sources */,
E87DF4E42A42CAD2009C1185 /* XPHomeSearchNavView.m in Sources */,
9BD2ECCE288F829600F5CD9A /* XPMineFootPrintViewController.m in Sources */,
9B4E920028E57A620033419E /* XPGiftHeadTypeView.m in Sources */,
238B37C62AC55A2C00BFC9D5 /* XPTreasureFairyMyView.m in Sources */,
54E4D5332C90658C009E1FEA /* LuckyGiftWinningBannerView.m in Sources */,
E86A16BF2856D4D5004228B8 /* XPSessionFindNewGreetListView.m in Sources */,
E85E7B312A4EB0D300B6D00A /* XPNewGuildIncomeHeaderView.m in Sources */,
@@ -13352,7 +12917,6 @@
E8F1559328129EBA00EE8C06 /* ContentSecretaryModel.m in Sources */,
E85E7B342A4EB0D300B6D00A /* XPMineMainGuildListVC.m in Sources */,
9BBC02912786FC570007C24B /* XPMineNobleCardTableViewCell.m in Sources */,
238B37B12AC55A2C00BFC9D5 /* XPTreasureFairyFriendCell.m in Sources */,
E8751E7428A665BC0056EF44 /* RoomSailingInfoModel.m in Sources */,
E80EC81328ACD84000D133C5 /* QKeyboardManager.m in Sources */,
4CD6FF692D673F7F00262AB7 /* AgentMessageTableViewCell.m in Sources */,
@@ -13387,7 +12951,6 @@
4CC6195A2CEC7770008C1EE8 /* MyDressingDataPresent.m in Sources */,
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */,
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */,
238B37AC2AC55A2C00BFC9D5 /* TreasureFailryMessageModel.m in Sources */,
2331C1812A5ECD3800E1D940 /* XPNobleCenterPayCell.m in Sources */,
E852D73B286317F0001465ED /* XPMomentsDetailViewController.m in Sources */,
2331C1692A5EB71000E1D940 /* XPNobleSettingViewController.m in Sources */,
@@ -13396,7 +12959,6 @@
E81060D9298761A300B772F0 /* MessageBaseModel.m in Sources */,
E890BC10273D23F00007C46B /* GiftInfoModel.m in Sources */,
E8A30BEB28534A96003B4873 /* XPSessionFindNewFiltrateView.m in Sources */,
238B37AD2AC55A2C00BFC9D5 /* TreasureFairyBallInfoModel.m in Sources */,
E84BF7E0277C869A00EF8877 /* XPRoomOnLineViewController.m in Sources */,
186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */,
236B2E422AA07D06003967A8 /* SudCommon.m in Sources */,
@@ -13410,7 +12972,6 @@
9BD2ECDA288F867000F5CD9A /* XPMineFootPrintTableViewCell.m in Sources */,
545888332C1AFFB500897585 /* XPRoomPKPanelView.m in Sources */,
E8395339276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m in Sources */,
238B37CB2AC55A2C00BFC9D5 /* XPTreasureFairyWebView.m in Sources */,
E875FA8727D619820086ED04 /* ClientDataModel.m in Sources */,
9BFB10222897D68400B3985E /* XPTabAnchorCardModel.m in Sources */,
E8B846DC26FDE24300A777FE /* RechargeListModel.m in Sources */,
@@ -13452,7 +13013,6 @@
E8788934273A53D700BF1D57 /* XPSendGiftView.m in Sources */,
234E50AF2BF7352C005CB6D5 /* NSTextAttachment+MSImage.m in Sources */,
E896EF9C2771AE6B00AD2CC1 /* XPMineFansViewController.m in Sources */,
238B37A72AC55A2C00BFC9D5 /* TreasureFairyRewardModel.m in Sources */,
54B9C6E72C9C2CA1003F1CC5 /* XPMineGuildTableViewCell.m in Sources */,
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
23E9E9A12A80C7E000B792F2 /* XPMineGuildPersonalBillRecordModel.m in Sources */,
@@ -13497,7 +13057,6 @@
540EC1D02C89925F00F3BF0D /* GiftComboView.m in Sources */,
E81060DF29876D3A00B772F0 /* MessageTimeModel.m in Sources */,
E81A65422835120200F55894 /* XPMonentsInteractivePresenter.m in Sources */,
238B37A82AC55A2C00BFC9D5 /* TreasureFairyTrialsRecordModel.m in Sources */,
239D0FD52C0475E6002977CE /* MSTabbarBeginGameView.m in Sources */,
E80EC80C28ACD84000D133C5 /* UITextView+QEmotion.m in Sources */,
E8664EE627E482EF000171BA /* RoomPKTeamModel.m in Sources */,
@@ -13526,14 +13085,12 @@
14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */,
E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */,
54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */,
23E9EA792A8385CC00B792F2 /* XPTreasureFairyGiftView.m in Sources */,
149839C7299E0B9F00F82CBF /* XPMomentListCollectionViewCell.m in Sources */,
4C6E1F792CEB12780073D0A3 /* UIView+GradientLayer.m in Sources */,
236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */,
E88C729C2828F37D0047FB2B /* XPRoomMusicLibraryEmptyTableViewCell.m in Sources */,
E85E7B0A2A4EB0D200B6D00A /* XPGuildManagerPerPresenter.m in Sources */,
9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */,
238B37D72AC55A2C00BFC9D5 /* XPTreasureFairyTrialsBallView.m in Sources */,
E85E7BA12A4EC99300B6D00A /* XPMineGiveDiamondModel.m in Sources */,
E85E7B232A4EB0D300B6D00A /* XPMineClanViewController.m in Sources */,
E89DA67227008D59008483C1 /* WalletInfoModel.m in Sources */,
@@ -13546,7 +13103,6 @@
E80CBDEA27D0C53F001E1EC2 /* XPWeakTimer.m in Sources */,
E85E7BAC2A4EC99300B6D00A /* XPMineGiveDiamondDetailsView.m in Sources */,
4C51B09F2DA50FDA00D8DFB5 /* CPRelationshipChangeView.m in Sources */,
238B37B42AC55A2C00BFC9D5 /* XPTreasureFairyNewSummonCell.m in Sources */,
E85E7B152A4EB0D200B6D00A /* ClanInfoModel.m in Sources */,
189DD55026DE37F900AB55B1 /* MvpViewController.m in Sources */,
E81366F326F0B7C80076364C /* LoginFullInfoViewController.m in Sources */,

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "图层 18 拷贝@3x.png",
"filename" : "组 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

View File

@@ -106,9 +106,6 @@
self.configInfo = model;
//
[[PublicRoomManager sharedManager] updateConfig];
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadAfterLoadConfig" object:nil];
[self requestFaceTabNewList];

View File

@@ -56,7 +56,7 @@ static int const showtime = 3;
[self addSubview:self.countdownButton];
[self.countdownButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-24);
make.width.mas_equalTo(60);
// make.width.mas_equalTo(60);
make.height.mas_equalTo(30);
make.top.mas_equalTo(40);
}];
@@ -279,6 +279,8 @@ static int const showtime = 3;
[_countdownButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_countdownButton.backgroundColor = [UIColor colorWithRed:38 /255.0 green:38 /255.0 blue:38 /255.0 alpha:0.6];
_countdownButton.layer.cornerRadius = 4;
_countdownButton.contentEdgeInsets = UIEdgeInsetsMake(0, 8, 0, 8);
[_countdownButton sizeToFit];
}
return _countdownButton;
}

View File

@@ -253,12 +253,6 @@
// 🔧
[self handleLagCountWithDuration:duration stackTrace:stackTrace];
// TODO:
// 1.
// 2.
// 3.
// 4.
}
#pragma mark -

View File

@@ -116,8 +116,9 @@ typedef NS_ENUM(NSUInteger, LoginType) {
make.trailing.mas_equalTo(self.view).offset(-16);
make.top.mas_equalTo(self.view).offset(kStatusBarHeight);
make.height.mas_equalTo(22);
make.width.mas_greaterThanOrEqualTo(84);
// make.width.mas_lessThanOrEqualTo(200); //
}];
[self.view setNeedsLayout];
}
- (void)setupBottomPolicy {
@@ -434,14 +435,20 @@ typedef NS_ENUM(NSUInteger, LoginType) {
UIButton *feedBackButton = [UIButton buttonWithType:UIButtonTypeCustom];
[feedBackButton setTitle:YMLocalizedString(@"XPMineFeedbackViewController0") forState:UIControlStateNormal];
[feedBackButton setTitleColor:UIColorFromRGB(0x313131) forState:UIControlStateNormal];
[feedBackButton setContentEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
feedBackButton.titleLabel.font = kFontRegular(12);
//
// feedBackButton.titleLabel.adjustsFontSizeToFitWidth = YES;
// feedBackButton.titleLabel.minimumScaleFactor = 0.8;
// feedBackButton.titleLabel.numberOfLines = 1;
[feedBackButton setBackgroundImage:[[UIImage imageWithColor:[UIColor whiteColor]] imageByApplyingAlpha:0.5]
forState:UIControlStateNormal];
[feedBackButton setCornerRadius:10.5];
[feedBackButton addTarget:self
action:@selector(didTapFeedback)
forControlEvents:UIControlEventTouchUpInside];
[feedBackButton enlargeTouchArea:UIEdgeInsetsMake(10, 10, 10, 10)];
[feedBackButton sizeToFit];
// [feedBackButton enlargeTouchArea:UIEdgeInsetsMake(10, 10, 10, 10)];
return feedBackButton;
}

View File

@@ -106,7 +106,7 @@ typedef NS_ENUM(NSUInteger, CustomMessageType) {
///免费礼物倒计时重置时间
CustomMessageType_Free_Gift_Star_Reset_Time = 96,
///精灵密藏
CustomMessageType_Treasure_Fairy = 97,
// CustomMessageType_Treasure_Fairy = 97,
///寻爱之旅
CustomMessageType_Look_Love = 98,
///联系客服
@@ -646,40 +646,40 @@ typedef NS_ENUM(NSUInteger, CustomMessageGraffitiStarKitchen) {
Custom_Message_Sub_Star_Kitchen_FullScreen = 1042,
};
///夺宝精灵 CustomMessageType_Treasure_Fairy = 97,
typedef NS_ENUM(NSInteger, CustomMessageTreasureFairy) {
///精灵赠送
Custom_Message_Sub_Treasure_Fairy_Send_Fairy = 9701,
///索要精灵
Custom_Message_Sub_Treasure_Fairy_Ask_Fairy = 9702,
///抽奖礼物
///抽奖L1礼物
Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L1 = 9711,
///抽奖L2礼物
Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L2 = 9712,
///抽奖L3礼物
Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L3 = 9713,
///抽奖L4礼物
Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4 = 9714,
///抽奖L5礼物
Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5 = 9715,
///抽奖获得的精灵球的
/// 抽奖L1精灵球
Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L1 = 9721,
/// 抽奖L2精灵球
Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L2 = 9722,
/// 抽奖L3精灵球
Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L3 = 9723,
///精灵球召唤礼物
///召唤L1
Custom_Message_Sub_Treasure_Fairy_Convert_L1 = 9731,
///召唤L2
Custom_Message_Sub_Treasure_Fairy_Convert_L2 = 9732,
///召唤L3
Custom_Message_Sub_Treasure_Fairy_Convert_L3 = 9733,
};
//typedef NS_ENUM(NSInteger, CustomMessageTreasureFairy) {
// ///精灵赠送
// Custom_Message_Sub_Treasure_Fairy_Send_Fairy = 9701,
// ///索要精灵
// Custom_Message_Sub_Treasure_Fairy_Ask_Fairy = 9702,
//
//
// ///抽奖礼物
// ///抽奖L1礼物
// Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L1 = 9711,
// ///抽奖L2礼物
// Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L2 = 9712,
// ///抽奖L3礼物
// Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L3 = 9713,
// ///抽奖L4礼物
// Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4 = 9714,
// ///抽奖L5礼物
// Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5 = 9715,
//
// ///抽奖获得的精灵球的
// /// 抽奖L1精灵球
// Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L1 = 9721,
// /// 抽奖L2精灵球
// Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L2 = 9722,
// /// 抽奖L3精灵球
// Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L3 = 9723,
// ///精灵球召唤礼物
// ///召唤L1
// Custom_Message_Sub_Treasure_Fairy_Convert_L1 = 9731,
// ///召唤L2
// Custom_Message_Sub_Treasure_Fairy_Convert_L2 = 9732,
// ///召唤L3
// Custom_Message_Sub_Treasure_Fairy_Convert_L3 = 9733,
//};
///first = CustomMessageType_Candy_Tree
typedef NS_ENUM(NSUInteger, CustomMessageSubLookLove) {

View File

@@ -108,7 +108,6 @@
if (code == 200) {
RoomInfoModel * roomInfo = [RoomInfoModel modelWithDictionary:data.data];
if (roomInfo.uid && self.userInfo.uid && self.userInfo.nick.length > 0) {
//退 TODO
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -91,7 +91,6 @@
- (void)enterButtonAction:(UIButton *)sender {
if (self.shareInfo.routerValue.length > 0) {
UIViewController * controllerView = [XCCurrentVCStackManager shareManager].getCurrentVC;
//退 TODO
[controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[controllerView.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -96,7 +96,6 @@
- (void)backViewTapRecognozer {
if (self.userInfo.uid.length > 0) {
UIViewController * controllerView = [XCCurrentVCStackManager shareManager].getCurrentVC;
//退 TODO
[controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[controllerView.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -143,7 +143,6 @@
}
- (void)event:(UITapGestureRecognizer *)gesture {
UIViewController * controllerView = [XCCurrentVCStackManager shareManager].getCurrentVC;
//退 TODO
[controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[controllerView.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -113,7 +113,6 @@
{
if (value.length > 0) {
UIViewController * controllerView = [XCCurrentVCStackManager shareManager].getCurrentVC;
//退 TODO
[controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[controllerView.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -1,16 +0,0 @@
//
// MessageContentTreasureFairyView.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/23.
//
#import "MessageContentCustomView.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageContentTreasureFairyView : MessageContentCustomView
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,154 +0,0 @@
//
// MessageContentTreasureFairyView.m
// xplan-ios
//
// Created by on 2023/2/23.
//
#import "MessageContentTreasureFairyView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "NSObject+MJExtension.h"
#import "TTPopup.h"
#import "MessageTreasureFairyModel.h"
///Model
#import "TreasureFairyBallInfoModel.h"
#import "ContentTreasureFairyModel.h"
///View
#import "XPTreasureFairyMessageSendView.h"
@interface MessageContentTreasureFairyView ()
///
@property (nonatomic,strong) NetImageView *ballImageView;
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UILabel *checkLabel;
///
@property (nonatomic,strong) NIMMessage *message;
@property (nonatomic,strong) ContentTreasureFairyModel *fairyInfo;
@end
@implementation MessageContentTreasureFairyView
+ (CGFloat)measureHeight:(NIMMessage *)message {
return 78 + CONTENT_PADDING_V_TOTAL;
}
- (void)initSubViews {
[super initSubViews];
[self addSubview:self.backView];
[self.backView addSubview:self.ballImageView];
[self.backView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.titleLabel];
[self.stackView addArrangedSubview:self.checkLabel];
}
- (void)initSubViewConstraints {
[super initSubViewConstraints];
[self.backView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.trailing.equalTo(self);
make.leading.mas_equalTo(self).offset(10);
make.height.mas_equalTo(78);
make.width.mas_equalTo(235);
}];
[self.ballImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(62, 62));
make.leading.mas_equalTo(self.backView);
make.centerY.mas_equalTo(self.backView);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.ballImageView.mas_trailing).offset(12);
make.centerY.mas_equalTo(self.ballImageView);
make.trailing.mas_equalTo(self.backView).offset(-10);
}];
}
- (void)render:(MessageTreasureFairyModel *)model {
self.message = model.message;
NIMCustomObject *obj = (NIMCustomObject *)model.message.messageObject;
AttachmentModel * attach = (AttachmentModel *)obj.attachment;
ContentTreasureFairyModel * info;
if (model.message.localExt) {
info = [ContentTreasureFairyModel modelWithDictionary:model.message.localExt];
} else {
info = [ContentTreasureFairyModel modelWithDictionary:attach.data];
}
self.fairyInfo = info;
self.checkLabel.hidden = (attach.second == Custom_Message_Sub_Treasure_Fairy_Send_Fairy || info.isSended || self.message.isOutgoingMsg);
self.ballImageView.imageUrl = info.elfPicUrl;
self.titleLabel.text = info.msgContent;
}
- (void)checkRecognizer {
if (!self.titleLabel.isHidden) {
XPTreasureFairyMessageSendView * view = [[XPTreasureFairyMessageSendView alloc] init];
view.fairyInfo = self.fairyInfo;
@kWeakify(self);
view.finish = ^(BOOL success,ContentTreasureFairyModel * fairyInfo) {
@kStrongify(self);
fairyInfo.isSended = YES;
self.fairyInfo.isSended = fairyInfo;
self.message.localExt = [self.fairyInfo model2dictionary];
[[NIMSDK sharedSDK].conversationManager updateMessage:self.message forSession:self.message.session completion:^(NSError * _Nullable error) {
if (self.customMessageDelegate && [self.customMessageDelegate respondsToSelector:@selector(updateMessageSuccess:)]) {
[self.customMessageDelegate updateMessageSuccess:self.message];
}
}];
};
[TTPopup popupView:view style:TTPopupStyleAlert];
}
}
- (NetImageView *)ballImageView {
if (!_ballImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_ballImageView = [[NetImageView alloc] initWithConfig:config];
_ballImageView.contentMode = UIViewContentModeScaleAspectFill;
_ballImageView.layer.masksToBounds = YES;
}
return _ballImageView;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisVertical;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 10;
}
return _stackView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:13];
_titleLabel.textColor = [DJDKMIMOMColor mainTextColor];
_titleLabel.numberOfLines = 2;
}
return _titleLabel;
}
- (UILabel *)checkLabel {
if (!_checkLabel) {
_checkLabel = [[UILabel alloc] init];
_checkLabel.text = YMLocalizedString(@"MessageContentTreasureFairyView0");
_checkLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#5FCCE4"];
_checkLabel.font = [UIFont systemFontOfSize:13];
_checkLabel.textAlignment = NSTextAlignmentLeft;
_checkLabel.userInteractionEnabled = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(checkRecognizer)];
[_checkLabel addGestureRecognizer:tap];
}
return _checkLabel;
}
@end

View File

@@ -1,16 +0,0 @@
//
// MessageTreasureFairyModel.h
// YuMi
//
// Created by duoban on 2023/8/9.
//
#import "MessageBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageTreasureFairyModel : MessageBaseModel
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,28 +0,0 @@
//
// MessageTreasureFairyModel.m
// YuMi
//
// Created by duoban on 2023/8/9.
//
#import "MessageTreasureFairyModel.h"
#import "AttachmentModel.h"
#import "GuildMessageModel.h"
#import "DJDKMIMOMColor.h"
#import "NSObject+MJExtension.h"
@implementation MessageTreasureFairyModel
- (instancetype)initWithMessage:(NIMMessage *)message {
if (self = [super initWithMessage:message]) {
self.messageType = SessionMessageType_Custom;
self.height = 78 + CONTENT_PADDING_V_TOTAL;
self.contentSize = CGSizeMake(CONTENT_WIDTH_MAX, 78 + 20 + 15 + 15);
}
return self;
}
- (NSString *)cellContent:(MessageBaseModel *)model {
return @"MessageContentTreasureFairyView";
}
@end

View File

@@ -55,7 +55,6 @@
#import "MessageLevelUpgradeModel.h"
#import "MessageRevokeModel.h"
#import "MessageTipsModel.h"
#import "MessageTreasureFairyModel.h"
#import "MessageCPNotifyModel.h"
#import "MessagePublicEventModel.h"
///View
@@ -343,12 +342,6 @@
model = [[MessageRedPacketModel alloc] initWithMessage:message];
}
break;
case CustomMessageType_Treasure_Fairy:
if (second == Custom_Message_Sub_Treasure_Fairy_Ask_Fairy ||
second == Custom_Message_Sub_Treasure_Fairy_Send_Fairy) {
model = [[MessageTreasureFairyModel alloc] initWithMessage:message];
}
break;
case CustomMessageType_Service_Reply:
model = [[PIMessageContentServiceReplyModel alloc] initWithMessage:message];
break;

View File

@@ -270,8 +270,13 @@
if (!_attentionButton) {
_attentionButton = [UIButton buttonWithType:UIButtonTypeCustom];
_attentionButton.titleLabel.font = kFontMedium(14);
_attentionButton.titleLabel.numberOfLines = 2;
_attentionButton.titleLabel.numberOfLines = 2; //
_attentionButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
_attentionButton.titleLabel.adjustsFontSizeToFitWidth = YES; //
_attentionButton.titleLabel.minimumScaleFactor = 0.1; // 50%
_attentionButton.titleLabel.lineBreakMode = NSLineBreakByClipping;
_attentionButton.titleLabel.textAlignment = NSTextAlignmentCenter;
_attentionButton.contentEdgeInsets = UIEdgeInsetsMake(0, 8, 0, 8);
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell1") forState:UIControlStateNormal];
[_attentionButton setTitleColor:UIColorFromRGB(0xFF8C03) forState:UIControlStateNormal];
@@ -285,6 +290,8 @@
borderWidth:1
borderColor:UIColorFromRGB(0xFF8C03)];
[_attentionButton setCornerRadius:15];
}
return _attentionButton;
}

View File

@@ -100,6 +100,8 @@
_titleLabel.font = kFontRegular(14);
_titleLabel.textColor = UIColorFromRGB(0x313131);
[_titleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
_titleLabel.adjustsFontSizeToFitWidth = YES;
_titleLabel.numberOfLines = 0;
}
return _titleLabel;
}

View File

@@ -190,7 +190,6 @@
#pragma mark - XPMineAttentionTableViewCellDelegate
- (void)xPMineAttentionTableViewCell:(XPMineAttentionTableViewCell *)view findUser:(NSString *)uid {
//TODO:退 TODO
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[self.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -483,11 +483,11 @@ TZImagePickerControllerDelegate>
// 5
NSTimeInterval duration = asset.duration;
if (duration > 555.0) {
if (duration > 5.0) {
dispatch_async(dispatch_get_main_queue(), ^{
@kStrongify(self);
[self hideHUD];
[self showErrorToast:@"视频时长不能超过555秒"];
[self showErrorToast:YMLocalizedString(@"20.20.51_text_30")];
});
return;
}

View File

@@ -337,7 +337,6 @@ HWDMP4PlayDelegate>
[self.navigationController popViewControllerAnimated:YES];
return;
}
//退 TODO
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[self.navigationController popToRootViewControllerAnimated:NO];

View File

@@ -33,7 +33,7 @@
AudioVolumeParams.enableVadDetection = YES;
AudioVolumeParams.enablePitchCalculation = YES;
AudioVolumeParams.enableSpectrumCalculation = YES;
[self.engine enableAudioVolumeEvaluation:900 withParams:AudioVolumeParams];
[self.engine enableAudioVolumeEvaluation:300 withParams:AudioVolumeParams];
[TRTCCloud setConsoleEnabled:NO];
[_engine addDelegate:self];
}

View File

@@ -139,6 +139,10 @@ typedef NS_ENUM(NSInteger, BackMusicPlayState) {
- (NSInteger)loadUserSound;
@property (nonatomic,assign) BOOL broadcast;
// MARK: 指向实际使用的 stageView
- (void)updateDelegate:(id<RtcDelegate> _Nullable)delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -194,6 +194,10 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
_engineDelegate = delegate;
}
- (void)updateDelegate:(id<RtcDelegate> _Nullable)delegate {
_engineDelegate = delegate;
}
- (id<RtcInterface>)engine {
if (!_engine) {
_engine = [[TRTCRtcImpl alloc] initWithDelegate:self];

View File

@@ -1144,22 +1144,22 @@
- (UILabel *)ratioLabel {
if (!_ratioLabel) {
_ratioLabel = [UILabel labelInitWithText:@"0/0" font:kFontMedium(14) textColor:[UIColor blackColor]];
_ratioLabel = [UILabel labelInitWithText:@"0/0" font:kFontMedium(12) textColor:UIColorFromRGB(0x292601)];
_ratioLabel.textAlignment = NSTextAlignmentCenter;
_ratioLabel.transform = CGAffineTransformMakeRotation(M_PI_2); // 90
//
_ratioLabel.layer.shadowColor = [UIColor whiteColor].CGColor;
_ratioLabel.layer.shadowOffset = CGSizeZero;
_ratioLabel.layer.shadowRadius = 3.0;
_ratioLabel.layer.shadowOpacity = 0.8;
_ratioLabel.layer.masksToBounds = NO;
//
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"0/0"];
[attributedString addAttribute:NSStrokeColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, attributedString.length)];
[attributedString addAttribute:NSStrokeWidthAttributeName value:@(-2.0) range:NSMakeRange(0, attributedString.length)];
_ratioLabel.attributedText = attributedString;
// //
// _ratioLabel.layer.shadowColor = [UIColor whiteColor].CGColor;
// _ratioLabel.layer.shadowOffset = CGSizeZero;
// _ratioLabel.layer.shadowRadius = 3.0;
// _ratioLabel.layer.shadowOpacity = 0.8;
// _ratioLabel.layer.masksToBounds = NO;
//
// //
// NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"0/0"];
// [attributedString addAttribute:NSStrokeColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, attributedString.length)];
// [attributedString addAttribute:NSStrokeWidthAttributeName value:@(-2.0) range:NSMakeRange(0, attributedString.length)];
// _ratioLabel.attributedText = attributedString;
}
return _ratioLabel;
}

View File

@@ -125,19 +125,11 @@
#pragma mark -
- (void)tryEnterPublicRoom {
NSLog(@"PublicRoomManager: 开始尝试进入公共房间");
NSLog(@"PublicRoomManager: 当前状态 - isInitialized: %@, isInPublicRoom: %@, currentPublicRoomId: %@",
self.isInitialized ? @"YES" : @"NO",
self.isInPublicRoom ? @"YES" : @"NO",
self.currentPublicRoomId ?: @"nil");
if (!self.isInitialized) {
NSLog(@"PublicRoomManager: 管理器未初始化,无法进入公共房间");
return;
}
if (!self.userInfo) {
NSLog(@"PublicRoomManager: 用户信息缺失,无法进入公共房间");
return;
}
@@ -146,29 +138,19 @@
ClientDataModel *configInfo = [ClientConfig shareConfig].configInfo;
NSDictionary *publicChatRoomIdMap = configInfo.publicChatRoomIdMap;
NSLog(@"PublicRoomManager: 配置信息 - partitionId: %@, configInfo: %@, publicChatRoomIdMap: %@",
partitionId ?: @"nil",
configInfo ? @"存在" : @"nil",
publicChatRoomIdMap ? @"存在" : @"nil");
if (!publicChatRoomIdMap) {
NSLog(@"PublicRoomManager: 公共房间配置缺失");
return;
}
if (!partitionId) {
NSLog(@"PublicRoomManager: 分区ID缺失");
return;
}
NSNumber *roomId = publicChatRoomIdMap[partitionId];
if (!roomId) {
NSLog(@"PublicRoomManager: 未找到分区 %@ 对应的公共房间ID", partitionId);
return;
}
NSLog(@"PublicRoomManager: 尝试进入公共房间分区ID: %@, 房间ID: %@", partitionId, roomId);
//
[self enterPublicRoomWithRoomId:roomId.stringValue completion:^(NSError * _Nullable error) {
if (error) {
@@ -227,12 +209,10 @@
@kStrongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"PublicRoomManager: 进入公共房间失败: %@", error);
if (completion) {
completion(error);
}
} else {
NSLog(@"PublicRoomManager: 进入公共房间成功房间ID: %@", roomId);
self.isInPublicRoom = YES;
self.currentPublicRoomId = roomId;
if (completion) {
@@ -253,20 +233,15 @@
if (completion) {
completion(error);
}
return;
}
if (self.isInPublicRoom) {
NSLog(@"PublicRoomManager: 已在公共房间中");
} else if (self.isInPublicRoom) {
if (completion) {
completion(nil);
}
return;
} else {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self tryEnterPublicRoom];
});
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self tryEnterPublicRoom];
});
}
- (void)exitPublicRoomWithCompletion:(void(^)(NSError * _Nullable error))completion {
@@ -285,9 +260,9 @@
@kStrongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"PublicRoomManager: 退出公共房间失败: %@", error);
// NSLog(@"PublicRoomManager: 退出公共房间失败: %@", error);
} else {
NSLog(@"PublicRoomManager: 退出公共房间成功");
// NSLog(@"PublicRoomManager: 退出公共房间成功");
self.isInPublicRoom = NO;
self.currentPublicRoomId = nil;
}
@@ -301,69 +276,23 @@
#pragma mark -
- (void)updateUserInfo:(UserInfoModel *)userInfo {
NSLog(@"PublicRoomManager: 开始更新用户信息");
NSLog(@"PublicRoomManager: 用户信息 - uid: %ld, partitionId: %@",
userInfo.uid, userInfo.partitionId ?: @"nil");
if (!userInfo) {
NSLog(@"PublicRoomManager: 用户信息为空,更新失败");
return;
}
if (!userInfo.partitionId) {
NSLog(@"PublicRoomManager: 用户分区ID缺失更新失败");
return;
}
//
if (self.currentUserId && ![self.currentUserId isEqualToString:[NSString stringWithFormat:@"%ld", userInfo.uid]]) {
NSLog(@"PublicRoomManager: 检测到用户切换,重置管理器");
[self reset];
}
self.userInfo = userInfo;
self.currentUserId = [NSString stringWithFormat:@"%ld", userInfo.uid];
if (![self checkConfigPublicRoomID:@(userInfo.uid).stringValue]) {
return;
}
NSLog(@"PublicRoomManager: 用户信息更新完成 - currentUserId: %@, isInitialized: %@, isInPublicRoom: %@",
self.currentUserId,
self.isInitialized ? @"YES" : @"NO",
self.isInPublicRoom ? @"YES" : @"NO");
//
//
// if (self.isInitialized && !self.isInPublicRoom) {
// NSLog(@"PublicRoomManager: 条件满足,开始尝试进入公共房间");
// [self tryEnterPublicRoom];
// } else {
// NSLog(@"PublicRoomManager: 条件不满足,跳过进入公共房间 - isInitialized: %@, isInPublicRoom: %@",
// self.isInitialized ? @"YES" : @"NO",
// self.isInPublicRoom ? @"YES" : @"NO");
// }
}
#pragma mark -
- (void)updateConfig {
if (!self.isInitialized) {
NSLog(@"PublicRoomManager: 未初始化,跳过配置更新");
return;
}
ClientDataModel *configInfo = [ClientConfig shareConfig].configInfo;
if (!configInfo || !configInfo.publicChatRoomIdMap) {
NSLog(@"PublicRoomManager: 配置信息不完整,跳过配置更新");
return;
}
//
//
// if (!self.isInPublicRoom) {
// [self tryEnterPublicRoom];
// }
}
#pragma mark - NIMChatRoomManagerDelegate
#define ConnectionStateStyleString(enum) \

View File

@@ -13,7 +13,6 @@
///Tool
#import "AccountInfoStorage.h"
#import "Api+Room.h"
#import "Api+TreasureFairy.h"
#import "Api+LittleGame.h"
#import "ClientConfig.h"
#import "NetImageView.h"
@@ -25,7 +24,6 @@
#import "BoomInfoModel.h"
#import "AttachmentModel.h"
#import "FirstRechargeModel.h"
#import "TreasureFairyLimitModel.h"
#import "XPRedPacketResultModel.h"
///View
@@ -36,7 +34,6 @@
#import "XPArrangeMicViewController.h"
#import "XPSailingViewController.h"
#import "XCCurrentVCStackManager.h"
#import "XPTreasureFairyViewController.h"
#import "PIRoomEnterRedPacketView.h"
#import "BaseNavigationController.h"
#import "PIRoomActivityWebView.h"
@@ -484,18 +481,7 @@
[self lookLoveTapRecognizer];
} else if([info.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
[self sailTapRecognizer];
}else if([info.code isEqualToString:@"SEIZE_TREASURE"]){
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[[XCCurrentVCStackManager shareManager].getCurrentVC addChildViewController:fairyVC];
// [fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}else {
} else {
if (info.skipType == ActivitySkipType_Room) {
[self.hostDelegate exitRoom];
[XPRoomViewController openRoom:info.skipContent viewController:kWindow.rootViewController];
@@ -533,25 +519,11 @@
if(info == nil)return;
if([info.code isEqualToString:@"FIRST_CHARGE"]) {
[self firstRechargeTapRecognizer];
}else if ([info.code isEqualToString:@"FIND_LOVE"]) {
} else if ([info.code isEqualToString:@"FIND_LOVE"]) {
[self lookLoveTapRecognizer];
} else if([info.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
[self sailTapRecognizer];
}else if([info.code isEqualToString:@"SEIZE_TREASURE"]){
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[[XCCurrentVCStackManager shareManager].getCurrentVC addChildViewController:fairyVC];
[fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}else {
} else {
// if(index < self.playList.count){
// if(info.showType == ActivityShowType_Half){
// XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init];
@@ -725,20 +697,6 @@
[self lookLoveTapRecognizer];
} else if([model.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
[self sailTapRecognizer];
}else if([model.code isEqualToString:@"SEIZE_TREASURE"]){
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[[XCCurrentVCStackManager shareManager].getCurrentVC addChildViewController:fairyVC];
[fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
} else if(model.skipType == ActivitySkipType_Web) {
if(model.showType == ActivityShowType_Half){
XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init];

View File

@@ -68,7 +68,6 @@
#import "XPRoomGiftCompoundView.h"
#import "XPRoomGiftBroadcastView.h"
#import "XPRoomLuckyBigPrizeView.h"
#import "XPTreasureFairyGiftView.h"
#import "XPAcrossRoomPKPrizeView.h"
#import "PIRoomGiftBroadcastWindow.h"
#import "XPRoomDatingAnimationView.h"
@@ -742,7 +741,11 @@ BannerSchedulerDelegate
}
} else if (obj.second == Custom_Message_Sub_Super_Gift_Banner ||
obj.second == Custom_Message_Sub_Gift_ChannelNotify ||
obj.second == Custom_Message_Sub_LuckyPackage) {
obj.second == Custom_Message_Sub_LuckyPackage ||
obj.second == Custom_Message_Sub_Super_Gift_Winning_Coins_ALL_Room ||
obj.second == Custom_Message_Sub_Room_Gift_LuckBag ||
obj.second == Custom_Message_Sub_Room_Gift_LuckBag_Server ||
obj.second == Custom_Message_Sub_Room_Gift_LuckBag_FullScree) {
// banner
BOOL allowGiftScreen = [[TurboModeStateManager sharedManager] isGlobalGiftScreenEnabledForRoom:roomIdForTurbo];
if (!allowGiftScreen) {
@@ -1937,9 +1940,6 @@ BannerSchedulerDelegate
case CustomMessageType_Graffiti_Star_Kitchen:
[self handle104:attachment];
break;
case CustomMessageType_Treasure_Fairy:
[self handleFairy:attachment];
break;
case CustomMessageType_Tarot:
[self handleTarot:attachment];
break;
@@ -2230,24 +2230,6 @@ BannerSchedulerDelegate
}
}
- (void)handleFairy:(AttachmentModel *)attachment {
if (!attachment) {
return;
}
switch (attachment.second) {
case Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4:
case Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5:
case Custom_Message_Sub_Treasure_Fairy_Convert_L1:
case Custom_Message_Sub_Treasure_Fairy_Convert_L2:
case Custom_Message_Sub_Treasure_Fairy_Convert_L3:
[self receiveTreasureFairyGiftHighLevel:attachment];
break;
default:
break;
}
}
- (void)handle98:(AttachmentModel *)attachment {
if (!attachment) {
return;
@@ -2458,9 +2440,6 @@ BannerSchedulerDelegate
case CustomMessageType_Look_Love:
[self handle98:attachment];
break;
case CustomMessageType_Treasure_Fairy:
[self handleFairy:attachment];
break;
case CustomMessageType_Tarot:
[self handleTarot:attachment];
break;
@@ -3210,73 +3189,6 @@ BannerSchedulerDelegate
}
}
- (void)receiveTreasureFairyGiftHighLevel:(AttachmentModel *)attatchment {
if ([self _isInSudGame]) {return;}
PIBaseAnimationViewModel *giftModel = [PIBaseAnimationViewModel new];
giftModel.data = attatchment.data;
giftModel.second = attatchment.second;
giftModel.first = attatchment.first;
giftModel.type = GiftBannerType_Fairy;
if (self.animationListB.count == 0 && self.isPlayOfB == NO) {
[self createTreasureFairyBannerAnimation:giftModel];
}
[self.animationListB addObject:giftModel];
}
- (void)createTreasureFairyBannerAnimation:(PIBaseAnimationViewModel *)attatchment {
self.isPlayOfB = YES;
CGFloat kscale = (CGFloat)60 / (CGFloat)375;
CGFloat top = (kNavigationHeight + 15);
XPTreasureFairyGiftView *treasureView = [[XPTreasureFairyGiftView alloc] initWithFrame:CGRectMake(KScreenWidth, top, KScreenWidth , KScreenWidth * kscale)];
//
if ((attatchment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5) || (attatchment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L3)) {
treasureView.isMaxLargeGift = YES;
}else{
treasureView.isMaxLargeGift = NO;
}
if ((attatchment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4) || (attatchment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5)) {
treasureView.isDrawGift = YES; //
}else{
treasureView.isDrawGift = NO; //
}
treasureView.treasureInfo = attatchment.data;
[self.middleContainer addSubview:treasureView];
POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
springAnimation.springSpeed = 12;
springAnimation.springBounciness = 10.f;
springAnimation.fromValue = [NSValue valueWithCGPoint:treasureView.center];
springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(treasureView.frame.size.width / 2, treasureView.center.y)];
[springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
if (finished) {
POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter];
moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, treasureView.center.y)];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, treasureView.center.y)];
moveAnimation.beginTime = CACurrentMediaTime() + 3;
moveAnimation.duration = 0.5;
moveAnimation.repeatCount = 1;
moveAnimation.removedOnCompletion = YES;
@kWeakify(self);
[moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
@kStrongify(self);
if (finished) {
[treasureView removeFromSuperview];
self.isPlayOfB = NO;
if (self.animationListB.count > 0) {
[self.animationListB xpSafeRemoveObjectAtIndex:0];
}
[self playAnimationWithModel];
}
}];
[treasureView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
}
}];
[treasureView pop_addAnimation:springAnimation forKey:@"candyTreespingOutAnimation"];
}
- (void)createGiftCompoundBannerAnimation:(PIBaseAnimationViewModel *)attachment {
self.isPlayOfB = YES;
XPRoomGiftCompoundView *compoundGiftView = [[XPRoomGiftCompoundView alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, 45)];
@@ -3700,9 +3612,6 @@ BannerSchedulerDelegate
case GiftBannerType_LicneseHour:
[self createAnchorHourRankAnimation:model];
break;
case GiftBannerType_Fairy:
[self createTreasureFairyBannerAnimation:model];
break;
case GiftBannerType_Magic_House:
[self createGiftCompoundBannerAnimation:model];
break;
@@ -3995,7 +3904,8 @@ BannerSchedulerDelegate
for (UIView *subview in self.bannerContainer.subviews) {
if ([subview isKindOfClass:[BravoGiftBannerView class]] ||
[subview isKindOfClass:[LuckyGiftWinningBannerView class]] ||
[subview isKindOfClass:[RoomHighValueGiftBannerAnimation class]]) {
[subview isKindOfClass:[RoomHighValueGiftBannerAnimation class]] ||
[subview isKindOfClass:[LuckyPackageBannerView class]]) {
[viewsToRemove addObject:subview];
}
}
@@ -4004,6 +3914,22 @@ BannerSchedulerDelegate
[view removeFromSuperview];
}
// bannerbannerbanner
if (self.bannerScheduler) {
//
for (NSInteger i = self.bannerScheduler.queueCount - 1; i >= 0; i--) {
id queued = [self.bannerScheduler bannerAtIndex:i];
if ([queued isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *att = (AttachmentModel *)queued;
if (att.second == Custom_Message_Sub_Super_Gift_Banner ||
att.second == Custom_Message_Sub_Gift_ChannelNotify ||
att.second == Custom_Message_Sub_LuckyPackage) {
[self.bannerScheduler removeBannerAtIndex:i];
}
}
}
}
// banner
if (self.isRoomBannerV2Displaying) {
self.isRoomBannerV2Displaying = NO;
@@ -4029,6 +3955,20 @@ BannerSchedulerDelegate
[view removeFromSuperview];
}
// banner/
if (self.bannerScheduler) {
for (NSInteger i = self.bannerScheduler.queueCount - 1; i >= 0; i--) {
id queued = [self.bannerScheduler bannerAtIndex:i];
if ([queued isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *att = (AttachmentModel *)queued;
if (att.second == Custom_Message_Sub_General_Floating_Screen_One_Room ||
att.second == Custom_Message_Sub_General_Floating_Screen_All_Room) {
[self.bannerScheduler removeBannerAtIndex:i];
}
}
}
}
// banner
if (self.isRoomBannerV2Displaying) {
self.isRoomBannerV2Displaying = NO;
@@ -4072,14 +4012,38 @@ BannerSchedulerDelegate
#pragma mark - BannerSchedulerDelegate
- (void)bannerScheduler:(BannerScheduler *)scheduler shouldPlayBanner:(id)banner {
// Banner AttachmentModel
if ([banner isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *attachment = (AttachmentModel *)banner;
[self _playBannerWithAttachment:attachment];
} else {
// Banner AttachmentModel
if (![banner isKindOfClass:[AttachmentModel class]]) {
NSLog(@"⚠️ BannerSchedulerDelegate: Banner 不是 AttachmentModel 类型");
[self.bannerScheduler markBannerFinished];
return;
}
AttachmentModel *attachment = (AttachmentModel *)banner;
// TurboMode
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
BOOL allowed = YES;
if (attachment.second == Custom_Message_Sub_General_Floating_Screen_One_Room ||
attachment.second == Custom_Message_Sub_General_Floating_Screen_All_Room) {
allowed = [[TurboModeStateManager sharedManager] isGlobalGameScreenEnabledForRoom:roomIdForTurbo];
} else if (attachment.second == Custom_Message_Sub_Super_Gift_Banner ||
attachment.second == Custom_Message_Sub_Gift_ChannelNotify ||
attachment.second == Custom_Message_Sub_LuckyPackage) {
allowed = [[TurboModeStateManager sharedManager] isGlobalGiftScreenEnabledForRoom:roomIdForTurbo];
} else if (attachment.second == Custom_Message_Sub_CP_Gift ||
attachment.second == Custom_Message_Sub_CP_Upgrade ||
attachment.second == Custom_Message_Sub_CP_Binding) {
allowed = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomIdForTurbo];
}
if (!allowed) {
NSLog(@"🎮 TurboMode 二次校验拒绝播放 banner(second=%ld) - 房间ID:%@", (long)attachment.second, roomIdForTurbo);
[self.bannerScheduler markBannerFinished];
return;
}
[self _playBannerWithAttachment:attachment];
}
- (void)bannerSchedulerDidFinishPlaying:(BannerScheduler *)scheduler {
@@ -4283,6 +4247,12 @@ BannerSchedulerDelegate
//
if (!enabled) {
[self cleanupGiftEffects];
// CP Banner CP
if (self.currentRoomId.length > 0) {
[self cleanupCpBanners];
} else {
[self cleanupCpBanners];
}
}
NSLog(@"🎮 RoomAnimationView 礼物特效状态变化: %@", enabled ? @"开启" : @"关闭");
@@ -4320,6 +4290,50 @@ BannerSchedulerDelegate
NSLog(@"🎮 RoomAnimationView CP麦位开关状态变化: %@", enabled ? @"开启" : @"关闭");
}
// 🔧 CP banner
- (void)cleanupCpBanners {
NSLog(@"🎮 清理 CP 相关banner");
// CP
NSMutableArray *viewsToRemove = [NSMutableArray array];
for (UIView *subview in self.bannerContainer.subviews) {
if ([subview isKindOfClass:[CPGiftBanner class]]) {
[viewsToRemove addObject:subview];
}
}
for (UIView *subview in self.topContainer.subviews) {
if ([subview isKindOfClass:[CPBindingAnimation class]] ||
[subview isKindOfClass:[CPLevelUpAnimation class]]) {
[viewsToRemove addObject:subview];
}
}
for (UIView *v in viewsToRemove) {
[v removeFromSuperview];
}
// CP bannerCP //
if (self.bannerScheduler) {
for (NSInteger i = self.bannerScheduler.queueCount - 1; i >= 0; i--) {
id queued = [self.bannerScheduler bannerAtIndex:i];
if ([queued isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *att = (AttachmentModel *)queued;
if (att.second == Custom_Message_Sub_CP_Gift ||
att.second == Custom_Message_Sub_CP_Upgrade ||
att.second == Custom_Message_Sub_CP_Binding) {
[self.bannerScheduler removeBannerAtIndex:i];
}
}
}
}
if (self.isRoomBannerV2Displaying) {
self.isRoomBannerV2Displaying = NO;
[self.bannerScheduler markBannerFinished];
}
NSLog(@"🎮 CP 相关banner清理完成");
}
// 🔧 ID
- (void)handleCurrentRoomIdSet:(NSNotification *)notification {
NSString *roomId = notification.userInfo[@"roomId"];

View File

@@ -1,23 +0,0 @@
//
// XPTreasureFairyGiftView.h
// xplan-ios
//
// Created by XY on 2023/3/1.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPTreasureFairyGiftView : UIView
///是否是动态飘屏
@property (nonatomic,assign) BOOL isMaxLargeGift;
/// 是否是抽奖(抽奖、召唤)
@property (nonatomic,assign) BOOL isDrawGift;
///夺宝信息
@property (nonatomic,copy) NSDictionary *treasureInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,193 +0,0 @@
//
// XPTreasureFairyGiftView.m
// xplan-ios
//
// Created by XY on 2023/3/1.
//
#import "XPTreasureFairyGiftView.h"
///Third
#import <Masonry/Masonry.h>
#import <SVGA.h>
#import "XPSVGAPlayer.h"
#import "ThemeColor+Room.h"
#import "TreasureFailryMessageModel.h"
#import "NSObject+MJExtension.h"
@interface XPTreasureFairyGiftView()
///
@property (strong, nonatomic) SVGAParser *parser;
///
@property (nonatomic,strong) XPSVGAPlayer *treasureView;
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UIView *titleView;
///
@property (nonatomic,strong) UILabel *titleLabel;
@end
@implementation XPTreasureFairyGiftView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.treasureView];
[self addSubview:self.backImageView];
[self.backImageView addSubview:self.titleView];
[self.titleView addSubview:self.titleLabel];
}
- (void)initSubViewConstraints {
[self.treasureView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.backImageView).inset(20);
make.height.mas_equalTo(28);
make.top.mas_equalTo(self.backImageView).offset(23);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.titleView);
make.centerY.mas_equalTo(self.titleView);
}];
}
- (NSAttributedString *)createAttribute:(NSString * )text color:(UIColor *)color fontSize:(CGFloat)fonSize {
NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color};
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute];
return attr;
}
#pragma mark - Getters And Setters
- (void)setTreasureInfo:(NSDictionary *)treasureInfo {
if (treasureInfo) {
TreasureFailryMessageModel * giftInfo = [TreasureFailryMessageModel modelWithDictionary:treasureInfo];
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
CGFloat fontSize = self.isMaxLargeGift ? 22 : 13;
// CGFloat fontSize = 13;
if (self.isDrawGift) {
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView0") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
NSString * nick = giftInfo.nick;
if (nick.length > 6) {
nick = [nick substringToIndex:6];
}
[attribute appendAttributedString:[self createAttribute:nick color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView1") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardName color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
if (giftInfo.rewardNum > 1) {
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@" X%ld", giftInfo.rewardNum] color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
}
}else{
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView2") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:giftInfo.nick color:[DJDKMIMOMColor colorWithHexString:@"#EC4613"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView3") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
NSString *level = @"";
if (giftInfo.rewardLevel == 1) {
level = YMLocalizedString(@"XPTreasureFairyGiftView4");
}else if (giftInfo.rewardLevel == 2) {
level = YMLocalizedString(@"XPTreasureFairyGiftView5");
}else if (giftInfo.rewardLevel == 3) {
level = YMLocalizedString(@"XPTreasureFairyGiftView6");
}
[attribute appendAttributedString:[self createAttribute:level color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView7") color:[DJDKMIMOMColor colorWithHexString:@"#8C4700"] fontSize:fontSize]];
[attribute appendAttributedString:[self createAttribute:[NSString stringWithFormat:@"%ld",giftInfo.rewardShowValue] color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
if ([giftInfo.rewardType isEqualToString:@"gift"]) {
[attribute appendAttributedString:[self createAttribute:YMLocalizedString(@"XPTreasureFairyGiftView8") color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
}else{
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardUnit color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
}
[attribute appendAttributedString:[self createAttribute:giftInfo.rewardName color:[DJDKMIMOMColor colorWithHexString:@"#F1390A"] fontSize:fontSize]];
}
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
paragraphStyle.lineSpacing = 0.0f;//
paragraphStyle.alignment = NSTextAlignmentCenter;
paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
[attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attribute.length)];
[self.treasureView setAttributedText:attribute forKey:@"touming_text_name"];
if (self.isMaxLargeGift) {
self.backImageView.hidden = YES;
self.treasureView.hidden = NO;
@kWeakify(self);
[self.parser parseWithNamed:@"pi_treasure_fairy_gift_bg" inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.treasureView.loops = 1;
self.treasureView.clearsAfterStop = NO;
self.treasureView.videoItem = videoItem;
[self.treasureView startAnimation];
} failureBlock:^(NSError * _Nonnull error) {
}];
} else {
self.backImageView.hidden = NO;
self.treasureView.hidden = YES;
self.titleLabel.attributedText = attribute;
self.titleLabel.textAlignment = NSTextAlignmentCenter;
}
}
}
- (XPSVGAPlayer *)treasureView {
if (!_treasureView) {
_treasureView = [[XPSVGAPlayer alloc]init];
_treasureView.backgroundColor = [UIColor clearColor];
_treasureView.userInteractionEnabled = NO;
}
return _treasureView;
}
- (SVGAParser *)parser {
if (!_parser) {
_parser = [[SVGAParser alloc]init];
}
return _parser;
}
- (UIView *)titleView {
if (!_titleView) {
_titleView = [[UIView alloc] init];
_titleView.backgroundColor = [UIColor clearColor];
}
return _titleView;
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.image = [UIImage imageNamed:@"room_treaseure_fairy_normal_gift_bg"];
}
return _backImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.numberOfLines = 2;
}
return _titleLabel;
}
@end

View File

@@ -127,7 +127,6 @@
NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
// NSLog(@"用户ID%@房间ID%@, 游戏ID%lld, code:%@", userId, roomId, self.currentmgId, self.code);
// TODO:
NSString *language = @"en-US";
if (isMSZH()) {
language = @"zh-TW";

View File

@@ -80,7 +80,6 @@
if (data) {
RedEnvelopeListVo *vo = [RedEnvelopeListVo modelWithJSON:data];
if (vo.roomUid != self.roomUid.integerValue) {
// TODO:
return;
}

View File

@@ -7,7 +7,6 @@
#import "Api+Room.h"
#import "MSRoomMenuGameVC.h"
#import "MSRoomMenuGameView.h"
#import "XPTreasureFairyViewController.h"
#import "XPRoomHalfWebView.h"
#import "XPWebViewController.h"
#import "XPCandyTreeViewController.h"
@@ -344,21 +343,6 @@
[self clickGameVC:model];
} else if ([model.code isEqualToString:@"LEADERCC"]) {
[self clickGameVC:model];
} else if([model.code isEqualToString:@"SEIZE_TREASURE"]){
if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){
XPRoomViewController *vc = (XPRoomViewController *)self.hostDelegate;
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[vc addChildViewController:fairyVC];
[fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
[vc.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}
} else if(model.skipType == ActivitySkipType_Web) {
if(model.showType == ActivityShowType_Half){
XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init];

View File

@@ -112,15 +112,21 @@
#pragma mark - RoomGuestDelegate
- (void)handleNIMCustomMessage:(NIMMessage *)message {
[self.messageListView handleNIMCustomMessage:message];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView handleNIMCustomMessage:message];
});
}
- (void)handleNIMNotificationMessage:(NIMMessage *)message {
[self.messageListView handleNIMNotificationMessage:message];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView handleNIMNotificationMessage:message];
});
}
- (void)handleNIMTextMessage:(NIMMessage *)message {
[self.messageListView handleNIMTextMessage:message];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView handleNIMTextMessage:message];
});
}
- (void)handleNIMImageMessage:(NIMMessage *)message {
@@ -129,16 +135,22 @@
- (void)onRoomMiniEntered {
self.hidden = NO;
[self.messageListView onRoomMiniEntered];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView onRoomMiniEntered];
});
}
- (void)onRoomEntered {
self.hidden = NO;
[self.messageListView onRoomEntered];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView onRoomEntered];
});
}
- (void)onRoomUpdate {
[self.messageListView onRoomUpdate];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView onRoomUpdate];
});
}
#pragma mark - XPRoomMessageContainerViewDelegate
- (void)xPRoomMessageContainerViewlDidTapEmpty:(XPRoomMessageContainerView *)view{
@@ -165,7 +177,9 @@
}
}
[self.messageListView handleBroadcastMessage:broadcastMessage];
dispatch_async(dispatch_get_main_queue(), ^{
[self.messageListView handleBroadcastMessage:broadcastMessage];
});
}
#pragma mark -

View File

@@ -41,7 +41,6 @@
#import "XPOpenRedPacketModel.h"
#import "XPMessageInfoModel.h"
#import "TreasureFailryMessageModel.h"
#import "NetImageView.h"
#import "XPRoomTopicAlertView.h"
@@ -49,7 +48,6 @@
#import "XPRoomPKResultView.h"
#import "XPWebViewController.h"
#import "XCCurrentVCStackManager.h"
#import "XPTreasureFairyViewController.h"
#import "PIGeneralPublicScreenModel.h"
#import "QEmotionHelper.h"
@@ -213,9 +211,7 @@
} else if (attachment.second == Custom_Message_Sub_LuckyPackage){
return [self createNewRedPacketAttribute:attachment messageInfo:messageInfo];
}
} else if (first == CustomMessageType_Treasure_Fairy) {
return [self createTreasureFairyAttribute:attachment messageInfo:messageInfo];
}else if (first == CustomMessageType_Room_Album) {
} else if (first == CustomMessageType_Room_Album) {
NSDictionary *userInfo = attachment.data[@"user"];
NSDictionary *userLevel = attachment.data[@"userLevel"];
if(userLevel != nil){
@@ -614,83 +610,6 @@
}
return nil;
}
#pragma mark -
- (XPMessageInfoModel *)createTreasureFairyAttribute:(AttachmentModel *)attachment messageInfo:(XPMessageInfoModel *)messageInfo{
TreasureFailryMessageModel *info = [TreasureFailryMessageModel modelWithDictionary:attachment.data];
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L1 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L2 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L3) {///
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser115") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:info.nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
[self attributeAddHihtLight:nickAttriibute uid:info.uid.integerValue];
[attribute appendAttributedString:nickAttriibute];
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser116") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createTextAttribute:info.rewardName color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
if (info.rewardNum > 1) {
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:@"X%ld", info.rewardNum] color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
}
} else if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5) {///
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser117") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:info.nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
[self attributeAddHihtLight:nickAttriibute uid:info.uid.integerValue];
[attribute appendAttributedString:nickAttriibute];
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser116") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createTextAttribute:info.rewardName color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
if (info.rewardNum > 1) {
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:@"X%ld", info.rewardNum] color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
}
} else if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L1) {///
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser115") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:info.nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
[self attributeAddHihtLight:nickAttriibute uid:info.uid.integerValue];
[attribute appendAttributedString:nickAttriibute];
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser116") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createTextAttribute:info.rewardName color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
} else if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L2 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L3) {///
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser117") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:info.nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
[self attributeAddHihtLight:nickAttriibute uid:info.uid.integerValue];
[attribute appendAttributedString:nickAttriibute];
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser116") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createTextAttribute:info.rewardName color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
} else if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L1 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L2 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L3) {///
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser115") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:info.nick color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
[self attributeAddHihtLight:nickAttriibute uid:info.uid.integerValue];
[attribute appendAttributedString:nickAttriibute];
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser116") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
if(attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L3) {
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser119") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
} else if (attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L2) {
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser120") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
} else {
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser121") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
}
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser122") color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createTextAttribute:[NSString stringWithFormat:@"%ld", info.rewardShowValue] color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont]];
if ([info.rewardType isEqualToString:@"gift"]){
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser123") color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont]];
} else {
[attribute appendAttributedString:[self createTextAttribute:info.rewardUnit color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont]];
}
[attribute appendAttributedString:[self createTextAttribute:info.rewardName color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont]];
}
if (self.hostDelegate.getUserInfo.userLevelVo.experLevelSeq >= info.userLevelLimit) {
NSMutableAttributedString * nickAttriibute = [self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser124") color:[DJDKMIMOMColor messageNickColor] font:kRoomMessageDefalutFont];
@kWeakify(self);
[nickAttriibute yy_setTextHighlightRange:NSMakeRange(0, nickAttriibute.length) color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) {
@kStrongify(self);
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self.hostDelegate.getCurrentNav presentViewController:fairyVC animated:YES completion:nil];
}];
[attribute appendAttributedString:nickAttriibute];
}
messageInfo.content = attribute;
messageInfo.first = attachment.first;
return messageInfo;
}
- (XPMessageInfoModel *)createGeneralPublicScreenAttribute:(AttachmentModel *)attachment messageInfo:(XPMessageInfoModel *)messageInfo{

View File

@@ -83,7 +83,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
@property (nonatomic, assign) NSInteger atCount;
///@
@property (nonatomic, strong) NSMutableArray *locationArray;
///messageView TODO:
///messageView
@property (nonatomic,strong) XPRoomMessageParser *messageParser;
@property(nonatomic,strong) PIRoomPhotoAlbumItemModel *lookUpModel;
@@ -93,6 +93,13 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
/// reload
@property (nonatomic, assign) BOOL forceReloadNextAppend;
/// UI
@property (atomic, assign) BOOL viewReady;
///
@property (atomic, assign) BOOL isFlushing;
/// UI viewReady
@property (nonatomic, strong) NSMutableArray<dispatch_block_t> *pendingOps;
@end
@@ -115,6 +122,54 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
return self;
}
/// UI 退 reload
- (void)safeApplyInsertsFromStartIndex:(NSInteger)startIndex
newItemsCount:(NSInteger)newItemsCount
needReload:(BOOL)needReload {
if (needReload || newItemsCount <= 0) {
[self.messageTableView reloadData];
return;
}
if (self.isFlushing) {
//
dispatch_async(dispatch_get_main_queue(), ^{
[self safeApplyInsertsFromStartIndex:startIndex newItemsCount:newItemsCount needReload:NO];
});
return;
}
self.isFlushing = YES;
//
NSInteger beforeRows = [self.messageTableView numberOfRowsInSection:0];
NSInteger expectedRows = [self getCurrentDataSourceCount];
BOOL indexValid = (startIndex >= 0 && startIndex <= beforeRows);
BOOL countValid = (beforeRows + newItemsCount == expectedRows);
if (!indexValid || !countValid) {
[self.messageTableView reloadData];
self.isFlushing = NO;
return;
}
// indexPaths
NSMutableArray<NSIndexPath *> *indexPaths = [NSMutableArray array];
for (NSInteger i = 0; i < newItemsCount; i++) {
[indexPaths addObject:[NSIndexPath indexPathForRow:startIndex + i inSection:0]];
}
//
[self.messageTableView beginUpdates];
@try {
[self.messageTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
} @catch (__unused NSException *e) {
[self.messageTableView reloadData];
} @finally {
[self.messageTableView endUpdates];
self.isFlushing = NO;
}
}
- (void)changeType:(NSInteger)type {
if (self.displayType == type) {
return;
@@ -154,7 +209,6 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
case CustomMessageType_Candy_Tree:
case CustomMessageType_Super_Gift:
case CustomMessageType_AllMicroSend:
case CustomMessageType_Treasure_Fairy:
[self.datasource_gift addObject:model];
break;
default:
@@ -183,6 +237,19 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
///
- (void)appendAndScrollToAtUser {
//
if (![NSThread isMainThread]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self appendAndScrollToAtUser];
});
return;
}
if (!self.viewReady) {
if (!self.pendingOps) self.pendingOps = [NSMutableArray array];
__weak typeof(self) weakSelf = self;
[self.pendingOps addObject:^{ __strong typeof(weakSelf) self = weakSelf; [self appendAndScrollToAtUser]; }];
return;
}
// 1. incomingMessages
if (self.incomingMessages.count < 1) {
// 2. locationArray
@@ -246,32 +313,8 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
[self.incomingMessages removeAllObjects];
// 7. UITableView
if (needReloadData || self.forceReloadNextAppend) {
[self.messageTableView reloadData];
self.forceReloadNextAppend = NO;
} else if (tempNewDatas.count > 0) {
//
NSInteger expectedRows = [self getCurrentDataSourceCount];
if (expectedRows != [self.messageTableView numberOfRowsInSection:0]) {
[self.messageTableView reloadData];
} else {
// indexPath使
NSMutableArray *indexPaths = @[].mutableCopy;
NSInteger startIndex = currentRows;
if (startIndex >= 0 && startIndex <= [self.messageTableView numberOfRowsInSection:0]) {
for (NSInteger i = 0; i < tempNewDatas.count; i++) {
[indexPaths addObject:[NSIndexPath indexPathForRow:startIndex + i inSection:0]];
}
// 使
[UIView animateWithDuration:0.2 animations:^{
[self.messageTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
}];
} else {
[self.messageTableView reloadData];
}
}
}
[self safeApplyInsertsFromStartIndex:currentRows newItemsCount:tempNewDatas.count needReload:(needReloadData || self.forceReloadNextAppend)];
self.forceReloadNextAppend = NO;
// 6.
[self scrollToFirstLocationOrBottom];
@@ -350,7 +393,6 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
case CustomMessageType_Candy_Tree:
case CustomMessageType_Super_Gift:
case CustomMessageType_AllMicroSend:
case CustomMessageType_Treasure_Fairy:
[self.datasource_gift removeObject:removedModel];
break;
default:
@@ -525,6 +567,10 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
[self addSubview:self.messageTipsBtn];
[self addSubview:self.atTipBtn];
self.messageTableView.tableHeaderView = self.headerView;
// flush
self.viewReady = NO;
self.isFlushing = NO;
}
- (void)initSubViewConstraints {
@@ -548,6 +594,18 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
make.bottom.mas_equalTo(self.mas_bottom).offset(-5);
make.leading.mas_equalTo(self);
}];
// flush
dispatch_async(dispatch_get_main_queue(), ^{
if (!self.viewReady) {
self.viewReady = YES;
if (self.pendingOps.count > 0) {
NSArray<dispatch_block_t> *ops = [self.pendingOps copy];
[self.pendingOps removeAllObjects];
for (void (^op)(void) in ops) { op(); }
}
}
});
}
///
@@ -611,6 +669,19 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
///
- (void)appendAndScrollToBottom {
//
if (![NSThread isMainThread]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self appendAndScrollToBottom];
});
return;
}
if (!self.viewReady) {
if (!self.pendingOps) self.pendingOps = [NSMutableArray array];
__weak typeof(self) weakSelf = self;
[self.pendingOps addObject:^{ __strong typeof(weakSelf) self = weakSelf; [self appendAndScrollToBottom]; }];
return;
}
if (self.incomingMessages.count < 1) {
///atincomeatatat
[self scrollToBottom:YES];
@@ -648,32 +719,8 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
[self updateAllDataSource:tempArray];
// 使 reloadData使
if (needReloadData || self.forceReloadNextAppend) {
[self.messageTableView reloadData];
self.forceReloadNextAppend = NO;
} else if (tempArray.count > 0) {
//
NSInteger expectedRows = [self getCurrentDataSourceCount];
if (expectedRows != [self.messageTableView numberOfRowsInSection:0]) {
[self.messageTableView reloadData];
} else {
// indexPath使
NSMutableArray *indexPaths = @[].mutableCopy;
NSInteger startIndex = currentRows;
if (startIndex >= 0 && startIndex <= [self.messageTableView numberOfRowsInSection:0]) {
for (NSInteger i = 0; i < tempArray.count; i++) {
[indexPaths addObject:[NSIndexPath indexPathForRow:startIndex + i inSection:0]];
}
// 使
[UIView animateWithDuration:0.2 animations:^{
[self.messageTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
}];
} else {
[self.messageTableView reloadData];
}
}
}
[self safeApplyInsertsFromStartIndex:currentRows newItemsCount:tempArray.count needReload:(needReloadData || self.forceReloadNextAppend)];
self.forceReloadNextAppend = NO;
//
//
@@ -912,21 +959,6 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
@(Custom_Message_Sub_OpenRedPacketSuccess),
@(Custom_Message_Sub_LuckyPackage),
nil],
@(CustomMessageType_Treasure_Fairy):
[NSSet setWithObjects:
@(Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L1),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L2),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L3),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L1),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L2),
@(Custom_Message_Sub_Treasure_Fairy_Draw_Ball_L3),
@(Custom_Message_Sub_Treasure_Fairy_Convert_L1),
@(Custom_Message_Sub_Treasure_Fairy_Convert_L2),
@(Custom_Message_Sub_Treasure_Fairy_Convert_L3),
nil],
@(CustomMessageType_General_Public_Screen):
[NSSet setWithObjects:
@(Custom_Message_Sub_General_Public_Screen_One_Room),
@@ -1126,7 +1158,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
NSDictionary *obj = [datas xpSafeObjectAtIndex:0];
if (obj) {
NSArray *results = [obj objectForKey:@"resultIndexes"];
if (results.count > 0) {
if ([results isKindOfClass:[NSArray class]] && results.count > 0) {
delay = 2.5;
}
}

View File

@@ -28,7 +28,7 @@
+ (NSArray<XPRoomMoreMenuAction *> *)createActionsWithContext:(XPRoomMoreMenuActionContext *)context {
NSMutableArray *actions = [NSMutableArray array];
[actions addObject:[XPSocialAction trumpetAction]];
// [actions addObject:[XPSocialAction trumpetAction]];
[actions addObject:[XPTurboModeAction actionWithRoomInfo:context.roomInfo]];
[actions addObject:[XPRoomAppManagerAction action]];
[actions addObject:[XPSocialAction reportAction]];
@@ -78,13 +78,13 @@
// 4. -
if (userNotNormal) {
[actions addObject:[XPSocialAction trumpetAction]];
// [actions addObject:[XPSocialAction trumpetAction]];
[actions addObject:[XPRoomEffectAction action]];
[actions addObject:[XPRoomSettingAction action]];
[actions addObject:[XPRoomBackGroundSettingAction action]];
[actions addObject:[XPRoomCleanMessagesAction action]];
} else {
[actions addObject:[XPSocialAction trumpetAction]];
// [actions addObject:[XPSocialAction trumpetAction]];
[actions addObject:[XPRoomEffectAction action]];
}
@@ -138,7 +138,7 @@
+ (NSArray<XPRoomMoreMenuAction *> *)createSuperAdminActionsWithContext:(XPRoomMoreMenuActionContext *)context {
NSMutableArray *actions = [NSMutableArray array];
[actions addObject:[XPSocialAction trumpetAction]];
// [actions addObject:[XPSocialAction trumpetAction]];
[actions addObject:[XPTurboModeAction actionWithRoomInfo:context.roomInfo]];
[actions addObject:[XPRoomAppManagerAction action]];
[actions addObject:[XPSocialAction reportAction]];

View File

@@ -160,7 +160,7 @@
- (void)setupUnderstandButton {
self.understandButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.understandButton setTitle:@"I understand" forState:UIControlStateNormal];
[self.understandButton setTitle:YMLocalizedString(@"PKIDLoginViewController4") forState:UIControlStateNormal];
[self.understandButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.understandButton.titleLabel.font = [UIFont boldSystemFontOfSize:18.0];
self.understandButton.backgroundColor = [UIColor colorWithRed:1.0 green:0.5 blue:0.0 alpha:1.0]; //

View File

@@ -55,7 +55,7 @@
///
@property (nonatomic,strong) XPRoomMessageHeaderView *headerView;
///messageView TODO:
///messageView
@property (nonatomic,strong) XPRoomMessageParser *messageParser;
///
@property (nonatomic,strong) NSMutableArray<XPMessageInfoModel *> *datasource;

View File

@@ -277,7 +277,10 @@
self.idLabel.text = [NSString stringWithFormat:@"ID%ld",(long)roomInfo.erbanNo];
self.avatarView.imageUrl = roomInfo.avatar;
self.titleLabel.text = roomInfo.title;
// 使 isGiftEffectsEnabledForRoom:
[self updateGiftEffectImageViewVisibility];
if (roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
self.collectButton.hidden = YES;
} else {
@@ -544,12 +547,13 @@
NSString *roomId = @(roomInfo.roomId).stringValue;
BOOL turboGiftEffectsEnabled = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomId];
// TODO: 1. 使 isGiftEffectsEnabledForRoom: NO = hidden2. TurboModeStateManager isGiftEffectsEnabledForRoom
BOOL shouldShow = turboGiftEffectsEnabled && !roomInfo.hasAnimationEffect;
// turboGiftEffectsEnabled NO noGiftEffectImageView
// 使 turboGiftEffectsEnabled roomInfo.hasAnimationEffect
BOOL shouldShow = !turboGiftEffectsEnabled;
self.noGiftEffectImageView.hidden = !shouldShow;
NSLog(@"🎮 RoomHeaderView: giftEffectImageView 显示状态更新 - 房间ID: %@, turboGiftEffects: %@, hasAnimationEffect: %@, 显示: %@",
roomId, turboGiftEffectsEnabled ? @"开启" : @"关闭", roomInfo.hasAnimationEffect ? @"有" : @"无", shouldShow ? @"是" : @"否");
NSLog(@"🎮 RoomHeaderView: giftEffectImageView 显示状态更新 - 房间ID: %@, turboGiftEffects: %@, 显示: %@",
roomId, turboGiftEffectsEnabled ? @"开启" : @"关闭", shouldShow ? @"是" : @"否");
}
- (void)handleTurboGiftEffectsStateChanged:(NSNotification *)notification {

View File

@@ -13,7 +13,6 @@
#import "Api+Room.h"
#import "Api+LittleGame.h"
#import "Api+TreasureFairy.h"
#import "AttachmentModel.h"
#import "RoomBoomManager.h"
@@ -33,7 +32,6 @@
#import "XCCurrentVCStackManager.h"
#import "XPCandyTreeViewController.h"
#import "XPArrangeMicViewController.h"
#import "XPTreasureFairyViewController.h"
#import "RoomLuckyPackageInfoModel.h"
#import "LuckyPackageLogicManager.h"
@@ -832,16 +830,6 @@ static CGFloat const kNormalHeight = 160.0f;
[self lookLoveTapRecognizer];
} else if ([info.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
[self sailTapRecognizer];
} else if ([info.code isEqualToString:@"SEIZE_TREASURE"]) {
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[[XCCurrentVCStackManager shareManager].getCurrentVC addChildViewController:fairyVC];
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
} else {
if (info.skipType == ActivitySkipType_Room) {
[self.hostDelegate exitRoom];

View File

@@ -341,7 +341,6 @@ XPRoomSettingItemModel * itemModel = [[self.datasource xpSafeObjectAtIndex:index
- (void)didClickCancel:(RoomSettingInputType)type {
// if (type == RoomSettingItemType_Pwd) {
// // TODO:
// }
}

View File

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
///开始展示声波动画
- (void)startWaveAnimationWithUrl:(NSString *)url;
- (void)startWaveAnimationWithVideoItem:(SVGAVideoEntity *)videoItem;
///结束声波动画
- (void)stopWaveAnimation;
@end

View File

@@ -584,6 +584,9 @@
self.microModel = model;
MicroStateModel * micStats = model.microState;
UserInfoModel * userInfo = model.userInfo;
// //
[self.animationView stopWaveAnimation];
[self.nobleWaveView stopWaveAnimation];
[self configMicroState:micStats];
[self configUser:userInfo];
}
@@ -638,6 +641,9 @@
- (void)configUser:(UserInfoModel *)userInfo {
self.userInfo = userInfo;
// userSpeaking
[self.animationView stopWaveAnimation];
[self.nobleWaveView stopWaveAnimation];
self.nickLabel.hidden = NO;
self.sexImageView.hidden = YES;

View File

@@ -42,9 +42,8 @@
return;
}
if (self.isAnimationing) {
[self.firstView.layer removeAllAnimations];
}
[self.firstView.layer removeAllAnimations];
self.isAnimationing = YES;
self.firstView.hidden = NO;
[self animationWithLayer:self.firstView];

View File

@@ -281,6 +281,7 @@
[RtcManager instance].localMuted = YES;
}
}
if (roomInfo.type == RoomType_Anchor && [[AccountInfoStorage instance].getUid isEqualToString:[NSString stringWithFormat:@"%ld", roomInfo.uid]]) {
selfNeedBroadcast = YES;///
}
@@ -290,8 +291,7 @@
[statisMicArray addObject:str];
}
}
if (statisMicArray.count) {
}
if (leaveMode) {
UserInfoModel *owner = [[UserInfoModel alloc] init];
owner.avatar = anchorModel.userInfo.avatar? anchorModel.userInfo.avatar : roomInfo.avatar;
@@ -428,7 +428,142 @@
}
- (NSMutableDictionary<NSString *,MicroQueueModel *> *)getMicroQueue {
return self.micQueue;
// micQueue
NSMutableDictionary<NSString *,MicroQueueModel *> *deepCopy = [NSMutableDictionary dictionary];
for (NSString *position in self.micQueue.allKeys) {
MicroQueueModel *originalModel = [self.micQueue objectForKey:position];
MicroQueueModel *copiedModel = [[MicroQueueModel alloc] init];
// microState
if (originalModel.microState) {
MicroStateModel *copiedMicroState = [[MicroStateModel alloc] init];
copiedMicroState.position = originalModel.microState.position;
copiedMicroState.posState = originalModel.microState.posState;
copiedMicroState.micState = originalModel.microState.micState;
copiedMicroState.datingMicType = originalModel.microState.datingMicType;
copiedMicroState.indexOffset = originalModel.microState.indexOffset;
copiedModel.microState = copiedMicroState;
}
// userInfo
if (originalModel.userInfo) {
UserInfoModel *copiedUserInfo = [[UserInfoModel alloc] init];
//
copiedUserInfo.bindType = originalModel.userInfo.bindType;
copiedUserInfo.createTime = originalModel.userInfo.createTime;
copiedUserInfo.parentMode = originalModel.userInfo.parentMode;
copiedUserInfo.isBindPhone = originalModel.userInfo.isBindPhone;
copiedUserInfo.erbanNo = originalModel.userInfo.erbanNo;
copiedUserInfo.registerDay = originalModel.userInfo.registerDay;
copiedUserInfo.isFirstCharge = originalModel.userInfo.isFirstCharge;
copiedUserInfo.hasPrettyErbanNo = originalModel.userInfo.hasPrettyErbanNo;
copiedUserInfo.isBindApple = originalModel.userInfo.isBindApple;
copiedUserInfo.fansNum = originalModel.userInfo.fansNum;
copiedUserInfo.isBindBankCard = originalModel.userInfo.isBindBankCard;
copiedUserInfo.hasRegPacket = originalModel.userInfo.hasRegPacket;
copiedUserInfo.gender = originalModel.userInfo.gender;
copiedUserInfo.platformRole = originalModel.userInfo.platformRole;
copiedUserInfo.uid = originalModel.userInfo.uid;
copiedUserInfo.defUser = originalModel.userInfo.defUser;
copiedUserInfo.remainDay = originalModel.userInfo.remainDay;
copiedUserInfo.isReview = originalModel.userInfo.isReview;
copiedUserInfo.newUser = originalModel.userInfo.newUser;
copiedUserInfo.followNum = originalModel.userInfo.followNum;
copiedUserInfo.isBindPaymentPwd = originalModel.userInfo.isBindPaymentPwd;
copiedUserInfo.isBindXCZAccount = originalModel.userInfo.isBindXCZAccount;
copiedUserInfo.isBindAlipay = originalModel.userInfo.isBindAlipay;
copiedUserInfo.isBindPasswd = originalModel.userInfo.isBindPasswd;
copiedUserInfo.visitNum = originalModel.userInfo.visitNum;
copiedUserInfo.inRoomNum = originalModel.userInfo.inRoomNum;
copiedUserInfo.showLimitCharge = originalModel.userInfo.showLimitCharge;
copiedUserInfo.limitChargeEndTime = originalModel.userInfo.limitChargeEndTime;
copiedUserInfo.isCertified = originalModel.userInfo.isCertified;
copiedUserInfo.isCustomWord = originalModel.userInfo.isCustomWord;
copiedUserInfo.otherViewType = originalModel.userInfo.otherViewType;
copiedUserInfo.headwearType = originalModel.userInfo.headwearType;
copiedUserInfo.headWearType = originalModel.userInfo.headWearType;
copiedUserInfo.vipMic = originalModel.userInfo.vipMic;
copiedUserInfo.hasSelectUser = originalModel.userInfo.hasSelectUser;
copiedUserInfo.selectMicPosition = originalModel.userInfo.selectMicPosition;
copiedUserInfo.gameStatus = originalModel.userInfo.gameStatus;
copiedUserInfo.groupType = originalModel.userInfo.groupType;
copiedUserInfo.preventKick = originalModel.userInfo.preventKick;
copiedUserInfo.fromSayHelloChannel = originalModel.userInfo.fromSayHelloChannel;
copiedUserInfo.banAccount = originalModel.userInfo.banAccount;
copiedUserInfo.isRechargeUser = originalModel.userInfo.isRechargeUser;
copiedUserInfo.isNoProhibitMic = originalModel.userInfo.isNoProhibitMic;
copiedUserInfo.hasSuperRole = originalModel.userInfo.hasSuperRole;
copiedUserInfo.uploadGifAvatarPrice = originalModel.userInfo.uploadGifAvatarPrice;
copiedUserInfo.birth = originalModel.userInfo.birth;
//
copiedUserInfo.phone = [originalModel.userInfo.phone copy];
copiedUserInfo.email = [originalModel.userInfo.email copy];
copiedUserInfo.nick = [originalModel.userInfo.nick copy];
copiedUserInfo.avatar = [originalModel.userInfo.avatar copy];
copiedUserInfo.reviewingAvatar = [originalModel.userInfo.reviewingAvatar copy];
copiedUserInfo.region = [originalModel.userInfo.region copy];
copiedUserInfo.userDesc = [originalModel.userInfo.userDesc copy];
copiedUserInfo.nameplatePic = [originalModel.userInfo.nameplatePic copy];
copiedUserInfo.nameplateWord = [originalModel.userInfo.nameplateWord copy];
copiedUserInfo.roomUid = [originalModel.userInfo.roomUid copy];
copiedUserInfo.roomTitle = [originalModel.userInfo.roomTitle copy];
copiedUserInfo.carEffect = [originalModel.userInfo.carEffect copy];
copiedUserInfo.viewUrl = [originalModel.userInfo.viewUrl copy];
copiedUserInfo.carName = [originalModel.userInfo.carName copy];
copiedUserInfo.headwearEffect = [originalModel.userInfo.headwearEffect copy];
copiedUserInfo.headwearPic = [originalModel.userInfo.headwearPic copy];
copiedUserInfo.headWearUrl = [originalModel.userInfo.headWearUrl copy];
copiedUserInfo.capUrl = [originalModel.userInfo.capUrl copy];
copiedUserInfo.userInfoCardPic = [originalModel.userInfo.userInfoCardPic copy];
copiedUserInfo.micCircle = [originalModel.userInfo.micCircle copy];
copiedUserInfo.micNickColor = [originalModel.userInfo.micNickColor copy];
copiedUserInfo.fromNick = [originalModel.userInfo.fromNick copy];
copiedUserInfo.fromUid = [originalModel.userInfo.fromUid copy];
copiedUserInfo.androidBubbleUrl = [originalModel.userInfo.androidBubbleUrl copy];
copiedUserInfo.iosBubbleUrl = [originalModel.userInfo.iosBubbleUrl copy];
copiedUserInfo.phoneAreaCode = [originalModel.userInfo.phoneAreaCode copy];
copiedUserInfo.partitionId = [originalModel.userInfo.partitionId copy];
copiedUserInfo.guildNameplateIcon = [originalModel.userInfo.guildNameplateIcon copy];
copiedUserInfo.regionIcon = [originalModel.userInfo.regionIcon copy];
copiedUserInfo.visitTimeDesc = [originalModel.userInfo.visitTimeDesc copy];
//
copiedUserInfo.labels = [originalModel.userInfo.labels copy];
copiedUserInfo.privatePhoto = [originalModel.userInfo.privatePhoto copy];
copiedUserInfo.absCardPics = [originalModel.userInfo.absCardPics copy];
copiedUserInfo.userGiftWall = [originalModel.userInfo.userGiftWall copy];
copiedUserInfo.userLuckyBagGiftWall = [originalModel.userInfo.userLuckyBagGiftWall copy];
copiedUserInfo.dynamicInfo = [originalModel.userInfo.dynamicInfo copy];
copiedUserInfo.userNameplateList = [originalModel.userInfo.userNameplateList copy];
copiedUserInfo.medalsPic = [originalModel.userInfo.medalsPic copy];
//
copiedUserInfo.userExpand = originalModel.userInfo.userExpand;
copiedUserInfo.userLevelVo = originalModel.userInfo.userLevelVo;
copiedUserInfo.userInfoSkillVo = originalModel.userInfo.userInfoSkillVo;
copiedUserInfo.userVipInfoVO = originalModel.userInfo.userVipInfoVO;
copiedUserInfo.audioCard = originalModel.userInfo.audioCard;
copiedUserInfo.medals = originalModel.userInfo.medals;
copiedUserInfo.relationUserVO = originalModel.userInfo.relationUserVO;
copiedUserInfo.guildInfo = originalModel.userInfo.guildInfo;
copiedUserInfo.usingPersonalBackground = originalModel.userInfo.usingPersonalBackground;
copiedUserInfo.infoCardVo = originalModel.userInfo.infoCardVo;
//
copiedUserInfo.levelAtt = [originalModel.userInfo.levelAtt copy];
copiedUserInfo.idAtt = [originalModel.userInfo.idAtt copy];
copiedModel.userInfo = copiedUserInfo;
} else {
copiedModel.userInfo = nil;
}
[deepCopy setObject:copiedModel forKey:position];
}
return deepCopy;
}
- (void)onRoomUpdate {
@@ -486,9 +621,7 @@
NSString* position = [data objectForKey:NIMChatroomEventInfoQueueChangeItemKey];
UserInfoModel* userInfo = [UserInfoModel modelWithJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]];
NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue];
if (userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
ownerRTCChanged = YES;
}
//
for (MicroQueueModel *sequence in self.micQueue.allValues) {
if (userInfo.uid == sequence.userInfo.uid) {
@@ -496,7 +629,19 @@
}
}
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
if (changeType == 2){
if (changeType == 2){ //
// position MicroQueueModel userInfo
MicroQueueModel *sequence = [self.micQueue objectForKey:position];
if (sequence) {
sequence.userInfo = nil;
// micQueue
UIView<MicroViewProtocol> *microView = [self findMicroViewByIndex:[self positionToIndex:position]];
if (microView) {
[microView configMicroView:sequence];
}
}
if (userInfo.uid == [AccountInfoStorage instance].getUid.integerValue && roomInfo.roomModeType == RoomModeType_Open_Blind){
if (roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode){
if ([RtcManager instance].isAnckorPk == NO){
@@ -510,6 +655,12 @@
}else if (changeType == 1) { //
MicroQueueModel *sequence = [self.micQueue objectForKey:position];
sequence.userInfo = userInfo;
// micQueue
UIView<MicroViewProtocol> *microView = [self findMicroViewByIndex:[self positionToIndex:position]];
if (microView) {
[microView configMicroView:sequence];
}
if (self.hostDelegate.getRoomInfo.showGiftValue && userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
RoomInfoModel * roomInfo =self.hostDelegate.getRoomInfo;
NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid];
@@ -546,9 +697,7 @@
}
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[RtcManager instance].isMiniEnter = NO;
});
[RtcManager instance].isMiniEnter = NO;
}
}
if(userInfo.isNoProhibitMic == YES){
@@ -590,6 +739,10 @@
case NIMChatroomEventTypeExit:
case NIMChatroomEventTypeKicked:
{
if (message.session.sessionId == self.hostDelegate.getRoomInfo.roomId) {
}
for (NIMChatroomNotificationMember *member in content.targets) {
for (MicroQueueModel *sequence in self.micQueue.allValues) {
if (member.userId.integerValue == sequence.userInfo.uid) {
@@ -1379,6 +1532,7 @@
}
- (NSMutableDictionary<NSString *, MicroQueueModel *> *)micQueue {
// 使- stageview nineteenmicstageview queue
if (!_micQueue) {
_micQueue= [NSMutableDictionary dictionary];
for (int i = 0; i < self.countOfMicroView; i++) {

View File

@@ -75,10 +75,31 @@
- (void)cleanup {
if (self.currentStageView) {
[self.currentStageView removeFromSuperview];
NSLog(@"🧹 StageViewManager: 开始清理 stageView | Type: %ld | Class: %@",
(long)self.currentRoomType, NSStringFromClass([self.currentStageView class]));
// 1. stageView
if ([self.currentStageView respondsToSelector:@selector(exitNIMRoom)]) {
[self.currentStageView exitNIMRoom];
NSLog(@"🧹 StageViewManager: 已调用 stageView.exitNIMRoom");
}
// 2.
if (self.currentStageView.superview) {
[self.currentStageView removeFromSuperview];
NSLog(@"🧹 StageViewManager: stageView 已从 superview 移除");
}
// 3.
[self.currentStageView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
// 4. stageView
self.currentStageView = nil;
NSLog(@"🧹 StageViewManager: 清理 stageView");
NSLog(@"🧹 StageViewManager: stageView 清理完成");
}
// 5.
self.container = nil;
}
- (BOOL)shouldChangeStageViewType:(RoomType)newType {
@@ -127,7 +148,10 @@
self.currentStageView = [[TenMicStageView alloc] initWithDelegate:delegate];
break;
}
case RoomType_Room: // RoomType_Game
case RoomType_Room: { // RoomType_Game
self.currentStageView = [[SocialStageView alloc] initWithDelegate:delegate];
break;
}
default: {
self.currentStageView = [[SocialStageView alloc] initWithDelegate:delegate];
break;

View File

@@ -1,132 +0,0 @@
//
// Api+TreasureFairy.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/15.
//
#import "Api.h"
NS_ASSUME_NONNULL_BEGIN
@interface Api (TreasureFairy)
/// 夺宝限制
/// - Parameter completion: 完成
+ (void)treasureFailyLimitInfo:(HttpRequestHelperCompletion)completion;
/// 夺宝奖池
/// - Parameter completion: 完成
+ (void)treasureFailyDrawList:(HttpRequestHelperCompletion)completion;
/// 夺宝信息
/// - Parameter completion: 完成
+ (void)treasureFailyDrawInfo:(HttpRequestHelperCompletion)completion;
/// 开始夺宝
/// - Parameters:
/// - completion: 完成
/// - roomUid: 房主的uid
/// - drawNum: 个数
+ (void)treasureFailyDraw:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid drawNum:(NSString *)drawNum;
/// 森林抽奖
/// - Parameters:
/// - completion: 完成
/// - roomUid: 抽奖次数
/// - poolLevel: 奖池类型 1:初级2:中级3:高级;
+ (void)treasureFailyForestDraw:(HttpRequestHelperCompletion)completion drawNum:(NSString *)drawNum poolLevel:(NSString *)poolLevel;
/// 森林抽奖记录
/// - Parameters:
/// - completion: 完成
/// - page: 页数
/// - pageSize: 一页多少个
+ (void)treasureFairyForestDrawRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
/// 用户森林信息
/// - Parameter completion: 完成
+ (void)treasureFailyForestUserInfo:(HttpRequestHelperCompletion)completion;
/// 猛犸森林奖池配置列表
/// - Parameter completion: 完成
/// - Parameter poolLevel: 奖池等级
+ (void)treasureFailyForestItems:(HttpRequestHelperCompletion)completion poolLevel:(NSString *)poolLevel;
/// 我的精灵
/// - Parameter completion: 完成
+ (void)treasureFairyMyBallList:(HttpRequestHelperCompletion)completion;
/// 我的好友
/// - Parameters:
/// - completion: 完成
/// - nick: 昵称
+ (void)treasureFairyFansFriendList:(HttpRequestHelperCompletion)completion nick:(NSString *)nick;
/// 精灵赠送
/// - Parameters:
/// - completion: 完成
/// - elfId: 精灵id
/// - targetUid: 目标用户的uid
+ (void)treasureFairySendFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid;
/// 索要
/// - Parameters:
/// - completion: 完成
/// - elfId: 精灵id
/// - targetUid: 目标用户的uid
+ (void)treasureFairyAskForFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid;
/// 赠与和获赠记录
/// - Parameter completion: 完成
/// - Parameter page: 页数
/// - Parameter page: 一页多少个
+ (void)treasureFailySendAndAskRecordList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
/// 精灵试炼
/// - Parameter completion: 完成
/// - Parameter page: 页数
/// - Parameter page: 一页多少个
+ (void)treasureFailyCompoundBall:(HttpRequestHelperCompletion)completion compoundLevel:(NSInteger)compoundLevel compoundReqs:(NSArray *)compoundReqs;
/// 精灵试炼记录
/// - Parameter completion: 完成
/// - Parameter page: 页数
/// - Parameter pageSize: 一页多少个
+ (void)treasureFailyCompoundBallRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize;
/// 兑换-精灵召回列表
/// - Parameter completion: 完成
/// - Parameter page: 页数
/// - Parameter pageSize: 一页多少个
+ (void)treasureFailyConvertElfList:(HttpRequestHelperCompletion)completion;
/// 兑换-精灵
/// - Parameter completion: 完成
/// - Parameter itemId: id
+ (void)treasureFailyConvert:(HttpRequestHelperCompletion)completion itemId:(NSString *)itemId roomUid:(NSString *)roomUid propIdStr:(NSString *)propIdStr propNumStr:(NSString *)propNumStr;
/// 兑换-碎片兑换列表
/// - Parameter completion: 完成
/// - Parameter page: 页数
/// - Parameter pageSize: 一页多少个
+ (void)treasureFailyFragmentExchangeList:(HttpRequestHelperCompletion)completion;
/// 兑换记录
/// - Parameters:
/// - completion: 完成
/// - convertType: 1:精灵召唤 2:碎片兑换
/// - page: 页数
/// - pageSize: 一页多少个
+ (void)treasureFairyConvertRecord:(HttpRequestHelperCompletion)completion convertType:(NSString *)convertType page:(NSString *)page pageSize:(NSString *)pageSize;
/// 购买精灵碎片
/// - Parameters:
/// - completion: 完成
/// - num: 数量
/// - uid: 用户id
+(void)buyElfShard:(HttpRequestHelperCompletion)completion num:(NSString *)num uid:(NSString *)uid;
/// 精灵分解
/// - Parameter completion: 完成
/// - Parameter salvageReq: 分解的精灵
+ (void)treasureFailySalvageall:(HttpRequestHelperCompletion)completion salvageReq:(NSArray *)salvageReq;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,184 +0,0 @@
//
// Api+TreasureFairy.m
// xplan-ios
//
// Created by on 2023/2/15.
//
#import "Api+TreasureFairy.h"
#import "NSMutableDictionary+Saft.h"
@implementation Api (TreasureFairy)
///
/// - Parameter completion:
+ (void)treasureFailyLimitInfo:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/status" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// - Parameter completion:
+ (void)treasureFailyDrawList:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/draw/pool/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// - Parameter completion:
+ (void)treasureFailyDrawInfo:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/user/draw/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// - Parameters:
/// - completion:
/// - roomUid: uid
/// - drawNum:
+ (void)treasureFailyDraw:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid drawNum:(NSString *)drawNum {
[self makeRequest:@"act/seize-treasure/draw" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, drawNum, nil];
}
///
/// - Parameters:
/// - completion:
/// - roomUid:
/// - poolLevel: 1:2:3:
+ (void)treasureFailyForestDraw:(HttpRequestHelperCompletion)completion drawNum:(NSString *)drawNum poolLevel:(NSString *)poolLevel {
[self makeRequest:@"act/seize-treasure/forest/draw" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, drawNum, poolLevel, nil];
}
///
/// - Parameters:
/// - completion:
/// - page:
/// - pageSize:
+ (void)treasureFairyForestDrawRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
[self makeRequest:@"act/seize-treasure/forest/draw/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, nil];
}
///
/// - Parameter completion:
+ (void)treasureFailyForestUserInfo:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/user/forest/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// - Parameter completion:
/// - Parameter poolLevel:
+ (void)treasureFailyForestItems:(HttpRequestHelperCompletion)completion poolLevel:(NSString *)poolLevel {
[self makeRequest:@"act/seize-treasure/draw/forest/item" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,poolLevel, nil];
}
///
/// - Parameter completion:
+ (void)treasureFairyMyBallList:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/elf/user/info" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// - Parameters:
/// - completion:
/// - nick:
+ (void)treasureFairyFansFriendList:(HttpRequestHelperCompletion)completion nick:(NSString *)nick {
NSMutableDictionary * params = [NSMutableDictionary dictionary];
[params safeSetObject:nick forKey:@"nick"];
[HttpRequestHelper request:@"fans/friend/list" method:HttpRequestHelperMethodGET params:params completion:completion];
}
///
/// - Parameters:
/// - completion:
/// - elfId: id
/// - targetUid: uid
+ (void)treasureFairySendFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid {
[self makeRequest:@"act/seize-treasure/elf/send" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,elfId, targetUid, nil];
}
///
/// - Parameters:
/// - completion:
/// - elfId: id
/// - targetUid: uid
+ (void)treasureFairyAskForFairyBall:(HttpRequestHelperCompletion)completion elfId:(NSString *)elfId targetUid:(NSString *)targetUid {
[self makeRequest:@"act/seize-treasure/elf/askFor" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,elfId, targetUid, nil];
}
///
/// - Parameter completion:
/// - Parameter page:
/// - Parameter page:
+ (void)treasureFailySendAndAskRecordList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
[self makeRequest:@"act/seize-treasure/elf/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize,nil];
}
///
/// - Parameter completion:
/// - Parameter page:
/// - Parameter page:
+ (void)treasureFailyCompoundBall:(HttpRequestHelperCompletion)completion compoundLevel:(NSInteger)compoundLevel compoundReqs:(NSArray *)compoundReqs {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:@(compoundLevel) forKey:@"level"];
[dic safeSetObject:compoundReqs forKey:@"expendList"];
[HttpRequestHelper postSkillCard:@"act/seize-treasure/elf/compound" params:dic.toJSONString completion:completion];
}
///
/// - Parameter completion:
/// - Parameter salvageReq:
+ (void)treasureFailySalvageall:(HttpRequestHelperCompletion)completion salvageReq:(NSArray *)salvageReq {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:salvageReq forKey:@"expendList"];
[HttpRequestHelper postSkillCard:@"act/seize-treasure/elf/salvage" params:dic.toJSONString completion:completion];
}
///
/// - Parameter completion:
/// - Parameter page:
/// - Parameter pageSize:
+ (void)treasureFailyCompoundBallRecord:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize {
[self makeRequest:@"act/seize-treasure/elf/compound/record" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, page, pageSize, nil];
}
/// -
/// - Parameter completion:
/// - Parameter page:
/// - Parameter pageSize:
+ (void)treasureFailyConvertElfList:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/convert/elf/list" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, nil];
}
/// -
/// - Parameter completion:
/// - Parameter itemId: id
+ (void)treasureFailyConvert:(HttpRequestHelperCompletion)completion itemId:(NSString *)itemId roomUid:(nonnull NSString *)roomUid propIdStr:(NSString *)propIdStr propNumStr:(NSString *)propNumStr {
if(propIdStr.length > 0){
[self makeRequest:@"act/seize-treasure/convert" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, itemId, roomUid,propIdStr,propNumStr,nil];
return;
}
[self makeRequest:@"act/seize-treasure/convert" method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, itemId, roomUid,nil];
}
/// -
/// - Parameter completion:
/// - Parameter page:
/// - Parameter pageSize:
+ (void)treasureFailyFragmentExchangeList:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"act/seize-treasure/convert/chip/list" method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, nil];
}
///
/// - Parameters:
/// - completion:
/// - convertType: 1: 2:
/// - page:
/// - pageSize:
+ (void)treasureFairyConvertRecord:(HttpRequestHelperCompletion)completion convertType:(NSString *)convertType page:(NSString *)page pageSize:(NSString *)pageSize {
[self makeRequest:@"act/seize-treasure/convert/record" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, convertType, page, pageSize, nil];
}
///
/// - Parameters:
/// - completion:
/// - num:
/// - uid: id
+(void)buyElfShard:(HttpRequestHelperCompletion)completion num:(NSString*)num uid:(NSString *)uid{
[self makeRequest:@"act/seize-treasure/shard/buy" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, num,uid, nil];
}
@end

View File

@@ -1,35 +0,0 @@
//
// TreasureFailryMessageModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/3/1.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFailryMessageModel : PIBaseModel
///奖励的名称
@property (nonatomic,copy) NSString *rewardName;
///奖励的个数
@property (nonatomic,assign) NSInteger rewardNum;
///用户的uid
@property (nonatomic,copy) NSString *uid;
///昵称
@property (nonatomic,copy) NSString *nick;
///所在房间的Uid
@property (nonatomic,copy) NSString *roomUid;
///奖励等级
@property (nonatomic,assign) NSInteger rewardLevel;
///奖励类型
@property (nonatomic,copy) NSString *rewardType;
///限制等级
@property (nonatomic,assign) NSInteger userLevelLimit;
///礼物价值
@property (nonatomic,assign) NSInteger rewardShowValue;
/// 奖励单位
@property (nonatomic, copy) NSString *rewardUnit;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFailryMessageModel.m
// xplan-ios
//
// Created by on 2023/3/1.
//
#import "TreasureFailryMessageModel.h"
@implementation TreasureFailryMessageModel
@end

View File

@@ -1,25 +0,0 @@
//
// TreasureFailyKeyInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/17.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFailyKeyInfoModel : PIBaseModel
///门票数
@property (nonatomic,assign) NSInteger drawTicketNum;
///幸运值
@property (nonatomic,assign) NSInteger luckyNum;
///写一个幸运值
@property (nonatomic,assign) NSInteger nextBallNum;
///需要幸运值
@property (nonatomic,assign) NSInteger needLuckyNum;
///保存我的精灵选择的精灵等级0初级1史诗2传说
@property (nonatomic,assign) NSInteger spriteLevel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFailyKeyInfoModel.m
// xplan-ios
//
// Created by on 2023/2/17.
//
#import "TreasureFailyKeyInfoModel.h"
@implementation TreasureFailyKeyInfoModel
@end

View File

@@ -1,52 +0,0 @@
//
// TreasureFairyBallInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/22.
//
#import <Foundation/Foundation.h>
#import "TreasureFairyInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyBallModel;
@interface TreasureFairyBallInfoModel : PIBaseModel
///头像
@property (nonatomic,copy) NSString *avatar;
///昵称
@property (nonatomic,copy) NSString *nick;
///精灵碎片
@property (nonatomic,assign) NSInteger chipNum;
///史诗
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *middleElves;
///普通
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *lowElves;
///传说
@property (nonatomic,copy) NSArray<TreasureFairyBallModel *> *highElves;
@end
@interface TreasureFairyBallModel : PIBaseModel
///id
@property (nonatomic,assign) NSInteger elfId;
///精灵名称
@property (nonatomic,copy) NSString *elfName;
///精灵数量
@property (nonatomic,assign) NSInteger elfNum;
///精灵图片
@property (nonatomic,copy) NSString *elfPicUrl;
///精灵等级
@property (nonatomic,assign) TreasureFairyStoreType elfLevel;
///是否翻转了 本地字段
@property (nonatomic,assign) BOOL isFlip;
///选中的个数 最大为3
@property (nonatomic,assign) NSInteger chooseNum;
///消息中使用的
///昵称 赠送的时候使用
@property (nonatomic,copy) NSString *nick;
///赠送的人的uid
@property (nonatomic,assign) NSInteger uid;
@property(nonatomic,assign) BOOL isHigh;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,26 +0,0 @@
//
// TreasureFairyBallInfoModel.m
// xplan-ios
//
// Created by on 2023/2/22.
//
#import "TreasureFairyBallInfoModel.h"
@implementation TreasureFairyBallInfoModel
+ (NSDictionary *)objectClassInArray {
return @{
@"highElves":TreasureFairyBallModel.class,
@"lowElves":TreasureFairyBallModel.class,
@"middleElves":TreasureFairyBallModel.class,
};
}
@end
@implementation TreasureFairyBallModel
@end

View File

@@ -1,27 +0,0 @@
//
// TreasureFairyConvertRecordModel.h
// xplan-ios
//
// Created by XY on 2023/3/1.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyConvertRecordModel : PIBaseModel
@property (nonatomic, assign) NSInteger convertLevel;
@property (nonatomic, assign) NSInteger convertType;
@property (nonatomic, copy) NSString *createTime;
@property (nonatomic, assign) NSInteger recordId;
@property (nonatomic, copy) NSString *rewardName;
@property (nonatomic, copy) NSString *rewardNum;
@property (nonatomic, copy) NSString *rewardPicUrl;
@property (nonatomic, copy) NSString *rewardShowValue;
@property (nonatomic, copy) NSString *rewardType;
@property (nonatomic, copy) NSString *rewardUnit;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairyConvertRecordModel.m
// xplan-ios
//
// Created by XY on 2023/3/1.
//
#import "TreasureFairyConvertRecordModel.h"
@implementation TreasureFairyConvertRecordModel
@end

View File

@@ -1,53 +0,0 @@
//
// TreasureFairyFragmentModel.h
// xplan-ios
//
// Created by XY on 2023/2/28.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyFragmentModel : PIBaseModel
/// 消耗数量
@property (nonatomic, assign) NSInteger expendNum;
/// 兑换项id
@property (nonatomic, assign) NSInteger itemId;
/// 兑换等级
@property (nonatomic, assign) NSInteger level;
/// 奖励id
@property (nonatomic, assign) NSInteger rewardId;
/// 奖励名称
@property (nonatomic, copy) NSString *rewardName;
/// 奖励数量
@property (nonatomic, assign) NSInteger rewardNum;
/// 奖励图片url
@property (nonatomic, copy) NSString *rewardPicUrl;
/// 奖励价值
@property (nonatomic, copy) NSString *rewardShowValue;
/// 奖励类型 activityProps:活动道具;gift:礼物;namePlate:铭牌;car:座驾;headwear:头饰;chatBubble:气泡;infoCard:资料卡;
@property (nonatomic, copy) NSString *rewardType;
/// 奖励单位
@property (nonatomic, copy) NSString *rewardUnit;
/// 兑换类型
@property (nonatomic, assign) NSInteger type;
@property(nonatomic,copy) NSArray *propItems;
@end
@interface TreasureFairyFragmentItemModel : PIBaseModel
@property (nonatomic, copy) NSString *picUrl;
@property (nonatomic, copy) NSString *propId;
@property (nonatomic, copy) NSString *propName;
@property (nonatomic, copy) NSString *propNum;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,20 +0,0 @@
//
// TreasureFairyFragmentModel.m
// xplan-ios
//
// Created by XY on 2023/2/28.
//
#import "TreasureFairyFragmentModel.h"
@implementation TreasureFairyFragmentModel
+ (NSDictionary *)objectClassInArray{
return @{@"propItems":TreasureFairyFragmentItemModel.class};
}
@end
@implementation TreasureFairyFragmentItemModel
@end

View File

@@ -1,58 +0,0 @@
//
// TreasureFairyInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/15.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, TreasureFairyStoreType) {
///普通
TreasureFairyStoreType_Normal = 1,
///史诗
TreasureFairyStoreType_Middle = 2,
///传说
TreasureFairyStoreType_High = 3,
///分解
TreasureFairyStoreType_Salvage = 7,
};
typedef NS_ENUM(NSInteger, TreasureFairyPropType) {
///碎片
TreasureFairyPropType_Piece = 1,
///精灵球
TreasureFairyPropType_Ball = 2,
///精灵
TreasureFairyPropType_Fairy = 3,
///分解获得碎片
TreasureFairyPropType_Salvage = 4,
};
@interface TreasureFairyInfoModel : PIBaseModel
///奖励id
@property (nonatomic,assign) NSInteger rewardId;
///奖励的名称
@property (nonatomic,copy) NSString *rewardName;
///奖励的个数
@property (nonatomic,assign) NSInteger rewardNum;
///奖励的图片
@property (nonatomic,copy) NSString *rewardPicUrl;
/// 展示概率
@property (nonatomic,assign) CGFloat showRatio;
///礼物的等级
@property (nonatomic,assign) NSInteger rewardLevel;
///礼物的index
@property (nonatomic,assign) NSInteger itemIndex;
#pragma mark - 夺宝记录
///奖池等级
@property (nonatomic,assign) TreasureFairyStoreType poolLevel;
///时间戳
@property (nonatomic,copy) NSString *drawTime;
///森林开出的礼物类型
@property (nonatomic,assign) TreasureFairyPropType propType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairyInfoModel.m
// xplan-ios
//
// Created by on 2023/2/15.
//
#import "TreasureFairyInfoModel.h"
@implementation TreasureFairyInfoModel
@end

View File

@@ -1,19 +0,0 @@
//
// TreasureFairyLimitModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/3/1.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyLimitModel : PIBaseModel
///是否开启
@property (nonatomic,assign) BOOL open;
///等级限制
@property (nonatomic,assign) NSInteger levelLimit;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairyLimitModel.m
// xplan-ios
//
// Created by on 2023/3/1.
//
#import "TreasureFairyLimitModel.h"
@implementation TreasureFairyLimitModel
@end

View File

@@ -1,30 +0,0 @@
//
// TreasureFairyRewardModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/28.
//
#import <Foundation/Foundation.h>
#import "TreasureFairyInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyRewardModel : PIBaseModel
@property (nonatomic,assign) NSInteger itemId;
///奖励id
@property (nonatomic,assign) NSInteger rewardId;
///奖励的名称
@property (nonatomic,copy) NSString *rewardName;
///奖励的个数
@property (nonatomic,assign) NSInteger rewardNum;
///奖励的图片
@property (nonatomic,copy) NSString *rewardPicUrl;
///奖励的价值
@property (nonatomic,assign) NSInteger rewardShowValue;
///奖励的单位
@property (nonatomic,assign) NSInteger rewardUnit;
///类型
@property (nonatomic,assign) TreasureFairyStoreType level;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairyRewardModel.m
// xplan-ios
//
// Created by on 2023/2/28.
//
#import "TreasureFairyRewardModel.h"
@implementation TreasureFairyRewardModel
@end

View File

@@ -1,34 +0,0 @@
//
// TreasureFairySendRecordModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/23.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, TreasureFairySendRecordType) {
///赠与
TreasureFairySendRecordModel_Send = 2,
///获赠
TreasureFairySendRecordModel_Receive =3,
};
@interface TreasureFairySendRecordModel : PIBaseModel
///时间戳
@property (nonatomic,copy) NSString *createTime;
///图片
@property (nonatomic,copy) NSString *elfPicUrl;
///头像
@property (nonatomic,copy) NSString *targetAvatar;
///昵称
@property (nonatomic,copy) NSString *targetNick;
///类型
@property (nonatomic,assign) TreasureFairySendRecordType type;
///精灵名称
@property (nonatomic,copy) NSString *elfName;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairySendRecordModel.m
// xplan-ios
//
// Created by on 2023/2/23.
//
#import "TreasureFairySendRecordModel.h"
@implementation TreasureFairySendRecordModel
@end

View File

@@ -1,25 +0,0 @@
//
// TreasureFairyTrialsRecordModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/27.
//
#import <Foundation/Foundation.h>
#import "TreasureFairyInfoModel.h"
#import "TreasureFairyBallInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyTrialsRecordModel : PIBaseModel
///精灵等级
@property (nonatomic,assign) TreasureFairyStoreType compoundLevel;
///创建的时间
@property (nonatomic,copy) NSString *createTime;
///奖励的名称
@property (nonatomic,copy) NSString *elfName;
///合成的元素
@property (nonatomic,strong) NSArray<TreasureFairyBallModel *> *expendList;
@property(nonatomic, assign) NSInteger type;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,16 +0,0 @@
//
// TreasureFairyTrialsRecordModel.m
// xplan-ios
//
// Created by on 2023/2/27.
//
#import "TreasureFairyTrialsRecordModel.h"
@implementation TreasureFairyTrialsRecordModel
+ (NSDictionary *)objectClassInArray {
return @{
@"expendList":TreasureFairyBallModel.class
};
}
@end

View File

@@ -1,25 +0,0 @@
//
// TreasureFairyUserInfoModel.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/21.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TreasureFairyUserInfoModel : PIBaseModel
///奖励的名称
@property (nonatomic,copy) NSString *avatar;
///奖励的名称
@property (nonatomic,copy) NSString *nick;
///高级精灵球个数
@property (nonatomic,assign) NSInteger highBallNum;
///初级精灵球个数
@property (nonatomic,assign) NSInteger lowBallNum;
///中级精灵球个数
@property (nonatomic,assign) NSInteger middleBallNum;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,12 +0,0 @@
//
// TreasureFairyUserInfoModel.m
// xplan-ios
//
// Created by on 2023/2/21.
//
#import "TreasureFairyUserInfoModel.h"
@implementation TreasureFairyUserInfoModel
@end

View File

@@ -1,23 +0,0 @@
//
// TreasureFailyPresenter.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/15.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPTreasureFailyPresenter : BaseMvpPresenter
///获取夺宝信息
- (void)getTreasureFailyInfo;
///夺宝奖励列表
- (void)getTreasureFailyDrawList;
///开始夺宝
- (void)drawTreasureFaily:(NSString *)roomUid drawNum:(NSInteger)drawNum;
///购买精灵碎片
-(void)buyElfShardWithNum:(NSString *)num;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,50 +0,0 @@
//
// TreasureFailyPresenter.m
// xplan-ios
//
// Created by on 2023/2/15.
//
#import "XPTreasureFailyPresenter.h"
#import "Api+TreasureFairy.h"
#import "TreasureFailyKeyInfoModel.h"
#import "TreasureFairyInfoModel.h"
#import "XPTreasureFailyProtocol.h"
@implementation XPTreasureFailyPresenter
///
- (void)getTreasureFailyInfo {
[Api treasureFailyDrawInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
TreasureFailyKeyInfoModel * info = [TreasureFailyKeyInfoModel modelWithDictionary:data.data];
[[self getView] getTreasureFailyInfoSuccess:info];
}]];
}
///
- (void)getTreasureFailyDrawList {
[Api treasureFailyDrawList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
[[self getView] getTreasureFailyDrawListSuccess:array];
}]];
}
///
- (void)drawTreasureFaily:(NSString *)roomUid drawNum:(NSInteger)drawNum {
NSString * drawStr = [NSString stringWithFormat:@"%ld", drawNum];
[Api treasureFailyDraw:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [TreasureFairyInfoModel modelsWithArray:data.data];
[[self getView] drawTreasureFailySuccess:array];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] drawTreasureFailyFail:code num:drawStr];
}] roomUid:roomUid drawNum:drawStr];
}
///
-(void)buyElfShardWithNum:(NSString *)num{
NSString *uid = [AccountInfoStorage instance].getUid;
[Api buyElfShard:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView]buyElfShardSuccessWithNum:num];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]buyElfShardFail];
}showLoading:YES] num:num uid:uid];
}
@end

View File

@@ -1,29 +0,0 @@
//
// XPTreasureFailyProtocol.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/15.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFailyKeyInfoModel;
@protocol XPTreasureFailyProtocol <NSObject>
///获取夺宝精灵用户信息成功
- (void)getTreasureFailyInfoSuccess:(TreasureFailyKeyInfoModel *)info;
///夺宝精灵奖励列表
- (void)getTreasureFailyDrawListSuccess:(NSArray *)list;
///夺宝精灵 开始夺宝
- (void)drawTreasureFailySuccess:(NSArray *)array;
- (void)drawTreasureFailyFail:(NSInteger)code num:(NSString *)num;
///购买精灵碎片成功
-(void)buyElfShardSuccessWithNum:(NSString *)num;
///购买精灵碎片失败
-(void)buyElfShardFail;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,17 +0,0 @@
//
// XPTreasureFailyResultGiftView.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/16.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyInfoModel;
@interface XPTreasureFailyResultGiftCell : UICollectionViewCell
///奖励信息
@property (nonatomic,strong) TreasureFairyInfoModel *prizeInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,121 +0,0 @@
//
// XPTreasureFailyResultGiftView.m
// xplan-ios
//
// Created by on 2023/2/16.
//
#import "XPTreasureFailyResultGiftCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
///Model
#import "TreasureFairyInfoModel.h"
@interface XPTreasureFailyResultGiftCell ()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) NetImageView *giftImageView;
///
@property (nonatomic,strong) UIButton *countButton;
///
@property (nonatomic,strong) UILabel *nameLabel;
@end
@implementation XPTreasureFailyResultGiftCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.backImageView];
[self.contentView addSubview:self.nameLabel];
[self.backImageView addSubview:self.giftImageView];
[self.backImageView addSubview:self.countButton];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.top.mas_equalTo(self);
make.height.mas_equalTo(self.backImageView.mas_width);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.backImageView).inset(10);
}];
[self.countButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(29.5, 30.5));
make.bottom.trailing.mas_equalTo(self.backImageView);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self);
make.top.mas_equalTo(self.backImageView.mas_bottom).offset(7);
}];
}
#pragma mark - Getters And Setters
- (void)setPrizeInfo:(TreasureFairyInfoModel *)prizeInfo {
_prizeInfo = prizeInfo;
if (_prizeInfo) {
self.giftImageView.imageUrl = prizeInfo.rewardPicUrl;
[self.countButton setTitle:[NSString stringWithFormat:@"%ld", _prizeInfo.rewardNum] forState:UIControlStateNormal];
self.nameLabel.text = _prizeInfo.rewardName;
}
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.image = [UIImage imageNamed:@"room_treasure_faily_result_gift_bg"];
}
return _backImageView;
}
- (NetImageView *)giftImageView {
if (!_giftImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftImageView = [[NetImageView alloc] initWithConfig:config];
_giftImageView.layer.masksToBounds = YES;
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _giftImageView;
}
- (UIButton *)countButton {
if (!_countButton) {
_countButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_countButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
_countButton.titleLabel.font = [UIFont systemFontOfSize:10];
[_countButton setBackgroundImage:[UIImage imageNamed:@"room_treasure_fairy_result_coung_bg"] forState:UIControlStateNormal];
}
return _countButton;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.font = [UIFont systemFontOfSize:13];
_nameLabel.textAlignment = NSTextAlignmentCenter;
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"];
}
return _nameLabel;
}
@end

View File

@@ -1,16 +0,0 @@
//
// XPTreasureFairyFriendCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/23.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class UserInfoModel;
@interface XPTreasureFairyFriendCell : UITableViewCell
@property (nonatomic,strong) UserInfoModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,122 +0,0 @@
//
// XPTreasureFairyFriendCell.m
// xplan-ios
//
// Created by on 2023/2/23.
//
#import "XPTreasureFairyFriendCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
///Model
#import "UserInfoModel.h"
@interface XPTreasureFairyFriendCell ()
///
@property (nonatomic,strong) UIView *backView;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UILabel *nickLabel;
///
@property (nonatomic,strong) UILabel *signLabel;
@end
@implementation XPTreasureFairyFriendCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.backView];
[self.backView addSubview:self.avatarImageView];
[self.backView addSubview:self.nickLabel];
[self.backView addSubview:self.signLabel];
}
- (void)initSubViewConstraints {
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.contentView);
make.height.mas_equalTo(55);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(49, 49));
make.leading.mas_equalTo(self.backView).offset(12);
make.centerY.mas_equalTo(self.backView);
}];
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(8);
make.trailing.mas_lessThanOrEqualTo(self.backView).offset(-5);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-3);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.nickLabel);
make.top.mas_equalTo(self.nickLabel.mas_bottom).offset(3);
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(UserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
self.nickLabel.text = _userInfo.nick;
self.signLabel.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"XPTreasureFairyFriendCell0");
}
}
- (UIView *)backView {
if (!_backView) {
_backView = [[UIView alloc] init];
_backView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#00A69D"];
_backView.layer.cornerRadius = 4;
_backView.layer.masksToBounds = YES;
}
return _backView;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 49/2;
_avatarImageView.layer.borderWidth = 0.5;
_avatarImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"].CGColor;
}
return _avatarImageView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:14];
_nickLabel.textColor = [UIColor whiteColor];
}
return _nickLabel;
}
- (UILabel *)signLabel {
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.font = [UIFont systemFontOfSize:12];
_signLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#59FDFF"];
}
return _signLabel;
}
@end

View File

@@ -1,28 +0,0 @@
//
// XPTreasureFairyNewSummonCell.h
// YuMi
//
// Created by duoban on 2023/9/6.
//
#import <UIKit/UIKit.h>
#import "TreasureFairyFragmentModel.h"
NS_ASSUME_NONNULL_BEGIN
@protocol XPTreasureFairyNewSummonCellDelegate <NSObject>
/// 兑换事件
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel;
@end
@interface XPTreasureFairyNewSummonCell : UICollectionViewCell
@property (nonatomic, strong) TreasureFairyFragmentModel *fragmemtModel;
@property (nonatomic, weak) id<XPTreasureFairyNewSummonCellDelegate> delegate;
@end
@interface XPTreasureFairyNewSummonPriceView : UIView
@property(nonatomic,copy) NSString *imageIcon;
@property(nonatomic,copy) NSString *text;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,315 +0,0 @@
//
// XPTreasureFairyNewSummonCell.m
// YuMi
//
// Created by duoban on 2023/9/6.
//
#import "XPTreasureFairyNewSummonCell.h"
@interface XPTreasureFairyNewSummonCell()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UIImageView *ballBgImageView;
///
@property (nonatomic,strong) NetImageView *ballImaegView;
///
@property (nonatomic,strong) UILabel *nameLabel;
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *firstPieceView;
///
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *secondPieceView;
///
@property (nonatomic,strong) XPTreasureFairyNewSummonPriceView *thirdPieceView;
///
@property (nonatomic,strong) UIButton *exchangeButton;
@end
@implementation XPTreasureFairyNewSummonCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.contentView.backgroundColor = UIColor.clearColor;
self.backgroundColor = UIColor.clearColor;
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.backImageView];
[self.backImageView addSubview:self.ballImaegView];
[self.backImageView addSubview:self.nameLabel];
[self.backImageView addSubview:self.stackView];
[self.backImageView addSubview:self.exchangeButton];
[self.stackView addArrangedSubview:self.firstPieceView];
[self.stackView addArrangedSubview:self.secondPieceView];
[self.stackView addArrangedSubview:self.thirdPieceView];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView);
}];
[self.ballImaegView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(74);
make.height.mas_equalTo(74);
make.centerX.mas_equalTo(self.backImageView);
make.top.mas_equalTo(60.0);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(8);
make.trailing.mas_equalTo(-8);
make.height.mas_equalTo(12);
make.top.mas_equalTo(137.0);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.nameLabel.mas_bottom).mas_offset(4);
make.centerX.mas_equalTo(self.backImageView);
make.height.mas_equalTo(34);
make.width.mas_equalTo(124);
}];
[self.firstPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(40);
make.height.mas_equalTo(34);
}];
[self.secondPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(40);
make.height.mas_equalTo(34);
}];
[self.thirdPieceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(40);
make.height.mas_equalTo(34);
}];
[self.exchangeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.backImageView);
make.top.equalTo(self.stackView.mas_bottom).mas_offset(4);
make.width.mas_equalTo(70);
make.height.mas_equalTo(23);
}];
}
- (void)layoutSubviews {
[super layoutSubviews];
self.ballImaegView.layer.cornerRadius = self.ballImaegView.bounds.size.width/2.0;
self.ballImaegView.clipsToBounds = YES;
}
- (void)setFragmemtModel:(TreasureFairyFragmentModel *)fragmemtModel {
_fragmemtModel = fragmemtModel;
NSString * utils = fragmemtModel.rewardUnit;
if ([fragmemtModel.rewardType isEqualToString:@"gift"]) {
utils = YMLocalizedString(@"XPTreasureFairyShopingExchangeCell0");
self.nameLabel.text = [NSString stringWithFormat:@"%@(%@%@)",fragmemtModel.rewardName, fragmemtModel.rewardShowValue, utils];
} else {
self.nameLabel.text = [NSString stringWithFormat:@"%@(%ld%@)",fragmemtModel.rewardName, fragmemtModel.rewardNum, utils];
}
[self.ballImaegView loadImageWithUrl:fragmemtModel.rewardPicUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.ballImaegView.image = image;
CGFloat width = 60;
CGFloat height = 60;
if(image.size.width < image.size.height){
height = width * image.size.height / (image.size.width > 0 ? image.size.width : 1);
}else if (image.size.width > image.size.height){
width = height * image.size.width / (image.size.height > 0 ? image.size.height : 1);
}
dispatch_async(dispatch_get_main_queue(), ^{
[self.ballImaegView mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(width);
make.height.mas_equalTo(height);
}];
});
}];
// self.pieceCountLabel.text = [NSString stringWithFormat:@"%ld",fragmemtModel.expendNum];
NSArray *pieceViewList = @[_firstPieceView,_secondPieceView,_thirdPieceView];
int count = 0;
for (int i = 0 ; i < pieceViewList.count; i++) {
XPTreasureFairyNewSummonPriceView *priceView = pieceViewList[i];
if(i < _fragmemtModel.propItems.count){
priceView.hidden = NO;
TreasureFairyFragmentItemModel *itemModel = _fragmemtModel.propItems[i];
priceView.imageIcon = itemModel.picUrl;
priceView.text = [NSString stringWithFormat:@"%@x%@",itemModel.propName,itemModel.propNum];
}else{
priceView.hidden = YES;
count = count + 1;
}
}
CGFloat width = 124 - count * 40;
[self.stackView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.nameLabel.mas_bottom).mas_offset(4);
make.centerX.mas_equalTo(self.backImageView);
make.height.mas_equalTo(34);
make.width.mas_equalTo(width);
}];
[self.exchangeButton setTitle:YMLocalizedString(@"XPTreasureFairyShopingExchangeCell1") forState:UIControlStateNormal];
}
#pragma mark - Action
- (void)exchangeBtnAction {
if (self.delegate && [self.delegate respondsToSelector:@selector(treasureFairyShopingExchangeAction:)]) {
[self.delegate treasureFairyShopingExchangeAction:self.fragmemtModel];
}
}
#pragma mark - Getters And Setters
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_new_exchange_bg"];
_backImageView.userInteractionEnabled = YES;
}
return _backImageView;
}
- (NetImageView *)ballImaegView {
if (!_ballImaegView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_ballImaegView = [[NetImageView alloc] initWithConfig:config];
// _ballImaegView.clipsToBounds = YES;
// _ballImaegView.contentMode = UIViewContentModeScaleAspectFill;
}
return _ballImaegView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.textColor = UIColor.whiteColor;
_nameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_nameLabel.textAlignment = NSTextAlignmentCenter;
}
return _nameLabel;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.spacing = 2;
}
return _stackView;
}
- (XPTreasureFairyNewSummonPriceView *)firstPieceView{
if(!_firstPieceView){
_firstPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
_firstPieceView.hidden = YES;
_firstPieceView.tag = 101;
}
return _firstPieceView;
}
- (XPTreasureFairyNewSummonPriceView *)secondPieceView{
if(!_secondPieceView){
_secondPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
_secondPieceView.hidden = YES;
_secondPieceView.tag = 102;
}
return _secondPieceView;
}
- (XPTreasureFairyNewSummonPriceView *)thirdPieceView{
if(!_thirdPieceView){
_thirdPieceView = [[XPTreasureFairyNewSummonPriceView alloc]initWithFrame:CGRectZero];
_thirdPieceView.hidden = YES;
_thirdPieceView.tag = 103;
}
return _thirdPieceView;
}
- (UIButton *)exchangeButton {
if (!_exchangeButton) {
_exchangeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_exchangeButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#3AEAC7"], [DJDKMIMOMColor colorWithHexString:@"#FFFEBB"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
[_exchangeButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
_exchangeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_exchangeButton.layer.cornerRadius = 4;
_exchangeButton.clipsToBounds = YES;
[_exchangeButton addTarget:self action:@selector(exchangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _exchangeButton;
}
@end
@interface XPTreasureFairyNewSummonPriceView()
///
@property(nonatomic,strong) NetImageView *iconView;
///
@property(nonatomic,strong) UILabel *priceView;
@end
@implementation XPTreasureFairyNewSummonPriceView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.iconView];
[self addSubview:self.priceView];
}
-(void)installConstraints{
[self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(25);
make.centerX.top.equalTo(self);
}];
[self.priceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.iconView.mas_bottom).mas_offset(1);
make.leading.trailing.equalTo(self);
make.height.mas_equalTo(8);
}];
}
-(void)setImageIcon:(NSString *)imageIcon{
_imageIcon = imageIcon;
_iconView.imageUrl = _imageIcon;
}
-(void)setText:(NSString *)text{
_text = text;
_priceView.text = _text;
}
#pragma mark -
- (NetImageView *)iconView{
if(!_iconView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultEmptyPlaceholder];
_iconView = [[NetImageView alloc]initWithConfig:config];
}
return _iconView;
}
- (UILabel *)priceView{
if(!_priceView){
_priceView = [UILabel labelInitWithText:@"" font:[UIFont systemFontOfSize:8 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
_priceView.textAlignment = NSTextAlignmentCenter;
}
return _priceView;
}
@end

View File

@@ -1,17 +0,0 @@
//
// XPTreasureFairyPrizePoolCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/21.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyInfoModel;
@interface XPTreasureFairyPrizePoolCell : UICollectionViewCell
@property (nonatomic,strong) TreasureFairyInfoModel *info;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,106 +0,0 @@
//
// XPTreasureFairyPrizePoolCell.m
// xplan-ios
//
// Created by on 2023/2/21.
//
#import "XPTreasureFairyPrizePoolCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "UIImage+Utils.h"
#import "TreasureFairyInfoModel.h"
@interface XPTreasureFairyPrizePoolCell ()
///
@property (nonatomic,strong) NetImageView *giftImageView;
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UILabel *nameLabel;
@end
@implementation XPTreasureFairyPrizePoolCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.backImageView];
[self.contentView addSubview:self.giftImageView];
[self.contentView addSubview:self.nameLabel];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(94, 115));
make.centerX.mas_equalTo(self.contentView);
make.top.mas_equalTo(self.contentView);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(65, 65));
make.centerX.mas_equalTo(self.backImageView);
make.top.mas_equalTo(self.backImageView).offset(18);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.backImageView);
make.bottom.mas_equalTo(self.backImageView).offset(-8);
}];
}
#pragma mark - Getters And Setters
- (void)setInfo:(TreasureFairyInfoModel *)info {
_info = info;
if (_info) {
self.giftImageView.imageUrl = _info.rewardPicUrl;
self.nameLabel.text = _info.rewardName;
}
}
- (NetImageView *)giftImageView {
if (!_giftImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftImageView = [[NetImageView alloc] initWithConfig:config];
_giftImageView.layer.masksToBounds = YES;
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _giftImageView;
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_prize_pool_bg"];
}
return _backImageView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.font = [UIFont systemFontOfSize:15];
_nameLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#1F5764"];
_nameLabel.textAlignment = NSTextAlignmentCenter;
}
return _nameLabel;
}
@end

View File

@@ -1,23 +0,0 @@
//
// XPTreasureFairyPrizeRecordCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/21.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyInfoModel;
@interface XPTreasureFairyPrizeRecordCell : UITableViewCell
///礼物信息
@property (nonatomic,strong) TreasureFairyInfoModel *recordInfo;
///时间
@property (nonatomic,strong, readonly) UILabel *timeLabel;
///等级
@property (nonatomic,strong, readonly) UILabel *levelLabel;
///奖励
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,134 +0,0 @@
//
// XPTreasureFairyPrizeRecordCell.m
// xplan-ios
//
// Created by on 2023/2/21.
//
#import "XPTreasureFairyPrizeRecordCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "PLTimeUtil.h"
///Model
#import "TreasureFairyInfoModel.h"
@interface XPTreasureFairyPrizeRecordCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *timeLabel;
///
@property (nonatomic,strong) UILabel *levelLabel;
///
@property (nonatomic,strong) UILabel * prizeLabel;
@end
@implementation XPTreasureFairyPrizeRecordCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.timeLabel];
[self.stackView addArrangedSubview:self.levelLabel];
[self.stackView addArrangedSubview:self.prizeLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
}
- (NSString *)getDateWithHHMMSS:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
- (NSString *)getDateWithYYMM:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyy:MM:dd"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
#pragma mark - Getters And Setters
- (void)setRecordInfo:(TreasureFairyInfoModel *)recordInfo {
_recordInfo = recordInfo;
if (_recordInfo) {
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:_recordInfo.drawTime], [self getDateWithHHMMSS:_recordInfo.drawTime]];
self.timeLabel.text = time;
if (_recordInfo.poolLevel == TreasureFairyStoreType_Normal) {
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell0");
} else if (_recordInfo.poolLevel == TreasureFairyStoreType_Middle) {
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell1");
} else {
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyPrizeRecordCell2");
}
self.prizeLabel.text = [NSString stringWithFormat:@"%@x%ld", _recordInfo.rewardName, _recordInfo.rewardNum];
}
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFillEqually;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 0;
}
return _stackView;
}
- (UILabel *)timeLabel {
if (!_timeLabel) {
_timeLabel = [[UILabel alloc] init];
_timeLabel.font = [UIFont systemFontOfSize:12];
_timeLabel.textColor = [UIColor whiteColor];
_timeLabel.numberOfLines = 0;
_timeLabel.textAlignment = NSTextAlignmentCenter;
}
return _timeLabel;
}
- (UILabel *)levelLabel {
if (!_levelLabel) {
_levelLabel = [[UILabel alloc] init];
_levelLabel.font = [UIFont systemFontOfSize:12];
_levelLabel.textColor = [UIColor whiteColor];
_levelLabel.textAlignment = NSTextAlignmentCenter;
}
return _levelLabel;
}
- (UILabel *)prizeLabel {
if (!_prizeLabel) {
_prizeLabel = [[UILabel alloc] init];
_prizeLabel.font = [UIFont systemFontOfSize:12];
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
_prizeLabel.textAlignment = NSTextAlignmentCenter;
}
return _prizeLabel;
}
@end

View File

@@ -1,16 +0,0 @@
//
// XPTreasureFairySendRecordCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/23.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairySendRecordModel;
@interface XPTreasureFairySendRecordCell : UITableViewCell
@property (nonatomic,strong) TreasureFairySendRecordModel *recordInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,142 +0,0 @@
//
// XPTreasureFairySendRecordCell.m
// xplan-ios
//
// Created by on 2023/2/23.
//
#import "XPTreasureFairySendRecordCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
///Model
#import "TreasureFairySendRecordModel.h"
@interface XPTreasureFairySendRecordCell ()
///
@property (nonatomic,strong) UILabel *timeLabel;
///
@property (nonatomic,strong) UIView *backView;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
@end
@implementation XPTreasureFairySendRecordCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.timeLabel];
[self.contentView addSubview:self.backView];
[self.backView addSubview:self.avatarImageView];
[self.backView addSubview:self.titleLabel];
}
- (void)initSubViewConstraints {
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.contentView).offset(20);
make.top.mas_equalTo(self.contentView);
}];
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.contentView).inset(20);
make.height.mas_equalTo(58);
make.top.mas_equalTo(self.timeLabel.mas_bottom).offset(8);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(42, 42));
make.leading.mas_equalTo(self.backView).offset(12);
make.centerY.mas_equalTo(self.backView);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(9);
make.centerY.mas_equalTo(self.avatarImageView);
make.trailing.mas_lessThanOrEqualTo(self.backView).offset(-5);
}];
}
- (NSString *)getDateWithTotalTimeWith:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell0")];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
#pragma mark - Getters And Setters
- (void)setRecordInfo:(TreasureFairySendRecordModel *)recordInfo {
_recordInfo = recordInfo;
if (_recordInfo) {
self.timeLabel.text = [self getDateWithTotalTimeWith:_recordInfo.createTime];
self.avatarImageView.imageUrl = _recordInfo.elfPicUrl;
NSString * nick = self.recordInfo.targetNick;
if (_recordInfo.type == TreasureFairySendRecordModel_Send) {
self.titleLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell1"),nick,self.recordInfo.elfName];
} else {
self.titleLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairySendRecordCell2"), nick,self.recordInfo.elfName];
}
}
}
- (UILabel *)timeLabel {
if (!_timeLabel) {
_timeLabel = [[UILabel alloc] init];
_timeLabel.font = [UIFont systemFontOfSize:12];
_timeLabel.textColor = [UIColor whiteColor];
}
return _timeLabel;
}
- (UIView *)backView {
if (!_backView) {
_backView = [[UIView alloc] init];
_backView.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#00A69D"];
_backView.layer.masksToBounds = YES;
_backView.layer.cornerRadius = 8;
}
return _backView;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 4;
_avatarImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#FFE8AA"].CGColor;
_avatarImageView.layer.borderWidth = 0.5;
_avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _avatarImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:12];
_titleLabel.textColor = [UIColor whiteColor];
_titleLabel.numberOfLines = 0;
}
return _titleLabel;
}
@end

View File

@@ -1,28 +0,0 @@
//
// XPTreasureFairyShopingExchangeCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/28.
//
#import <UIKit/UIKit.h>
@class TreasureFairyFragmentModel;
NS_ASSUME_NONNULL_BEGIN
@protocol XPTreasureFairyShopingExchangeCellDelegate <NSObject>
/// 兑换事件
- (void)treasureFairyShopingExchangeAction:(TreasureFairyFragmentModel *)fragmentModel;
@end
@interface XPTreasureFairyShopingExchangeCell : UICollectionViewCell
@property (nonatomic, strong) TreasureFairyFragmentModel *fragmemtModel;
@property (nonatomic, weak) id<XPTreasureFairyShopingExchangeCellDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,219 +0,0 @@
//
// XPTreasureFairyShopingExchangeCell.m
// xplan-ios
//
// Created by on 2023/2/28.
//
#import "XPTreasureFairyShopingExchangeCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "UIImage+Utils.h"
///Model
#import "TreasureFairyFragmentModel.h"
@interface XPTreasureFairyShopingExchangeCell ()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UIImageView *ballBgImageView;
///
@property (nonatomic,strong) NetImageView *ballImaegView;
///
@property (nonatomic,strong) UILabel *nameLabel;
///
@property (nonatomic,strong) UIStackView *stackView;
///便
@property (nonatomic,strong) UIImageView *pieceImageView;
///便
@property (nonatomic,strong) UILabel *pieceCountLabel;
///
@property (nonatomic,strong) UIButton *exchangeButton;
@end
@implementation XPTreasureFairyShopingExchangeCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.contentView.backgroundColor = UIColor.clearColor;
self.backgroundColor = UIColor.clearColor;
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.backImageView];
[self.backImageView addSubview:self.ballImaegView];
[self.backImageView addSubview:self.nameLabel];
[self.backImageView addSubview:self.stackView];
[self.backImageView addSubview:self.exchangeButton];
[self.stackView addArrangedSubview:self.pieceImageView];
[self.stackView addArrangedSubview:self.pieceCountLabel];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.contentView);
}];
[self.ballImaegView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(70);
make.height.mas_equalTo(70);
make.centerX.mas_equalTo(self.backImageView);
make.top.mas_equalTo(55);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(8);
make.trailing.mas_equalTo(-8);
make.bottom.mas_equalTo(self.stackView.mas_top).offset(-4);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.exchangeButton.mas_top).offset(-7);
make.centerX.mas_equalTo(self.backImageView);
make.height.mas_equalTo(20);
}];
[self.pieceImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(self.stackView.mas_height);
}];
[self.exchangeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.backImageView);
make.bottom.mas_equalTo(-26);
make.width.mas_equalTo(80);
make.height.mas_equalTo(25);
}];
}
- (void)layoutSubviews {
[super layoutSubviews];
self.ballImaegView.layer.cornerRadius = self.ballImaegView.bounds.size.width/2.0;
self.ballImaegView.clipsToBounds = YES;
}
- (void)setFragmemtModel:(TreasureFairyFragmentModel *)fragmemtModel {
_fragmemtModel = fragmemtModel;
NSString * utils = fragmemtModel.rewardUnit;
if ([fragmemtModel.rewardType isEqualToString:@"gift"]) {
utils = YMLocalizedString(@"XPTreasureFairyShopingExchangeCell0");
self.nameLabel.text = [NSString stringWithFormat:@"%@(%@%@)",fragmemtModel.rewardName, fragmemtModel.rewardShowValue, utils];
} else {
self.nameLabel.text = [NSString stringWithFormat:@"%@(%ld%@)",fragmemtModel.rewardName, fragmemtModel.rewardNum, utils];
}
[self.ballImaegView loadImageWithUrl:fragmemtModel.rewardPicUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.ballImaegView.image = image;
// CGFloat width = 60;
// CGFloat height = 60;
// if(image.size.width < image.size.height){
// width = width * image.size.height / (image.size.width > 0 ? image.size.width : 1);
// }else if (image.size.width > image.size.height){
// height = height * image.size.width / (image.size.height > 0 ? image.size.height : 1);
// }
// dispatch_async(dispatch_get_main_queue(), ^{
// [self.ballImaegView mas_remakeConstraints:^(MASConstraintMaker *make) {
// make.centerX.mas_equalTo(self.backImageView);
// make.top.mas_equalTo(59.0);
// make.width.mas_equalTo(width);
// make.height.mas_equalTo(height);
// }];
// });
}];
self.pieceCountLabel.text = [NSString stringWithFormat:@"%ld",fragmemtModel.expendNum];
[self.exchangeButton setTitle:YMLocalizedString(@"XPTreasureFairyShopingExchangeCell1") forState:UIControlStateNormal];
}
#pragma mark - Action
- (void)exchangeBtnAction {
if (self.delegate && [self.delegate respondsToSelector:@selector(treasureFairyShopingExchangeAction:)]) {
[self.delegate treasureFairyShopingExchangeAction:self.fragmemtModel];
}
}
#pragma mark - Getters And Setters
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_exchange_bg"];
_backImageView.userInteractionEnabled = YES;
}
return _backImageView;
}
- (NetImageView *)ballImaegView {
if (!_ballImaegView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_ballImaegView = [[NetImageView alloc] initWithConfig:config];
_ballImaegView.contentMode = UIViewContentModeScaleAspectFit;
}
return _ballImaegView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.textColor = UIColor.whiteColor;
_nameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_nameLabel.textAlignment = NSTextAlignmentCenter;
}
return _nameLabel;
}
- (UIImageView *)pieceImageView {
if (!_pieceImageView) {
_pieceImageView = [[UIImageView alloc] init];
_pieceImageView.contentMode = UIViewContentModeScaleAspectFit;
_pieceImageView.image = [UIImage imageNamed:@"room_treasure_fairy_shop_fragment"];
}
return _pieceImageView;
}
- (UILabel *)pieceCountLabel {
if (!_pieceCountLabel) {
_pieceCountLabel = [[UILabel alloc] init];
_pieceCountLabel.textColor = UIColor.whiteColor;
_pieceCountLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_pieceCountLabel.textAlignment = NSTextAlignmentCenter;
}
return _pieceCountLabel;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.spacing = 4;
}
return _stackView;
}
- (UIButton *)exchangeButton {
if (!_exchangeButton) {
_exchangeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_exchangeButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#3AEAC7"], [DJDKMIMOMColor colorWithHexString:@"#FFFEBB"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
[_exchangeButton setTitleColor:[DJDKMIMOMColor colorWithHexString:@"#1F5764"] forState:UIControlStateNormal];
_exchangeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_exchangeButton.layer.cornerRadius = 4;
_exchangeButton.clipsToBounds = YES;
[_exchangeButton addTarget:self action:@selector(exchangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _exchangeButton;
}
@end

View File

@@ -1,28 +0,0 @@
//
// XPTreasureFairyShopingRecordCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/27.
//
#import <UIKit/UIKit.h>
@class TreasureFairyConvertRecordModel;
NS_ASSUME_NONNULL_BEGIN
@interface XPTreasureFairyShopingRecordCell : UITableViewCell
///是否是召唤
@property (nonatomic,assign) BOOL isSummon;
///时间
@property (nonatomic,strong, readonly) UILabel *timeLabel;
///等级
@property (nonatomic,strong, readonly) UILabel *levelLabel;
///奖励
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
///记录模型
@property (nonatomic, strong) TreasureFairyConvertRecordModel *recordModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,161 +0,0 @@
//
// XPTreasureFairyShopingRecordCell.m
// xplan-ios
//
// Created by on 2023/2/27.
//
#import "XPTreasureFairyShopingRecordCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "PLTimeUtil.h"
///Model
#import "TreasureFairyConvertRecordModel.h"
@interface XPTreasureFairyShopingRecordCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *timeLabel;
///
@property (nonatomic,strong) UILabel *levelLabel;
///
@property (nonatomic,strong) UILabel * prizeLabel;
@end
@implementation XPTreasureFairyShopingRecordCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.timeLabel];
[self.stackView addArrangedSubview:self.levelLabel];
[self.stackView addArrangedSubview:self.prizeLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
}
- (NSString *)getDateWithHHMMSS:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
- (NSString *)getDateWithYYMM:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyy:MM:dd"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
#pragma mark - Getters And Setters
- (void)setRecordModel:(TreasureFairyConvertRecordModel *)recordModel {
_recordModel = recordModel;
if (_recordModel != nil) {
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:recordModel.createTime], [self getDateWithHHMMSS:recordModel.createTime]];
self.timeLabel.text = time;
if (self.isSummon) {
NSString *level = @"";
if (recordModel.convertLevel == 1) {
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell0");
}else if (recordModel.convertLevel == 2) {
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell1");
}else if (recordModel.convertLevel == 3) {
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell2");
}else if (recordModel.convertLevel == 5){
level = YMLocalizedString(@"XPTreasureFairyShopingRecordCell2");
}
self.levelLabel.text = level;
self.prizeLabel.text = [NSString stringWithFormat:@"%@x%@",recordModel.rewardName, recordModel.rewardNum];
}else{
NSString *string1 = [NSString stringWithFormat:@"%@x%@\n",recordModel.rewardName, recordModel.rewardNum];
NSString *string2 = [NSString stringWithFormat:YMLocalizedString(@"XPTreasureFairyShopingRecordCell3"), recordModel.rewardShowValue];
NSString *string = [NSString stringWithFormat:@"%@%@",string1, string2];
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:string];
NSRange range = NSMakeRange(string.length-string2.length, string2.length);
[attrStr addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:range];
[attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:11] range:range];
self.prizeLabel.attributedText = attrStr;
}
}
}
- (void)setIsSummon:(BOOL)isSummon {
_isSummon = isSummon;
// if (_isSummon) {
// self.levelLabel.hidden = NO;
// } else {
// self.levelLabel.hidden = YES;
// }
self.levelLabel.hidden = YES;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFillEqually;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 0;
}
return _stackView;
}
- (UILabel *)timeLabel {
if (!_timeLabel) {
_timeLabel = [[UILabel alloc] init];
_timeLabel.font = [UIFont systemFontOfSize:12];
_timeLabel.textColor = [UIColor whiteColor];
_timeLabel.numberOfLines = 0;
_timeLabel.textAlignment = NSTextAlignmentCenter;
}
return _timeLabel;
}
- (UILabel *)levelLabel {
if (!_levelLabel) {
_levelLabel = [[UILabel alloc] init];
_levelLabel.font = [UIFont systemFontOfSize:12];
_levelLabel.textColor = [UIColor whiteColor];
_levelLabel.textAlignment = NSTextAlignmentCenter;
}
return _levelLabel;
}
- (UILabel *)prizeLabel {
if (!_prizeLabel) {
_prizeLabel = [[UILabel alloc] init];
_prizeLabel.font = [UIFont systemFontOfSize:12];
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
_prizeLabel.textAlignment = NSTextAlignmentCenter;
_prizeLabel.numberOfLines = 0;
}
return _prizeLabel;
}
@end

View File

@@ -1,20 +0,0 @@
//
// XPTreasureFairyStoreResultCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyInfoModel, TreasureFairyBallModel;
@interface XPTreasureFairyStoreResultCell : UICollectionViewCell
///奖励信息
@property (nonatomic,strong) TreasureFairyInfoModel *prizeInfo;
///试炼精灵球信息
@property (nonatomic,strong) TreasureFairyBallModel *ballInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,121 +0,0 @@
//
// XPTreasureFairyStoreResultCell.m
// xplan-ios
//
// Created by on 2023/2/20.
//
#import "XPTreasureFairyStoreResultCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "UIImage+Utils.h"
///Model
#import "TreasureFairyInfoModel.h"
#import "TreasureFairyBallInfoModel.h"
@interface XPTreasureFairyStoreResultCell ()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) NetImageView *giftImageView;
///
@property (nonatomic,strong) UILabel *nameLabel;
@end
@implementation XPTreasureFairyStoreResultCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.backImageView];
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.giftImageView];
}
- (void)initSubViewConstraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.top.mas_equalTo(self);
make.height.mas_equalTo(self.backImageView.mas_width);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.backImageView).inset(10);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self);
make.top.mas_equalTo(self.backImageView.mas_bottom).offset(7);
}];
}
#pragma mark - Getters And Setters
- (void)setPrizeInfo:(TreasureFairyInfoModel *)prizeInfo {
_prizeInfo = prizeInfo;
if (_prizeInfo) {
if(_prizeInfo.propType == TreasureFairyPropType_Salvage){
self.giftImageView.image = kImage(@"room_treasure_fairy_buy_elf_icon");
self.nameLabel.text =[NSString stringWithFormat:@"x%ld", _prizeInfo.rewardNum];
_backImageView.hidden = YES;
return;
}
_backImageView.hidden = NO;
self.giftImageView.imageUrl = prizeInfo.rewardPicUrl;
self.nameLabel.text =[NSString stringWithFormat:@"%@x%ld", _prizeInfo.rewardName, _prizeInfo.rewardNum];
}
}
- (void)setBallInfo:(TreasureFairyBallModel *)ballInfo{
_ballInfo = ballInfo;
if (_ballInfo) {
self.giftImageView.imageUrl = _ballInfo.elfPicUrl;
self.nameLabel.text =[NSString stringWithFormat:@"%@", _ballInfo.elfName];
}
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor colorWithHexString:@"#00B9AF"], [DJDKMIMOMColor colorWithHexString:@"#006E7C"]] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)];
_backImageView.layer.masksToBounds = YES;
_backImageView.layer.borderWidth = 0.5;
_backImageView.layer.cornerRadius = 45;
_backImageView.layer.borderColor = [DJDKMIMOMColor colorWithHexString:@"#F4FFC3"].CGColor;
}
return _backImageView;
}
- (NetImageView *)giftImageView {
if (!_giftImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftImageView = [[NetImageView alloc] initWithConfig:config];
_giftImageView.layer.masksToBounds = YES;
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _giftImageView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.font = [UIFont systemFontOfSize:12];
_nameLabel.textAlignment = NSTextAlignmentCenter;
_nameLabel.textColor = [UIColor whiteColor];
}
return _nameLabel;
}
@end

View File

@@ -1,25 +0,0 @@
//
// XPTreasureFairyTrialsRecordCell.h
// xplan-ios
//
// Created by 冯硕 on 2023/2/27.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class TreasureFairyTrialsRecordModel;
@interface XPTreasureFairyTrialsRecordCell : UITableViewCell
@property (nonatomic,strong) TreasureFairyTrialsRecordModel *recordInfo;
///时间
@property (nonatomic,strong, readonly) UILabel *timeLabel;
///等级
@property (nonatomic,strong, readonly) UILabel *levelLabel;
///奖励
@property (nonatomic,strong, readonly) UILabel * prizeLabel;
///投入的
@property (nonatomic,strong, readonly) UILabel *trialsLabel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,161 +0,0 @@
//
// XPTreasureFairyTrialsRecordCell.m
// xplan-ios
//
// Created by on 2023/2/27.
//
#import "XPTreasureFairyTrialsRecordCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "PLTimeUtil.h"
#import "NSArray+Safe.h"
///Model
#import "TreasureFairyTrialsRecordModel.h"
@interface XPTreasureFairyTrialsRecordCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *timeLabel;
///
@property (nonatomic,strong) UILabel *levelLabel;
///
@property (nonatomic,strong) UILabel *trialsLabel;
///
@property (nonatomic,strong) UILabel * prizeLabel;
@end
@implementation XPTreasureFairyTrialsRecordCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.timeLabel];
[self.stackView addArrangedSubview:self.levelLabel];
[self.stackView addArrangedSubview:self.trialsLabel];
[self.stackView addArrangedSubview:self.prizeLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.bottom.equalTo(self.contentView);
make.trailing.mas_equalTo(-5);
}];
}
- (NSString *)getDateWithHHMMSS:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
- (NSString *)getDateWithYYMM:(NSString *)time {
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyy:MM:dd"];
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
#pragma mark - Getters And Setters
- (void)setRecordInfo:(TreasureFairyTrialsRecordModel *)recordInfo {
_recordInfo = recordInfo;
if (_recordInfo) {
NSString * time = [NSString stringWithFormat:@"%@\n%@", [self getDateWithYYMM:_recordInfo.createTime], [self getDateWithHHMMSS:_recordInfo.createTime]];
self.timeLabel.text = time;
if (_recordInfo.type == TreasureFairyStoreType_Salvage) {
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyTrialsRecordCell1");
} else {
self.levelLabel.text = YMLocalizedString(@"XPTreasureFairyTrialsRecordCell0");
}
NSMutableString * trilasTitle = [[NSMutableString alloc] init];
for (int i = 0; i < _recordInfo.expendList.count; i++) {
TreasureFairyBallModel * ballInfo = [_recordInfo.expendList xpSafeObjectAtIndex:i];
if (ballInfo.elfName.length > 0) {
[trilasTitle appendString:[NSString stringWithFormat:@"%@x%ld", ballInfo.elfName, ballInfo.elfNum]];
}
if (i <( _recordInfo.expendList.count -1)){
[trilasTitle appendString:@"\n"];
}
}
self.trialsLabel.text = trilasTitle;
self.prizeLabel.text = _recordInfo.elfName;
}
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFillEqually;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 0;
}
return _stackView;
}
- (UILabel *)timeLabel {
if (!_timeLabel) {
_timeLabel = [[UILabel alloc] init];
_timeLabel.font = [UIFont systemFontOfSize:12];
_timeLabel.textColor = [UIColor whiteColor];
_timeLabel.numberOfLines = 0;
_timeLabel.textAlignment = NSTextAlignmentCenter;
}
return _timeLabel;
}
- (UILabel *)levelLabel {
if (!_levelLabel) {
_levelLabel = [[UILabel alloc] init];
_levelLabel.font = [UIFont systemFontOfSize:12];
_levelLabel.textColor = [UIColor whiteColor];
_levelLabel.textAlignment = NSTextAlignmentCenter;
}
return _levelLabel;
}
- (UILabel *)trialsLabel {
if (!_trialsLabel) {
_trialsLabel = [[UILabel alloc] init];
_trialsLabel.font = [UIFont systemFontOfSize:12];
_trialsLabel.textColor = [UIColor whiteColor];
_trialsLabel.textAlignment = NSTextAlignmentCenter;
_trialsLabel.numberOfLines = 4;
}
return _trialsLabel;
}
- (UILabel *)prizeLabel {
if (!_prizeLabel) {
_prizeLabel = [[UILabel alloc] init];
_prizeLabel.font = [UIFont systemFontOfSize:12];
_prizeLabel.textColor = [DJDKMIMOMColor colorWithHexString:@"#FEF8A8"];
_prizeLabel.textAlignment = NSTextAlignmentCenter;
_prizeLabel.numberOfLines = 0;
}
return _prizeLabel;
}
@end

View File

@@ -1,25 +0,0 @@
//
// PITreasureFairyBuyElfShardInputNumView.h
// YuMi
//
// Created by duoban on 2023/9/7.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol PITreasureFairyBuyElfShardInputNumViewDelegate <NSObject>
-(void)inputShardNum:(NSString *)num;
@end
@interface PITreasureFairyBuyElfShardInputNumView : UIView
@property(nonatomic,copy) NSString *text;
@property(nonatomic,weak) id<PITreasureFairyBuyElfShardInputNumViewDelegate>delegate;
///精灵碎片数量
@property(nonatomic,copy) NSString *shardNum;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,164 +0,0 @@
//
// PITreasureFairyBuyElfShardInputNumView.m
// YuMi
//
// Created by duoban on 2023/9/7.
//
#import "PITreasureFairyBuyElfShardInputNumView.h"
@interface PITreasureFairyBuyElfShardInputNumView()<UITextFieldDelegate>
///
@property(nonatomic,strong) UIButton *addBtn;
///
@property(nonatomic,strong) UIButton *subtractBtn;
///
@property(nonatomic,strong) UIView *bgView;
///
@property(nonatomic,strong) MSBaseTextField *textFiled;
@end
@implementation PITreasureFairyBuyElfShardInputNumView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.bgView];
[self addSubview:self.subtractBtn];
[self addSubview:self.addBtn];
[self.bgView addSubview:self.textFiled];
}
-(void)installConstraints{
[self.subtractBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(51);
make.height.mas_equalTo(29);
make.leading.top.equalTo(self);
}];
[self.addBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.top.equalTo(self);
make.width.mas_equalTo(51);
make.height.mas_equalTo(29);
}];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(15);
make.bottom.top.equalTo(self);
}];
[self.textFiled mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(51);
make.trailing.mas_equalTo(-51);
make.bottom.top.equalTo(self);
}];
}
-(void)setShardNum:(NSString *)shardNum{
_shardNum = shardNum;
_textFiled.text = _shardNum;
}
#pragma mark -UITextFieldDelegate
- (void)textFieldDidChanged:(UITextField *)textField {
if(textField.text.integerValue <= 0){
textField.text = @"";
}
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
[self.delegate inputShardNum:textField.text];
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
if(textField.text.length <= 0){
textField.text = @"";
}
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
[self.delegate inputShardNum:textField.text];
}
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return [self validateNumber:string];
}
- (BOOL)validateNumber:(NSString*)number {
BOOL res = YES;
NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
int i = 0;
while (i < number.length) {
NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
NSRange range = [string rangeOfCharacterFromSet:tmpSet];
if (range.length == 0) {
res = NO;
break;
}
i++;
}
return res;
}
-(void)addBtnAction{
NSInteger num = self.textFiled.text.integerValue + 10;
self.textFiled.text = @(num).stringValue;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
[self.delegate inputShardNum:self.textFiled.text];
}
}
-(void)subtractAction{
NSInteger num = self.textFiled.text.integerValue - 10;
if(num <= 1){
num = 1;
}
self.textFiled.text = @(num).stringValue;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputShardNum:)]){
[self.delegate inputShardNum:self.textFiled.text];
}
}
#pragma mark -
- (NSString *)text{
return self.textFiled.text;
}
- (UIView *)bgView{
if(!_bgView){
_bgView = [UIView new];
_bgView.backgroundColor = UIColorFromRGB(0x306065);
}
return _bgView;
}
- (MSBaseTextField *)textFiled {
if (!_textFiled) {
_textFiled = [[MSBaseTextField alloc] init];
_textFiled.tintColor = [UIColor whiteColor];
_textFiled.textColor = [UIColor whiteColor];
_textFiled.backgroundColor = [UIColor clearColor];
_textFiled.textAlignment = NSTextAlignmentCenter;
_textFiled.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
_textFiled.text = @"1";
_textFiled.delegate = self;
[_textFiled addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
_textFiled.keyboardType = UIKeyboardTypeNumberPad;
}
return _textFiled;
}
- (UIButton *)addBtn{
if(!_addBtn){
_addBtn = [UIButton new];
[_addBtn setBackgroundImage:kImage(@"room_treasure_fairy_new_buy_elf_add") forState:UIControlStateNormal];
[_addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _addBtn;
}
- (UIButton *)subtractBtn{
if(!_subtractBtn){
_subtractBtn = [UIButton new];
[_subtractBtn setBackgroundImage:kImage(@"room_treasure_fairy_new_buy_elf_subtract") forState:UIControlStateNormal];
[_subtractBtn addTarget:self action:@selector(subtractAction) forControlEvents:UIControlEventTouchUpInside];
}
return _subtractBtn;
}
@end

View File

@@ -1,16 +0,0 @@
//
// PITreasureFairyBuyElfShardSuccessView.h
// YuMi
//
// Created by duoban on 2023/9/7.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface PITreasureFairyBuyElfShardSuccessView : UIView
@property(nonatomic,copy) NSString *num;
@end
NS_ASSUME_NONNULL_END

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