initMessages method

void initMessages(
  1. RCIMIWConversation con, {
  2. dynamic onSuccess()?,
})

Implementation

void initMessages(RCIMIWConversation con, {Function()? onSuccess}) {
  _con = con;
  RCIMIWMessageOperationPolicy policy =
      RCIMIWMessageOperationPolicy.localRemote;
  if (connectionStatus == RCIMIWConnectionStatus.networkUnavailable ||
      connectionStatus == RCIMIWConnectionStatus.unconnected ||
      connectionStatus == RCIMIWConnectionStatus.suspend ||
      connectionStatus == RCIMIWConnectionStatus.timeout ||
      connectionStatus == RCIMIWConnectionStatus.unknown) {
    policy = RCIMIWMessageOperationPolicy.local;
  }
  engineProvider.engine?.getMessages(
      con.conversationType ?? RCIMIWConversationType.invalid,
      con.targetId ?? '',
      con.channelId,
      0,
      RCIMIWTimeOrder.before,
      policy,
      20,
      callback: IRCIMIWGetMessagesCallback(
        onSuccess: (t) {
          // 将消息列表倒置
          _messages = t?.reversed.toList() ?? [];
          notifyListeners();

          WidgetsBinding.instance.addPostFrameCallback((_) {
            messageListScrollToBottom();
          });
          onSuccess?.call();
          RCIMWrapperPlatform.instance.writeLog(
              'RCKChatProvider initMessages',
              '',
              0,
              'onSuccess t: ${t?.length}');
        },
        onError: (code) {
          RCIMWrapperPlatform.instance.writeLog(
              'RCKChatProvider initMessages', '', code ?? 0, 'onError');
        },
      ));
}