MyLiveWallpaper/app/src/main/java/com/live/mylivewallpaper/paging/MyPagingSource.java
2024-12-21 17:37:50 +08:00

51 lines
1.5 KiB
Java

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<Integer, ResultData> {
public static int pageSize = 10;
private int wallpaperType;
public MyPagingSource(int wallpaperType) {
this.wallpaperType = wallpaperType;
}
@Nullable
@Override
public Integer getRefreshKey(@NonNull PagingState<Integer, ResultData> pagingState) {
return null;
}
@Nullable
@Override
public Object load(@NonNull LoadParams<Integer> loadParams, @NonNull Continuation<? super LoadResult<Integer, ResultData>> continuation) {
try {
int page = loadParams.getKey() != null ? loadParams.getKey() : 1;
List<ResultData> 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);
}
}
}