PageList с переменным содержимым из фильтров не обновляется - PullRequest
0 голосов
/ 15 мая 2019

Мне пришлось отфильтровать содержимое PageList, передав параметры фильтра MinAge и MaxAge в ItemDataSource класс:

public class ItemDataSource extends PageKeyedDataSource<Integer, Item> {
    @Override
    public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull final LoadInitialCallback<Integer, Item> callback) {

        loadData(Util.getMinAge, Util.getMaxAge);
    }
    // and so on in loadBefore and loadAfter methods
}

Вот метод обновления:

public void refresh() {
        RecyclerView recyclerView = findViewById(R.id.list);

        ItemViewModel itemViewModel = ViewModelProviders.of(MainActivity.this)
                .get(ItemViewModel.class);
        final ItemAdapter adapter = new ItemAdapter(MainActivity.this);

        itemViewModel.itemPagedList.observe(MainActivity.this,
                new Observer<PagedList<Item>>() {
                    @Override
                    public void onChanged(@Nullable PagedList<Item> items) {

                        adapter.submitList(items);

                    }
                });

        recyclerView.setAdapter(adapter);
    }

Но этот метод не создает заново ItemDataSource, который содержит новые параметры фильтра, поэтому я получаю обновленный список, но со старыми параметрами.

Как я могу решить эту проблему?

...