queryConversationNextList method
void
queryConversationNextList()
Implementation
void queryConversationNextList() async {
int offset = _conversationList.length;
_logI('queryConversationNextList _isLoading ${offset},${_isLoading},'
'${_finished}');
if (_isLoading || _finished) {
return;
}
_isLoading = true;
final _resultData =
await ConversationRepo.getConversationList(_offset, pageLimit);
if (_resultData != null) {
_offset = _resultData.offset;
_finished = _resultData.finished;
final myId = IMKitClient.account();
_logI(
'queryConversationNextList ${_offset},${_finished},${_resultData.conversationList?.length}');
if (myId != null) {
final aitSessionList = await AitServer.instance.getAllAitSession(myId);
var resultList = convertConversationInfo(_resultData.conversationList)!;
List<String> userIdList = [];
for (int index = resultList.length - 1; index >= 0; index--) {
var element = resultList[index];
if (_isMineLeave(element)) {
deleteConversation(element);
resultList.remove(index);
} else {
if (IMKitClient.enableAit) {
if (aitSessionList.contains(element.getConversationId()) &&
element.getUnreadCount() > 0) {
element.haveBeenAit = true;
}
}
if (element.conversation.type == NIMConversationType.p2p &&
getIt<ContactProvider>().getContactInCache(element.targetId) ==
null) {
userIdList.add(element.targetId);
}
}
}
_conversationList.addAll(resultList);
notifyListeners();
fetchUserInfo(userIdList);
}
_isLoading = false;
}
}