openConversationMessages method

Future<MessageListResult> openConversationMessages({
  1. required int talkMode,
  2. required int toFromId,
  3. int count = 30,
  4. bool sync = true,
})

打开会话:立即返回本地最新消息(不等网络),并异步增量同步。

UI 应:

  1. 用返回值立刻渲染
  2. 监听 messageChangeStream 在同步写库后刷新

Implementation

Future<MessageListResult> openConversationMessages({
  required int talkMode,
  required int toFromId,
  int count = 30,
  bool sync = true,
}) async {
  final local = await _store.queryMessages(
    talkMode: talkMode,
    toFromId: toFromId,
    cursor: '0',
    limit: count,
  );
  if (sync) {
    unawaited(syncConversationMessages(
      talkMode: talkMode,
      toFromId: toFromId,
      pageSize: count,
    ));
  }
  if (talkMode == TalkMode.private) {
    unawaited(_reportAndFetchRead(talkMode, toFromId, local.items));
  }
  return local;
}