ApiPaginator.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:android-oss 作者:
private ApiPaginator(
  final @NonNull Observable<Void> nextPage,
  final @NonNull Observable<Params> startOverWith,
  final @NonNull Func1<Envelope, List<Data>> envelopeToListOfData,
  final @NonNull Func1<Params, Observable<Envelope>> loadWithParams,
  final @NonNull Func1<String, Observable<Envelope>> loadWithPaginationPath,
  final @NonNull Func1<Envelope, String> envelopeToMoreUrl,
  final @NonNull Func1<List<Data>, List<Data>> pageTransformation,
  final boolean clearWhenStartingOver,
  final @NonNull Func2<List<Data>, List<Data>, List<Data>> concater,
  final boolean distinctUntilChanged
) {
  this.nextPage = nextPage;
  this.startOverWith = startOverWith;
  this.envelopeToListOfData = envelopeToListOfData;
  this.loadWithParams = loadWithParams;
  this.envelopeToMoreUrl = envelopeToMoreUrl;
  this.pageTransformation = pageTransformation;
  this.loadWithPaginationPath = loadWithPaginationPath;
  this.clearWhenStartingOver = clearWhenStartingOver;
  this.concater = concater;
  this.distinctUntilChanged = distinctUntilChanged;

  this.paginatedData = this.startOverWith.switchMap(this::dataWithPagination);
  this.loadingPage = this.startOverWith.switchMap(__ -> nextPage.scan(1, (accum, ___) -> accum + 1));
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号