getData method

Future<HttpData> getData(
  1. LoadType loadType
)

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;
}