Paging library - Boundary callback for network + db with API taking page and size

后端 未结 4 1027
小蘑菇
小蘑菇 2021-02-03 16:35

Short question:

What is the correct way to handle database + network on the Paging library from Architecture components, using an API that uses page + s

4条回答
  •  情书的邮戳
    2021-02-03 17:14

    I implement this:

    PagedList.BoundaryCallback boundaryCallbackNovidades = new PagedList.BoundaryCallback(){
        int proxPagina;
        boolean jaAtualizouInicio=false;
    
        public void onZeroItemsLoaded() {
            requestProdutos(
                webService.pesquisarNovidadesDepoisDe(LocalDateTime.now().format(Util.formatterDataTime), 0, 20));
        }
    
        public void onItemAtFrontLoaded(@NonNull Produto itemAtFront) {
            if(!jaAtualizouInicio)
                requestProdutos(
                    webService.pesquisarNovidadesMaisRecentesQue(itemAtFront.data.format(Util.formatterDataTime)));
            jaAtualizouInicio=true;
        }
    
        public void onItemAtEndLoaded(@NonNull Produto itemAtEnd) {
            requestProdutos(
                webService.pesquisarNovidadesDepoisDe(LocalDateTime.now().format(Util.formatterDataTime), proxPagina++, 20));
        }
    };
    
    
    public LiveData> getNovidades(){
        if(novidades==null){
            novidades = new LivePagedListBuilder<>(produtoDao.produtosNovidades(),
                    10)
                    .setBoundaryCallback(boundaryCallbackNovidades)
                    .build();
        }
        return novidades;
    }
    

提交回复
热议问题