package com.live.mylivewallpaper.paging; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.paging.PagingSource; import androidx.paging.PagingState; import com.live.mylivewallpaper.data.ResultData; import com.live.mylivewallpaper.help.Common; import com.live.mylivewallpaper.help.Db; import java.util.List; import kotlin.coroutines.Continuation; public class MyPagingSource extends PagingSource { public static int pageSize = 10; private int wallpaperType; public MyPagingSource(int wallpaperType) { this.wallpaperType = wallpaperType; } @Nullable @Override public Integer getRefreshKey(@NonNull PagingState pagingState) { return null; } @Nullable @Override public Object load(@NonNull LoadParams loadParams, @NonNull Continuation> continuation) { try { int page = loadParams.getKey() != null ? loadParams.getKey() : 1; List data = Db.queryData(wallpaperType,page); // Common.logMsg("-----load---------"+wallpaperType+"----page="+page+"'--data="+data.size()); return new LoadResult.Page<>( data, page > 1 ? page - 1 : null, data.isEmpty() ? null : page + 1 ); } catch (Exception e) { return new LoadResult.Error<>(e); } } }