loadOlderMessages method

Future<void> loadOlderMessages()

Implementation

Future<void> loadOlderMessages() async {
  final completer = Completer<void>();
  int lastSentTime = _messages.isNotEmpty
      ? (_messages.first.sentTime ?? DateTime.now().millisecondsSinceEpoch)
      : DateTime.now().millisecondsSinceEpoch;
  engineProvider.engine?.getMessages(
      _con.conversationType ?? RCIMIWConversationType.invalid,
      _con.targetId ?? '',
      _con.channelId,
      lastSentTime,
      RCIMIWTimeOrder.before,
      RCIMIWMessageOperationPolicy.localRemote,
      20,
      callback: IRCIMIWGetMessagesCallback(
        onSuccess: (t) {
          // 将消息列表倒置
          _messages.insertAll(0, t?.reversed.toList() ?? []);
          notifyListeners();
          completer.complete();
        },
        onError: (code) {
          completer.complete();
        },
      ));
  return completer.future;
}