Show progress on goTo

This commit is contained in:
FooIbar authored and tarsin committed 2022-12-22 13:37:34 +08:00
1 parent c8d1e957a1
commit 76d50b56ee
4 files changed
+15 -64

No files matched your search

@@ -50,8 +50,9 @@ public class GalleryListParser {
private static final Pattern PATTERN_THUMB_SIZE = Pattern.compile("height:(\\d+)px;width:(\\d+)px");
private static final Pattern PATTERN_FAVORITE_SLOT = Pattern.compile("background-color:rgba\\((\\d+),(\\d+),(\\d+),");
private static final Pattern PATTERN_PAGES = Pattern.compile("(\\d+) page");
private static final Pattern PATTERN_PREV_PAGE = Pattern.compile("prev=(\\d+(-\\d+)?)");
private static final Pattern PATTERN_NEXT_PAGE = Pattern.compile("next=(\\d+(-\\d+)?)");
private static final Pattern PATTERN_NEXT_PAGE = Pattern.compile("p=(\\d+)");
private static final Pattern PATTERN_PREV = Pattern.compile("prev=(\\d+(-\\d+)?)");
private static final Pattern PATTERN_NEXT = Pattern.compile("next=(\\d+(-\\d+)?)");
private static final String[][] FAVORITE_SLOT_RGB = new String[][]{
new String[]{"0", "0", "0"},
@@ -292,8 +293,8 @@ public class GalleryListParser {
Element next = d.getElementById("unext");
assert prev != null;
assert next != null;
Matcher matcherPrev = PATTERN_PREV_PAGE.matcher(prev.attr("href"));
Matcher matcherNext = PATTERN_NEXT_PAGE.matcher(next.attr("href"));
Matcher matcherPrev = PATTERN_PREV.matcher(prev.attr("href"));
Matcher matcherNext = PATTERN_NEXT.matcher(next.attr("href"));
if (matcherPrev.find())
result.prev = matcherPrev.group(1);
if (matcherNext.find())
@@ -22,7 +22,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.SparseBooleanArray;
import android.view.Gravity;
@@ -1170,27 +1169,5 @@ public class FavoritesScene extends SearchBarScene implements
showSearchBar();
}
}
@Override
protected void onClearData() {
super.onClearData();
}
@Override
protected void beforeRefresh() {
super.beforeRefresh();
}
@NonNull
@Override
protected Parcelable saveInstanceState(@NonNull Parcelable superState) {
return (Bundle) super.saveInstanceState(superState);
}
@NonNull
@Override
protected Parcelable restoreInstanceState(@NonNull Parcelable state) {
return super.restoreInstanceState(state);
}
}
}
@@ -50,10 +50,6 @@ abstract class GalleryInfoContentHelper : ContentHelper<GalleryInfo?>() {
EhApplication.favouriteStatusRouter.removeListener(listener)
}
override fun onAddData(data: GalleryInfo?) {
data?.let { map[data.gid] = data }
}
override fun onAddData(data: List<GalleryInfo?>) {
for (info in data) {
info?.let {
@@ -62,10 +58,6 @@ abstract class GalleryInfoContentHelper : ContentHelper<GalleryInfo?>() {
}
}
override fun onRemoveData(data: GalleryInfo?) {
data?.let { map.remove(data.gid) }
}
override fun onRemoveData(data: List<GalleryInfo?>) {
for (info in data) {
info?.let { map.remove(info.gid) }
@@ -103,7 +95,7 @@ abstract class GalleryInfoContentHelper : ContentHelper<GalleryInfo?>() {
val formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd", Locale.US).withZone(ZoneOffset.UTC)
jumpTo = formatter.format(Instant.ofEpochMilli(time))
doRefresh()
goTo(null, true)
jumpTo = null
}
@@ -237,15 +237,11 @@ public class ContentLayout extends FrameLayout {
private final SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (mPrev != null) {
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_PRE_PAGE_KEEP_POS;
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, mPrev, false);
} else if (mStartPage > 0) {
if (mPrev != null || mStartPage > 0) {
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_PRE_PAGE_KEEP_POS;
mCurrentTaskPage = mStartPage - 1;
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, null, true);
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, mPrev, false);
} else {
doRefresh();
}
@@ -259,11 +255,7 @@ public class ContentLayout extends FrameLayout {
if (!mRefreshLayout.isRefreshing() && !recyclerView.canScrollVertically(1)) {
// Get next page
mBottomProgress.show();
if (mNext != null) {
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_NEXT_PAGE_KEEP_POS;
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, mNext, true);
} else if (mEndPage < mPages) {
if (mNext != null || mEndPage < mPages) {
// Get next page
// Fill pages before NextPage with empty list
while (mNextPage > mEndPage && mEndPage < mPages) {
@@ -275,7 +267,7 @@ public class ContentLayout extends FrameLayout {
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_NEXT_PAGE_KEEP_POS;
mCurrentTaskPage = mEndPage;
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, null, true);
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, mNext, true);
} else if (mEndPage == mPages) {
// Refresh last page
mCurrentTaskId = mIdGenerator.nextId();
@@ -397,15 +389,9 @@ public class ContentLayout extends FrameLayout {
}
}
protected void onAddData(E data) {
}
protected void onAddData(List<E> data) {
}
protected void onRemoveData(E data) {
}
protected void onRemoveData(List<E> data) {
}
@@ -674,10 +660,6 @@ public class ContentLayout extends FrameLayout {
mViewTransition.showView(0);
}
protected void beforeRefresh() {
}
private boolean isContentShowing() {
return mViewTransition.getShownViewIndex() == 0;
}
@@ -699,8 +681,7 @@ public class ContentLayout extends FrameLayout {
showText(mEmptyString);
}
protected void doRefresh() {
beforeRefresh();
private void doRefresh() {
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_REFRESH;
mCurrentTaskPage = 0;
@@ -777,7 +758,7 @@ public class ContentLayout extends FrameLayout {
LayoutManagerUtils.scrollToPositionWithOffset(mRecyclerView.getLayoutManager(), position, 0);
onScrollToPosition(position);
} else if (page == mStartPage - 1) {
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setRefreshing(true);
mBottomProgress.hide();
mCurrentTaskId = mIdGenerator.nextId();
@@ -786,14 +767,14 @@ public class ContentLayout extends FrameLayout {
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, null, true);
} else if (page == mEndPage) {
mRefreshLayout.setRefreshing(false);
mBottomProgress.hide();
mBottomProgress.show();
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_NEXT_PAGE;
mCurrentTaskPage = page;
getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage, null, true);
} else {
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setRefreshing(true);
mBottomProgress.hide();
mCurrentTaskId = mIdGenerator.nextId();
@@ -804,7 +785,7 @@ public class ContentLayout extends FrameLayout {
}
public void goTo(String index, boolean isNext) {
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setRefreshing(true);
mBottomProgress.hide();
mCurrentTaskId = mIdGenerator.nextId();
mCurrentTaskType = TYPE_SOMEWHERE;