queryConversationList method

void queryConversationList()

Implementation

void queryConversationList() async {
  _logI('queryConversationList start');

  if (_isLoading) {
    return;
  }
  _isLoading = true;
  final _resultData =
      await ConversationRepo.getConversationList(0, pageLimit);
  if (_resultData != null) {
    _offset = _resultData.offset;
    _finished = _resultData.finished;
    final myId = IMKitClient.account();
    if (myId != null) {
      final aitSessionList = await AitServer.instance.getAllAitSession(myId);
      var resultList = convertConversationInfo(_resultData.conversationList)!;
      _logI('queryConversationList size ${resultList.length}');

      for (int index = resultList.length - 1; index >= 0; index--) {
        var element = resultList[index];
        if (_isMineLeave(element)) {
          deleteConversation(element);
          _logI('queryConversationList ${element.getConversationId()}');
          resultList.remove(index);
        } else {
          if (IMKitClient.enableAit) {
            if (aitSessionList.contains(element.getConversationId()) &&
                element.getUnreadCount() > 0) {
              element.haveBeenAit = true;
            }
          }
        }
      }
      _conversationList.clear();
      _conversationList.addAll(resultList);
      notifyListeners();
    }
  }
  _isLoading = false;
}