diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index 57e3812ca..a6880c63a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -880,8 +880,7 @@ public class FavoritesScene extends BaseScene implements } updateSearchBar(); - mHelper.setPages(taskId, result.pages); - mHelper.onGetPageData(taskId, result.nextPage, result.galleryInfoList); + mHelper.onGetPageData(taskId, result.pages, result.nextPage, result.galleryInfoList); if (mDrawerAdapter != null) { mDrawerAdapter.notifyDataSetChanged(); @@ -907,11 +906,9 @@ public class FavoritesScene extends BaseScene implements } if (list.size() == 0) { - mHelper.setPages(taskId, 0); - mHelper.onGetPageData(taskId, 0, Collections.EMPTY_LIST); + mHelper.onGetPageData(taskId, 0, 0, Collections.EMPTY_LIST); } else { - mHelper.setPages(taskId, 1); - mHelper.onGetPageData(taskId, 0, list); + mHelper.onGetPageData(taskId, 1, 0, list); } if (TextUtils.isEmpty(keyword)) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index d44a35c67..80886c7e5 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -1569,8 +1569,7 @@ public final class GalleryListScene extends BaseScene ? R.string.gallery_list_empty_hit_subscription : R.string.gallery_list_empty_hit); mHelper.setEmptyString(emptyString); - mHelper.setPages(taskId, result.pages); - mHelper.onGetPageData(taskId, result.nextPage, result.galleryInfoList); + mHelper.onGetPageData(taskId, result.pages, result.nextPage, result.galleryInfoList); } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java index a23b7786c..81b6aa9af 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java @@ -346,8 +346,7 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi list.add(previewSet.getGalleryPreview(mGalleryInfo.gid, i)); } - mHelper.setPages(taskId, result.second); - mHelper.onGetPageData(taskId, 0, list); + mHelper.onGetPageData(taskId, result.second, 0, list); } } diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java index 1132aca7d..6a050333e 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/widget/ContentLayout.java @@ -279,7 +279,7 @@ public class ContentLayout extends FrameLayout { mCurrentTaskId = mIdGenerator.nextId(); mCurrentTaskType = TYPE_NEXT_PAGE_KEEP_POS; mCurrentTaskPage = mEndPage; - onGetPageData(mCurrentTaskId, mNextPage, Collections.emptyList()); + onGetPageData(mCurrentTaskId, mPages, mNextPage, Collections.emptyList()); } mCurrentTaskId = mIdGenerator.nextId(); mCurrentTaskType = TYPE_NEXT_PAGE_KEEP_POS; @@ -335,7 +335,7 @@ public class ContentLayout extends FrameLayout { } /** - * Call {@link #onGetPageData(int, int, List)} when get data + * Call {@link #onGetPageData(int, int, int, List)} when get data * * @param taskId task id * @param page the page to get @@ -400,13 +400,6 @@ public class ContentLayout extends FrameLayout { return mCurrentTaskId == taskId; } - public void setPages(int taskId, int pages) { - // TODO what it pages > mEndPage - if (mCurrentTaskId == taskId) { - mPages = pages; - } - } - public int getPages() { return mPages; } @@ -465,7 +458,7 @@ public class ContentLayout extends FrameLayout { protected void onClearData() { } - public void onGetPageData(int taskId, int nextPage, List data) { + public void onGetPageData(int taskId, int pages, int nextPage, List data) { if (mCurrentTaskId == taskId) { int dataSize; @@ -473,6 +466,7 @@ public class ContentLayout extends FrameLayout { case TYPE_REFRESH: mStartPage = 0; mEndPage = 1; + mPages = pages; mNextPage = nextPage; mPageDivider.clear(); mPageDivider.add(data.size()); @@ -528,6 +522,7 @@ public class ContentLayout extends FrameLayout { } mPageDivider.add(0, dataSize); mStartPage--; + mPages = Math.max(mPages, pages); // assert mStartPage >= 0 if (data.isEmpty()) { @@ -591,6 +586,7 @@ public class ContentLayout extends FrameLayout { mPageDivider.add(oldDataSize + dataSize); mEndPage++; mNextPage = nextPage; + mPages = Math.max(mPages, pages); if (data.isEmpty()) { if (true || mEndPage >= mPages) { // OK, that's all @@ -647,6 +643,7 @@ public class ContentLayout extends FrameLayout { mStartPage = mCurrentTaskPage; mEndPage = mCurrentTaskPage + 1; mNextPage = nextPage; + mPages = pages; mPageDivider.clear(); mPageDivider.add(data.size()); @@ -703,6 +700,8 @@ public class ContentLayout extends FrameLayout { mNextPage = nextPage; } + mPages = Math.max(mPages, pages); + int oldIndexStart = mCurrentTaskPage == mStartPage ? 0 : mPageDivider.get(mCurrentTaskPage - mStartPage - 1); int oldIndexEnd = mPageDivider.get(mCurrentTaskPage - mStartPage); List toRemove = mData.subList(oldIndexStart, oldIndexEnd);