getGroupMessageReadInfo method

Future<SyImGroupReadInfo> getGroupMessageReadInfo({
  1. required String conversationId,
  2. required String clientMsgId,
})

Implementation

Future<SyImGroupReadInfo> getGroupMessageReadInfo({
  required String conversationId,
  required String clientMsgId,
}) async {
  return _call('findMessageList', () async {
    final result = await OpenIM.iMManager.messageManager.findMessageList(
      searchParams: [
        SearchParams(
          conversationID: conversationId,
          clientMsgIDList: [clientMsgId],
        ),
      ],
    );
    final items = result.findResultItems ?? result.searchResultItems ?? [];
    for (final item in items) {
      for (final message in item.messageList ?? const <Message>[]) {
        if (message.clientMsgID != clientMsgId) continue;
        final info = message.attachedInfoElem?.groupHasReadInfo;
        lastGroupReadSeq = message.seq ?? 0;
        return SyImGroupReadInfo(
          clientMsgId: clientMsgId,
          hasReadCount: info?.hasReadCount ?? 0,
          unreadCount: info?.unreadCount ?? 0,
        );
      }
    }
    lastGroupReadSeq = -1;
    return SyImGroupReadInfo(
        clientMsgId: clientMsgId, hasReadCount: 0, unreadCount: 0);
  });
}