Long press the fab in ViewPostDetailActivity to go to the previous parent comment. Fix bugs in scrollToNextParentComment() and scrollToPreviousParentComment() in ViewPostDetailFragment.

This commit is contained in:
Alex Ning 2021-06-26 21:43:30 +08:00
parent 6e4a808cbb
commit 7b1221bfc9
2 changed files with 15 additions and 4 deletions

View File

@ -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);
}

View File

@ -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);