mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-27 03:18:24 +01:00
Swipe to see gallery images in HistoryPostFragment.
This commit is contained in:
parent
968b04a508
commit
a95c77731a
@ -12,7 +12,9 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
@ -32,6 +34,7 @@ import androidx.core.content.ContextCompat;
|
||||
import androidx.paging.PagingDataAdapter;
|
||||
import androidx.recyclerview.widget.DiffUtil;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.PagerSnapHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
@ -60,6 +63,7 @@ import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||
import ml.docilealligator.infinityforreddit.FetchGfycatOrRedgifsVideoLinks;
|
||||
import ml.docilealligator.infinityforreddit.FetchStreamableVideo;
|
||||
import ml.docilealligator.infinityforreddit.MarkPostAsReadInterface;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||
import ml.docilealligator.infinityforreddit.SaveThing;
|
||||
@ -80,6 +84,11 @@ import ml.docilealligator.infinityforreddit.apis.StreamableAPI;
|
||||
import ml.docilealligator.infinityforreddit.bottomsheetfragments.ShareLinkBottomSheetFragment;
|
||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.customviews.AspectRatioGifImageView;
|
||||
import ml.docilealligator.infinityforreddit.customviews.SwipeLockInterface;
|
||||
import ml.docilealligator.infinityforreddit.customviews.SwipeLockLinearLayoutManager;
|
||||
import ml.docilealligator.infinityforreddit.databinding.ItemPostCard2GalleryTypeBinding;
|
||||
import ml.docilealligator.infinityforreddit.databinding.ItemPostGalleryGalleryTypeBinding;
|
||||
import ml.docilealligator.infinityforreddit.databinding.ItemPostGalleryTypeBinding;
|
||||
import ml.docilealligator.infinityforreddit.events.PostUpdateEventToPostDetailFragment;
|
||||
import ml.docilealligator.infinityforreddit.fragments.HistoryPostFragment;
|
||||
import ml.docilealligator.infinityforreddit.post.Post;
|
||||
@ -102,12 +111,15 @@ import retrofit2.Retrofit;
|
||||
public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerView.ViewHolder> implements CacheManager {
|
||||
private static final int VIEW_TYPE_POST_CARD_VIDEO_AUTOPLAY_TYPE = 1;
|
||||
private static final int VIEW_TYPE_POST_CARD_WITH_PREVIEW_TYPE = 2;
|
||||
private static final int VIEW_TYPE_POST_CARD_TEXT_TYPE = 3;
|
||||
private static final int VIEW_TYPE_POST_COMPACT = 4;
|
||||
private static final int VIEW_TYPE_POST_GALLERY = 5;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_VIDEO_AUTOPLAY_TYPE = 6;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_WITH_PREVIEW_TYPE = 7;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_TEXT_TYPE = 8;
|
||||
private static final int VIEW_TYPE_POST_CARD_GALLERY_TYPE = 3;
|
||||
private static final int VIEW_TYPE_POST_CARD_TEXT_TYPE = 4;
|
||||
private static final int VIEW_TYPE_POST_COMPACT = 5;
|
||||
private static final int VIEW_TYPE_POST_GALLERY = 6;
|
||||
private static final int VIEW_TYPE_POST_GALLERY_GALLERY_TYPE = 7;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_VIDEO_AUTOPLAY_TYPE = 8;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_WITH_PREVIEW_TYPE = 9;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_GALLERY_TYPE = 10;
|
||||
private static final int VIEW_TYPE_POST_CARD_2_TEXT_TYPE = 11;
|
||||
|
||||
private static final DiffUtil.ItemCallback<Post> DIFF_CALLBACK = new DiffUtil.ItemCallback<Post>() {
|
||||
@Override
|
||||
@ -205,6 +217,7 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
private ExoCreator mExoCreator;
|
||||
private Callback mCallback;
|
||||
private boolean canPlayVideo = true;
|
||||
private RecyclerView.RecycledViewPool mGalleryRecycledViewPool;
|
||||
|
||||
public HistoryPostRecyclerViewAdapter(BaseActivity activity, HistoryPostFragment fragment, Executor executor, Retrofit oauthRetrofit,
|
||||
Retrofit gfycatRetrofit, Retrofit redgifsRetrofit, Retrofit streambleRetrofit,
|
||||
@ -324,6 +337,7 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
mLocale = locale;
|
||||
mExoCreator = exoCreator;
|
||||
mCallback = callback;
|
||||
mGalleryRecycledViewPool = new RecyclerView.RecycledViewPool();
|
||||
}
|
||||
}
|
||||
|
||||
@ -347,8 +361,9 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
return VIEW_TYPE_POST_CARD_WITH_PREVIEW_TYPE;
|
||||
case Post.GIF_TYPE:
|
||||
case Post.IMAGE_TYPE:
|
||||
case Post.GALLERY_TYPE:
|
||||
return VIEW_TYPE_POST_CARD_WITH_PREVIEW_TYPE;
|
||||
case Post.GALLERY_TYPE:
|
||||
return VIEW_TYPE_POST_CARD_GALLERY_TYPE;
|
||||
case Post.LINK_TYPE:
|
||||
case Post.NO_PREVIEW_LINK_TYPE:
|
||||
switch (mDefaultLinkPostLayout) {
|
||||
@ -381,7 +396,16 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
return VIEW_TYPE_POST_COMPACT;
|
||||
} else if (mPostLayout == SharedPreferencesUtils.POST_LAYOUT_GALLERY) {
|
||||
return VIEW_TYPE_POST_GALLERY;
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
return VIEW_TYPE_POST_GALLERY_GALLERY_TYPE;
|
||||
} else {
|
||||
return VIEW_TYPE_POST_GALLERY;
|
||||
}
|
||||
} else {
|
||||
return VIEW_TYPE_POST_GALLERY;
|
||||
}
|
||||
} else {
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
@ -396,8 +420,9 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW_TYPE;
|
||||
case Post.GIF_TYPE:
|
||||
case Post.IMAGE_TYPE:
|
||||
case Post.GALLERY_TYPE:
|
||||
return VIEW_TYPE_POST_CARD_2_WITH_PREVIEW_TYPE;
|
||||
case Post.GALLERY_TYPE:
|
||||
return VIEW_TYPE_POST_CARD_2_GALLERY_TYPE;
|
||||
case Post.LINK_TYPE:
|
||||
case Post.NO_PREVIEW_LINK_TYPE:
|
||||
switch (mDefaultLinkPostLayout) {
|
||||
@ -427,6 +452,8 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
return new PostVideoAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(mLegacyAutoplayVideoControllerUI ? R.layout.item_post_video_type_autoplay_legacy_controller : R.layout.item_post_video_type_autoplay, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_WITH_PREVIEW_TYPE) {
|
||||
return new PostWithPreviewTypeViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_with_preview, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_GALLERY_TYPE) {
|
||||
return new PostGalleryTypeViewHolder(ItemPostGalleryTypeBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_TEXT_TYPE) {
|
||||
return new PostTextTypeViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_text, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_COMPACT) {
|
||||
@ -437,6 +464,8 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
} else if (viewType == VIEW_TYPE_POST_GALLERY) {
|
||||
return new PostGalleryViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_gallery, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_GALLERY_GALLERY_TYPE) {
|
||||
return new PostGalleryGalleryTypeViewHolder(ItemPostGalleryGalleryTypeBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_2_VIDEO_AUTOPLAY_TYPE) {
|
||||
if (mDataSavingMode) {
|
||||
return new PostCard2WithPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_card_2_with_preview, parent, false));
|
||||
@ -444,6 +473,8 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
return new PostCard2VideoAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(mLegacyAutoplayVideoControllerUI ? R.layout.item_post_card_2_video_autoplay_legacy_controller : R.layout.item_post_card_2_video_autoplay, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_2_WITH_PREVIEW_TYPE) {
|
||||
return new PostCard2WithPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_card_2_with_preview, parent, false));
|
||||
} else if (viewType == VIEW_TYPE_POST_CARD_2_GALLERY_TYPE) {
|
||||
return new PostCard2GalleryTypeViewHolder(ItemPostCard2GalleryTypeBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
||||
} else {
|
||||
//VIEW_TYPE_POST_CARD_2_TEXT_TYPE
|
||||
return new PostCard2TextTypeViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_card_2_text, parent, false));
|
||||
@ -750,10 +781,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setVisibility(View.VISIBLE);
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setImageResource(R.drawable.ic_link);
|
||||
}
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.gallery));
|
||||
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.VISIBLE);
|
||||
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicatorImageView.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_gallery_24dp));
|
||||
}
|
||||
|
||||
if (post.getPostType() != Post.NO_PREVIEW_LINK_TYPE) {
|
||||
@ -770,8 +797,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
} else if (post.getPostType() == Post.LINK_TYPE) {
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setImageResource(R.drawable.ic_link);
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
}
|
||||
} else if (mDataSavingMode && mOnlyDisablePreviewInVideoAndGifPosts && (post.getPostType() == Post.VIDEO_TYPE || post.getPostType() == Post.GIF_TYPE)) {
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setVisibility(View.VISIBLE);
|
||||
@ -812,12 +837,31 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
} else if (post.getPostType() == Post.LINK_TYPE) {
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setImageResource(R.drawable.ic_link);
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostWithPreviewTypeViewHolder) holder).noPreviewLinkImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (holder instanceof PostBaseGalleryTypeViewHolder) {
|
||||
if (mDataSavingMode && mDisableImagePreview) {
|
||||
((PostBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.VISIBLE);
|
||||
((PostBaseGalleryTypeViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
} else {
|
||||
((PostBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.VISIBLE);
|
||||
((PostBaseGalleryTypeViewHolder) holder).imageIndexTextView.setText(mActivity.getString(R.string.image_index_in_gallery, 1, post.getGallery().size()));
|
||||
Post.Preview preview = getSuitablePreview(post.getPreviews());
|
||||
if (preview != null) {
|
||||
if (mFixedHeightPreviewInCard || (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0)) {
|
||||
((PostBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
|
||||
} else {
|
||||
((PostBaseGalleryTypeViewHolder) holder).adapter.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
}
|
||||
} else {
|
||||
((PostBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
|
||||
}
|
||||
((PostBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(post.getGallery());
|
||||
((PostBaseGalleryTypeViewHolder) holder).adapter.setBlurImage(
|
||||
(post.isNSFW() && mNeedBlurNsfw) || (post.isSpoiler() && mNeedBlurSpoiler));
|
||||
}
|
||||
} else if (holder instanceof PostTextTypeViewHolder) {
|
||||
if (!mHideTextPostContent && !post.isSpoiler() && post.getSelfTextPlainTrimmed() != null && !post.getSelfTextPlainTrimmed().equals("")) {
|
||||
((PostTextTypeViewHolder) holder).contentTextView.setVisibility(View.VISIBLE);
|
||||
@ -912,10 +956,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setVisibility(View.VISIBLE);
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_link);
|
||||
}
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostCard2WithPreviewViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.gallery));
|
||||
((PostCard2WithPreviewViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.VISIBLE);
|
||||
((PostCard2WithPreviewViewHolder) holder).videoOrGifIndicatorImageView.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_gallery_24dp));
|
||||
}
|
||||
|
||||
if (post.getPostType() != Post.NO_PREVIEW_LINK_TYPE) {
|
||||
@ -933,8 +973,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostCard2WithPreviewViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
} else if (post.getPostType() == Post.LINK_TYPE) {
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_link);
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
}
|
||||
} else if (mDataSavingMode && mOnlyDisablePreviewInVideoAndGifPosts && (post.getPostType() == Post.VIDEO_TYPE || post.getPostType() == Post.GIF_TYPE)) {
|
||||
((PostCard2WithPreviewViewHolder) holder).progressBar.setVisibility(View.GONE);
|
||||
@ -977,8 +1015,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostCard2WithPreviewViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
} else if (post.getPostType() == Post.LINK_TYPE) {
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_link);
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostCard2WithPreviewViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1348,8 +1384,6 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostGalleryViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
} else if (post.getPostType() == Post.LINK_TYPE) {
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_link);
|
||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
}
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_image_24dp);
|
||||
}
|
||||
@ -1460,36 +1494,35 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostGalleryViewHolder) holder).titleTextView.setText(post.getTitle());
|
||||
break;
|
||||
}
|
||||
case Post.GALLERY_TYPE: {
|
||||
Post.Preview preview = getSuitablePreview(post.getPreviews());
|
||||
((PostGalleryViewHolder) holder).preview = preview;
|
||||
if (preview != null) {
|
||||
((PostGalleryViewHolder) holder).imageView.setVisibility(View.VISIBLE);
|
||||
((PostGalleryViewHolder) holder).progressBar.setVisibility(View.VISIBLE);
|
||||
((PostGalleryViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.VISIBLE);
|
||||
((PostGalleryViewHolder) holder).videoOrGifIndicatorImageView.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_gallery_24dp));
|
||||
}
|
||||
}
|
||||
} else if (holder instanceof PostGalleryBaseGalleryTypeViewHolder) {
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).post = post;
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).currentPosition = position;
|
||||
|
||||
if (mFixedHeightPreviewInCard || (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0)) {
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
}
|
||||
((PostGalleryViewHolder) holder).imageView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
|
||||
@Override
|
||||
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
|
||||
((PostGalleryViewHolder) holder).imageView.removeOnLayoutChangeListener(this);
|
||||
loadImage(holder);
|
||||
}
|
||||
});
|
||||
if (mDataSavingMode && mDisableImagePreview) {
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.VISIBLE);
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
} else {
|
||||
Post.Preview preview = getSuitablePreview(post.getPreviews());
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).preview = preview;
|
||||
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.VISIBLE);
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).imageIndexTextView.setText(mActivity.getString(R.string.image_index_in_gallery, 1, post.getGallery().size()));
|
||||
if (preview != null) {
|
||||
if (mFixedHeightPreviewInCard || (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0)) {
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setVisibility(View.VISIBLE);
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_24dp);
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).adapter.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
|
||||
}
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(post.getGallery());
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).adapter.setBlurImage(
|
||||
(post.isNSFW() && mNeedBlurNsfw) || (post.isSpoiler() && mNeedBlurSpoiler));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1804,6 +1837,9 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostWithPreviewTypeViewHolder) holder).progressBar.setVisibility(View.GONE);
|
||||
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
((PostWithPreviewTypeViewHolder) holder).linkTextView.setVisibility(View.GONE);
|
||||
} else if (holder instanceof PostBaseGalleryTypeViewHolder) {
|
||||
((PostBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.GONE);
|
||||
((PostBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.GONE);
|
||||
} else if (holder instanceof PostTextTypeViewHolder) {
|
||||
((PostTextTypeViewHolder) holder).contentTextView.setText("");
|
||||
((PostTextTypeViewHolder) holder).contentTextView.setTextColor(mPostContentColor);
|
||||
@ -1882,6 +1918,10 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
((PostGalleryViewHolder) holder).errorTextView.setVisibility(View.GONE);
|
||||
((PostGalleryViewHolder) holder).videoOrGifIndicatorImageView.setVisibility(View.GONE);
|
||||
((PostGalleryViewHolder) holder).noPreviewImageView.setVisibility(View.GONE);
|
||||
} else if (holder instanceof PostGalleryBaseGalleryTypeViewHolder) {
|
||||
holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.GONE);
|
||||
((PostGalleryBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1960,6 +2000,10 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
|
||||
private void openMedia(Post post) {
|
||||
openMedia(post, 0);
|
||||
}
|
||||
|
||||
private void openMedia(Post post, int galleryItemIndex) {
|
||||
if (canStartActivity) {
|
||||
canStartActivity = false;
|
||||
if (post.getPostType() == Post.VIDEO_TYPE) {
|
||||
@ -2014,6 +2058,7 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
|
||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
|
||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_GALLERY_ITEM_INDEX, galleryItemIndex);
|
||||
mActivity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@ -2961,6 +3006,224 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
}
|
||||
|
||||
public class PostBaseGalleryTypeViewHolder extends PostBaseViewHolder {
|
||||
FrameLayout frameLayout;
|
||||
RecyclerView galleryRecyclerView;
|
||||
CustomTextView imageIndexTextView;
|
||||
ImageView noPreviewImageView;
|
||||
|
||||
PostGalleryTypeImageRecyclerViewAdapter adapter;
|
||||
private boolean swipeLocked;
|
||||
|
||||
PostBaseGalleryTypeViewHolder(View rootView,
|
||||
AspectRatioGifImageView iconGifImageView,
|
||||
TextView subredditTextView,
|
||||
TextView userTextView,
|
||||
ImageView stickiedPostImageView,
|
||||
TextView postTimeTextView,
|
||||
TextView titleTextView,
|
||||
CustomTextView typeTextView,
|
||||
ImageView archivedImageView,
|
||||
ImageView lockedImageView,
|
||||
ImageView crosspostImageView,
|
||||
CustomTextView nsfwTextView,
|
||||
CustomTextView spoilerTextView,
|
||||
CustomTextView flairTextView,
|
||||
CustomTextView awardsTextView,
|
||||
FrameLayout frameLayout,
|
||||
RecyclerView galleryRecyclerView,
|
||||
CustomTextView imageIndexTextView,
|
||||
ImageView noPreviewImageView,
|
||||
ConstraintLayout bottomConstraintLayout,
|
||||
ImageView upvoteButton,
|
||||
TextView scoreTextView,
|
||||
ImageView downvoteButton,
|
||||
TextView commentsCountTextView,
|
||||
ImageView saveButton,
|
||||
ImageView shareButton,
|
||||
boolean itemViewIsNotCardView) {
|
||||
super(rootView);
|
||||
setBaseView(
|
||||
iconGifImageView,
|
||||
subredditTextView,
|
||||
userTextView,
|
||||
stickiedPostImageView,
|
||||
postTimeTextView,
|
||||
titleTextView,
|
||||
typeTextView,
|
||||
archivedImageView,
|
||||
lockedImageView,
|
||||
crosspostImageView,
|
||||
nsfwTextView,
|
||||
spoilerTextView,
|
||||
flairTextView,
|
||||
awardsTextView,
|
||||
bottomConstraintLayout,
|
||||
upvoteButton,
|
||||
scoreTextView,
|
||||
downvoteButton,
|
||||
commentsCountTextView,
|
||||
saveButton,
|
||||
shareButton,
|
||||
itemViewIsNotCardView);
|
||||
|
||||
this.frameLayout = frameLayout;
|
||||
this.galleryRecyclerView = galleryRecyclerView;
|
||||
this.imageIndexTextView = imageIndexTextView;
|
||||
this.noPreviewImageView = noPreviewImageView;
|
||||
|
||||
imageIndexTextView.setTextColor(mMediaIndicatorIconTint);
|
||||
imageIndexTextView.setBackgroundColor(mMediaIndicatorBackgroundColor);
|
||||
imageIndexTextView.setBorderColor(mMediaIndicatorBackgroundColor);
|
||||
if (mActivity.typeface != null) {
|
||||
imageIndexTextView.setTypeface(mActivity.typeface);
|
||||
}
|
||||
|
||||
noPreviewImageView.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
|
||||
noPreviewImageView.setColorFilter(mNoPreviewPostTypeIconTint, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
|
||||
adapter = new PostGalleryTypeImageRecyclerViewAdapter(mGlide, mActivity.typeface,
|
||||
mSaveMemoryCenterInsideDownsampleStrategy, mColorAccent, mPrimaryTextColor, mScale);
|
||||
galleryRecyclerView.setAdapter(adapter);
|
||||
new PagerSnapHelper().attachToRecyclerView(galleryRecyclerView);
|
||||
galleryRecyclerView.setRecycledViewPool(mGalleryRecycledViewPool);
|
||||
SwipeLockLinearLayoutManager layoutManager = new SwipeLockLinearLayoutManager(
|
||||
mActivity, RecyclerView.HORIZONTAL, false, new SwipeLockInterface() {
|
||||
@Override
|
||||
public void lockSwipe() {
|
||||
mActivity.lockSwipeRightToGoBack();
|
||||
swipeLocked = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unlockSwipe() {
|
||||
mActivity.unlockSwipeRightToGoBack();
|
||||
swipeLocked = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSwipeLocked(boolean swipeLocked) {
|
||||
PostBaseGalleryTypeViewHolder.this.swipeLocked = swipeLocked;
|
||||
}
|
||||
});
|
||||
galleryRecyclerView.setLayoutManager(layoutManager);
|
||||
galleryRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
imageIndexTextView.setText(mActivity.getString(R.string.image_index_in_gallery, layoutManager.findFirstVisibleItemPosition() + 1, post.getGallery().size()));
|
||||
}
|
||||
});
|
||||
galleryRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
|
||||
private float downX;
|
||||
private float downY;
|
||||
private boolean dragged;
|
||||
private final int minTouchSlop = ViewConfiguration.get(mActivity).getScaledTouchSlop();
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
|
||||
int action = e.getAction();
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
downX = e.getRawX();
|
||||
downY = e.getRawY();
|
||||
break;
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
if(Math.abs(e.getRawX() - downX) > minTouchSlop || Math.abs(e.getRawY() - downY) > minTouchSlop) {
|
||||
dragged = true;
|
||||
}
|
||||
break;
|
||||
case MotionEvent.ACTION_UP:
|
||||
if (!dragged) {
|
||||
int position = getBindingAdapterPosition();
|
||||
if (position >= 0) {
|
||||
if (post != null) {
|
||||
openMedia(post, layoutManager.findFirstVisibleItemPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
downX = 0;
|
||||
downY = 0;
|
||||
dragged = false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
rootView.setOnTouchListener((view, motionEvent) -> {
|
||||
swipeLocked = false;
|
||||
return false;
|
||||
});
|
||||
bottomConstraintLayout.setOnTouchListener((view, motionEvent) -> {
|
||||
swipeLocked = false;
|
||||
return false;
|
||||
});
|
||||
|
||||
noPreviewImageView.setOnClickListener(view -> {
|
||||
int position = getBindingAdapterPosition();
|
||||
if (position < 0) {
|
||||
return;
|
||||
}
|
||||
if (post != null) {
|
||||
openMedia(post, 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean isSwipeLocked() {
|
||||
return swipeLocked;
|
||||
}
|
||||
}
|
||||
|
||||
public class PostGalleryTypeViewHolder extends PostBaseGalleryTypeViewHolder {
|
||||
|
||||
PostGalleryTypeViewHolder(ItemPostGalleryTypeBinding binding) {
|
||||
super(binding.getRoot(),
|
||||
binding.iconGifImageViewItemPostGalleryType,
|
||||
binding.subredditNameTextViewItemPostGalleryType,
|
||||
binding.userTextViewItemPostGalleryType,
|
||||
binding.stickiedPostImageViewItemPostGalleryType,
|
||||
binding.postTimeTextViewItemPostGalleryType,
|
||||
binding.titleTextViewItemPostGalleryType,
|
||||
binding.typeTextViewItemPostGalleryType,
|
||||
binding.archivedImageViewItemPostGalleryType,
|
||||
binding.lockedImageViewItemPostGalleryType,
|
||||
binding.crosspostImageViewItemPostGalleryType,
|
||||
binding.nsfwTextViewItemPostGalleryType,
|
||||
binding.spoilerTextViewItemPostGalleryType,
|
||||
binding.flairTextViewItemPostGalleryType,
|
||||
binding.awardsTextViewItemPostGalleryType,
|
||||
binding.galleryFrameLayoutItemPostGalleryType,
|
||||
binding.galleryRecyclerViewItemPostGalleryType,
|
||||
binding.imageIndexTextViewItemPostGalleryType,
|
||||
binding.noPreviewImageViewItemPostGalleryType,
|
||||
binding.bottomConstraintLayoutItemPostGalleryType,
|
||||
binding.upvoteButtonItemPostGalleryType,
|
||||
binding.scoreTextViewItemPostGalleryType,
|
||||
binding.downvoteButtonItemPostGalleryType,
|
||||
binding.commentsCountTextViewItemPostGalleryType,
|
||||
binding.saveButtonItemPostGalleryType,
|
||||
binding.shareButtonItemPostGalleryType,
|
||||
false);
|
||||
}
|
||||
}
|
||||
|
||||
class PostTextTypeViewHolder extends PostBaseViewHolder {
|
||||
@BindView(R.id.icon_gif_image_view_item_post_text_type)
|
||||
AspectRatioGifImageView iconGifImageView;
|
||||
@ -3827,6 +4090,175 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
}
|
||||
|
||||
class PostGalleryBaseGalleryTypeViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FrameLayout frameLayout;
|
||||
RecyclerView recyclerView;
|
||||
CustomTextView imageIndexTextView;
|
||||
ImageView noPreviewImageView;
|
||||
|
||||
PostGalleryTypeImageRecyclerViewAdapter adapter;
|
||||
private SwipeLockLinearLayoutManager layoutManager;
|
||||
|
||||
Post post;
|
||||
Post.Preview preview;
|
||||
|
||||
int currentPosition;
|
||||
|
||||
public PostGalleryBaseGalleryTypeViewHolder(@NonNull View itemView,
|
||||
FrameLayout frameLayout,
|
||||
RecyclerView recyclerView,
|
||||
CustomTextView imageIndexTextView,
|
||||
ImageView noPreviewImageView) {
|
||||
super(itemView);
|
||||
|
||||
this.frameLayout = frameLayout;
|
||||
this.recyclerView = recyclerView;
|
||||
this.imageIndexTextView = imageIndexTextView;
|
||||
this.noPreviewImageView = noPreviewImageView;
|
||||
|
||||
if (mActivity.typeface != null) {
|
||||
imageIndexTextView.setTypeface(mActivity.typeface);
|
||||
}
|
||||
|
||||
itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
|
||||
noPreviewImageView.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
|
||||
noPreviewImageView.setColorFilter(mNoPreviewPostTypeIconTint, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
|
||||
imageIndexTextView.setTextColor(mMediaIndicatorIconTint);
|
||||
imageIndexTextView.setBackgroundColor(mMediaIndicatorBackgroundColor);
|
||||
imageIndexTextView.setBorderColor(mMediaIndicatorBackgroundColor);
|
||||
|
||||
adapter = new PostGalleryTypeImageRecyclerViewAdapter(mGlide, mActivity.typeface,
|
||||
mSaveMemoryCenterInsideDownsampleStrategy, mColorAccent, mPrimaryTextColor, mScale);
|
||||
recyclerView.setAdapter(adapter);
|
||||
new PagerSnapHelper().attachToRecyclerView(recyclerView);
|
||||
recyclerView.setRecycledViewPool(mGalleryRecycledViewPool);
|
||||
layoutManager = new SwipeLockLinearLayoutManager(
|
||||
mActivity, RecyclerView.HORIZONTAL, false, new SwipeLockInterface() {
|
||||
@Override
|
||||
public void lockSwipe() {
|
||||
mActivity.lockSwipeRightToGoBack();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unlockSwipe() {
|
||||
mActivity.unlockSwipeRightToGoBack();
|
||||
}
|
||||
});
|
||||
recyclerView.setLayoutManager(layoutManager);
|
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
imageIndexTextView.setText(mActivity.getString(R.string.image_index_in_gallery, layoutManager.findFirstVisibleItemPosition() + 1, post.getGallery().size()));
|
||||
}
|
||||
});
|
||||
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
|
||||
private float downX;
|
||||
private float downY;
|
||||
private boolean dragged;
|
||||
private long downTime;
|
||||
private final int minTouchSlop = ViewConfiguration.get(mActivity).getScaledTouchSlop();
|
||||
private final int longClickThreshold = ViewConfiguration.getLongPressTimeout();
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
|
||||
int action = e.getAction();
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
downX = e.getRawX();
|
||||
downY = e.getRawY();
|
||||
downTime = System.currentTimeMillis();
|
||||
break;
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
if(Math.abs(e.getRawX() - downX) > minTouchSlop || Math.abs(e.getRawY() - downY) > minTouchSlop) {
|
||||
dragged = true;
|
||||
}
|
||||
if (!dragged) {
|
||||
if (System.currentTimeMillis() - downTime >= longClickThreshold) {
|
||||
onLongClick();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MotionEvent.ACTION_UP:
|
||||
if (!dragged) {
|
||||
if (System.currentTimeMillis() - downTime < longClickThreshold) {
|
||||
onClick();
|
||||
}
|
||||
}
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
downX = 0;
|
||||
downY = 0;
|
||||
dragged = false;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
noPreviewImageView.setOnClickListener(view -> {
|
||||
onClick();
|
||||
});
|
||||
|
||||
noPreviewImageView.setOnLongClickListener(view -> onLongClick());
|
||||
}
|
||||
|
||||
void onClick() {
|
||||
int position = getBindingAdapterPosition();
|
||||
if (position >= 0 && canStartActivity) {
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
if (post.getPostType() == Post.TEXT_TYPE || !mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
} else {
|
||||
openMedia(post, layoutManager.findFirstVisibleItemPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean onLongClick() {
|
||||
int position = getBindingAdapterPosition();
|
||||
if (position >= 0 && canStartActivity) {
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
if (post.getPostType() == Post.TEXT_TYPE || mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
} else {
|
||||
openMedia(post, layoutManager.findFirstVisibleItemPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
class PostGalleryGalleryTypeViewHolder extends PostGalleryBaseGalleryTypeViewHolder {
|
||||
|
||||
public PostGalleryGalleryTypeViewHolder(@NonNull ItemPostGalleryGalleryTypeBinding binding) {
|
||||
super(binding.getRoot(), binding.galleryFrameLayoutItemPostGalleryGalleryType,
|
||||
binding.galleryRecyclerViewItemPostGalleryGalleryType, binding.imageIndexTextViewItemPostGalleryGalleryType,
|
||||
binding.imageViewNoPreviewItemPostGalleryGalleryType);
|
||||
}
|
||||
}
|
||||
|
||||
class PostCard2VideoAutoplayViewHolder extends PostBaseViewHolder implements ToroPlayer {
|
||||
@BindView(R.id.icon_gif_image_view_item_post_card_2_video_autoplay)
|
||||
AspectRatioGifImageView iconGifImageView;
|
||||
@ -4231,6 +4663,41 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
|
||||
}
|
||||
}
|
||||
|
||||
public class PostCard2GalleryTypeViewHolder extends PostBaseGalleryTypeViewHolder {
|
||||
|
||||
PostCard2GalleryTypeViewHolder(ItemPostCard2GalleryTypeBinding binding) {
|
||||
super(binding.getRoot(),
|
||||
binding.iconGifImageViewItemPostCard2GalleryType,
|
||||
binding.subredditNameTextViewItemPostCard2GalleryType,
|
||||
binding.userTextViewItemPostCard2GalleryType,
|
||||
binding.stickiedPostImageViewItemPostCard2GalleryType,
|
||||
binding.postTimeTextViewItemPostCard2GalleryType,
|
||||
binding.titleTextViewItemPostCard2GalleryType,
|
||||
binding.typeTextViewItemPostCard2GalleryType,
|
||||
binding.archivedImageViewItemPostCard2GalleryType,
|
||||
binding.lockedImageViewItemPostCard2GalleryType,
|
||||
binding.crosspostImageViewItemPostCard2GalleryType,
|
||||
binding.nsfwTextViewItemPostCard2GalleryType,
|
||||
binding.spoilerCustomTextViewItemPostCard2GalleryType,
|
||||
binding.flairCustomTextViewItemPostCard2GalleryType,
|
||||
binding.awardsTextViewItemPostCard2GalleryType,
|
||||
binding.galleryFrameLayoutItemPostCard2GalleryType,
|
||||
binding.galleryRecyclerViewItemPostCard2GalleryType,
|
||||
binding.imageIndexTextViewItemPostCard2GalleryType,
|
||||
binding.noPreviewImageViewItemPostCard2GalleryType,
|
||||
binding.bottomConstraintLayoutItemPostCard2GalleryType,
|
||||
binding.upvoteButtonItemPostCard2GalleryType,
|
||||
binding.scoreTextViewItemPostCard2GalleryType,
|
||||
binding.downvoteButtonItemPostCard2GalleryType,
|
||||
binding.commentsCountTextViewItemPostCard2GalleryType,
|
||||
binding.saveButtonItemPostCard2GalleryType,
|
||||
binding.shareButtonItemPostCard2GalleryType,
|
||||
true);
|
||||
|
||||
binding.dividerItemPostCard2GalleryType.setBackgroundColor(mDividerColor);
|
||||
}
|
||||
}
|
||||
|
||||
class PostCard2TextTypeViewHolder extends PostBaseViewHolder {
|
||||
@BindView(R.id.icon_gif_image_view_item_post_card_2_text)
|
||||
AspectRatioGifImageView iconGifImageView;
|
||||
|
@ -3209,6 +3209,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
imageIndexTextView.setTextColor(mMediaIndicatorIconTint);
|
||||
imageIndexTextView.setBackgroundColor(mMediaIndicatorBackgroundColor);
|
||||
imageIndexTextView.setBorderColor(mMediaIndicatorBackgroundColor);
|
||||
if (mActivity.typeface != null) {
|
||||
imageIndexTextView.setTypeface(mActivity.typeface);
|
||||
}
|
||||
|
||||
noPreviewImageView.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
|
||||
noPreviewImageView.setColorFilter(mNoPreviewPostTypeIconTint, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
|
@ -467,9 +467,13 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
|
||||
|
||||
@Override
|
||||
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
|
||||
if (!(viewHolder instanceof PostRecyclerViewAdapter.PostBaseViewHolder) &&
|
||||
!(viewHolder instanceof PostRecyclerViewAdapter.PostCompactBaseViewHolder)) {
|
||||
if (!(viewHolder instanceof HistoryPostRecyclerViewAdapter.PostBaseViewHolder) &&
|
||||
!(viewHolder instanceof HistoryPostRecyclerViewAdapter.PostCompactBaseViewHolder)) {
|
||||
return makeMovementFlags(0, 0);
|
||||
} else if (viewHolder instanceof HistoryPostRecyclerViewAdapter.PostBaseGalleryTypeViewHolder) {
|
||||
if (((HistoryPostRecyclerViewAdapter.PostBaseGalleryTypeViewHolder) viewHolder).isSwipeLocked()) {
|
||||
return makeMovementFlags(0, 0);
|
||||
}
|
||||
}
|
||||
int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
|
||||
return makeMovementFlags(0, swipeFlags);
|
||||
@ -556,7 +560,7 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
|
||||
|
||||
@Override
|
||||
public float getSwipeThreshold(@NonNull RecyclerView.ViewHolder viewHolder) {
|
||||
return 100;
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user