From ef38ae9ae3d4ebfe1e03a90bdb443bf0464a2560 Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Sun, 26 Jul 2026 16:49:20 -0400 Subject: [PATCH] Hide toolbar icons in PostDetailRecyclerViewAdapterNew and CommentsRecyclerViewAdapterNew when item width drops below threshold. --- .../CommentsRecyclerViewAdapterNew.java | 55 +++++++++++++++++-- .../PostDetailRecyclerViewAdapterNew.java | 47 ++++++++++++++++ .../CommentMoreBottomSheetFragment.java | 3 +- .../fragments/ViewPostDetailFragmentNew.java | 39 +++++++++++++ 4 files changed, 138 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapterNew.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapterNew.java index a831aa57..51f954bb 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapterNew.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapterNew.java @@ -64,12 +64,12 @@ import ml.docilealligator.infinityforreddit.databinding.ItemCommentFullyCollapse import ml.docilealligator.infinityforreddit.databinding.ItemLoadMoreCommentsPlaceholderBinding; import ml.docilealligator.infinityforreddit.fragments.ViewPostDetailFragmentNew; import ml.docilealligator.infinityforreddit.markdown.CustomMarkwonAdapter; +import ml.docilealligator.infinityforreddit.markdown.EvenBetterLinkMovementMethod; +import ml.docilealligator.infinityforreddit.markdown.MarkdownUtils; import ml.docilealligator.infinityforreddit.markdown.emote.EmoteCloseBracketInlineProcessor; import ml.docilealligator.infinityforreddit.markdown.emote.EmotePlugin; -import ml.docilealligator.infinityforreddit.markdown.EvenBetterLinkMovementMethod; import ml.docilealligator.infinityforreddit.markdown.imageandgif.ImageAndGifEntry; import ml.docilealligator.infinityforreddit.markdown.imageandgif.ImageAndGifPlugin; -import ml.docilealligator.infinityforreddit.markdown.MarkdownUtils; import ml.docilealligator.infinityforreddit.markdown.video.VideoEntry; import ml.docilealligator.infinityforreddit.markdown.video.VideoPlugin; import ml.docilealligator.infinityforreddit.post.Post; @@ -129,6 +129,7 @@ public class CommentsRecyclerViewAdapterNew extends ListAdapter 420) { + if (((CommentBaseViewHolder) holder).saveButton != null) { + ((CommentBaseViewHolder) holder).saveButton.setVisibility(View.VISIBLE); + } + if (((CommentBaseViewHolder) holder).replyButton != null) { + ((CommentBaseViewHolder) holder).replyButton.setVisibility(View.VISIBLE); + } + if (((CommentBaseViewHolder) holder).expandButton != null) { + ((CommentBaseViewHolder) holder).expandButton.setVisibility(View.VISIBLE); + } + } else if (bottomToolbarWidth > 350) { + if (((CommentBaseViewHolder) holder).saveButton != null) { + ((CommentBaseViewHolder) holder).saveButton.setVisibility(View.VISIBLE); + } + if (((CommentBaseViewHolder) holder).replyButton != null) { + ((CommentBaseViewHolder) holder).replyButton.setVisibility(View.GONE); + } + if (((CommentBaseViewHolder) holder).expandButton != null) { + ((CommentBaseViewHolder) holder).expandButton.setVisibility(View.VISIBLE); + } + } else if (bottomToolbarWidth > 300) { + if (((CommentBaseViewHolder) holder).saveButton != null) { + ((CommentBaseViewHolder) holder).saveButton.setVisibility(View.GONE); + } + if (((CommentBaseViewHolder) holder).replyButton != null) { + ((CommentBaseViewHolder) holder).replyButton.setVisibility(View.GONE); + } + if (((CommentBaseViewHolder) holder).expandButton != null) { + ((CommentBaseViewHolder) holder).expandButton.setVisibility(View.VISIBLE); + } + } else { + if (((CommentBaseViewHolder) holder).saveButton != null) { + ((CommentBaseViewHolder) holder).saveButton.setVisibility(View.GONE); + } + if (((CommentBaseViewHolder) holder).replyButton != null) { + ((CommentBaseViewHolder) holder).replyButton.setVisibility(View.GONE); + } + if (((CommentBaseViewHolder) holder).expandButton != null) { + ((CommentBaseViewHolder) holder).expandButton.setVisibility(View.GONE); + } + } } } else if (holder instanceof CommentFullyCollapsedViewHolder) { Comment comment = getItem(position); @@ -760,6 +804,10 @@ public class CommentsRecyclerViewAdapterNew extends ListAdapter= mDepthThreshold) { - bundle.putBoolean(CommentMoreBottomSheetFragment.EXTRA_SHOW_REPLY_AND_SAVE_OPTION, true); - } CommentMoreBottomSheetFragment commentMoreBottomSheetFragment = new CommentMoreBottomSheetFragment(); commentMoreBottomSheetFragment.setArguments(bundle); commentMoreBottomSheetFragment.show(mFragment.getChildFragmentManager(), commentMoreBottomSheetFragment.getTag()); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java index 5655b492..c90debe8 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java @@ -205,6 +205,7 @@ public class PostDetailRecyclerViewAdapterNew extends RecyclerView.Adapter { + int width = right - left; + if (recyclerViewWidth == width) { + return; + } + recyclerViewWidth = width; + v.post(() -> { + int widthInDp = Utils.convertPxToDp(width, mActivity); + if (mPostAdapter != null) { + mPostAdapter.provideItemWidth(widthInDp); + } + if (mCommentsAdapter != null) { + mCommentsAdapter.provideItemWidth(widthInDp); + } + refreshAdapter(binding.postDetailRecyclerViewViewPostDetailFragment); + if (mCommentsRecyclerView != null) { + refreshAdapter(mCommentsRecyclerView); + } + }); + }; if (mCommentsRecyclerView != null) { if (binding.postDetailRecyclerViewViewPostDetailFragment.getAdapter() == null) { @@ -690,10 +720,12 @@ public class ViewPostDetailFragmentNew extends Fragment implements FragmentCommu if (mCommentsRecyclerView.getAdapter() == null) { mCommentsRecyclerView.setAdapter(mConcatAdapter); } + mCommentsRecyclerView.addOnLayoutChangeListener(onLayoutChangeListener); } else { if (binding.postDetailRecyclerViewViewPostDetailFragment.getAdapter() == null) { binding.postDetailRecyclerViewViewPostDetailFragment.setAdapter(mConcatAdapter); } + binding.postDetailRecyclerViewViewPostDetailFragment.addOnLayoutChangeListener(onLayoutChangeListener); } return true; @@ -1115,6 +1147,13 @@ public class ViewPostDetailFragmentNew extends Fragment implements FragmentCommu Bridge.clear(this); EventBus.getDefault().unregister(this); binding.postDetailRecyclerViewViewPostDetailFragment.addOnWindowFocusChangedListener(null); + if (onLayoutChangeListener != null) { + if (mCommentsRecyclerView != null) { + mCommentsRecyclerView.removeOnLayoutChangeListener(onLayoutChangeListener); + } else { + binding.postDetailRecyclerViewViewPostDetailFragment.removeOnLayoutChangeListener(onLayoutChangeListener); + } + } super.onDestroyView(); }