getData method
Implementation
Future<HttpData> getData(LoadType loadType) async{
bool _hasMore = false;
HttpData httpData = await requestList<List<T>, T>((httpData, requestInfo) {
if(requestInfo != null){
_hasMore = requestInfo.useLoadMore;
}
if(currentPageNum == firstPage() && refreshClearData){
list.clear();
}
setList(loadType, httpData);
onCompleted(list);
}, isSetError: currentPageNum == firstPage());
_dataList.clear();
if(httpData.data != null){
_dataList.addAll(httpData.data);
}else{
_dataList.clear();
}
if(httpData.success && ObjectUtil.isNotEmpty(_dataList)){
setIdle();
}
bool success = true;
if(ObjectUtil.isNotEmpty(httpData.httpError)){
if(loadType == LoadType.LoadMore){
_currentPageNum = --_currentPageNum;
}
if(httpData.httpError != null){
if(httpData.httpError!.httpErrorType != HttpErrorType.EmptyDataError){
success = false;
}
}
}
refreshController.finishRefresh(success: success);
refreshController.finishLoad(success: success);
if(totalNum != null){
_hasMore = currentPageNum < totalNum!;
}else{
_hasMore = ObjectUtil.isNotEmpty(httpData.data);
}
_hasMoreValueNotifier.value = _hasMore;
return httpData;
}