Add some paging changes
Increase page size and prefetch distance to avoid some updating problems, use DataSource instead of PageKeyedDataSource
This commit is contained in:
parent
a202dcc395
commit
6751e9acca
@ -122,8 +122,10 @@ public class MainItemListAdapter extends PagedListAdapter<ItemWithFeed, MainItem
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ItemViewHolder viewHolder, int i) {
|
||||
ItemWithFeed itemWithFeed = getItem(i);
|
||||
viewHolder.bind(itemWithFeed);
|
||||
if (itemWithFeed == null)
|
||||
return;
|
||||
|
||||
viewHolder.bind(itemWithFeed);
|
||||
viewHolder.setImages(itemWithFeed);
|
||||
viewHolder.applyColors(itemWithFeed);
|
||||
|
||||
@ -161,8 +163,12 @@ public class MainItemListAdapter extends PagedListAdapter<ItemWithFeed, MainItem
|
||||
}
|
||||
|
||||
public void clearSelection() {
|
||||
LinkedHashSet<Integer> localSelection = new LinkedHashSet<>(selection);
|
||||
selection.clear();
|
||||
notifyDataSetChanged();
|
||||
|
||||
for (int position : localSelection) {
|
||||
notifyItemChanged(position, getItem(position));
|
||||
}
|
||||
}
|
||||
|
||||
public LinkedHashSet<Integer> getSelection() {
|
||||
|
@ -2,7 +2,7 @@ package com.readrops.app.database.dao;
|
||||
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.paging.PageKeyedDataSource;
|
||||
import androidx.paging.DataSource;
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.RawQuery;
|
||||
@ -21,7 +21,7 @@ import io.reactivex.Completable;
|
||||
public abstract class ItemDao implements BaseDao<Item> {
|
||||
|
||||
@RawQuery(observedEntities = {Item.class, Folder.class, Feed.class})
|
||||
public abstract PageKeyedDataSource.Factory<Integer, ItemWithFeed> selectAll(SupportSQLiteQuery query);
|
||||
public abstract DataSource.Factory<Integer, ItemWithFeed> selectAll(SupportSQLiteQuery query);
|
||||
|
||||
@Query("Select case When :guid In (Select guid From Item Inner Join Feed on Item.feed_id = Feed.id and account_id = :accountId) Then 1 else 0 end")
|
||||
public abstract boolean itemExists(String guid, int accountId);
|
||||
|
@ -70,8 +70,8 @@ public class MainViewModel extends AndroidViewModel {
|
||||
|
||||
lastFetch = new LivePagedListBuilder<>(db.itemDao().selectAll(queryBuilder.getQuery()),
|
||||
new PagedList.Config.Builder()
|
||||
.setPageSize(40)
|
||||
.setPrefetchDistance(80)
|
||||
.setPageSize(100)
|
||||
.setPrefetchDistance(150)
|
||||
.setEnablePlaceholders(false)
|
||||
.build())
|
||||
.build();
|
||||
|
Loading…
x
Reference in New Issue
Block a user