From 8a144eabca2f982ae659b98c03564561c7325a6c Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 7 Nov 2022 18:26:27 +0800 Subject: [PATCH] Reset ContentLayout changes This component is quite a shit, further we must rewrite it to better adapt new page-off gid-based load design --- .../ehviewer/ui/scene/FavoritesScene.java | 5 ++++ .../widget/GalleryInfoContentHelper.kt | 6 +++++ .../java/com/hippo/widget/ContentLayout.java | 25 ++++++++++++++----- 3 files changed, 30 insertions(+), 6 deletions(-) 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 0ec608c57..6fceb96e0 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 @@ -1282,6 +1282,11 @@ public class FavoritesScene extends BaseScene implements @Override protected void onClearData() { super.onClearData(); + } + + @Override + protected void beforeRefresh() { + super.beforeRefresh(); nextPg = 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 c019ac33c..d032d3b97 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt +++ b/app/src/main/java/com/hippo/ehviewer/widget/GalleryInfoContentHelper.kt @@ -85,6 +85,12 @@ abstract class GalleryInfoContentHelper : ContentHelper() { minGid = -1 } + override fun beforeRefresh() { + super.beforeRefresh() + maxGid = -1 + minGid = -1 + } + override fun saveInstanceState(superState: Parcelable): Parcelable { val bundle = super.saveInstanceState(superState) as Bundle diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java index 50aa6d630..516e90a0d 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/widget/ContentLayout.java @@ -451,22 +451,36 @@ public class ContentLayout extends FrameLayout { switch (mCurrentTaskType) { case TYPE_REFRESH: + mStartPage = 0; + mEndPage = 1; mPages = pages; mNextPage = nextPage; + mPageDivider.clear(); mPageDivider.add(data.size()); if (data.isEmpty()) { + mData.clear(); + onClearData(); notifyDataSetChanged(); + + // Not found + // Ui change, show empty string mRefreshLayout.setRefreshing(false); mBottomProgress.hide(); showEmptyString(); } else { + mData.clear(); + onClearData(); mData.addAll(data); onAddData(data); notifyDataSetChanged(); + + // Ui change, show content mRefreshLayout.setRefreshing(false); mBottomProgress.hide(); showContent(); + + // RecyclerView scroll if (mRecyclerView.isAttachedToWindow()) { mRecyclerView.stopScroll(); LayoutManagerUtils.scrollToPositionWithOffset(mRecyclerView.getLayoutManager(), 0, 0); @@ -697,6 +711,10 @@ public class ContentLayout extends FrameLayout { mViewTransition.showView(0); } + protected void beforeRefresh() { + + } + private boolean isContentShowing() { return mViewTransition.getShownViewIndex() == 0; } @@ -748,12 +766,7 @@ public class ContentLayout extends FrameLayout { } protected void doRefresh() { - mStartPage = 0; - mEndPage = 1; - mPages = 0; - mPageDivider.clear(); - mData.clear(); - onClearData(); + beforeRefresh(); mCurrentTaskId = mIdGenerator.nextId(); mCurrentTaskType = TYPE_REFRESH; mCurrentTaskPage = 0;