diff options
2 files changed, 10 insertions, 4 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java index 651dbfd1..b2aa20bb 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java @@ -296,7 +296,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele if (loadingMorePostsStatus == LoadingMorePostsStatus.LOADING) { loadingMorePostsStatus = LoadingMorePostsStatus.NOT_LOADING; - fetchMorePosts(); + fetchMorePosts(false); } checkNewAccountAndBindView(savedInstanceState); @@ -379,7 +379,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele @Override public void onPageSelected(int position) { if (posts != null && position > posts.size() - 5) { - fetchMorePosts(); + fetchMorePosts(false); } } }); @@ -513,7 +513,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele } } - public void fetchMorePosts() { + public void fetchMorePosts(boolean changePage) { if (loadingMorePostsStatus == LoadingMorePostsStatus.LOADING || loadingMorePostsStatus == LoadingMorePostsStatus.NO_MORE_POSTS) { return; } @@ -670,6 +670,9 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele } else { posts = new ArrayList<>(postLinkedHashSet); handler.post(() -> { + if (changePage) { + viewPager2.setCurrentItem(currentPostsSize - 1, false); + } sectionsPagerAdapter.notifyItemRangeInserted(currentPostsSize, postLinkedHashSet.size() - currentPostsSize); loadingMorePostsStatus = LoadingMorePostsStatus.NOT_LOADING; MorePostsInfoFragment fragment = sectionsPagerAdapter.getMorePostsInfoFragment(); @@ -749,6 +752,9 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele } else { posts = new ArrayList<>(postLinkedHashSet); handler.post(() -> { + if (changePage) { + viewPager2.setCurrentItem(currentPostsSize - 1, false); + } sectionsPagerAdapter.notifyItemRangeInserted(currentPostsSize, postLinkedHashSet.size() - currentPostsSize); loadingMorePostsStatus = LoadingMorePostsStatus.NOT_LOADING; MorePostsInfoFragment fragment = sectionsPagerAdapter.getMorePostsInfoFragment(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/MorePostsInfoFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/MorePostsInfoFragment.java index 151d5ec4..f38527dd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/MorePostsInfoFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/MorePostsInfoFragment.java @@ -46,7 +46,7 @@ public class MorePostsInfoFragment extends Fragment { binding.getRoot().setOnClickListener(view -> { if (status == LoadingMorePostsStatus.FAILED) { - mActivity.fetchMorePosts(); + mActivity.fetchMorePosts(true); } }); |