loadNext method Null safety
override
Load next items asynchronously
Implementation
@override
Future<List<GroupChannel>> loadNext() async {
if (loading) throw QueryInProgressError();
if (!hasNext) return [];
loading = true;
final filter = GroupChannelFilter()
..customTypeStartswith = customTypeStartWith
..customTypes = customTypes
..memberStateFilter = memberStateFilter
..membersExactlyIn = userIdsExactlyIn
..membersIncludeIn = userIdsIncludeIn
..membersNicknameContains = nicknameContains
..nameContains = channelNameContains
..superMode = superChannelFilter
..publicMode = publicChannelFilter
..unreadFilter = unreadChannelFilter
..metadataOrderKey = metaDataOrderKeyFilter
..hiddenMode = channelHiddenStateFilter
..metaDataKey = metaDataKeyFilter
..metaDataValues = metaDataValuesFilter
..metaDataValueStartWithFilter = metaDataValueStartWithFilter;
final options = [
if (includeFrozenChannel) ChannelQueryIncludeOption.frozenChannel,
if (includeEmptyChannel) ChannelQueryIncludeOption.emptyChannel,
if (includeMemberList) ChannelQueryIncludeOption.memberList,
if (includeMetaData) ChannelQueryIncludeOption.metaData,
ChannelQueryIncludeOption.readReceipt,
ChannelQueryIncludeOption.deliveryReceipt,
];
final sdk = SendbirdSdk().getInternal();
final res = await sdk.api.send<ChannelListQueryResponse<GroupChannel>>(
GroupChannelListRequest(
filter: filter,
options: options,
queryType: queryType,
token: token,
limit: limit,
order: order,
channelUrls: channelUrls,
searchFields: searchFields,
searchQuery: searchQuery,
),
);
loading = false;
token = res.next;
hasNext = res.next != '';
return res.channels;
}