how to download data with retrofit so that you can download the desired page from api

Я хочу, чтобы при вызове метода getData (int num) данные из моей базы данных удалялись, так что новые данные загружаются и сохраняются в базе данных, но возникает ошибка и загружается только первая страница, хотя я увеличил page ++ в слушателе в конце и снова вызвал метод, я хотел бы узнать ваше мнение, спасибо. Вот мои классы для реализации

MainActivity.class

    viewModel.getMovies().observe(this, new Observer<List<Movie>>() {
        @Override
        public void onChanged(List<Movie> movies) {
                if(page==1) {
                    adapter.setMovies(movies);
                }
        }
    });

    menuAdapter.setItemClickListener(new HorizontalMenu.ItemClickListener() {
        @Override
        public void getClickedItem(int i) {
            switchBox(i);
        }
    });
    adapter.setOnPosterClickListener(new MovieAdapter.OnPosterClickListener() {
        @Override
        public void onPosterClick(int i) {
            Movie movie = adapter.getMovies().get(i);
            Intent intent = new Intent(MainActivity.this, DetailActivity.class);
            intent.putExtra("movieId", movie.getId());
            startActivity(intent);
        }
    });
    adapter.setGetEndListener(new MovieAdapter.OnGetEndListener() {
        @Override
        public void getEndListener() {
            if (!isLoading) {
                Toast.makeText(MainActivity.this, "End", Toast.LENGTH_LONG).show();
                getData(numb);
            }
        }
    });
}


public void getData(int i) {
    viewModel.loadData(i, page);
    viewModel.setOnStartLoadingListener(new MovieViewModel.onStartLoadingListener() {
        @Override
        public void onStartLoading() {
            isLoading = true;
        }
    });

    viewModel.setOnFinishLoadingLisneter(new MovieViewModel.onFinishLoadingLisneter() {
        @Override
        public void onFinishLoading() {
            isLoading = false;
            page++;
        }
    });
    }

ViewModel.class

public void loadData(int i, int page) {
    String sortType = null;
    if (i == 0) {
        sortType = POPULARITY;
    } else if (i == 1) {
        sortType = RATED;
    }
    MovieDownloadFactory movieDownloadFactory = MovieDownloadFactory.getMovieDownloadFactory();
    MovieFactoryService movieFactoryService = movieDownloadFactory.getMovieFactoryService();

    disposable = movieFactoryService.getResultsResponse(API_KEY, LANGUAGE, sortType, VOTES, page)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<ResultsResponse>() {
                @Override
                public void accept(ResultsResponse resultsResponses) throws Exception {
                    if (onStartLoadingListener != null) {
                        onStartLoadingListener.onStartLoading();
                    }
                    if (resultsResponses != null) {
                        if (page == 1) {
                            deleteAllMovies();
                        }
                        insertAllMovies(resultsResponses.getMovies());
                    }
                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) throws Exception {
                    Log.i("WrongMessage", Objects.requireNonNull(throwable.getMessage()));
                }
            });
    compositeDisposable.add(disposable);
}

Ответы (0 шт):