房间相册加入公屏历史记录
This commit is contained in:
@@ -701,7 +701,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
|
||||
option.limit = [ClientConfig shareConfig].configInfo.roomMessageCount;
|
||||
option.startTime = self.hostDelegate.getRoomInfo.clearScreenTime / 1000.0;
|
||||
option.order = NIMMessageSearchOrderAsc;
|
||||
option.messageTypes = @[@(NIMMessageTypeText)];
|
||||
option.messageTypes = @[@(NIMMessageTypeText),@(NIMMessageTypeCustom)];
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchMessageHistory:roomId option:option result:^(NSError * _Nullable error, NSArray<NIMMessage *> * _Nullable messages) {
|
||||
if (messages.count) {
|
||||
//如果拉取的数量等于请求的数量,说明这个时间点以后的消息数量大于等于需要拉取的数量,直接拉取最新的50条
|
||||
@@ -709,7 +709,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
|
||||
NIMHistoryMessageSearchOption *option = [[NIMHistoryMessageSearchOption alloc] init];
|
||||
option.limit = [ClientConfig shareConfig].configInfo.roomMessageCount;
|
||||
option.order = NIMMessageSearchOrderDesc;
|
||||
option.messageTypes = @[@(NIMMessageTypeText)];
|
||||
option.messageTypes = @[@(NIMMessageTypeText),@(NIMMessageTypeCustom)];
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchMessageHistory:roomId option:option result:^(NSError * _Nullable error, NSArray<NIMMessage *> * _Nullable messages) {
|
||||
if (self.datasource.count > kRoomMessageMaxLength) {
|
||||
NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kRoomMessageMaxLength/2)];
|
||||
@@ -718,20 +718,8 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
|
||||
}
|
||||
// 执行插入
|
||||
for (NIMMessage *item in messages.reverseObjectEnumerator) {
|
||||
[self.datasource addObject:[self.messageParser parseMessageAttribute:item]];
|
||||
if (!self.isMiniEnter) {/// 最小化进房的话 不需要重新保存
|
||||
if (self.hostDelegate.getRoomInfo.isCloseScreen) {
|
||||
NIMCustomObject *obj = (NIMCustomObject *)item.messageObject;
|
||||
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
|
||||
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
|
||||
if (attachment.first == CustomMessageType_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
[self dealWithHistoryDataWithMessage:item];
|
||||
|
||||
}
|
||||
[self.messageTableView reloadData];
|
||||
//执行插入动画并滚动
|
||||
@@ -755,20 +743,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
|
||||
}
|
||||
// 执行插入
|
||||
for (NIMMessage *item in messages) {
|
||||
[self.datasource addObject:[self.messageParser parseMessageAttribute:item]];
|
||||
if (!self.isMiniEnter) {/// 最小化进房的话 不需要重新保存
|
||||
if (self.hostDelegate.getRoomInfo.isCloseScreen) {
|
||||
NIMCustomObject *obj = (NIMCustomObject *)item.messageObject;
|
||||
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
|
||||
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
|
||||
if (attachment.first == CustomMessageType_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
[self dealWithHistoryDataWithMessage:item];
|
||||
}
|
||||
[self.messageTableView reloadData];
|
||||
//执行插入动画并滚动
|
||||
@@ -785,7 +760,39 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
|
||||
[self createUserEnterRoomAddRoomtopicMessage];
|
||||
}];
|
||||
}
|
||||
|
||||
-(void)dealWithHistoryDataWithMessage:(NIMMessage *)item{
|
||||
BOOL isHaveSave = NO;
|
||||
if(item.messageType == NIMMessageTypeText){
|
||||
isHaveSave = YES;
|
||||
}else if(item.messageType == NIMMessageTypeCustom){
|
||||
NIMCustomObject *obj = (NIMCustomObject *)item.messageObject;
|
||||
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
|
||||
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
|
||||
if (attachment.first == CustomMessageType_Room_Album && attachment.second == Custom_Message_Sub_Room_Album) {
|
||||
isHaveSave = YES;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if(isHaveSave == NO)return;
|
||||
[self.datasource addObject:[self.messageParser parseMessageAttribute:item]];
|
||||
if (!self.isMiniEnter) {/// 最小化进房的话 不需要重新保存
|
||||
if (self.hostDelegate.getRoomInfo.isCloseScreen) {
|
||||
NIMCustomObject *obj = (NIMCustomObject *)item.messageObject;
|
||||
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
|
||||
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
|
||||
if (attachment.first == CustomMessageType_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
[[XPRoomMiniManager shareManager] saveRoomMessage:item];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
- (void)handleNIMTextMessage:(NIMMessage *)message {
|
||||
self.isMiniEnter = NO;
|
||||
if (self.hostDelegate.getRoomInfo.isCloseScreen) {return;}
|
||||
|
Reference in New Issue
Block a user