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 e2cf30ac..bd6a7035 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapterNew.java @@ -44,6 +44,7 @@ import androidx.media3.ui.DefaultTimeBar; import androidx.media3.ui.PlayerView; import androidx.media3.ui.TimeBar; import androidx.media3.ui.TrackSelectionDialogBuilder; +import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.PagerSnapHelper; import androidx.recyclerview.widget.RecyclerView; @@ -73,6 +74,7 @@ import io.noties.markwon.core.MarkwonTheme; import jp.wasabeef.glide.transformations.BlurTransformation; import jp.wasabeef.glide.transformations.RoundedCornersTransformation; import ml.docilealligator.infinityforreddit.FetchVideoLinkListener; +import ml.docilealligator.infinityforreddit.PostGalleryGridLayoutItemDecoration; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.SaveMemoryCenterInisdeDownsampleStrategy; @@ -199,6 +201,7 @@ public class PostDetailRecyclerViewAdapterNew extends RecyclerView.Adapter 0) { + RecyclerView.ItemDecoration itemDecoration = ((PostDetailGalleryViewHolder) holder).binding.galleryRecyclerViewItemPostDetailGallery.getItemDecorationAt(0); + if (itemDecoration instanceof PostGalleryGridLayoutItemDecoration) { + ((PostGalleryGridLayoutItemDecoration) itemDecoration).setSpanCount(spanCount); + } + } + + int padding = (int) (8 * mScale); + ((PostDetailGalleryViewHolder) holder).binding.galleryRecyclerViewItemPostDetailGallery.setPadding( + 0, 0, padding, 0 + ); + ((PostDetailGalleryViewHolder) holder).adapter.setIsGridLayout(true); + ((PostDetailGalleryViewHolder) holder).binding.imageIndexTextViewItemPostDetailGallery.setVisibility(View.GONE); + } else if (layoutManager instanceof LinearLayoutManagerBugFixed) { + ((PostDetailGalleryViewHolder) holder).binding.galleryRecyclerViewItemPostDetailGallery.setPadding(0, 0, 0, 0); + ((PostDetailGalleryViewHolder) holder).binding.imageIndexTextViewItemPostDetailGallery.setVisibility(View.VISIBLE); + } } if (itemWidth < 250) { @@ -1386,9 +1413,14 @@ public class PostDetailRecyclerViewAdapterNew extends RecyclerView.Adapter= 0) { if (mPost != null) { - openMedia(mPost, layoutManager.findFirstVisibleItemPosition()); + View itemView = binding.galleryRecyclerViewItemPostDetailGallery.findChildViewUnder(e.getX(), e.getY()); + int currentItemPosition = -1; + if (itemView != null) { + currentItemPosition = binding.galleryRecyclerViewItemPostDetailGallery.getChildAdapterPosition(itemView); + } + openMedia(mPost, Math.max(0, currentItemPosition)); } } } @@ -2713,7 +2761,7 @@ public class PostDetailRecyclerViewAdapterNew extends RecyclerView.Adapter { - openMedia(mPost, layoutManager.findFirstVisibleItemPosition()); + openMedia(mPost); }); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java index 8123ad31..f1c53948 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java @@ -3785,9 +3785,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter + + \ No newline at end of file diff --git a/app/src/main/res/xml/post_details_preferences.xml b/app/src/main/res/xml/post_details_preferences.xml index 97e491bf..692b627b 100644 --- a/app/src/main/res/xml/post_details_preferences.xml +++ b/app/src/main/res/xml/post_details_preferences.xml @@ -55,4 +55,9 @@ app:key="comment_thread_continuity_capacity" app:title="@string/settings_comment_thread_continuity_capacity_title" /> + + \ No newline at end of file