修复MessageView和AvRoomDataManager中的chatRoomMessages不同步的问题
This commit is contained in:
@@ -273,11 +273,12 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
// 刷新礼物列表,获取房间专属礼物列表
|
||||
GiftModel.get().refreshGiftList(AvRoomDataManager.get().roomUid.toString()).subscribe()
|
||||
checkFollowOwner()
|
||||
mvpPresenter?.loadMessageHistory(AvRoomDataManager.get().clearScreenTime)
|
||||
mvpPresenter?.loadRoomRank()
|
||||
//最小化恢复时,更新礼物值
|
||||
if (isRoomMin) {
|
||||
GiftValueMrg.get().updateRoomGiftValue(false)
|
||||
} else {
|
||||
mvpPresenter?.loadMessageHistory(AvRoomDataManager.get().clearScreenTime)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -408,7 +409,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
* 嗨聊房切换重置公屏消息(绿色公告)
|
||||
*/
|
||||
private fun addMessage(msg: ChatRoomMessage?) {
|
||||
messageView.addMessages(msg)
|
||||
AvRoomDataManager.get().addChatRoomMessage(msg)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1043,11 +1044,12 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
val roomFollowOwnerAttachment = RoomFollowOwnerAttachment()
|
||||
roomFollowOwnerAttachment.ownerUid = AvRoomDataManager.get().roomUid
|
||||
roomFollowOwnerAttachment.userInfo = userInfo
|
||||
messageView.addMessages(
|
||||
AvRoomDataManager.get().addChatRoomMessage(
|
||||
ChatRoomMessageBuilder.createChatRoomCustomMessage(
|
||||
roomInfo.roomId.toString(), roomFollowOwnerAttachment
|
||||
)
|
||||
)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1068,9 +1070,11 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
val roomFollowOwnerAttachment = RoomFollowOwnerAttachment2()
|
||||
roomFollowOwnerAttachment.ownerUid = AvRoomDataManager.get().roomUid
|
||||
roomFollowOwnerAttachment.userInfo = userInfo
|
||||
messageView.addMessages(
|
||||
|
||||
AvRoomDataManager.get().addChatRoomMessage(
|
||||
ChatRoomMessageBuilder.createChatRoomCustomMessage(
|
||||
roomInfo.roomId.toString(), roomFollowOwnerAttachment
|
||||
roomInfo.roomId.toString(),
|
||||
roomFollowOwnerAttachment
|
||||
)
|
||||
)
|
||||
}
|
||||
|
@@ -406,18 +406,25 @@ public class MessageView extends FrameLayout {
|
||||
addMessages(messages);
|
||||
}
|
||||
|
||||
public int addMessages(ChatRoomMessage msg) {
|
||||
if (msg == null) return -1;
|
||||
/**
|
||||
* 添加公屏消息请使用 {@link AvRoomDataManager#addChatRoomMessage(ChatRoomMessage)}
|
||||
*/
|
||||
private void addMessages(ChatRoomMessage msg) {
|
||||
if (msg == null) return;
|
||||
chatRoomMessages.add(msg);
|
||||
//通知adapter 刷新
|
||||
mMessageAdapter.notifyItemInserted(mMessageAdapter.getItemCount() - 1);
|
||||
showTipsOrScrollToBottom();
|
||||
checkAtMe(msg, false);
|
||||
return chatRoomMessages.size() - 1;
|
||||
}
|
||||
|
||||
public void addHistoryMessages(List<ChatRoomMessage> messages) {
|
||||
chatRoomMessages.addAll(chatRoomMessages.size() > 0 ? 1 : 0, messages);
|
||||
|
||||
//同步AvRoomDataManager里面的公屏消息列表
|
||||
List<ChatRoomMessage> cacheMessages = AvRoomDataManager.get().getChatRoomMessages();
|
||||
cacheMessages.addAll(cacheMessages.size() > 0 ? 1 : 0, messages);
|
||||
|
||||
mMessageAdapter.notifyDataSetChanged();
|
||||
messageListView.scrollToPosition(mMessageAdapter.getItemCount() - 1);
|
||||
for (ChatRoomMessage message : messages) {
|
||||
|
@@ -863,7 +863,7 @@ public final class AvRoomDataManager {
|
||||
return chatRoomMessages;
|
||||
}
|
||||
|
||||
private void addChatRoomMessage(ChatRoomMessage msg) {
|
||||
public void addChatRoomMessage(ChatRoomMessage msg) {
|
||||
if (msg == null) return;
|
||||
|
||||
if (msg.getMsgType() == MsgTypeEnum.notification) {
|
||||
|
Reference in New Issue
Block a user