loadPage method
Request load page for Data Source
Implementation
@override
Future<List<D>> loadPage({bool isRefresh = false}) async {
if ((currentKey == null) || isRefresh) {
if (_cancelableOperation != null && !_cancelableOperation!.isCompleted)
_cancelableOperation!.cancel();
_cancelableOperation = CancelableOperation.fromFuture(loadInitial(pageSize));
final results = await _cancelableOperation!.valueOrCancellation();
if (autoDetectEndList) {
isEndList = ((results?.item1.length ?? 0) < pageSize);
}
currentKey = results?.item2;
return results?.item1 ?? [];
} else {
_cancelableOperation = CancelableOperation.fromFuture(loadPageAfter(currentKey!, pageSize));
final results = await _cancelableOperation!.valueOrCancellation();
currentKey = results?.item2;
if (autoDetectEndList) {
isEndList = ((results?.item1.length ?? 0) < pageSize);
}
return results?.item1 ?? [];
}
}