aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java1557
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java3
2 files changed, 440 insertions, 1120 deletions
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 3a41b87f..fadba1a5 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
@@ -602,6 +602,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
((PostViewHolder) holder).post = post;
((PostViewHolder) holder).currentPosition = position;
+ if (post.isRead()) {
+ ((PostViewHolder) holder).setItemViewBackgroundColor(true);
+ ((PostBaseViewHolder) holder).titleTextView.setTextColor(mReadPostTitleColor);
+ }
+
if (mDisplaySubredditName) {
if (post.getAuthorNamePrefixed().equals(post.getSubredditNamePrefixed())) {
if (post.getAuthorIconUrl() == null) {
@@ -717,6 +722,49 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
((PostViewHolder) holder).scoreTextView.setText(mActivity.getString(R.string.vote));
}
+ if (((PostViewHolder) holder).typeTextView != null) {
+ if (mHidePostType) {
+ ((PostViewHolder) holder).typeTextView.setVisibility(View.GONE);
+ } else {
+ ((PostViewHolder) holder).typeTextView.setVisibility(View.VISIBLE);
+ }
+ }
+
+ if (((PostViewHolder) holder).lockedImageView != null && post.isLocked()) {
+ ((PostViewHolder) holder).lockedImageView.setVisibility(View.VISIBLE);
+ }
+
+ if (((PostViewHolder) holder).nsfwTextView != null && post.isNSFW()) {
+ ((PostViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
+ }
+
+ if (post.isSpoiler()) {
+ ((PostViewHolder) holder).spoilerTextView.setVisibility(View.VISIBLE);
+ }
+
+ if (((PostViewHolder) holder).flairTextView != null && post.getFlair() != null && !post.getFlair().isEmpty()) {
+ if (mHidePostFlair) {
+ ((PostViewHolder) holder).flairTextView.setVisibility(View.GONE);
+ } else {
+ ((PostViewHolder) holder).flairTextView.setVisibility(View.VISIBLE);
+ Utils.setHTMLWithImageToTextView(((PostViewHolder) holder).flairTextView, post.getFlair(), false);
+ }
+ }
+
+ if (post.isArchived()) {
+ if (((PostViewHolder) holder).archivedImageView != null) {
+ ((PostViewHolder) holder).archivedImageView.setVisibility(View.VISIBLE);
+ }
+
+ ((PostViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
+ ((PostViewHolder) holder).scoreTextView.setTextColor(mVoteAndReplyUnavailableVoteButtonColor);
+ ((PostViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
+ }
+
+ if (((PostViewHolder) holder).crosspostImageView != null && post.isCrosspost()) {
+ ((PostViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
+ }
+
switch (post.getVoteType()) {
case 1:
//Upvoted
@@ -751,18 +799,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
if (holder instanceof PostBaseViewHolder) {
- ((PostBaseViewHolder) holder).post = post;
- ((PostBaseViewHolder) holder).currentPosition = position;
- if (post.isRead()) {
- if (((PostBaseViewHolder) holder).itemViewIsNotCardView) {
- holder.itemView.setBackgroundColor(mReadPostCardViewBackgroundColor);
- } else {
- holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mReadPostCardViewBackgroundColor));
- }
-
- ((PostBaseViewHolder) holder).titleTextView.setTextColor(mReadPostTitleColor);
- }
-
if (mHideSubredditAndUserPrefix) {
((PostBaseViewHolder) holder).subredditTextView.setText(post.getSubredditName());
((PostBaseViewHolder) holder).userTextView.setText(post.getAuthor());
@@ -774,45 +810,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
((PostBaseViewHolder) holder).userTextView.setTextColor(
post.isModerator() ? mModeratorColor : mUsernameColor);
- if (post.isLocked()) {
- ((PostBaseViewHolder) holder).lockedImageView.setVisibility(View.VISIBLE);
- }
-
- if (post.isNSFW()) {
- ((PostBaseViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
- }
-
- if (post.isSpoiler()) {
- ((PostBaseViewHolder) holder).spoilerTextView.setVisibility(View.VISIBLE);
- }
-
- if (post.getFlair() != null && !post.getFlair().isEmpty()) {
- if (mHidePostFlair) {
- ((PostBaseViewHolder) holder).flairTextView.setVisibility(View.GONE);
- } else {
- ((PostBaseViewHolder) holder).flairTextView.setVisibility(View.VISIBLE);
- Utils.setHTMLWithImageToTextView(((PostBaseViewHolder) holder).flairTextView, post.getFlair(), false);
- }
- }
-
- if (post.isArchived()) {
- ((PostBaseViewHolder) holder).archivedImageView.setVisibility(View.VISIBLE);
-
- ((PostBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- ((PostBaseViewHolder) holder).scoreTextView.setTextColor(mVoteAndReplyUnavailableVoteButtonColor);
- ((PostBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- }
-
- if (post.isCrosspost()) {
- ((PostBaseViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
- }
-
- if (mHidePostType) {
- ((PostBaseViewHolder) holder).typeTextView.setVisibility(View.GONE);
- } else {
- ((PostBaseViewHolder) holder).typeTextView.setVisibility(View.VISIBLE);
- }
-
if (holder instanceof PostBaseVideoAutoplayViewHolder) {
((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView.setVisibility(View.VISIBLE);
Post.Preview preview = getSuitablePreview(post.getPreviews());
@@ -835,17 +832,25 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
if (post.getPostType() == Post.VIDEO_TYPE) {
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.setVisibility(View.VISIBLE);
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_play_circle_36dp));
- ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.video));
+ if (((PostWithPreviewTypeViewHolder) holder).typeTextView != null) {
+ ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.video));
+ }
} else if (post.getPostType() == Post.GIF_TYPE) {
if (!mAutoplay) {
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.setVisibility(View.VISIBLE);
((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_play_circle_36dp));
}
- ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.gif));
+ if (((PostWithPreviewTypeViewHolder) holder).typeTextView != null) {
+ ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.gif));
+ }
} else if (post.getPostType() == Post.IMAGE_TYPE) {
- ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.image));
+ if (((PostWithPreviewTypeViewHolder) holder).typeTextView != null) {
+ ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.image));
+ }
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
- ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.link));
+ if (((PostWithPreviewTypeViewHolder) holder).typeTextView != null) {
+ ((PostWithPreviewTypeViewHolder) holder).typeTextView.setText(mActivity.getString(R.string.link));
+ }
((PostWithPreviewTypeViewHolder) holder).linkTextView.setVisibility(View.VISIBLE);
String domain = Uri.parse(post.getUrl()).getHost();
((PostWithPreviewTypeViewHolder) holder).linkTextView.setText(domain);
@@ -879,6 +884,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
Post.Preview preview = getSuitablePreview(post.getPreviews());
((PostWithPreviewTypeViewHolder) holder).preview = preview;
if (preview != null) {
+ if (((PostWithPreviewTypeViewHolder) holder).imageWrapperFrameLayout != null) {
+ ((PostWithPreviewTypeViewHolder) holder).imageWrapperFrameLayout.setVisibility(View.VISIBLE);
+ }
((PostWithPreviewTypeViewHolder) holder).imageView.setVisibility(View.VISIBLE);
if (mFixedHeightPreviewInCard || (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0)) {
int height = (int) (400 * mScale);
@@ -943,15 +951,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
mCallback.currentlyBindItem(holder.getBindingAdapterPosition());
} else if (holder instanceof PostCompactBaseViewHolder) {
- if (post.isRead()) {
- holder.itemView.setBackgroundColor(mReadPostCardViewBackgroundColor);
- ((PostCompactBaseViewHolder) holder).titleTextView.setTextColor(mReadPostTitleColor);
- }
- boolean nsfw = post.isNSFW();
- boolean spoiler = post.isSpoiler();
- String flair = post.getFlair();
- boolean isArchived = post.isArchived();
-
if (mDisplaySubredditName) {
((PostCompactBaseViewHolder) holder).nameTextView.setTextColor(mSubredditColor);
if (mHideSubredditAndUserPrefix) {
@@ -986,27 +985,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
((PostCompactBaseViewHolder) holder).divider.setVisibility(View.GONE);
}
- if (post.isLocked()) {
- ((PostCompactBaseViewHolder) holder).lockedImageView.setVisibility(View.VISIBLE);
- }
-
- if (nsfw) {
- ((PostCompactBaseViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
- }
-
- if (spoiler) {
- ((PostCompactBaseViewHolder) holder).spoilerTextView.setVisibility(View.VISIBLE);
- }
-
- if (flair != null && !flair.equals("")) {
- if (mHidePostFlair) {
- ((PostCompactBaseViewHolder) holder).flairTextView.setVisibility(View.GONE);
- } else {
- ((PostCompactBaseViewHolder) holder).flairTextView.setVisibility(View.VISIBLE);
- Utils.setHTMLWithImageToTextView(((PostCompactBaseViewHolder) holder).flairTextView, flair, false);
- }
- }
-
if (post.getPostType() != Post.TEXT_TYPE && post.getPostType() != Post.NO_PREVIEW_LINK_TYPE && !(mDataSavingMode && mDisableImagePreview)) {
((PostCompactBaseViewHolder) holder).relativeLayout.setVisibility(View.VISIBLE);
if (post.getPostType() == Post.GALLERY_TYPE && post.getPreviews() != null && post.getPreviews().isEmpty()) {
@@ -1020,24 +998,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
}
- if (isArchived) {
- ((PostCompactBaseViewHolder) holder).archivedImageView.setVisibility(View.VISIBLE);
-
- ((PostCompactBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- ((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mVoteAndReplyUnavailableVoteButtonColor);
- ((PostCompactBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- }
-
- if (post.isCrosspost()) {
- ((PostCompactBaseViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
- }
-
- if (mHidePostType) {
- ((PostCompactBaseViewHolder) holder).typeTextView.setVisibility(View.GONE);
- } else {
- ((PostCompactBaseViewHolder) holder).typeTextView.setVisibility(View.VISIBLE);
- }
-
switch (post.getPostType()) {
case Post.IMAGE_TYPE:
((PostCompactBaseViewHolder) holder).typeTextView.setText(R.string.image);
@@ -1103,154 +1063,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
mCallback.currentlyBindItem(holder.getBindingAdapterPosition());
- } else if (holder instanceof PostMaterial3CardBaseViewHolder) {
- if (post.isRead()) {
- holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mReadPostFilledCardViewBackgroundColor));
- ((PostMaterial3CardBaseViewHolder) holder).titleTextView.setTextColor(mReadPostTitleColor);
- }
-
- if (mHideSubredditAndUserPrefix) {
- ((PostMaterial3CardBaseViewHolder) holder).subredditTextView.setText(post.getSubredditName());
- ((PostMaterial3CardBaseViewHolder) holder).userTextView.setText(post.getAuthor());
- } else {
- ((PostMaterial3CardBaseViewHolder) holder).subredditTextView.setText(post.getSubredditNamePrefixed());
- ((PostMaterial3CardBaseViewHolder) holder).userTextView.setText(post.getAuthorNamePrefixed());
- }
-
- ((PostMaterial3CardBaseViewHolder) holder).userTextView.setTextColor(
- post.isModerator() ? mModeratorColor : mUsernameColor);
-
- if (post.isArchived()) {
- ((PostMaterial3CardBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- ((PostMaterial3CardBaseViewHolder) holder).scoreTextView.setTextColor(mVoteAndReplyUnavailableVoteButtonColor);
- ((PostMaterial3CardBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
- }
-
- if (holder instanceof PostMaterial3CardBaseVideoAutoplayViewHolder) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView.setVisibility(View.VISIBLE);
- Post.Preview preview = getSuitablePreview(post.getPreviews());
- if (!mFixedHeightPreviewInCard && preview != null) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
- mGlide.load(preview.getPreviewUrl()).centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView);
- } else {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.aspectRatioFrameLayout.setAspectRatio(1);
- }
- if (!((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.isManuallyPaused) {
- if (mFragment.getMasterMutingOption() == null) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.setVolume(mMuteAutoplayingVideos || (post.isNSFW() && mMuteNSFWVideo) ? 0f : 1f);
- } else {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.setVolume(mFragment.getMasterMutingOption() ? 0f : 1f);
- }
- }
-
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.loadVideo(position);
- } else if (holder instanceof PostMaterial3CardWithPreviewViewHolder) {
- if (post.getPostType() == Post.VIDEO_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_play_circle_36dp));
- } else if (post.getPostType() == Post.GIF_TYPE) {
- if (!mAutoplay) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setImageDrawable(ContextCompat.getDrawable(mActivity, R.drawable.ic_play_circle_36dp));
- }
- } else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.linkTextViewItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- String domain = Uri.parse(post.getUrl()).getHost();
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.linkTextViewItemPostCard3WithPreview.setText(domain);
- if (post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_link_day_night_24dp);
- }
- }
-
- if (mDataSavingMode && mDisableImagePreview) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- if (post.getPostType() == Post.VIDEO_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_video_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else if (post.getPostType() == Post.IMAGE_TYPE || post.getPostType() == Post.GIF_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_image_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else if (post.getPostType() == Post.LINK_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_link_day_night_24dp);
- }
- } else if (mDataSavingMode && mOnlyDisablePreviewInVideoAndGifPosts && (post.getPostType() == Post.VIDEO_TYPE || post.getPostType() == Post.GIF_TYPE)) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_video_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else {
- if (post.getPostType() == Post.GIF_TYPE && ((post.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit()) && !(mAutoplay && mAutoplayNsfwVideos)) || (post.isSpoiler() && mNeedBlurSpoiler))) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_image_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else {
- Post.Preview preview = getSuitablePreview(post.getPreviews());
- ((PostMaterial3CardWithPreviewViewHolder) holder).preview = preview;
- if (preview != null) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageWrapperRelativeLayoutItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- if (mFixedHeightPreviewInCard || (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0)) {
- int height = (int) (400 * mScale);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.setScaleType(ImageView.ScaleType.CENTER_CROP);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.getLayoutParams().height = height;
- } else {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview
- .setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
- }
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.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) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.removeOnLayoutChangeListener(this);
- loadImage(holder);
- }
- });
- } else {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- if (post.getPostType() == Post.VIDEO_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_video_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else if (post.getPostType() == Post.IMAGE_TYPE || post.getPostType() == Post.GIF_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_image_day_night_24dp);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else if (post.getPostType() == Post.LINK_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_link_day_night_24dp);
- } else if (post.getPostType() == Post.GALLERY_TYPE) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setImageResource(R.drawable.ic_gallery_day_night_24dp);
- }
- }
- }
- }
- } else if (holder instanceof PostMaterial3CardBaseGalleryTypeViewHolder) {
- if (mDataSavingMode && mDisableImagePreview) {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.VISIBLE);
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).noPreviewImageView.setImageResource(R.drawable.ic_gallery_day_night_24dp);
- } else {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.VISIBLE);
- ((PostMaterial3CardBaseGalleryTypeViewHolder) 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)) {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
- } else {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
- }
- } else {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setRatio(-1);
- }
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(post.getGallery());
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setBlurImage(
- (post.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit())) || (post.isSpoiler() && mNeedBlurSpoiler));
- }
- } else if (holder instanceof PostMaterial3CardTextTypeViewHolder) {
- if (!mHideTextPostContent && !post.isSpoiler() && post.getSelfTextPlainTrimmed() != null && !post.getSelfTextPlainTrimmed().equals("")) {
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setVisibility(View.VISIBLE);
- if (post.isRead()) {
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setTextColor(mReadPostContentColor);
- }
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setText(post.getSelfTextPlainTrimmed());
- }
- }
- mCallback.currentlyBindItem(holder.getBindingAdapterPosition());
}
} else if (holder instanceof PostGalleryViewHolder) {
Post post = getItem(position);
@@ -1532,27 +1344,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostGalleryViewHolder) holder).binding.imageViewItemPostGallery);
}
}
- } else if (holder instanceof PostMaterial3CardWithPreviewViewHolder) {
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.progressBarItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- Post post = ((PostMaterial3CardWithPreviewViewHolder) holder).post;
- Post.Preview preview = ((PostMaterial3CardWithPreviewViewHolder) holder).preview;
- if (preview != null) {
- String url;
- boolean blurImage = (post.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit()) && !(post.getPostType() == Post.GIF_TYPE && mAutoplay && mAutoplayNsfwVideos)) || (post.isSpoiler() && mNeedBlurSpoiler);
- if (post.getPostType() == Post.GIF_TYPE && mAutoplay && !blurImage) {
- url = post.getUrl();
- } else {
- url = preview.getPreviewUrl();
- }
- RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(url).listener(((PostMaterial3CardWithPreviewViewHolder) holder).glideRequestListener);
-
- if (blurImage) {
- imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
- .into(((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview);
- } else {
- imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview);
- }
- }
}
}
@@ -1714,98 +1505,92 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
@OptIn(markerClass = UnstableApi.class)
@Override
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
- if (holder instanceof PostBaseViewHolder) {
+ if (holder instanceof PostViewHolder) {
if (mMarkPostsAsReadOnScroll) {
- int position = ((PostBaseViewHolder) holder).currentPosition;
+ int position = ((PostViewHolder) holder).currentPosition;
if (position < getItemCount() && position >= 0) {
Post post = getItem(position);
- ((PostBaseViewHolder) holder).markPostRead(post, false);
+ ((PostViewHolder) holder).markPostRead(post, false);
}
}
- if (((PostBaseViewHolder) holder).itemViewIsNotCardView) {
- holder.itemView.setBackgroundColor(mCardViewBackgroundColor);
- } else {
- holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
+
+ ((PostViewHolder) holder).setItemViewBackgroundColor(false);
+
+ ((PostViewHolder) holder).titleTextView.setTextColor(mPostTitleColor);
+ mGlide.clear(((PostViewHolder) holder).iconGifImageView);
+
+ ((PostViewHolder) holder).stickiedPostImageView.setVisibility(View.GONE);
+
+ if (((PostViewHolder) holder).crosspostImageView != null) {
+ ((PostViewHolder) holder).crosspostImageView.setVisibility(View.GONE);
}
- mGlide.clear(((PostBaseViewHolder) holder).iconGifImageView);
- ((PostBaseViewHolder) holder).titleTextView.setTextColor(mPostTitleColor);
- if (holder instanceof PostBaseVideoAutoplayViewHolder) {
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.mediaUri = null;
- if (((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall != null
- && !((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.isCanceled()) {
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.cancel();
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall = null;
- }
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.errorLoadingRedgifsImageView.setVisibility(View.GONE);
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.muteButton.setVisibility(View.GONE);
- if (!((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.isManuallyPaused) {
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.resetVolume();
- }
- mGlide.clear(((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView);
- ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView.setVisibility(View.GONE);
- } else if (holder instanceof PostWithPreviewTypeViewHolder) {
- mGlide.clear(((PostWithPreviewTypeViewHolder) holder).imageView);
- ((PostWithPreviewTypeViewHolder) holder).imageView.setVisibility(View.GONE);
- ((PostWithPreviewTypeViewHolder) holder).loadImageErrorTextView.setVisibility(View.GONE);
- ((PostWithPreviewTypeViewHolder) holder).imageViewNoPreviewGallery.setVisibility(View.GONE);
- ((PostWithPreviewTypeViewHolder) holder).progressBar.setVisibility(View.GONE);
- ((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.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);
- ((PostBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(null);
- } else if (holder instanceof PostTextTypeViewHolder) {
- ((PostTextTypeViewHolder) holder).contentTextView.setText("");
- ((PostTextTypeViewHolder) holder).contentTextView.setTextColor(mPostContentColor);
- ((PostTextTypeViewHolder) holder).contentTextView.setVisibility(View.GONE);
+ if (((PostViewHolder) holder).archivedImageView != null) {
+ ((PostViewHolder) holder).archivedImageView.setVisibility(View.GONE);
+ }
+ if (((PostViewHolder) holder).lockedImageView != null) {
+ ((PostViewHolder) holder).lockedImageView.setVisibility(View.GONE);
+ }
+ if (((PostViewHolder) holder).nsfwTextView != null) {
+ ((PostViewHolder) holder).nsfwTextView.setVisibility(View.GONE);
+ }
+ if (((PostViewHolder) holder).spoilerTextView != null) {
+ ((PostViewHolder) holder).spoilerTextView.setVisibility(View.GONE);
+ }
+ if (((PostViewHolder) holder).flairTextView != null) {
+ ((PostViewHolder) holder).flairTextView.setText("");
+ ((PostViewHolder) holder).flairTextView.setVisibility(View.GONE);
}
- mGlide.clear(((PostBaseViewHolder) holder).iconGifImageView);
- ((PostBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).crosspostImageView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).archivedImageView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).lockedImageView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).nsfwTextView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).spoilerTextView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).flairTextView.setText("");
- ((PostBaseViewHolder) holder).flairTextView.setVisibility(View.GONE);
- ((PostBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
- ((PostBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- ((PostBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
- ((PostBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
- ((PostBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- } else if (holder instanceof PostCompactBaseViewHolder) {
- if (mMarkPostsAsReadOnScroll) {
- int position = ((PostCompactBaseViewHolder) holder).currentPosition;
- if (position < getItemCount() && position >= 0) {
- Post post = getItem(position);
- ((PostCompactBaseViewHolder) holder).markPostRead(post, false);
+ ((PostViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ ((PostViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ ((PostViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
+ ((PostViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ ((PostViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+
+ if (holder instanceof PostBaseViewHolder) {
+ if (holder instanceof PostBaseVideoAutoplayViewHolder) {
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.mediaUri = null;
+ if (((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall != null
+ && !((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.isCanceled()) {
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.cancel();
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall = null;
+ }
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.errorLoadingRedgifsImageView.setVisibility(View.GONE);
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.muteButton.setVisibility(View.GONE);
+ if (!((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.isManuallyPaused) {
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.resetVolume();
+ }
+ mGlide.clear(((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView);
+ ((PostBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView.setVisibility(View.GONE);
+ } else if (holder instanceof PostWithPreviewTypeViewHolder) {
+ mGlide.clear(((PostWithPreviewTypeViewHolder) holder).imageView);
+ if (((PostWithPreviewTypeViewHolder) holder).imageWrapperFrameLayout != null) {
+ ((PostWithPreviewTypeViewHolder) holder).imageWrapperFrameLayout.setVisibility(View.GONE);
+ }
+ ((PostWithPreviewTypeViewHolder) holder).imageView.setVisibility(View.GONE);
+ ((PostWithPreviewTypeViewHolder) holder).loadImageErrorTextView.setVisibility(View.GONE);
+ ((PostWithPreviewTypeViewHolder) holder).imageViewNoPreviewGallery.setVisibility(View.GONE);
+ ((PostWithPreviewTypeViewHolder) holder).progressBar.setVisibility(View.GONE);
+ ((PostWithPreviewTypeViewHolder) holder).videoOrGifIndicator.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);
+ ((PostBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(null);
+ } else if (holder instanceof PostTextTypeViewHolder) {
+ ((PostTextTypeViewHolder) holder).contentTextView.setText("");
+ ((PostTextTypeViewHolder) holder).contentTextView.setTextColor(mPostContentColor);
+ ((PostTextTypeViewHolder) holder).contentTextView.setVisibility(View.GONE);
}
+ } else if (holder instanceof PostCompactBaseViewHolder) {
+ mGlide.clear(((PostCompactBaseViewHolder) holder).imageView);
+ ((PostCompactBaseViewHolder) holder).relativeLayout.setVisibility(View.GONE);
+ ((PostCompactBaseViewHolder) holder).linkTextView.setVisibility(View.GONE);
+ ((PostCompactBaseViewHolder) holder).progressBar.setVisibility(View.GONE);
+ ((PostCompactBaseViewHolder) holder).imageView.setVisibility(View.GONE);
+ ((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.GONE);
+ ((PostCompactBaseViewHolder) holder).noPreviewPostImageFrameLayout.setVisibility(View.GONE);
}
- holder.itemView.setBackgroundColor(mCardViewBackgroundColor);
- ((PostCompactBaseViewHolder) holder).titleTextView.setTextColor(mPostTitleColor);
- mGlide.clear(((PostCompactBaseViewHolder) holder).imageView);
- mGlide.clear(((PostCompactBaseViewHolder) holder).iconGifImageView);
- ((PostCompactBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).relativeLayout.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).crosspostImageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).archivedImageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).lockedImageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).nsfwTextView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).spoilerTextView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).flairTextView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).flairTextView.setText("");
- ((PostCompactBaseViewHolder) holder).linkTextView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).progressBar.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).imageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).playButtonImageView.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).noPreviewPostImageFrameLayout.setVisibility(View.GONE);
- ((PostCompactBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
- ((PostCompactBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- ((PostCompactBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
- ((PostCompactBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
- ((PostCompactBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
} else if (holder instanceof PostGalleryViewHolder) {
if (mMarkPostsAsReadOnScroll) {
int position = ((PostGalleryViewHolder) holder).currentPosition;
@@ -1835,56 +1620,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
((PostGalleryBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.GONE);
((PostGalleryBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.GONE);
- } else if (holder instanceof PostMaterial3CardBaseViewHolder) {
- if (mMarkPostsAsReadOnScroll) {
- int position = ((PostMaterial3CardBaseViewHolder) holder).currentPosition;
- if (position < getItemCount() && position >= 0) {
- Post post = getItem(position);
- ((PostMaterial3CardBaseViewHolder) holder).markPostRead(post, false);
- }
- }
- holder.itemView.setBackgroundTintList(ColorStateList.valueOf(mFilledCardViewBackgroundColor));
- mGlide.clear(((PostMaterial3CardBaseViewHolder) holder).iconGifImageView);
- ((PostMaterial3CardBaseViewHolder) holder).titleTextView.setTextColor(mPostTitleColor);
- if (holder instanceof PostMaterial3CardBaseVideoAutoplayViewHolder) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.mediaUri = null;
- if (((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall != null && !((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.isCanceled()) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall.cancel();
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.fetchRedgifsOrStreamableVideoCall = null;
- }
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.errorLoadingRedgifsImageView.setVisibility(View.GONE);
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.muteButton.setVisibility(View.GONE);
- if (!((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.isManuallyPaused) {
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.resetVolume();
- }
- mGlide.clear(((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView);
- ((PostMaterial3CardBaseVideoAutoplayViewHolder) holder).toroPlayer.previewImageView.setVisibility(View.GONE);
- } else if (holder instanceof PostMaterial3CardWithPreviewViewHolder) {
- mGlide.clear(((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageWrapperRelativeLayoutItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.loadImageErrorTextViewItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.progressBarItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setVisibility(View.GONE);
- ((PostMaterial3CardWithPreviewViewHolder) holder).binding.linkTextViewItemPostCard3WithPreview.setVisibility(View.GONE);
- } else if (holder instanceof PostMaterial3CardBaseGalleryTypeViewHolder) {
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).frameLayout.setVisibility(View.GONE);
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).noPreviewImageView.setVisibility(View.GONE);
- ((PostMaterial3CardBaseGalleryTypeViewHolder) holder).adapter.setGalleryImages(null);
- } else if (holder instanceof PostMaterial3CardTextTypeViewHolder) {
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setText("");
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setTextColor(mPostContentColor);
- ((PostMaterial3CardTextTypeViewHolder) holder).binding.contentTextViewItemPostCard3TextType.setVisibility(View.GONE);
- }
-
- mGlide.clear(((PostMaterial3CardBaseViewHolder) holder).iconGifImageView);
- ((PostMaterial3CardBaseViewHolder) holder).stickiedPostImageView.setVisibility(View.GONE);
- ((PostMaterial3CardBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
- ((PostMaterial3CardBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- ((PostMaterial3CardBaseViewHolder) holder).scoreTextView.setTextColor(mPostIconAndInfoColor);
- ((PostMaterial3CardBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
- ((PostMaterial3CardBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
}
@@ -2063,6 +1798,22 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView;
TextView postTimeTextView;
TextView titleTextView;
+
+ @Nullable
+ CustomTextView typeTextView;
+ @Nullable
+ ImageView archivedImageView;
+ @Nullable
+ ImageView lockedImageView;
+ @Nullable
+ ImageView crosspostImageView;
+ @Nullable
+ CustomTextView nsfwTextView;
+ @Nullable
+ CustomTextView spoilerTextView;
+ @Nullable
+ CustomTextView flairTextView;
+
MaterialButton upvoteButton;
TextView scoreTextView;
MaterialButton downvoteButton;
@@ -2082,6 +1833,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
MaterialButton upvoteButton,
TextView scoreTextView,
MaterialButton downvoteButton,
@@ -2092,98 +1850,15 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
this.stickiedPostImageView = stickiedPostImageView;
this.postTimeTextView = postTimeTextView;
this.titleTextView = titleTextView;
- this.upvoteButton = upvoteButton;
- this.scoreTextView = scoreTextView;
- this.downvoteButton = downvoteButton;
- this.commentsCountButton = commentsCountButton;
- this.saveButton = saveButton;
- this.shareButton = shareButton;
-
- if (mDisplaySubredditName) {
- subredditTextView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- if (canStartActivity) {
- canStartActivity = false;
- Intent intent = new Intent(mActivity, ViewSubredditDetailActivity.class);
- intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
- post.getSubredditName());
- mActivity.startActivity(intent);
- }
- }
- });
-
- iconGifImageView.setOnClickListener(view -> subredditTextView.performClick());
- } else {
- subredditTextView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- if (canStartActivity) {
- canStartActivity = false;
- Intent intent = new Intent(mActivity, ViewSubredditDetailActivity.class);
- intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
- post.getSubredditName());
- mActivity.startActivity(intent);
- }
- }
- });
-
- iconGifImageView.setOnClickListener(view -> userTextView.performClick());
- }
-
- userTextView.setOnClickListener(view -> {
- if (!canStartActivity) {
- return;
- }
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post == null || post.isAuthorDeleted()) {
- return;
- }
- canStartActivity = false;
- Intent intent = new Intent(mActivity, ViewUserDetailActivity.class);
- intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, post.getAuthor());
- mActivity.startActivity(intent);
- });
- setOnClickListeners(upvoteButton,
- scoreTextView,
- downvoteButton,
- commentsCountButton,
- saveButton,
- shareButton);
- }
+ this.typeTextView = typeTextView;
+ this.archivedImageView = archivedImageView;
+ this.lockedImageView = lockedImageView;
+ this.crosspostImageView = crosspostImageView;
+ this.nsfwTextView = nsfwTextView;
+ this.spoilerTextView = spoilerTextView;
+ this.flairTextView = flairTextView;
- void setBaseView(AspectRatioGifImageView iconGifImageView,
- TextView subredditTextView,
- TextView userTextView,
- ImageView stickiedPostImageView,
- TextView postTimeTextView,
- TextView titleTextView,
- CustomTextView typeTextView,
- CustomTextView nsfwTextView,
- CustomTextView flairTextView,
- MaterialButton upvoteButton,
- TextView scoreTextView,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton) {
- this.iconGifImageView = iconGifImageView;
- this.stickiedPostImageView = stickiedPostImageView;
- this.postTimeTextView = postTimeTextView;
- this.titleTextView = titleTextView;
this.upvoteButton = upvoteButton;
this.scoreTextView = scoreTextView;
this.downvoteButton = downvoteButton;
@@ -2265,9 +1940,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- CustomTextView nsfwTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView flairTextView,
MaterialButton upvoteButton,
TextView scoreTextView,
MaterialButton downvoteButton,
@@ -2655,9 +2330,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
});
}
- void setOnClickListeners(CustomTextView typeTextView,
- CustomTextView nsfwTextView,
- CustomTextView flairTextView,
+ void setOnClickListeners(@Nullable CustomTextView typeTextView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView flairTextView,
MaterialButton upvoteButton,
TextView scoreTextView,
MaterialButton downvoteButton,
@@ -2672,40 +2347,48 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
shareButton);
if (!(mActivity instanceof FilteredPostsActivity)) {
- nsfwTextView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- mCallback.nsfwChipClicked();
- }
- });
- typeTextView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- mCallback.typeChipClicked(post.getPostType());
- }
- });
+ if (nsfwTextView != null) {
+ nsfwTextView.setOnClickListener(view -> {
+ int position = getBindingAdapterPosition();
+ if (position < 0) {
+ return;
+ }
+ Post post = getItem(position);
+ if (post != null) {
+ mCallback.nsfwChipClicked();
+ }
+ });
+ }
- flairTextView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- mCallback.flairChipClicked(post.getFlair());
- }
- });
+ if (typeTextView != null) {
+ typeTextView.setOnClickListener(view -> {
+ int position = getBindingAdapterPosition();
+ if (position < 0) {
+ return;
+ }
+ Post post = getItem(position);
+ if (post != null) {
+ mCallback.typeChipClicked(post.getPostType());
+ }
+ });
+ }
+
+ if (flairTextView != null) {
+ flairTextView.setOnClickListener(view -> {
+ int position = getBindingAdapterPosition();
+ if (position < 0) {
+ return;
+ }
+ Post post = getItem(position);
+ if (post != null) {
+ mCallback.flairChipClicked(post.getFlair());
+ }
+ });
+ }
}
}
+ abstract void setItemViewBackgroundColor(boolean isReadPost);
abstract void markPostRead(Post post, boolean changePostItemColor);
}
@@ -3026,24 +2709,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
abstract void markPostRead(Post post, boolean changePostItemColor);
}
- public class PostBaseViewHolder extends PostViewHolder {
+ public abstract class PostBaseViewHolder extends PostViewHolder {
TextView subredditTextView;
TextView userTextView;
- ImageView stickiedPostImageView;
- TextView postTimeTextView;
- TextView titleTextView;
- CustomTextView typeTextView;
- ImageView archivedImageView;
- ImageView lockedImageView;
- ImageView crosspostImageView;
- CustomTextView nsfwTextView;
- CustomTextView spoilerTextView;
- CustomTextView flairTextView;
- ConstraintLayout bottomConstraintLayout;
Post.Preview preview;
- boolean itemViewIsNotCardView = false;
-
PostBaseViewHolder(@NonNull View itemView) {
super(itemView);
}
@@ -3054,13 +2724,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- ImageView archivedImageView,
- ImageView lockedImageView,
- ImageView crosspostImageView,
- CustomTextView nsfwTextView,
- CustomTextView spoilerTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
ConstraintLayout bottomConstraintLayout,
MaterialButton upvoteButton,
TextView scoreTextView,
@@ -3076,7 +2746,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
postTimeTextView,
titleTextView,
typeTextView,
+ archivedImageView,
+ lockedImageView,
+ crosspostImageView,
nsfwTextView,
+ spoilerTextView,
flairTextView,
upvoteButton,
scoreTextView,
@@ -3087,17 +2761,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
this.subredditTextView = subredditTextView;
this.userTextView = userTextView;
- this.stickiedPostImageView = stickiedPostImageView;
- this.postTimeTextView = postTimeTextView;
- this.titleTextView = titleTextView;
- this.typeTextView = typeTextView;
- this.archivedImageView = archivedImageView;
- this.lockedImageView = lockedImageView;
- this.crosspostImageView = crosspostImageView;
- this.nsfwTextView = nsfwTextView;
- this.spoilerTextView = spoilerTextView;
- this.flairTextView = flairTextView;
- this.bottomConstraintLayout = bottomConstraintLayout;
if (mVoteButtonsOnTheRight) {
ConstraintSet constraintSet = new ConstraintSet();
@@ -3118,20 +2781,24 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
constraintSet.applyTo(bottomConstraintLayout);
}
- if (itemViewIsNotCardView) {
- itemView.setBackgroundColor(mCardViewBackgroundColor);
- } else {
- itemView.setBackgroundTintList(ColorStateList.valueOf(mCardViewBackgroundColor));
- }
+ setItemViewBackgroundColor(false);
if (mActivity.typeface != null) {
subredditTextView.setTypeface(mActivity.typeface);
userTextView.setTypeface(mActivity.typeface);
postTimeTextView.setTypeface(mActivity.typeface);
- typeTextView.setTypeface(mActivity.typeface);
- spoilerTextView.setTypeface(mActivity.typeface);
- nsfwTextView.setTypeface(mActivity.typeface);
- flairTextView.setTypeface(mActivity.typeface);
+ if (typeTextView != null) {
+ typeTextView.setTypeface(mActivity.typeface);
+ }
+ if (spoilerTextView != null) {
+ spoilerTextView.setTypeface(mActivity.typeface);
+ }
+ if (nsfwTextView != null) {
+ nsfwTextView.setTypeface(mActivity.typeface);
+ }
+ if (flairTextView != null) {
+ flairTextView.setTypeface(mActivity.typeface);
+ }
upvoteButton.setTypeface(mActivity.typeface);
commentsCountButton.setTypeface(mActivity.typeface);
}
@@ -3144,21 +2811,43 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
postTimeTextView.setTextColor(mSecondaryTextColor);
titleTextView.setTextColor(mPostTitleColor);
stickiedPostImageView.setColorFilter(mStickiedPostIconTint, PorterDuff.Mode.SRC_IN);
- typeTextView.setBackgroundColor(mPostTypeBackgroundColor);
- typeTextView.setBorderColor(mPostTypeBackgroundColor);
- typeTextView.setTextColor(mPostTypeTextColor);
- spoilerTextView.setBackgroundColor(mSpoilerBackgroundColor);
- spoilerTextView.setBorderColor(mSpoilerBackgroundColor);
- spoilerTextView.setTextColor(mSpoilerTextColor);
- nsfwTextView.setBackgroundColor(mNSFWBackgroundColor);
- nsfwTextView.setBorderColor(mNSFWBackgroundColor);
- nsfwTextView.setTextColor(mNSFWTextColor);
- flairTextView.setBackgroundColor(mFlairBackgroundColor);
- flairTextView.setBorderColor(mFlairBackgroundColor);
- flairTextView.setTextColor(mFlairTextColor);
- archivedImageView.setColorFilter(mArchivedIconTint, PorterDuff.Mode.SRC_IN);
- lockedImageView.setColorFilter(mLockedIconTint, PorterDuff.Mode.SRC_IN);
- crosspostImageView.setColorFilter(mCrosspostIconTint, PorterDuff.Mode.SRC_IN);
+
+ if (typeTextView != null) {
+ typeTextView.setBackgroundColor(mPostTypeBackgroundColor);
+ typeTextView.setBorderColor(mPostTypeBackgroundColor);
+ typeTextView.setTextColor(mPostTypeTextColor);
+ }
+
+ if (spoilerTextView != null) {
+ spoilerTextView.setBackgroundColor(mSpoilerBackgroundColor);
+ spoilerTextView.setBorderColor(mSpoilerBackgroundColor);
+ spoilerTextView.setTextColor(mSpoilerTextColor);
+ }
+
+ if (nsfwTextView != null) {
+ nsfwTextView.setBackgroundColor(mNSFWBackgroundColor);
+ nsfwTextView.setBorderColor(mNSFWBackgroundColor);
+ nsfwTextView.setTextColor(mNSFWTextColor);
+ }
+
+ if (flairTextView != null) {
+ flairTextView.setBackgroundColor(mFlairBackgroundColor);
+ flairTextView.setBorderColor(mFlairBackgroundColor);
+ flairTextView.setTextColor(mFlairTextColor);
+ }
+
+ if (archivedImageView != null) {
+ archivedImageView.setColorFilter(mArchivedIconTint, PorterDuff.Mode.SRC_IN);
+ }
+
+ if (lockedImageView != null) {
+ lockedImageView.setColorFilter(mLockedIconTint, PorterDuff.Mode.SRC_IN);
+ }
+
+ if (crosspostImageView != null) {
+ crosspostImageView.setColorFilter(mCrosspostIconTint, PorterDuff.Mode.SRC_IN);
+ }
+
upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
scoreTextView.setTextColor(mPostIconAndInfoColor);
downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
@@ -3185,44 +2874,12 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
});
}
- void setBaseView(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,
- ConstraintLayout bottomConstraintLayout,
- MaterialButton upvoteButton,
- TextView scoreTextView,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton, boolean itemViewIsNotCardView) {
- this.itemViewIsNotCardView = itemViewIsNotCardView;
-
- setBaseView(iconGifImageView, subredditTextView, userTextView, stickiedPostImageView, postTimeTextView,
- titleTextView, typeTextView, archivedImageView, lockedImageView, crosspostImageView,
- nsfwTextView, spoilerTextView, flairTextView, bottomConstraintLayout,
- upvoteButton, scoreTextView, downvoteButton, commentsCountButton, saveButton, shareButton);
- }
-
@Override
void markPostRead(Post post, boolean changePostItemColor) {
if (!mAccountName.equals(Account.ANONYMOUS_ACCOUNT) && !post.isRead() && mMarkPostsAsRead) {
post.markAsRead();
if (changePostItemColor) {
- if (itemViewIsNotCardView) {
- itemView.setBackgroundColor(mReadPostCardViewBackgroundColor);
- } else {
- itemView.setBackgroundTintList(ColorStateList.valueOf(mReadPostCardViewBackgroundColor));
- }
+ setItemViewBackgroundColor(true);
titleTextView.setTextColor(mReadPostTitleColor);
if (this instanceof PostTextTypeViewHolder) {
((PostTextTypeViewHolder) this).contentTextView.setTextColor(mReadPostContentColor);
@@ -3237,7 +2894,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
@UnstableApi
- class PostBaseVideoAutoplayViewHolder extends PostBaseViewHolder implements ToroPlayer {
+ abstract class PostBaseVideoAutoplayViewHolder extends PostBaseViewHolder implements ToroPlayer {
VideoAutoplayImpl toroPlayer;
@OptIn(markerClass = UnstableApi.class)
@@ -3248,13 +2905,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- ImageView crosspostImageView,
- ImageView archivedImageView,
- ImageView lockedImageView,
- CustomTextView nsfwTextView,
- CustomTextView spoilerTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
AspectRatioFrameLayout aspectRatioFrameLayout,
GifImageView previewImageView,
ImageView errorLoadingRedgifsImageView,
@@ -3401,6 +3058,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.saveButtonItemPostVideoTypeAutoplay,
binding.shareButtonItemPostVideoTypeAutoplay);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor));
+ }
}
@UnstableApi
@@ -3436,6 +3098,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.saveButtonItemPostVideoTypeAutoplay,
binding.shareButtonItemPostVideoTypeAutoplay);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor));
+ }
}
class PostWithPreviewTypeViewHolder extends PostBaseViewHolder {
@@ -3444,6 +3111,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ProgressBar progressBar;
ImageView videoOrGifIndicator;
TextView loadImageErrorTextView;
+ @Nullable
+ FrameLayout imageWrapperFrameLayout;
AspectRatioGifImageView imageView;
RequestListener<Drawable> glideRequestListener;
@@ -3479,6 +3148,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.progressBarItemPostWithPreview,
binding.videoOrGifIndicatorImageViewItemPostWithPreview,
binding.loadImageErrorTextViewItemPostWithPreview,
+ binding.imageWrapperRelativeLayoutItemPostWithPreview,
binding.imageViewItemPostWithPreview);
}
@@ -3488,13 +3158,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- ImageView archivedImageView,
- ImageView lockedImageView,
- ImageView crosspostImageView,
- CustomTextView nsfwTextView,
- CustomTextView spoilerTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
ConstraintLayout bottomConstraintLayout,
MaterialButton upvoteButton,
TextView scoreTextView,
@@ -3507,6 +3177,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ProgressBar progressBar,
ImageView videoOrGifIndicator,
TextView loadImageErrorTextView,
+ @Nullable FrameLayout imageWrapperFrameLayout,
AspectRatioGifImageView imageView) {
super.setBaseView(
iconGifImageView,
@@ -3535,6 +3206,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
this.progressBar = progressBar;
this.videoOrGifIndicator = videoOrGifIndicator;
this.loadImageErrorTextView = loadImageErrorTextView;
+ this.imageWrapperFrameLayout = imageWrapperFrameLayout;
this.imageView = imageView;
if (mActivity.typeface != null) {
@@ -3587,6 +3259,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
};
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor));
+ }
}
public abstract class PostBaseGalleryTypeViewHolder extends PostBaseViewHolder {
@@ -3605,13 +3282,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- ImageView archivedImageView,
- ImageView lockedImageView,
- ImageView crosspostImageView,
- CustomTextView nsfwTextView,
- CustomTextView spoilerTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
FrameLayout frameLayout,
RecyclerView galleryRecyclerView,
CustomTextView imageIndexTextView,
@@ -3622,8 +3299,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
MaterialButton downvoteButton,
MaterialButton commentsCountButton,
MaterialButton saveButton,
- MaterialButton shareButton,
- boolean itemViewIsNotCardView) {
+ MaterialButton shareButton) {
super(rootView);
setBaseView(
iconGifImageView,
@@ -3645,8 +3321,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
downvoteButton,
commentsCountButton,
saveButton,
- shareButton,
- itemViewIsNotCardView);
+ shareButton);
this.frameLayout = frameLayout;
this.galleryRecyclerView = galleryRecyclerView;
@@ -3798,8 +3473,12 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.downvoteButtonItemPostGalleryType,
binding.commentsCountButtonItemPostGalleryType,
binding.saveButtonItemPostGalleryType,
- binding.shareButtonItemPostGalleryType,
- false);
+ binding.shareButtonItemPostGalleryType);
+ }
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor));
}
}
@@ -3842,13 +3521,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
ImageView stickiedPostImageView,
TextView postTimeTextView,
TextView titleTextView,
- CustomTextView typeTextView,
- ImageView archivedImageView,
- ImageView lockedImageView,
- ImageView crosspostImageView,
- CustomTextView nsfwTextView,
- CustomTextView spoilerTextView,
- CustomTextView flairTextView,
+ @Nullable CustomTextView typeTextView,
+ @Nullable ImageView archivedImageView,
+ @Nullable ImageView lockedImageView,
+ @Nullable ImageView crosspostImageView,
+ @Nullable CustomTextView nsfwTextView,
+ @Nullable CustomTextView spoilerTextView,
+ @Nullable CustomTextView flairTextView,
ConstraintLayout bottomConstraintLayout,
MaterialButton upvoteButton,
TextView scoreTextView,
@@ -3886,6 +3565,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
contentTextView.setTextColor(mPostContentColor);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor));
+ }
}
public class PostCompactBaseViewHolder extends PostViewHolder {
@@ -4108,6 +3792,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
}
@Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
+ }
+
+ @Override
void markPostRead(Post post, boolean changePostItemColor) {
if (!mAccountName.equals(Account.ANONYMOUS_ACCOUNT) && !post.isRead() && mMarkPostsAsRead) {
post.markAsRead();
@@ -4529,6 +4218,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.dividerItemPostCard2VideoAutoplay.setBackgroundColor(mDividerColor);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
+ }
}
@UnstableApi
@@ -4566,13 +4260,17 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.dividerItemPostCard2VideoAutoplay.setBackgroundColor(mDividerColor);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
+ }
}
class PostCard2WithPreviewViewHolder extends PostWithPreviewTypeViewHolder {
PostCard2WithPreviewViewHolder(@NonNull ItemPostCard2WithPreviewBinding binding) {
super(binding.getRoot());
- this.itemViewIsNotCardView = true;
setBaseView(
binding.iconGifImageViewItemPostCard2WithPreview,
binding.subredditNameTextViewItemPostCard2WithPreview,
@@ -4599,10 +4297,16 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.progressBarItemPostCard2WithPreview,
binding.videoOrGifIndicatorImageViewItemPostCard2WithPreview,
binding.loadImageErrorTextViewItemPostCard2WithPreview,
+ null,
binding.imageViewItemPostCard2WithPreview);
binding.dividerItemPostCard2WithPreview.setBackgroundColor(mDividerColor);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
+ }
}
public class PostCard2GalleryTypeViewHolder extends PostBaseGalleryTypeViewHolder {
@@ -4632,17 +4336,20 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.downvoteButtonItemPostCard2GalleryType,
binding.commentsCountButtonItemPostCard2GalleryType,
binding.saveButtonItemPostCard2GalleryType,
- binding.shareButtonItemPostCard2GalleryType,
- true);
+ binding.shareButtonItemPostCard2GalleryType);
binding.dividerItemPostCard2GalleryType.setBackgroundColor(mDividerColor);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
+ }
}
class PostCard2TextTypeViewHolder extends PostTextTypeViewHolder {
PostCard2TextTypeViewHolder(@NonNull ItemPostCard2TextBinding binding) {
super(binding.getRoot());
- itemViewIsNotCardView = true;
setBaseView(
binding.iconGifImageViewItemPostCard2Text,
@@ -4669,238 +4376,15 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.dividerItemPostCard2Text.setBackgroundColor(mDividerColor);
}
- }
-
- public class PostMaterial3CardBaseViewHolder extends PostViewHolder {
- TextView subredditTextView;
- TextView userTextView;
- ImageView stickiedPostImageView;
- TextView postTimeTextView;
- TextView titleTextView;
- ConstraintLayout bottomConstraintLayout;
- Post.Preview preview;
-
- PostMaterial3CardBaseViewHolder(@NonNull View itemView) {
- super(itemView);
- }
-
- void setBaseView(AspectRatioGifImageView iconGifImageView,
- TextView subredditTextView,
- TextView userTextView,
- ImageView stickiedPostImageView,
- TextView postTimeTextView,
- TextView titleTextView,
- ConstraintLayout bottomConstraintLayout,
- MaterialButton upvoteButton,
- TextView scoreTextView,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton) {
- super.setBaseView(iconGifImageView,
- subredditTextView,
- userTextView,
- stickiedPostImageView,
- postTimeTextView,
- titleTextView,
- upvoteButton,
- scoreTextView,
- downvoteButton,
- commentsCountButton,
- saveButton,
- shareButton);
-
- this.subredditTextView = subredditTextView;
- this.userTextView = userTextView;
- this.stickiedPostImageView = stickiedPostImageView;
- this.postTimeTextView = postTimeTextView;
- this.titleTextView = titleTextView;
- this.bottomConstraintLayout = bottomConstraintLayout;
-
- if (mVoteButtonsOnTheRight) {
- ConstraintSet constraintSet = new ConstraintSet();
- constraintSet.clone(bottomConstraintLayout);
- constraintSet.clear(upvoteButton.getId(), ConstraintSet.START);
- constraintSet.clear(scoreTextView.getId(), ConstraintSet.START);
- constraintSet.clear(downvoteButton.getId(), ConstraintSet.START);
- constraintSet.clear(saveButton.getId(), ConstraintSet.END);
- constraintSet.clear(shareButton.getId(), ConstraintSet.END);
- constraintSet.connect(upvoteButton.getId(), ConstraintSet.END, scoreTextView.getId(), ConstraintSet.START);
- constraintSet.connect(scoreTextView.getId(), ConstraintSet.END, downvoteButton.getId(), ConstraintSet.START);
- constraintSet.connect(downvoteButton.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END);
- constraintSet.connect(commentsCountButton.getId(), ConstraintSet.START, saveButton.getId(), ConstraintSet.END);
- constraintSet.connect(commentsCountButton.getId(), ConstraintSet.END, upvoteButton.getId(), ConstraintSet.START);
- constraintSet.connect(saveButton.getId(), ConstraintSet.START, shareButton.getId(), ConstraintSet.END);
- constraintSet.connect(shareButton.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START);
- constraintSet.setHorizontalBias(commentsCountButton.getId(), 0);
- constraintSet.applyTo(bottomConstraintLayout);
- }
-
- itemView.setBackgroundTintList(ColorStateList.valueOf(mFilledCardViewBackgroundColor));
-
- if (mActivity.typeface != null) {
- subredditTextView.setTypeface(mActivity.typeface);
- userTextView.setTypeface(mActivity.typeface);
- postTimeTextView.setTypeface(mActivity.typeface);
- upvoteButton.setTypeface(mActivity.typeface);
- commentsCountButton.setTypeface(mActivity.typeface);
- }
- if (mActivity.titleTypeface != null) {
- titleTextView.setTypeface(mActivity.titleTypeface);
- }
-
- subredditTextView.setTextColor(mSubredditColor);
- userTextView.setTextColor(mUsernameColor);
- postTimeTextView.setTextColor(mSecondaryTextColor);
- titleTextView.setTextColor(mPostTitleColor);
- stickiedPostImageView.setColorFilter(mStickiedPostIconTint, PorterDuff.Mode.SRC_IN);
- upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- scoreTextView.setTextColor(mPostIconAndInfoColor);
- downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- commentsCountButton.setTextColor(mPostIconAndInfoColor);
- commentsCountButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- saveButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- shareButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
- }
@Override
- void markPostRead(Post post, boolean changePostItemColor) {
- if (!mAccountName.equals(Account.ANONYMOUS_ACCOUNT) && !post.isRead() && mMarkPostsAsRead) {
- post.markAsRead();
- if (changePostItemColor) {
- itemView.setBackgroundTintList(ColorStateList.valueOf(mReadPostFilledCardViewBackgroundColor));
- titleTextView.setTextColor(mReadPostTitleColor);
- if (this instanceof PostMaterial3CardTextTypeViewHolder) {
- ((PostMaterial3CardTextTypeViewHolder) this).binding.contentTextViewItemPostCard3TextType.setTextColor(mReadPostContentColor);
- }
- }
- if (mActivity != null && mActivity instanceof MarkPostAsReadInterface) {
- ((MarkPostAsReadInterface) mActivity).markPostAsRead(post);
- mFragment.markPostAsRead(post);
- }
- }
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundColor(isReadPost ? mReadPostCardViewBackgroundColor : mCardViewBackgroundColor);
}
}
@UnstableApi
- class PostMaterial3CardBaseVideoAutoplayViewHolder extends PostMaterial3CardBaseViewHolder implements ToroPlayer {
- VideoAutoplayImpl toroPlayer;
-
- PostMaterial3CardBaseVideoAutoplayViewHolder(View rootView,
- AspectRatioGifImageView iconGifImageView,
- TextView subredditTextView,
- TextView userTextView,
- ImageView stickiedPostImageView,
- TextView postTimeTextView,
- TextView titleTextView,
- AspectRatioFrameLayout aspectRatioFrameLayout,
- GifImageView previewImageView,
- ImageView errorLoadingRedgifsImageView,
- PlayerView videoPlayer,
- ImageView muteButton,
- ImageView fullscreenButton,
- ImageView playPauseButton,
- DefaultTimeBar progressBar,
- ConstraintLayout bottomConstraintLayout,
- MaterialButton upvoteButton,
- TextView scoreTextView,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton) {
- super(rootView);
- setBaseView(
- iconGifImageView,
- subredditTextView,
- userTextView,
- stickiedPostImageView,
- postTimeTextView,
- titleTextView,
- bottomConstraintLayout,
- upvoteButton,
- scoreTextView,
- downvoteButton,
- commentsCountButton,
- saveButton,
- shareButton);
-
- toroPlayer = new VideoAutoplayImpl(rootView, aspectRatioFrameLayout, previewImageView,
- errorLoadingRedgifsImageView, videoPlayer, muteButton, fullscreenButton, playPauseButton,
- progressBar,
- AppCompatResources.getDrawable(mActivity, R.drawable.ic_play_arrow_24dp),
- AppCompatResources.getDrawable(mActivity, R.drawable.ic_pause_24dp)) {
- @Override
- public int getPlayerOrder() {
- return getBindingAdapterPosition();
- }
-
- @Override
- int getAdapterPosition() {
- return getBindingAdapterPosition();
- }
-
- @Override
- Post getPost() {
- return post;
- }
-
- @Override
- void markPostRead(Post post, boolean changePostItemColor) {
- PostMaterial3CardBaseVideoAutoplayViewHolder.this.markPostRead(post, changePostItemColor);
- }
- };
- }
-
- @NonNull
- @Override
- public View getPlayerView() {
- return toroPlayer.getPlayerView();
- }
-
- @NonNull
- @Override
- public PlaybackInfo getCurrentPlaybackInfo() {
- return toroPlayer.getCurrentPlaybackInfo();
- }
-
- @Override
- public void initialize(@NonNull Container container, @NonNull PlaybackInfo playbackInfo) {
- toroPlayer.initialize(container, playbackInfo);
- }
-
- @Override
- public void play() {
- toroPlayer.play();
- }
-
- @Override
- public void pause() {
- toroPlayer.pause();
- }
-
- @Override
- public boolean isPlaying() {
- return toroPlayer.isPlaying();
- }
-
- @Override
- public void release() {
- toroPlayer.release();
- }
-
- @Override
- public boolean wantsToPlay() {
- return toroPlayer.wantsToPlay();
- }
-
- @Override
- public int getPlayerOrder() {
- return toroPlayer.getPlayerOrder();
- }
- }
-
- @UnstableApi
- class PostMaterial3CardVideoAutoplayViewHolder extends PostMaterial3CardBaseVideoAutoplayViewHolder {
+ class PostMaterial3CardVideoAutoplayViewHolder extends PostBaseVideoAutoplayViewHolder {
PostMaterial3CardVideoAutoplayViewHolder(ItemPostCard3VideoTypeAutoplayBinding binding) {
super(binding.getRoot(),
binding.iconGifImageViewItemPostCard3VideoTypeAutoplay,
@@ -4909,6 +4393,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard3VideoTypeAutoplay,
binding.postTimeTextViewItemPostCard3VideoTypeAutoplay,
binding.titleTextViewItemPostCard3VideoTypeAutoplay,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
binding.aspectRatioFrameLayoutItemPostCard3VideoTypeAutoplay,
binding.previewImageViewItemPostCard3VideoTypeAutoplay,
binding.errorLoadingVideoImageViewItemPostCard3VideoTypeAutoplay,
@@ -4925,10 +4416,15 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.saveButtonItemPostCard3VideoTypeAutoplay,
binding.shareButtonItemPostCard3VideoTypeAutoplay);
}
+
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostFilledCardViewBackgroundColor : mFilledCardViewBackgroundColor));
+ }
}
@UnstableApi
- class PostMaterial3CardVideoAutoplayLegacyControllerViewHolder extends PostMaterial3CardBaseVideoAutoplayViewHolder {
+ class PostMaterial3CardVideoAutoplayLegacyControllerViewHolder extends PostBaseVideoAutoplayViewHolder {
PostMaterial3CardVideoAutoplayLegacyControllerViewHolder(ItemPostCard3VideoTypeAutoplayLegacyControllerBinding binding) {
super(binding.getRoot(),
binding.iconGifImageViewItemPostCard3VideoTypeAutoplay,
@@ -4937,6 +4433,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard3VideoTypeAutoplay,
binding.postTimeTextViewItemPostCard3VideoTypeAutoplay,
binding.titleTextViewItemPostCard3VideoTypeAutoplay,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
binding.aspectRatioFrameLayoutItemPostCard3VideoTypeAutoplay,
binding.previewImageViewItemPostCard3VideoTypeAutoplay,
binding.errorLoadingVideoImageViewItemPostCard3VideoTypeAutoplay,
@@ -4953,250 +4456,52 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.saveButtonItemPostCard3VideoTypeAutoplay,
binding.shareButtonItemPostCard3VideoTypeAutoplay);
}
- }
-
- public class PostMaterial3CardWithPreviewViewHolder extends PostMaterial3CardBaseViewHolder {
- ItemPostCard3WithPreviewBinding binding;
- RequestListener<Drawable> glideRequestListener;
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostFilledCardViewBackgroundColor : mFilledCardViewBackgroundColor));
+ }
+ }
+ public class PostMaterial3CardWithPreviewViewHolder extends PostWithPreviewTypeViewHolder {
PostMaterial3CardWithPreviewViewHolder(@NonNull ItemPostCard3WithPreviewBinding binding) {
super(binding.getRoot());
- this.binding = binding;
setBaseView(binding.iconGifImageViewItemPostCard3WithPreview,
binding.subredditNameTextViewItemPostCard3WithPreview,
binding.userTextViewItemPostCard3WithPreview,
binding.stickiedPostImageViewItemPostCard3WithPreview,
binding.postTimeTextViewItemPostCard3WithPreview,
binding.titleTextViewItemPostCard3WithPreview,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
binding.bottomConstraintLayoutItemPostCard3WithPreview,
binding.upvoteButtonItemPostCard3WithPreview,
binding.scoreTextViewItemPostCard3WithPreview,
binding.downvoteButtonItemPostCard3WithPreview,
binding.commentsCountButtonItemPostCard3WithPreview,
binding.saveButtonItemPostCard3WithPreview,
- binding.shareButtonItemPostCard3WithPreview);
-
- if (mActivity.typeface != null) {
- binding.linkTextViewItemPostCard3WithPreview.setTypeface(mActivity.typeface);
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setTypeface(mActivity.typeface);
- }
- binding.linkTextViewItemPostCard3WithPreview.setTextColor(mSecondaryTextColor);
- binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
- binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setColorFilter(mNoPreviewPostTypeIconTint, android.graphics.PorterDuff.Mode.SRC_IN);
- binding.progressBarItemPostCard3WithPreview.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
- binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setColorFilter(mMediaIndicatorIconTint, PorterDuff.Mode.SRC_IN);
- binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview.setBackgroundTintList(ColorStateList.valueOf(mMediaIndicatorBackgroundColor));
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setTextColor(mPrimaryTextColor);
-
- binding.imageViewItemPostCard3WithPreview.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- Post post = getItem(position);
- if (post != null) {
- markPostRead(post, true);
- openMedia(post);
- }
- });
-
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setOnClickListener(view -> {
- binding.progressBarItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setVisibility(View.GONE);
- loadImage(this);
- });
-
- binding.imageViewNoPreviewGalleryItemPostCard3WithPreview.setOnClickListener(view -> {
- binding.imageViewItemPostCard3WithPreview.performClick();
- });
-
- glideRequestListener = new RequestListener<>() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- binding.progressBarItemPostCard3WithPreview.setVisibility(View.GONE);
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setVisibility(View.VISIBLE);
- return false;
- }
-
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- binding.loadImageErrorTextViewItemPostCard3WithPreview.setVisibility(View.GONE);
- binding.progressBarItemPostCard3WithPreview.setVisibility(View.GONE);
- return false;
- }
- };
- }
- }
-
- public class PostMaterial3CardBaseGalleryTypeViewHolder extends PostMaterial3CardBaseViewHolder {
- FrameLayout frameLayout;
- RecyclerView galleryRecyclerView;
- CustomTextView imageIndexTextView;
- ImageView noPreviewImageView;
-
- PostGalleryTypeImageRecyclerViewAdapter adapter;
- private boolean swipeLocked;
-
- PostMaterial3CardBaseGalleryTypeViewHolder(View rootView,
- AspectRatioGifImageView iconGifImageView,
- TextView subredditTextView,
- TextView userTextView,
- ImageView stickiedPostImageView,
- TextView postTimeTextView,
- TextView titleTextView,
- FrameLayout frameLayout,
- RecyclerView galleryRecyclerView,
- CustomTextView imageIndexTextView,
- ImageView noPreviewImageView,
- ConstraintLayout bottomConstraintLayout,
- MaterialButton upvoteButton,
- TextView scoreTextView,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton) {
- super(rootView);
- setBaseView(
- iconGifImageView,
- subredditTextView,
- userTextView,
- stickiedPostImageView,
- postTimeTextView,
- titleTextView,
- bottomConstraintLayout,
- upvoteButton,
- scoreTextView,
- downvoteButton,
- commentsCountButton,
- saveButton,
- shareButton);
-
- 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);
- galleryRecyclerView.setOnTouchListener((v, motionEvent) -> {
- if (motionEvent.getActionMasked() == MotionEvent.ACTION_UP || motionEvent.getActionMasked() == MotionEvent.ACTION_CANCEL) {
- if (mActivity.mSliderPanel != null) {
- mActivity.mSliderPanel.requestDisallowInterceptTouchEvent(false);
- }
-
- if (mActivity.mViewPager2 != null) {
- mActivity.mViewPager2.setUserInputEnabled(true);
- }
- mActivity.unlockSwipeRightToGoBack();
- swipeLocked = false;
- } else {
- if (mActivity.mSliderPanel != null) {
- mActivity.mSliderPanel.requestDisallowInterceptTouchEvent(true);
- }
- if (mActivity.mViewPager2 != null) {
- mActivity.mViewPager2.setUserInputEnabled(false);
- }
- mActivity.lockSwipeRightToGoBack();
- swipeLocked = true;
- }
-
- return false;
- });
- new PagerSnapHelper().attachToRecyclerView(galleryRecyclerView);
- galleryRecyclerView.setRecycledViewPool(mGalleryRecycledViewPool);
- LinearLayoutManagerBugFixed layoutManager = new LinearLayoutManagerBugFixed(mActivity, RecyclerView.HORIZONTAL, false);
- 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) {
- markPostRead(post, true);
- 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) {
-
- }
- });
-
- noPreviewImageView.setOnClickListener(view -> {
- int position = getBindingAdapterPosition();
- if (position < 0) {
- return;
- }
- if (post != null) {
- markPostRead(post, true);
- openMedia(post, 0);
- }
- });
+ binding.shareButtonItemPostCard3WithPreview,
+ binding.linkTextViewItemPostCard3WithPreview,
+ binding.imageViewNoPreviewGalleryItemPostCard3WithPreview,
+ binding.progressBarItemPostCard3WithPreview,
+ binding.videoOrGifIndicatorImageViewItemPostCard3WithPreview,
+ binding.loadImageErrorTextViewItemPostCard3WithPreview,
+ binding.imageWrapperRelativeLayoutItemPostCard3WithPreview,
+ binding.imageViewItemPostCard3WithPreview);
}
- public boolean isSwipeLocked() {
- return swipeLocked;
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostFilledCardViewBackgroundColor : mFilledCardViewBackgroundColor));
}
}
- public class PostMaterial3CardGalleryTypeViewHolder extends PostMaterial3CardBaseGalleryTypeViewHolder {
-
+ public class PostMaterial3CardGalleryTypeViewHolder extends PostBaseGalleryTypeViewHolder {
PostMaterial3CardGalleryTypeViewHolder(ItemPostCard3GalleryTypeBinding binding) {
super(binding.getRoot(),
binding.iconGifImageViewItemPostCard3GalleryType,
@@ -5205,6 +4510,13 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard3GalleryType,
binding.postTimeTextViewItemPostCard3GalleryType,
binding.titleTextViewItemPostCard3GalleryType,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
binding.galleryFrameLayoutItemPostCard3GalleryType,
binding.galleryRecyclerViewItemPostCard3GalleryType,
binding.imageIndexTextViewItemPostCard3GalleryType,
@@ -5217,15 +4529,16 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.saveButtonItemPostCard3GalleryType,
binding.shareButtonItemPostCard3GalleryType);
}
- }
- class PostMaterial3CardTextTypeViewHolder extends PostMaterial3CardBaseViewHolder {
-
- ItemPostCard3TextBinding binding;
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostFilledCardViewBackgroundColor : mFilledCardViewBackgroundColor));
+ }
+ }
+ class PostMaterial3CardTextTypeViewHolder extends PostTextTypeViewHolder {
PostMaterial3CardTextTypeViewHolder(@NonNull ItemPostCard3TextBinding binding) {
super(binding.getRoot());
- this.binding = binding;
setBaseView(
binding.iconGifImageViewItemPostCard3TextType,
binding.subredditNameTextViewItemPostCard3TextType,
@@ -5233,18 +4546,26 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard3TextType,
binding.postTimeTextViewItemPostCard3TextType,
binding.titleTextViewItemPostCard3TextType,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
binding.bottomConstraintLayoutItemPostCard3TextType,
binding.upvoteButtonItemPostCard3TextType,
binding.scoreTextViewItemPostCard3TextType,
binding.downvoteButtonItemPostCard3TextType,
binding.commentsCountButtonItemPostCard3TextType,
binding.saveButtonItemPostCard3TextType,
- binding.shareButtonItemPostCard3TextType);
+ binding.shareButtonItemPostCard3TextType,
+ binding.contentTextViewItemPostCard3TextType);
+ }
- if (mActivity.contentTypeface != null) {
- binding.contentTextViewItemPostCard3TextType.setTypeface(mActivity.titleTypeface);
- }
- binding.contentTextViewItemPostCard3TextType.setTextColor(mPostContentColor);
+ @Override
+ void setItemViewBackgroundColor(boolean isReadPost) {
+ itemView.setBackgroundTintList(ColorStateList.valueOf(isReadPost ? mReadPostFilledCardViewBackgroundColor : mFilledCardViewBackgroundColor));
}
}
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
index 31e80ced..b491fc6e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
@@ -1035,8 +1035,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
@Override
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
if (!(viewHolder instanceof PostRecyclerViewAdapter.PostBaseViewHolder) &&
- !(viewHolder instanceof PostRecyclerViewAdapter.PostCompactBaseViewHolder) &&
- !(viewHolder instanceof PostRecyclerViewAdapter.PostMaterial3CardBaseViewHolder)) {
+ !(viewHolder instanceof PostRecyclerViewAdapter.PostCompactBaseViewHolder)) {
return makeMovementFlags(0, 0);
} else if (viewHolder instanceof PostRecyclerViewAdapter.PostBaseGalleryTypeViewHolder) {
if (((PostRecyclerViewAdapter.PostBaseGalleryTypeViewHolder) viewHolder).isSwipeLocked()) {