diff --git a/lib/src/models/conversation_info.dart b/lib/src/models/conversation_info.dart index 7cdcdc6..db3732f 100644 --- a/lib/src/models/conversation_info.dart +++ b/lib/src/models/conversation_info.dart @@ -25,7 +25,7 @@ class ConversationInfo { int? recvMsgOpt; // Number of unread messages in the conversation - int? unreadCount; + int unreadCount = 0; // Latest message in the conversation Message? latestMsg; @@ -72,7 +72,7 @@ class ConversationInfo { this.showName, this.faceURL, this.recvMsgOpt, - this.unreadCount, + this.unreadCount = 0, this.latestMsg, this.latestMsgSendTime, this.draftText, @@ -87,8 +87,7 @@ class ConversationInfo { this.msgDestructTime, }); - ConversationInfo.fromJson(Map json) - : conversationID = json['conversationID'] { + ConversationInfo.fromJson(Map json) : conversationID = json['conversationID'] { conversationType = json['conversationType']; userID = json['userID']; groupID = json['groupID']; @@ -146,19 +145,14 @@ class ConversationInfo { bool get isSingleChat => conversationType == ConversationType.single; // Check if it's a group chat - bool get isGroupChat => - conversationType == ConversationType.group || - conversationType == ConversationType.superGroup; + bool get isGroupChat => conversationType == ConversationType.group || conversationType == ConversationType.superGroup; // Check if it's a valid conversation (not in a group if isNotInGroup is true) bool get isValid => isSingleChat || (isGroupChat && !isNotInGroup!); @override bool operator ==(Object other) => - identical(this, other) || - other is ConversationInfo && - runtimeType == other.runtimeType && - conversationID == other.conversationID; + identical(this, other) || other is ConversationInfo && runtimeType == other.runtimeType && conversationID == other.conversationID; @override int get hashCode => conversationID.hashCode; diff --git a/lib/src/models/message.dart b/lib/src/models/message.dart index a837976..592a110 100644 --- a/lib/src/models/message.dart +++ b/lib/src/models/message.dart @@ -920,37 +920,27 @@ class MessageEntity { /// Group message read information class GroupHasReadInfo { - /// List of user IDs that have read the message - List? hasReadUserIDList; - - /// Total number of messages read + /// Total number of reads int? hasReadCount; - /// Number of group members when this message was sent - int? groupMemberCount; + int? unreadCount; GroupHasReadInfo.fromJson(Map json) { - if (json['hasReadUserIDList'] == null) { - hasReadUserIDList = []; - } else { - hasReadUserIDList = (json['hasReadUserIDList'] as List).cast(); - } hasReadCount = json['hasReadCount'] ?? 0; - groupMemberCount = json['groupMemberCount'] ?? 0; + unreadCount = json['unreadCount'] ?? 0; } Map toJson() { final data = Map(); - data['hasReadUserIDList'] = this.hasReadUserIDList; data['hasReadCount'] = this.hasReadCount; - data['groupMemberCount'] = this.groupMemberCount; + data['unreadCount'] = this.unreadCount; return data; } } /// Message read receipt information class ReadReceiptInfo { - /// Sender's ID + /// Sender ID String? userID; /// Group ID