From dae8f21388ed8143ab7db7c147396e3658ac6b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=99=BD-=E7=99=BD?= Date: Tue, 15 Nov 2022 12:11:33 +0800 Subject: [PATCH] Support prev page load --- .../ehviewer/ui/scene/GalleryListScene.java | 25 +++++++++++++------ .../widget/GalleryInfoContentHelper.kt | 4 +-- .../java/com/hippo/widget/ContentLayout.java | 9 +++++++ 3 files changed, 28 insertions(+), 10 deletions(-) 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 cf3ea43d3..074503bc4 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 @@ -1744,15 +1744,24 @@ public final class GalleryListScene extends BaseScene return; } - if (page != 0) - mUrlBuilder.setNextGid(mIsTopList ? page : minGid); - else - mUrlBuilder.setNextGid(0); - - if (jumpTo != null && mIsTopList) { - pgCounter = Integer.parseInt(jumpTo); - mUrlBuilder.setNextGid(pgCounter); + if (mIsTopList) { + mUrlBuilder.setNextGid(page); + if (jumpTo != null) { + pgCounter = Integer.parseInt(jumpTo); + mUrlBuilder.setNextGid(pgCounter); + } + } else { + int prevGid = 0, nextGid = 0; + if (page != 0) { + if (page >= mHelper.getPageForTop()) + nextGid = minGid; + else + prevGid = maxGid; + } + mUrlBuilder.setPrevGid(prevGid); + mUrlBuilder.setNextGid(nextGid); } + mUrlBuilder.setJumpTo(jumpTo); jumpTo = null; diff --git a/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt b/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt index 613fa33b9..c9bbc8b32 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt +++ b/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt @@ -124,12 +124,12 @@ abstract class GalleryInfoContentHelper : ContentHelper() { val date = calendar.time val format = SimpleDateFormat("yyyy-MM-dd", Locale.US) jumpTo = format.format(date) - doRefresh() + doGoToPage(Int.MAX_VALUE / 2) } fun goToPage(page: Int) { jumpTo = page.toString() - doRefresh() + doGoToPage(page) } companion object { diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java index 516e90a0d..37c63915d 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/widget/ContentLayout.java @@ -877,6 +877,15 @@ public class ContentLayout extends FrameLayout { } } + protected void doGoToPage(int page) { + mRefreshLayout.setRefreshing(false); + mBottomProgress.hide(); + mCurrentTaskId = mIdGenerator.nextId(); + mCurrentTaskType = TYPE_SOMEWHERE; + mCurrentTaskPage = page; + getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage); + } + protected Parcelable saveInstanceState(Parcelable superState) { Bundle bundle = new Bundle(); bundle.putParcelable(KEY_SUPER, superState);