新增 BannerScheduler 模块,统一管理 V2 Banner 的播放队列和状态,优化了 Banner 播放逻辑,支持优先级排序、状态控制和代理模式。更新 RoomAnimationView,集成 BannerScheduler,重构了 Banner 添加和播放逻辑,提升了代码可维护性和用户体验。同时,新增 BannerScheduler 的单元测试,确保功能的正确性和稳定性。

This commit is contained in:
edwinQQQ
2025-08-20 14:19:32 +08:00
parent aeb9fcd30e
commit be52c53b2f
6 changed files with 923 additions and 62 deletions

View File

@@ -519,6 +519,7 @@
4C729E4C2E5318AA00E5171E /* GiftComboUIAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C729E4B2E5318AA00E5171E /* GiftComboUIAdapter.m */; };
4C729E4D2E5318AA00E5171E /* GiftComboConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C729E472E5318AA00E5171E /* GiftComboConfig.m */; };
4C729E4E2E5318AA00E5171E /* GiftComboTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C729E492E5318AA00E5171E /* GiftComboTransport.m */; };
4C75472E2E55837300C6E821 /* BannerScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75472D2E55837200C6E821 /* BannerScheduler.m */; };
4C75CEFB2D6318FF009147A5 /* RoomEnterModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CEFA2D6318FF009147A5 /* RoomEnterModel.m */; };
4C75CEFE2D632CD5009147A5 /* CPEnterRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CEFD2D632CD5009147A5 /* CPEnterRoomTableViewCell.m */; };
4C75CF002D633C27009147A5 /* CP进场.svga in Resources */ = {isa = PBXBuildFile; fileRef = 4C75CEFF2D633C27009147A5 /* CP进场.svga */; };
@@ -2699,6 +2700,8 @@
4C729E492E5318AA00E5171E /* GiftComboTransport.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiftComboTransport.m; sourceTree = "<group>"; };
4C729E4A2E5318AA00E5171E /* GiftComboUIAdapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GiftComboUIAdapter.h; sourceTree = "<group>"; };
4C729E4B2E5318AA00E5171E /* GiftComboUIAdapter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GiftComboUIAdapter.m; sourceTree = "<group>"; };
4C75472C2E55837200C6E821 /* BannerScheduler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BannerScheduler.h; sourceTree = "<group>"; };
4C75472D2E55837200C6E821 /* BannerScheduler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BannerScheduler.m; sourceTree = "<group>"; };
4C75CEF92D6318FF009147A5 /* RoomEnterModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomEnterModel.h; sourceTree = "<group>"; };
4C75CEFA2D6318FF009147A5 /* RoomEnterModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomEnterModel.m; sourceTree = "<group>"; };
4C75CEFC2D632CD5009147A5 /* CPEnterRoomTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPEnterRoomTableViewCell.h; sourceTree = "<group>"; };
@@ -8586,6 +8589,8 @@
E838D99D275E1B6C0079E0B5 /* AnimationView */ = {
isa = PBXGroup;
children = (
4C75472C2E55837200C6E821 /* BannerScheduler.h */,
4C75472D2E55837200C6E821 /* BannerScheduler.m */,
4C6E31EA2D35010F00D8EEDD /* RoomAnimationView.h */,
4C6E31EB2D35010F00D8EEDD /* RoomAnimationView.m */,
4C6E31ED2D363CA800D8EEDD /* addMoveAnimationToView.m */,
@@ -13093,6 +13098,7 @@
E85E7B332A4EB0D300B6D00A /* XPGuildIncomeSectionView.m in Sources */,
E85E7B0F2A4EB0D200B6D00A /* GuildRoomInfoModel.m in Sources */,
E801275527E3326000BAC3F2 /* XPRoomPKUserView.m in Sources */,
4C75472E2E55837300C6E821 /* BannerScheduler.m in Sources */,
2305EF132AD8036B00AD403C /* PIRoomMessagePhotoAlbumView.m in Sources */,
E8FE3C2C2994D0E80006C6C7 /* XPSwitch.m in Sources */,
4C1064882E0014CF007E1586 /* NSMutableArray+Safe.m in Sources */,