// // YMRoomMiniManager.m // YUMI // // Created by YUMI on 2021/12/8. // #import "XPRoomMiniManager.h" #import "XPRoomMessageConstant.h" @interface XPRoomMiniManager () ///公屏消息 @property (nonatomic,strong) NSMutableArray *messageArray; ///房间信息 @property (nonatomic,strong) RoomInfoModel *roomInfo; ///当前播放的歌曲 @property (nonatomic,strong) Music *musicInfo; ///是否正在播放 @property (nonatomic,assign) BOOL isPlaying; ///用户信息 @property (nonatomic,strong) UserInfoModel *userInfo; @end @implementation XPRoomMiniManager + (instancetype)shareManager { static dispatch_once_t onceToken = 0; static id instance; dispatch_once(&onceToken, ^{ instance = [[XPRoomMiniManager alloc] init]; }); return instance; } - (RoomInfoModel *)getRoomInfo { return self.roomInfo; } - (void)configRoomInfo:(RoomInfoModel *_Nullable)roomInfo { self.roomInfo = roomInfo; } - (UserInfoModel *)getUserInfo { return self.userInfo; } - (void)configUserInfo:(UserInfoModel * _Nullable)userInfo { self.userInfo = userInfo; } ///获取当前播放的歌曲 - (Music *)getCurrentMusic { return self.musicInfo; } - (BOOL)musicPlaying { return self.isPlaying; } ///最小化的时候也要保存一下当前播放的歌曲 - (void)configCurrentMusic:(Music *)music isPlaying:(BOOL)isPlaying { self.musicInfo = music; self.isPlaying = isPlaying; } ///保存一下 房间的公屏防止最小化出去之后 被清空了 - (void)saveRoomMessage:(NIMMessage *)message { [self.messageArray addObject:message]; if (self.messageArray.count > kRoomMessageMaxLength) { NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kRoomMessageMaxLength/2)]; NSArray *needRemoveMsgArray = [self.messageArray objectsAtIndexes:set]; [self.messageArray removeObjectsInArray:needRemoveMsgArray]; } } - (NSArray *)getLocalCurrentRoomMessage { return [self.messageArray copy]; } - (void)resetLocalMessage { [self.messageArray removeAllObjects]; } - (NSMutableArray *)messageArray { if (!_messageArray) { _messageArray = [NSMutableArray array]; } return _messageArray; } @end