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 options = <ChannelQueryIncludeOption>[
if (includeFrozenChannel) ChannelQueryIncludeOption.frozenChannel,
if (includeEmptyChannel) ChannelQueryIncludeOption.emptyChannel,
if (includeMemberList) ChannelQueryIncludeOption.memberList,
if (includeMetaData) ChannelQueryIncludeOption.metaData,
ChannelQueryIncludeOption.readReceipt,
ChannelQueryIncludeOption.deliveryReceipt,
];
final filter = GroupChannelFilter()
..customTypeStartswith = customTypeStartWithFilter
..customTypes = customTypesFilter
..nameContains = channelNameContainsFilter
..superMode = superChannelFilter
..publicMembershipFilter = membershipFilter
..metadataOrderKey = metaDataOrderKeyFilter
..metaDataKey = metaDataKeyFilter
..metaDataValues = metaDataValuesFilter
..metaDataValueStartWithFilter = metaDataValueStartWithFilter
..publicMode = PublicChannelFilter.public;
final sdk = SendbirdSdk().getInternal();
final res = await sdk.api.send<ChannelListQueryResponse<GroupChannel>>(
PublicGroupChannelListRequest(
order: order,
token: token,
limit: limit,
channelUrls: channelUrls,
options: options,
filter: filter,
),
);
loading = false;
token = res.next;
hasNext = res.next != '';
return res.channels;
}