From 7b1221bfc95930cdc1126c540dc19e09421a57ec Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Sat, 26 Jun 2021 21:43:30 +0800 Subject: Long press the fab in ViewPostDetailActivity to go to the previous parent comment. Fix bugs in scrollToNextParentComment() and scrollToPreviousParentComment() in ViewPostDetailFragment. --- .../infinityforreddit/activities/ViewPostDetailActivity.java | 11 +++++++++++ .../infinityforreddit/fragments/ViewPostDetailFragment.java | 8 ++++---- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'app/src') 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 80dc5788..34fbc55a 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java @@ -209,6 +209,17 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele } }); + fab.setOnLongClickListener(view -> { + if (sectionsPagerAdapter != null) { + ViewPostDetailFragment fragment = sectionsPagerAdapter.getCurrentFragment(); + if (fragment != null) { + fragment.scrollToPreviousParentComment(); + return true; + } + } + return false; + }); + checkNewAccountAndBindView(savedInstanceState); } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java index 0201f183..40d2ff9f 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java @@ -1660,7 +1660,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic if (mLinearLayoutManager != null) { int currentPosition = mLinearLayoutManager.findFirstVisibleItemPosition(); if (mCommentsAdapter != null) { - int nextParentPosition = mCommentsAdapter.getNextParentCommentPosition(currentPosition); + int nextParentPosition = mCommentsAdapter.getNextParentCommentPosition(mCommentsRecyclerView == null ? currentPosition - 1 : currentPosition); if (nextParentPosition < 0) { return; } @@ -1677,11 +1677,11 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic if (mLinearLayoutManager != null) { int currentPosition = mLinearLayoutManager.findFirstVisibleItemPosition(); if (mCommentsAdapter != null) { - int nextParentPosition = mCommentsAdapter.getPreviousParentCommentPosition(currentPosition); - if (nextParentPosition < 0) { + int previousParentPosition = mCommentsAdapter.getPreviousParentCommentPosition(mCommentsRecyclerView == null ? currentPosition - 1 : currentPosition); + if (previousParentPosition < 0) { return; } - mSmoothScroller.setTargetPosition(mCommentsRecyclerView == null ? nextParentPosition + 1 : nextParentPosition); + mSmoothScroller.setTargetPosition(mCommentsRecyclerView == null ? previousParentPosition + 1 : previousParentPosition); if (mLinearLayoutManager != null) { mIsSmoothScrolling = true; mLinearLayoutManager.startSmoothScroll(mSmoothScroller); -- cgit v1.2.3