mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-05 13:29:50 +02:00
Fix an issue in respect subreddit recommended comment sort type. Dirty workaround for sensitive swipe sensitivity in ViewPager2 in MainActivity.
This commit is contained in:
@@ -55,6 +55,7 @@ import com.google.android.material.tabs.TabLayoutMediator;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -814,6 +815,19 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
Field recyclerViewField = ViewPager2.class.getDeclaredField("mRecyclerView");
|
||||
recyclerViewField.setAccessible(true);
|
||||
|
||||
RecyclerView recyclerView = (RecyclerView) recyclerViewField.get(viewPager2);
|
||||
|
||||
Field touchSlopField = RecyclerView.class.getDeclaredField("mTouchSlop");
|
||||
touchSlopField.setAccessible(true);
|
||||
|
||||
int touchSlop = (int) touchSlopField.get(recyclerView);
|
||||
touchSlopField.set(recyclerView, touchSlop * 4);
|
||||
} catch (NoSuchFieldException | IllegalAccessException ignore) {}
|
||||
|
||||
loadSubscriptions();
|
||||
|
||||
subscribedSubredditViewModel = new ViewModelProvider(this,
|
||||
|
@@ -832,67 +832,71 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
|
||||
});
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
|
||||
ParseComment.parseComment(response.body(), new ArrayList<>(), mLocale,
|
||||
mExpandChildren, new ParseComment.ParseCommentListener() {
|
||||
@Override
|
||||
public void onParseCommentSuccess(ArrayList<Comment> expandedComments, String parentId, ArrayList<String> moreChildrenFullnames) {
|
||||
ViewPostDetailActivity.this.children = moreChildrenFullnames;
|
||||
if (mRespectSubredditRecommendedSortType) {
|
||||
fetchCommentsRespectRecommendedSort(false);
|
||||
} else {
|
||||
ParseComment.parseComment(response.body(), new ArrayList<>(), mLocale,
|
||||
mExpandChildren, new ParseComment.ParseCommentListener() {
|
||||
@Override
|
||||
public void onParseCommentSuccess(ArrayList<Comment> expandedComments, String parentId, ArrayList<String> moreChildrenFullnames) {
|
||||
ViewPostDetailActivity.this.children = moreChildrenFullnames;
|
||||
|
||||
hasMoreChildren = children.size() != 0;
|
||||
mAdapter.addComments(expandedComments, hasMoreChildren);
|
||||
hasMoreChildren = children.size() != 0;
|
||||
mAdapter.addComments(expandedComments, hasMoreChildren);
|
||||
|
||||
if (children.size() > 0) {
|
||||
mRecyclerView.clearOnScrollListeners();
|
||||
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
if (!mIsSmoothScrolling && !mLockFab) {
|
||||
if (!recyclerView.canScrollVertically(1)) {
|
||||
fab.hide();
|
||||
} else {
|
||||
if (dy > 0) {
|
||||
if (mSwipeUpToHideFab) {
|
||||
fab.show();
|
||||
} else {
|
||||
fab.hide();
|
||||
}
|
||||
if (children.size() > 0) {
|
||||
mRecyclerView.clearOnScrollListeners();
|
||||
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
if (!mIsSmoothScrolling && !mLockFab) {
|
||||
if (!recyclerView.canScrollVertically(1)) {
|
||||
fab.hide();
|
||||
} else {
|
||||
if (mSwipeUpToHideFab) {
|
||||
fab.hide();
|
||||
if (dy > 0) {
|
||||
if (mSwipeUpToHideFab) {
|
||||
fab.show();
|
||||
} else {
|
||||
fab.hide();
|
||||
}
|
||||
} else {
|
||||
fab.show();
|
||||
if (mSwipeUpToHideFab) {
|
||||
fab.hide();
|
||||
} else {
|
||||
fab.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isLoadingMoreChildren && loadMoreChildrenSuccess) {
|
||||
int visibleItemCount = mLinearLayoutManager.getChildCount();
|
||||
int totalItemCount = mLinearLayoutManager.getItemCount();
|
||||
int firstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();
|
||||
|
||||
if ((visibleItemCount + firstVisibleItemPosition >= totalItemCount) && firstVisibleItemPosition >= 0) {
|
||||
fetchMoreComments();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isLoadingMoreChildren && loadMoreChildrenSuccess) {
|
||||
int visibleItemCount = mLinearLayoutManager.getChildCount();
|
||||
int totalItemCount = mLinearLayoutManager.getItemCount();
|
||||
int firstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();
|
||||
|
||||
if ((visibleItemCount + firstVisibleItemPosition >= totalItemCount) && firstVisibleItemPosition >= 0) {
|
||||
fetchMoreComments();
|
||||
@Override
|
||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
mIsSmoothScrolling = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
mIsSmoothScrolling = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onParseCommentFailed() {
|
||||
mAdapter.initiallyLoadCommentsFailed();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onParseCommentFailed() {
|
||||
mAdapter.initiallyLoadCommentsFailed();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user