aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java1676
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java94
-rw-r--r--app/src/main/res/layout/item_post_detail_gallery.xml131
-rw-r--r--app/src/main/res/layout/item_post_detail_image_and_gif_autoplay.xml121
-rw-r--r--app/src/main/res/layout/item_post_detail_link.xml121
-rw-r--r--app/src/main/res/layout/item_post_detail_no_preview.xml177
-rw-r--r--app/src/main/res/layout/item_post_detail_text.xml117
-rw-r--r--app/src/main/res/layout/item_post_detail_video_and_gif_preview.xml121
-rw-r--r--app/src/main/res/layout/item_post_detail_video_autoplay.xml123
-rw-r--r--app/src/main/res/layout/item_post_detail_video_autoplay_legacy_controller.xml123
10 files changed, 1350 insertions, 1454 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
index 1aad70b1..3867c3c7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
@@ -8,7 +8,6 @@ import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
-import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri;
@@ -20,10 +19,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
-import android.widget.FrameLayout;
import android.widget.ImageView;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -48,6 +44,8 @@ import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.DefaultTimeBar;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.ui.TimeBar;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.button.MaterialButtonToggleGroup;
import com.google.common.collect.ImmutableList;
import com.libRG.CustomTextView;
@@ -57,8 +55,6 @@ import java.util.concurrent.Executor;
import javax.inject.Provider;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import io.noties.markwon.AbstractMarkwonPlugin;
import io.noties.markwon.Markwon;
import io.noties.markwon.MarkwonConfiguration;
@@ -99,6 +95,14 @@ import ml.docilealligator.infinityforreddit.customviews.AspectRatioGifImageView;
import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
import ml.docilealligator.infinityforreddit.customviews.SwipeLockInterface;
import ml.docilealligator.infinityforreddit.customviews.SwipeLockLinearLayoutManager;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailGalleryBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailImageAndGifAutoplayBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailLinkBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailNoPreviewBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailTextBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailVideoAndGifPreviewBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailVideoAutoplayBinding;
+import ml.docilealligator.infinityforreddit.databinding.ItemPostDetailVideoAutoplayLegacyControllerBinding;
import ml.docilealligator.infinityforreddit.fragments.ViewPostDetailFragment;
import ml.docilealligator.infinityforreddit.markdown.MarkdownUtils;
import ml.docilealligator.infinityforreddit.post.Post;
@@ -430,47 +434,52 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
case VIEW_TYPE_POST_DETAIL_VIDEO_AUTOPLAY:
if (mDataSavingMode) {
if (mDisableImagePreview || mOnlyDisablePreviewInVideoAndGifPosts) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailVideoAndGifPreviewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_video_and_gif_preview, parent, false));
+ return new PostDetailVideoAndGifPreviewHolder(ItemPostDetailVideoAndGifPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
+ }
+
+ if (mLegacyAutoplayVideoControllerUI) {
+ return new PostDetailVideoAutoplayLegacyControllerViewHolder(ItemPostDetailVideoAutoplayLegacyControllerBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
+ } else {
+ return new PostDetailVideoAutoplayViewHolder(ItemPostDetailVideoAutoplayBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailVideoAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(mLegacyAutoplayVideoControllerUI ? R.layout.item_post_detail_video_autoplay_legacy_controller : R.layout.item_post_detail_video_autoplay, parent, false));
case VIEW_TYPE_POST_DETAIL_VIDEO_AND_GIF_PREVIEW:
if (mDataSavingMode && (mDisableImagePreview || mOnlyDisablePreviewInVideoAndGifPosts)) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailVideoAndGifPreviewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_video_and_gif_preview, parent, false));
+ return new PostDetailVideoAndGifPreviewHolder(ItemPostDetailVideoAndGifPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
case VIEW_TYPE_POST_DETAIL_IMAGE:
if (mDataSavingMode && mDisableImagePreview) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailImageAndGifAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_image_and_gif_autoplay, parent, false));
+ return new PostDetailImageAndGifAutoplayViewHolder(ItemPostDetailImageAndGifAutoplayBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
case VIEW_TYPE_POST_DETAIL_GIF_AUTOPLAY:
if (mDataSavingMode && (mDisableImagePreview || mOnlyDisablePreviewInVideoAndGifPosts)) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailImageAndGifAutoplayViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_image_and_gif_autoplay, parent, false));
+ return new PostDetailImageAndGifAutoplayViewHolder(ItemPostDetailImageAndGifAutoplayBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
case VIEW_TYPE_POST_DETAIL_LINK:
if (mDataSavingMode && mDisableImagePreview) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailLinkViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_link, parent, false));
+ return new PostDetailLinkViewHolder(ItemPostDetailLinkBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
case VIEW_TYPE_POST_DETAIL_NO_PREVIEW_LINK:
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
case VIEW_TYPE_POST_DETAIL_GALLERY:
if (mDataSavingMode && mDisableImagePreview) {
- return new PostDetailNoPreviewViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_no_preview, parent, false));
+ return new PostDetailNoPreviewViewHolder(ItemPostDetailNoPreviewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
- return new PostDetailGalleryViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_gallery, parent, false));
+ return new PostDetailGalleryViewHolder(ItemPostDetailGalleryBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
default:
- return new PostDetailTextViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post_detail_text, parent, false));
+ return new PostDetailTextViewHolder(ItemPostDetailTextBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (holder instanceof PostDetailBaseViewHolder) {
- ((PostDetailBaseViewHolder) holder).mTitleTextView.setText(mPost.getTitle());
+ ((PostDetailBaseViewHolder) holder).titleTextView.setText(mPost.getTitle());
if (mPost.getSubredditNamePrefixed().startsWith("u/")) {
if (mPost.getAuthorIconUrl() == null) {
String authorName = mPost.isAuthorDeleted() ? mPost.getSubredditNamePrefixed().substring(2) : mPost.getAuthor();
@@ -479,13 +488,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (iconImageUrl == null || iconImageUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
} else {
mGlide.load(iconImageUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
}
if (holder.getBindingAdapterPosition() >= 0) {
@@ -498,11 +507,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
} else {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
}
} else {
if (mPost.getSubredditIconUrl() == null) {
@@ -512,13 +521,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (iconImageUrl == null || iconImageUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
} else {
mGlide.load(iconImageUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
}
mPost.setSubredditIconUrl(iconImageUrl);
@@ -528,147 +537,148 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
} else {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
- .into(((PostDetailBaseViewHolder) holder).mIconGifImageView);
+ .into(((PostDetailBaseViewHolder) holder).iconGifImageView);
}
}
if (mPost.getAuthorFlairHTML() != null && !mPost.getAuthorFlairHTML().equals("")) {
- ((PostDetailBaseViewHolder) holder).mAuthorFlairTextView.setVisibility(View.VISIBLE);
- Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).mAuthorFlairTextView, mPost.getAuthorFlairHTML(), true);
+ ((PostDetailBaseViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
+ Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).authorFlairTextView, mPost.getAuthorFlairHTML(), true);
} else if (mPost.getAuthorFlair() != null && !mPost.getAuthorFlair().equals("")) {
- ((PostDetailBaseViewHolder) holder).mAuthorFlairTextView.setVisibility(View.VISIBLE);
- ((PostDetailBaseViewHolder) holder).mAuthorFlairTextView.setText(mPost.getAuthorFlair());
+ ((PostDetailBaseViewHolder) holder).authorFlairTextView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).authorFlairTextView.setText(mPost.getAuthorFlair());
}
switch (mPost.getVoteType()) {
case 1:
- //Upvote
- ((PostDetailBaseViewHolder) holder).mUpvoteButton.setColorFilter(mUpvotedColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setTextColor(mUpvotedColor);
+ //Upvoted
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setTextColor(mUpvotedColor);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
break;
case -1:
- //Downvote
- ((PostDetailBaseViewHolder) holder).mDownvoteButton.setColorFilter(mDownvotedColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setTextColor(mDownvotedColor);
+ //Downvoted
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp);
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor));
break;
case 0:
- ((PostDetailBaseViewHolder) holder).mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setTextColor(mPostIconAndInfoColor);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setTextColor(mPostIconAndInfoColor);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
if (mPost.isArchived()) {
- ((PostDetailBaseViewHolder) holder).mUpvoteButton
- .setColorFilter(mVoteAndReplyUnavailableVoteButtonColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mDownvoteButton
- .setColorFilter(mVoteAndReplyUnavailableVoteButtonColor, PorterDuff.Mode.SRC_IN);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setBackgroundTintList(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setBackgroundTintList(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
}
if (mPost.isCrosspost()) {
- ((PostDetailBaseViewHolder) holder).mCrosspostImageView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).crosspostImageView.setVisibility(View.VISIBLE);
}
if (!mHideSubredditAndUserPrefix) {
- ((PostDetailBaseViewHolder) holder).mSubredditTextView.setText("r/" + mPost.getSubredditName());
- ((PostDetailBaseViewHolder) holder).mUserTextView.setText(mPost.getAuthorNamePrefixed());
+ ((PostDetailBaseViewHolder) holder).subredditTextView.setText("r/" + mPost.getSubredditName());
+ ((PostDetailBaseViewHolder) holder).userTextView.setText(mPost.getAuthorNamePrefixed());
} else {
- ((PostDetailBaseViewHolder) holder).mSubredditTextView.setText(mPost.getSubredditName());
- ((PostDetailBaseViewHolder) holder).mUserTextView.setText(mPost.getAuthor());
+ ((PostDetailBaseViewHolder) holder).subredditTextView.setText(mPost.getSubredditName());
+ ((PostDetailBaseViewHolder) holder).userTextView.setText(mPost.getAuthor());
}
if (mPost.isModerator()) {
- ((PostDetailBaseViewHolder) holder).mUserTextView.setTextColor(mModeratorColor);
+ ((PostDetailBaseViewHolder) holder).userTextView.setTextColor(mModeratorColor);
Drawable moderatorDrawable = Utils.getTintedDrawable(mActivity, R.drawable.ic_verified_user_14dp, mModeratorColor);
- ((PostDetailBaseViewHolder) holder).mUserTextView.setCompoundDrawablesWithIntrinsicBounds(
+ ((PostDetailBaseViewHolder) holder).userTextView.setCompoundDrawablesWithIntrinsicBounds(
moderatorDrawable, null, null, null);
}
if (mShowElapsedTime) {
- ((PostDetailBaseViewHolder) holder).mPostTimeTextView.setText(
+ ((PostDetailBaseViewHolder) holder).postTimeTextView.setText(
Utils.getElapsedTime(mActivity, mPost.getPostTimeMillis()));
} else {
- ((PostDetailBaseViewHolder) holder).mPostTimeTextView.setText(Utils.getFormattedTime(mLocale, mPost.getPostTimeMillis(), mTimeFormatPattern));
+ ((PostDetailBaseViewHolder) holder).postTimeTextView.setText(Utils.getFormattedTime(mLocale, mPost.getPostTimeMillis(), mTimeFormatPattern));
}
if (mPost.isArchived()) {
- ((PostDetailBaseViewHolder) holder).mArchivedImageView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).archivedImageView.setVisibility(View.VISIBLE);
}
if (mPost.isLocked()) {
- ((PostDetailBaseViewHolder) holder).mLockedImageView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).lockedImageView.setVisibility(View.VISIBLE);
}
if (mPost.isSpoiler()) {
- ((PostDetailBaseViewHolder) holder).mSpoilerTextView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).spoilerTextView.setVisibility(View.VISIBLE);
}
if (!mHidePostFlair && mPost.getFlair() != null && !mPost.getFlair().equals("")) {
- ((PostDetailBaseViewHolder) holder).mFlairTextView.setVisibility(View.VISIBLE);
- Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).mFlairTextView, mPost.getFlair(), false);
+ ((PostDetailBaseViewHolder) holder).flairTextView.setVisibility(View.VISIBLE);
+ Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).flairTextView, mPost.getFlair(), false);
}
if (!mHideTheNumberOfAwards && mPost.getAwards() != null && !mPost.getAwards().equals("")) {
- ((PostDetailBaseViewHolder) holder).mAwardsTextView.setVisibility(View.VISIBLE);
- Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).mAwardsTextView, mPost.getAwards(), true);
+ ((PostDetailBaseViewHolder) holder).awardsTextView.setVisibility(View.VISIBLE);
+ Utils.setHTMLWithImageToTextView(((PostDetailBaseViewHolder) holder).awardsTextView, mPost.getAwards(), true);
}
if (mHideUpvoteRatio) {
- ((PostDetailBaseViewHolder) holder).mUpvoteRatioTextView.setVisibility(View.GONE);
+ ((PostDetailBaseViewHolder) holder).upvoteRatioTextView.setVisibility(View.GONE);
} else {
- ((PostDetailBaseViewHolder) holder).mUpvoteRatioTextView.setText(mPost.getUpvoteRatio() + "%");
+ ((PostDetailBaseViewHolder) holder).upvoteRatioTextView.setText(mPost.getUpvoteRatio() + "%");
}
if (mPost.isNSFW()) {
- ((PostDetailBaseViewHolder) holder).mNSFWTextView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).nsfwTextView.setVisibility(View.VISIBLE);
} else {
- ((PostDetailBaseViewHolder) holder).mNSFWTextView.setVisibility(View.GONE);
+ ((PostDetailBaseViewHolder) holder).nsfwTextView.setVisibility(View.GONE);
}
if (!mHideTheNumberOfVotes) {
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, mPost.getScore() + mPost.getVoteType()));
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, mPost.getScore() + mPost.getVoteType()));
} else {
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setText(mActivity.getString(R.string.vote));
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setText(mActivity.getString(R.string.vote));
}
- ((PostDetailBaseViewHolder) holder).commentsCountTextView.setText(Integer.toString(mPost.getNComments()));
+ ((PostDetailBaseViewHolder) holder).commentsCountButton.setText(Integer.toString(mPost.getNComments()));
if (mPost.isSaved()) {
- ((PostDetailBaseViewHolder) holder).mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
+ ((PostDetailBaseViewHolder) holder).saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
} else {
- ((PostDetailBaseViewHolder) holder).mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
+ ((PostDetailBaseViewHolder) holder).saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
}
if (mPost.getSelfText() != null && !mPost.getSelfText().equals("")) {
- ((PostDetailBaseViewHolder) holder).mContentMarkdownView.setVisibility(View.VISIBLE);
- ((PostDetailBaseViewHolder) holder).mContentMarkdownView.setAdapter(mMarkwonAdapter);
+ ((PostDetailBaseViewHolder) holder).contentMarkdownView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseViewHolder) holder).contentMarkdownView.setAdapter(mMarkwonAdapter);
mMarkwonAdapter.setMarkdown(mPostDetailMarkwon, mPost.getSelfText());
// noinspection NotifyDataSetChanged
mMarkwonAdapter.notifyDataSetChanged();
}
- if (holder instanceof PostDetailVideoAutoplayViewHolder) {
- ((PostDetailVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.VISIBLE);
+ if (holder instanceof PostDetailBaseVideoAutoplayViewHolder) {
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.VISIBLE);
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
if (preview != null) {
- ((PostDetailVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
- mGlide.load(preview.getPreviewUrl()).centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailVideoAutoplayViewHolder) holder).previewImageView);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
+ mGlide.load(preview.getPreviewUrl()).centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailBaseVideoAutoplayViewHolder) holder).previewImageView);
} else {
- ((PostDetailVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio(1);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio(1);
}
- if (!((PostDetailVideoAutoplayViewHolder) holder).isManuallyPaused) {
- ((PostDetailVideoAutoplayViewHolder) holder).setVolume((mMuteAutoplayingVideos || (mPost.isNSFW() && mMuteNSFWVideo)) ? 0f : 1f);
+ if (!((PostDetailBaseVideoAutoplayViewHolder) holder).isManuallyPaused) {
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).setVolume((mMuteAutoplayingVideos || (mPost.isNSFW() && mMuteNSFWVideo)) ? 0f : 1f);
}
if (mPost.isGfycat() || mPost.isRedgifs() && !mPost.isLoadGfycatOrStreamableVideoSuccess()) {
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall =
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall =
mPost.isGfycat() ? mGfycatRetrofit.create(GfycatAPI.class).getGfycatData(mPost.getGfycatId()) :
mRedgifsRetrofit.create(RedgifsAPI.class).getRedgifsData(APIUtils.getRedgifsOAuthHeader(mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.REDGIFS_ACCESS_TOKEN, "")), mPost.getGfycatId(), APIUtils.USER_AGENT);
FetchGfycatOrRedgifsVideoLinks.fetchGfycatOrRedgifsVideoLinksInRecyclerViewAdapter(mExecutor, new Handler(),
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall,
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall,
mPost.isGfycat(), mAutomaticallyTryRedgifs,
new FetchGfycatOrRedgifsVideoLinks.FetchGfycatOrRedgifsVideoLinksListener() {
@Override
@@ -676,19 +686,19 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mPost.setVideoDownloadUrl(mp4);
mPost.setVideoUrl(mp4);
mPost.setLoadGfyOrStreamableVideoSuccess(true);
- ((PostDetailVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
}
@Override
public void failed(int errorCode) {
- ((PostDetailVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.VISIBLE);
}
});
} else if(mPost.isStreamable() && !mPost.isLoadGfycatOrStreamableVideoSuccess()) {
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall =
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall =
mStreamableApiProvider.get().getStreamableData(mPost.getStreamableShortCode());
FetchStreamableVideo.fetchStreamableVideoInRecyclerViewAdapter(mExecutor, new Handler(),
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall,
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall,
new FetchStreamableVideo.FetchStreamableVideoListener() {
@Override
public void success(StreamableVideo streamableVideo) {
@@ -696,36 +706,36 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mPost.setVideoDownloadUrl(media.url);
mPost.setVideoUrl(media.url);
mPost.setLoadGfyOrStreamableVideoSuccess(true);
- ((PostDetailVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
}
@Override
public void failed() {
- ((PostDetailVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.VISIBLE);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.VISIBLE);
}
});
} else {
- ((PostDetailVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(mPost.getVideoUrl()));
}
} else if (holder instanceof PostDetailVideoAndGifPreviewHolder) {
if (!mHidePostType) {
if (mPost.getPostType() == Post.GIF_TYPE) {
- ((PostDetailVideoAndGifPreviewHolder) holder).mTypeTextView.setText(mActivity.getString(R.string.gif));
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.typeTextViewItemPostDetailVideoAndGifPreview.setText(mActivity.getString(R.string.gif));
} else {
- ((PostDetailVideoAndGifPreviewHolder) holder).mTypeTextView.setText(mActivity.getString(R.string.video));
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.typeTextViewItemPostDetailVideoAndGifPreview.setText(mActivity.getString(R.string.video));
}
}
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
if (preview != null) {
- ((PostDetailVideoAndGifPreviewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.imageViewItemPostDetailVideoAndGifPreview.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
loadImage((PostDetailVideoAndGifPreviewHolder) holder, preview);
}
} else if (holder instanceof PostDetailImageAndGifAutoplayViewHolder) {
if (!mHidePostType) {
if (mPost.getPostType() == Post.IMAGE_TYPE) {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mTypeTextView.setText(R.string.image);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.typeTextViewItemPostDetailImageAndGifAutoplay.setText(R.string.image);
} else {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mTypeTextView.setText(R.string.gif);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.typeTextViewItemPostDetailImageAndGifAutoplay.setText(R.string.gif);
}
}
@@ -733,66 +743,66 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (preview != null) {
if (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0) {
int height = (int) (400 * mScale);
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.getLayoutParams().height = height;
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay.setScaleType(ImageView.ScaleType.CENTER_CROP);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay.getLayoutParams().height = height;
} else {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
}
loadImage((PostDetailImageAndGifAutoplayViewHolder) holder, preview);
}
} else if (holder instanceof PostDetailLinkViewHolder) {
String domain = Uri.parse(mPost.getUrl()).getHost();
- ((PostDetailLinkViewHolder) holder).mLinkTextView.setText(domain);
+ ((PostDetailLinkViewHolder) holder).binding.linkTextViewItemPostDetailLink.setText(domain);
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
if (preview != null) {
- ((PostDetailLinkViewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
+ ((PostDetailLinkViewHolder) holder).binding.imageViewItemPostDetailLink.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
loadImage((PostDetailLinkViewHolder) holder, preview);
}
} else if (holder instanceof PostDetailNoPreviewViewHolder) {
if (mPost.getPostType() == Post.LINK_TYPE || mPost.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
if (!mHidePostType) {
- ((PostDetailNoPreviewViewHolder) holder).mTypeTextView.setText(R.string.link);
+ ((PostDetailNoPreviewViewHolder) holder).binding.typeTextViewItemPostDetailNoPreview.setText(R.string.link);
}
String noPreviewLinkDomain = Uri.parse(mPost.getUrl()).getHost();
- ((PostDetailNoPreviewViewHolder) holder).mLinkTextView.setVisibility(View.VISIBLE);
- ((PostDetailNoPreviewViewHolder) holder).mLinkTextView.setText(noPreviewLinkDomain);
- ((PostDetailNoPreviewViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_link);
+ ((PostDetailNoPreviewViewHolder) holder).binding.linkTextViewItemPostDetailNoPreview.setVisibility(View.VISIBLE);
+ ((PostDetailNoPreviewViewHolder) holder).binding.linkTextViewItemPostDetailNoPreview.setText(noPreviewLinkDomain);
+ ((PostDetailNoPreviewViewHolder) holder).binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setImageResource(R.drawable.ic_link);
} else {
- ((PostDetailNoPreviewViewHolder) holder).mLinkTextView.setVisibility(View.GONE);
+ ((PostDetailNoPreviewViewHolder) holder).binding.linkTextViewItemPostDetailNoPreview.setVisibility(View.GONE);
switch (mPost.getPostType()) {
case Post.VIDEO_TYPE:
if (!mHidePostType) {
- ((PostDetailNoPreviewViewHolder) holder).mTypeTextView.setText(R.string.video);
+ ((PostDetailNoPreviewViewHolder) holder).binding.typeTextViewItemPostDetailNoPreview.setText(R.string.video);
}
- ((PostDetailNoPreviewViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_outline_video_24dp);
+ ((PostDetailNoPreviewViewHolder) holder).binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setImageResource(R.drawable.ic_outline_video_24dp);
break;
case Post.IMAGE_TYPE:
if (!mHidePostType) {
- ((PostDetailNoPreviewViewHolder) holder).mTypeTextView.setText(R.string.image);
+ ((PostDetailNoPreviewViewHolder) holder).binding.typeTextViewItemPostDetailNoPreview.setText(R.string.image);
}
- ((PostDetailNoPreviewViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_image_24dp);
+ ((PostDetailNoPreviewViewHolder) holder).binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setImageResource(R.drawable.ic_image_24dp);
break;
case Post.GIF_TYPE:
if (!mHidePostType) {
- ((PostDetailNoPreviewViewHolder) holder).mTypeTextView.setText(R.string.gif);
+ ((PostDetailNoPreviewViewHolder) holder).binding.typeTextViewItemPostDetailNoPreview.setText(R.string.gif);
}
- ((PostDetailNoPreviewViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_image_24dp);
+ ((PostDetailNoPreviewViewHolder) holder).binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setImageResource(R.drawable.ic_image_24dp);
break;
case Post.GALLERY_TYPE:
if (!mHidePostType) {
- ((PostDetailNoPreviewViewHolder) holder).mTypeTextView.setText(R.string.gallery);
+ ((PostDetailNoPreviewViewHolder) holder).binding.typeTextViewItemPostDetailNoPreview.setText(R.string.gallery);
}
- ((PostDetailNoPreviewViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_gallery_24dp);
+ ((PostDetailNoPreviewViewHolder) holder).binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setImageResource(R.drawable.ic_gallery_24dp);
break;
}
}
} else if (holder instanceof PostDetailGalleryViewHolder) {
if (mDataSavingMode && mDisableImagePreview) {
- ((PostDetailGalleryViewHolder) holder).mNoPreviewPostTypeImageView.setVisibility(View.VISIBLE);
- ((PostDetailGalleryViewHolder) holder).mNoPreviewPostTypeImageView.setImageResource(R.drawable.ic_gallery_24dp);
+ ((PostDetailGalleryViewHolder) holder).binding.noPreviewPostTypeImageViewItemPostDetailGallery.setVisibility(View.VISIBLE);
+ ((PostDetailGalleryViewHolder) holder).binding.noPreviewPostTypeImageViewItemPostDetailGallery.setImageResource(R.drawable.ic_gallery_24dp);
} else {
- ((PostDetailGalleryViewHolder) holder).galleryFrameLayout.setVisibility(View.VISIBLE);
- ((PostDetailGalleryViewHolder) holder).imageIndexTextView.setText(mActivity.getString(R.string.image_index_in_gallery, 1, mPost.getGallery().size()));
+ ((PostDetailGalleryViewHolder) holder).binding.galleryFrameLayoutItemPostDetailGallery.setVisibility(View.VISIBLE);
+ ((PostDetailGalleryViewHolder) holder).binding.imageIndexTextViewItemPostDetailGallery.setText(mActivity.getString(R.string.image_index_in_gallery, 1, mPost.getGallery().size()));
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
if (preview != null) {
if (preview.getPreviewWidth() <= 0 || preview.getPreviewHeight() <= 0) {
@@ -845,11 +855,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
.listener(new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageErrorTextView.setVisibility(View.VISIBLE);
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageErrorTextView.setOnClickListener(view -> {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageProgressBar.setVisibility(View.VISIBLE);
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageErrorTextView.setVisibility(View.GONE);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.progressBarItemPostDetailImageAndGifAutoplay.setVisibility(View.GONE);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailImageAndGifAutoplay.setVisibility(View.VISIBLE);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailImageAndGifAutoplay.setOnClickListener(view -> {
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.progressBarItemPostDetailImageAndGifAutoplay.setVisibility(View.VISIBLE);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailImageAndGifAutoplay.setVisibility(View.GONE);
loadImage(holder, preview);
});
return false;
@@ -857,26 +867,26 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- ((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadWrapper.setVisibility(View.GONE);
+ ((PostDetailImageAndGifAutoplayViewHolder) holder).binding.loadWrapperItemPostDetailImageAndGifAutoplay.setVisibility(View.GONE);
return false;
}
});
if (blurImage) {
- imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
+ imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).into(((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay);
} else {
- imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
+ imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay);
}
} else if (holder instanceof PostDetailVideoAndGifPreviewHolder) {
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(preview.getPreviewUrl())
.listener(new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageErrorTextView.setVisibility(View.VISIBLE);
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageErrorTextView.setOnClickListener(view -> {
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageProgressBar.setVisibility(View.VISIBLE);
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageErrorTextView.setVisibility(View.GONE);
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.progressBarItemPostDetailVideoAndGifPreview.setVisibility(View.GONE);
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.loadImageErrorTextViewItemPostDetailVideoAndGifPreview.setVisibility(View.VISIBLE);
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.loadImageErrorTextViewItemPostDetailVideoAndGifPreview.setOnClickListener(view -> {
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.progressBarItemPostDetailVideoAndGifPreview.setVisibility(View.VISIBLE);
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.loadImageErrorTextViewItemPostDetailVideoAndGifPreview.setVisibility(View.GONE);
loadImage(holder, preview);
});
return false;
@@ -884,27 +894,27 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- ((PostDetailVideoAndGifPreviewHolder) holder).mLoadWrapper.setVisibility(View.GONE);
+ ((PostDetailVideoAndGifPreviewHolder) holder).binding.loadWrapperItemPostDetailVideoAndGifPreview.setVisibility(View.GONE);
return false;
}
});
if ((mPost.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit())) || (mPost.isSpoiler() && mNeedBlurSpoiler)) {
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
- .into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
+ .into(((PostDetailVideoAndGifPreviewHolder) holder).binding.imageViewItemPostDetailVideoAndGifPreview);
} else {
- imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
+ imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailVideoAndGifPreviewHolder) holder).binding.imageViewItemPostDetailVideoAndGifPreview);
}
} else if (holder instanceof PostDetailLinkViewHolder) {
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(preview.getPreviewUrl())
.listener(new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- ((PostDetailLinkViewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
- ((PostDetailLinkViewHolder) holder).mLoadImageErrorTextView.setVisibility(View.VISIBLE);
- ((PostDetailLinkViewHolder) holder).mLoadImageErrorTextView.setOnClickListener(view -> {
- ((PostDetailLinkViewHolder) holder).mLoadImageProgressBar.setVisibility(View.VISIBLE);
- ((PostDetailLinkViewHolder) holder).mLoadImageErrorTextView.setVisibility(View.GONE);
+ ((PostDetailLinkViewHolder) holder).binding.progressBarItemPostDetailLink.setVisibility(View.GONE);
+ ((PostDetailLinkViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailLink.setVisibility(View.VISIBLE);
+ ((PostDetailLinkViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailLink.setOnClickListener(view -> {
+ ((PostDetailLinkViewHolder) holder).binding.progressBarItemPostDetailLink.setVisibility(View.VISIBLE);
+ ((PostDetailLinkViewHolder) holder).binding.loadImageErrorTextViewItemPostDetailLink.setVisibility(View.GONE);
loadImage(holder, preview);
});
return false;
@@ -912,16 +922,16 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- ((PostDetailLinkViewHolder) holder).mLoadWrapper.setVisibility(View.GONE);
+ ((PostDetailLinkViewHolder) holder).binding.loadWrapperItemPostDetailLink.setVisibility(View.GONE);
return false;
}
});
if ((mPost.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit())) || (mPost.isSpoiler() && mNeedBlurSpoiler)) {
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
- .into(((PostDetailLinkViewHolder) holder).mImageView);
+ .into(((PostDetailLinkViewHolder) holder).binding.imageViewItemPostDetailLink);
} else {
- imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailLinkViewHolder) holder).mImageView);
+ imageRequestBuilder.centerInside().downsample(mSaveMemoryCenterInsideDownsampleStrategy).into(((PostDetailLinkViewHolder) holder).binding.imageViewItemPostDetailLink);
}
}
}
@@ -952,15 +962,15 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (viewHolder instanceof PostDetailBaseViewHolder) {
if (direction == ItemTouchHelper.LEFT || direction == ItemTouchHelper.START) {
if (swipeLeftAction == SharedPreferencesUtils.SWIPE_ACITON_UPVOTE) {
- ((PostDetailBaseViewHolder) viewHolder).mUpvoteButton.performClick();
+ ((PostDetailBaseViewHolder) viewHolder).upvoteButton.performClick();
} else if (swipeLeftAction == SharedPreferencesUtils.SWIPE_ACITON_DOWNVOTE) {
- ((PostDetailBaseViewHolder) viewHolder).mDownvoteButton.performClick();
+ ((PostDetailBaseViewHolder) viewHolder).downvoteButton.performClick();
}
} else {
if (swipeRightAction == SharedPreferencesUtils.SWIPE_ACITON_UPVOTE) {
- ((PostDetailBaseViewHolder) viewHolder).mUpvoteButton.performClick();
+ ((PostDetailBaseViewHolder) viewHolder).upvoteButton.performClick();
} else if (swipeRightAction == SharedPreferencesUtils.SWIPE_ACITON_DOWNVOTE) {
- ((PostDetailBaseViewHolder) viewHolder).mDownvoteButton.performClick();
+ ((PostDetailBaseViewHolder) viewHolder).downvoteButton.performClick();
}
}
}
@@ -984,35 +994,37 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
if (holder instanceof PostDetailBaseViewHolder) {
- ((PostDetailBaseViewHolder) holder).mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mScoreTextView.setTextColor(mPostIconAndInfoColor);
- ((PostDetailBaseViewHolder) holder).mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- ((PostDetailBaseViewHolder) holder).mFlairTextView.setVisibility(View.GONE);
- ((PostDetailBaseViewHolder) holder).mSpoilerTextView.setVisibility(View.GONE);
- ((PostDetailBaseViewHolder) holder).mNSFWTextView.setVisibility(View.GONE);
- ((PostDetailBaseViewHolder) holder).mContentMarkdownView.setVisibility(View.GONE);
-
- if (holder instanceof PostDetailVideoAutoplayViewHolder) {
- if (((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall != null && !((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall.isCanceled()) {
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall.cancel();
- ((PostDetailVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall = null;
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setTextColor(mPostIconAndInfoColor);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ ((PostDetailBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ ((PostDetailBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ ((PostDetailBaseViewHolder) holder).flairTextView.setVisibility(View.GONE);
+ ((PostDetailBaseViewHolder) holder).spoilerTextView.setVisibility(View.GONE);
+ ((PostDetailBaseViewHolder) holder).nsfwTextView.setVisibility(View.GONE);
+ ((PostDetailBaseViewHolder) holder).contentMarkdownView.setVisibility(View.GONE);
+
+ if (holder instanceof PostDetailBaseVideoAutoplayViewHolder) {
+ if (((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall != null && !((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall.isCanceled()) {
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall.cancel();
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).fetchGfycatOrStreamableVideoCall = null;
}
- ((PostDetailVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.GONE);
- ((PostDetailVideoAutoplayViewHolder) holder).muteButton.setVisibility(View.GONE);
- if (!((PostDetailVideoAutoplayViewHolder) holder).isManuallyPaused) {
- ((PostDetailVideoAutoplayViewHolder) holder).resetVolume();
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).mErrorLoadingGfycatImageView.setVisibility(View.GONE);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).muteButton.setVisibility(View.GONE);
+ if (!((PostDetailBaseVideoAutoplayViewHolder) holder).isManuallyPaused) {
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).resetVolume();
}
- mGlide.clear(((PostDetailVideoAutoplayViewHolder) holder).previewImageView);
- ((PostDetailVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.GONE);
+ mGlide.clear(((PostDetailBaseVideoAutoplayViewHolder) holder).previewImageView);
+ ((PostDetailBaseVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.GONE);
} else if (holder instanceof PostDetailVideoAndGifPreviewHolder) {
- mGlide.clear(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
+ mGlide.clear(((PostDetailVideoAndGifPreviewHolder) holder).binding.imageViewItemPostDetailVideoAndGifPreview);
} else if (holder instanceof PostDetailImageAndGifAutoplayViewHolder) {
- mGlide.clear(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
+ mGlide.clear(((PostDetailImageAndGifAutoplayViewHolder) holder).binding.imageViewItemPostDetailImageAndGifAutoplay);
} else if (holder instanceof PostDetailLinkViewHolder) {
- mGlide.clear(((PostDetailLinkViewHolder) holder).mImageView);
+ mGlide.clear(((PostDetailLinkViewHolder) holder).binding.imageViewItemPostDetailLink);
} else if (holder instanceof PostDetailGalleryViewHolder) {
- ((PostDetailGalleryViewHolder) holder).galleryFrameLayout.setVisibility(View.GONE);
- ((PostDetailGalleryViewHolder) holder).mNoPreviewPostTypeImageView.setVisibility(View.GONE);
+ ((PostDetailGalleryViewHolder) holder).binding.galleryFrameLayoutItemPostDetailGallery.setVisibility(View.GONE);
+ ((PostDetailGalleryViewHolder) holder).binding.noPreviewPostTypeImageViewItemPostDetailGallery.setVisibility(View.GONE);
}
}
}
@@ -1043,84 +1055,82 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
public class PostDetailBaseViewHolder extends RecyclerView.ViewHolder {
- AspectRatioGifImageView mIconGifImageView;
- TextView mSubredditTextView;
- TextView mUserTextView;
- TextView mAuthorFlairTextView;
- TextView mPostTimeTextView;
- TextView mTitleTextView;
- CustomTextView mTypeTextView;
- ImageView mCrosspostImageView;
- ImageView mArchivedImageView;
- ImageView mLockedImageView;
- CustomTextView mNSFWTextView;
- CustomTextView mSpoilerTextView;
- CustomTextView mFlairTextView;
- TextView mAwardsTextView;
- TextView mUpvoteRatioTextView;
- RecyclerView mContentMarkdownView;
- ConstraintLayout mBottomConstraintLayout;
- ImageView mUpvoteButton;
- TextView mScoreTextView;
- ImageView mDownvoteButton;
- TextView commentsCountTextView;
- ImageView mSaveButton;
- ImageView mShareButton;
+ AspectRatioGifImageView iconGifImageView;
+ TextView subredditTextView;
+ TextView userTextView;
+ TextView authorFlairTextView;
+ TextView postTimeTextView;
+ TextView titleTextView;
+ CustomTextView typeTextView;
+ ImageView crosspostImageView;
+ ImageView archivedImageView;
+ ImageView lockedImageView;
+ CustomTextView nsfwTextView;
+ CustomTextView spoilerTextView;
+ CustomTextView flairTextView;
+ TextView awardsTextView;
+ TextView upvoteRatioTextView;
+ RecyclerView contentMarkdownView;
+ ConstraintLayout bottomConstraintLayout;
+ MaterialButton upvoteButton;
+ MaterialButton downvoteButton;
+ MaterialButton commentsCountButton;
+ MaterialButton saveButton;
+ MaterialButton shareButton;
PostDetailBaseViewHolder(@NonNull View itemView) {
super(itemView);
}
- void setBaseView(AspectRatioGifImageView mIconGifImageView,
- TextView mSubredditTextView,
- TextView mUserTextView,
- TextView mAuthorFlairTextView,
- TextView mPostTimeTextView,
- TextView mTitleTextView,
- CustomTextView mTypeTextView,
- ImageView mCrosspostImageView,
- ImageView mArchivedImageView,
- ImageView mLockedImageView,
- CustomTextView mNSFWTextView,
- CustomTextView mSpoilerTextView,
- CustomTextView mFlairTextView,
- TextView mAwardsTextView,
- TextView mUpvoteRatioTextView,
- RecyclerView mContentMarkdownView,
- ConstraintLayout mBottomConstraintLayout,
- ImageView mUpvoteButton,
- TextView mScoreTextView,
- ImageView mDownvoteButton,
- TextView commentsCountTextView,
- ImageView mSaveButton,
- ImageView mShareButton) {
- this.mIconGifImageView = mIconGifImageView;
- this.mSubredditTextView = mSubredditTextView;
- this.mUserTextView = mUserTextView;
- this.mAuthorFlairTextView = mAuthorFlairTextView;
- this.mPostTimeTextView = mPostTimeTextView;
- this.mTitleTextView = mTitleTextView;
- this.mTypeTextView = mTypeTextView;
- this.mCrosspostImageView = mCrosspostImageView;
- this.mArchivedImageView = mArchivedImageView;
- this.mLockedImageView = mLockedImageView;
- this.mNSFWTextView = mNSFWTextView;
- this.mSpoilerTextView = mSpoilerTextView;
- this.mFlairTextView = mFlairTextView;
- this.mAwardsTextView = mAwardsTextView;
- this.mUpvoteRatioTextView = mUpvoteRatioTextView;
- this.mContentMarkdownView = mContentMarkdownView;
- this.mBottomConstraintLayout = mBottomConstraintLayout;
- this.mUpvoteButton = mUpvoteButton;
- this.mScoreTextView = mScoreTextView;
- this.mDownvoteButton = mDownvoteButton;
- this.commentsCountTextView = commentsCountTextView;
- this.mSaveButton = mSaveButton;
- this.mShareButton = mShareButton;
-
- mIconGifImageView.setOnClickListener(view -> mSubredditTextView.performClick());
-
- mSubredditTextView.setOnClickListener(view -> {
+ void setBaseView(AspectRatioGifImageView iconGifImageView,
+ TextView subredditTextView,
+ TextView userTextView,
+ TextView authorFlairTextView,
+ TextView postTimeTextView,
+ TextView titleTextView,
+ CustomTextView typeTextView,
+ ImageView crosspostImageView,
+ ImageView archivedImageView,
+ ImageView lockedImageView,
+ CustomTextView nSFWTextView,
+ CustomTextView spoilerTextView,
+ CustomTextView flairTextView,
+ TextView awardsTextView,
+ TextView upvoteRatioTextView,
+ RecyclerView contentMarkdownView,
+ ConstraintLayout bottomConstraintLayout,
+ MaterialButtonToggleGroup voteButtonToggleGroup,
+ MaterialButton upvoteButton,
+ MaterialButton downvoteButton,
+ MaterialButton commentsCountButton,
+ MaterialButton saveButton,
+ MaterialButton shareButton) {
+ this.iconGifImageView = iconGifImageView;
+ this.subredditTextView = subredditTextView;
+ this.userTextView = userTextView;
+ this.authorFlairTextView = authorFlairTextView;
+ this.postTimeTextView = postTimeTextView;
+ this.titleTextView = titleTextView;
+ this.typeTextView = typeTextView;
+ this.crosspostImageView = crosspostImageView;
+ this.archivedImageView = archivedImageView;
+ this.lockedImageView = lockedImageView;
+ this.nsfwTextView = nSFWTextView;
+ this.spoilerTextView = spoilerTextView;
+ this.flairTextView = flairTextView;
+ this.awardsTextView = awardsTextView;
+ this.upvoteRatioTextView = upvoteRatioTextView;
+ this.contentMarkdownView = contentMarkdownView;
+ this.bottomConstraintLayout = bottomConstraintLayout;
+ this.upvoteButton = upvoteButton;
+ this.downvoteButton = downvoteButton;
+ this.commentsCountButton = commentsCountButton;
+ this.saveButton = saveButton;
+ this.shareButton = shareButton;
+
+ iconGifImageView.setOnClickListener(view -> subredditTextView.performClick());
+
+ subredditTextView.setOnClickListener(view -> {
Intent intent;
intent = new Intent(mActivity, ViewSubredditDetailActivity.class);
intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
@@ -1128,7 +1138,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
});
- mUserTextView.setOnClickListener(view -> {
+ userTextView.setOnClickListener(view -> {
if (mPost.isAuthorDeleted()) {
return;
}
@@ -1137,16 +1147,16 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
});
- mAuthorFlairTextView.setOnClickListener(view -> mUserTextView.performClick());
+ authorFlairTextView.setOnClickListener(view -> userTextView.performClick());
- mCrosspostImageView.setOnClickListener(view -> {
+ crosspostImageView.setOnClickListener(view -> {
Intent crosspostIntent = new Intent(mActivity, ViewPostDetailActivity.class);
crosspostIntent.putExtra(ViewPostDetailActivity.EXTRA_POST_ID, mPost.getCrosspostParentId());
mActivity.startActivity(crosspostIntent);
});
if (!mHidePostType) {
- mTypeTextView.setOnClickListener(view -> {
+ typeTextView.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, FilteredPostsActivity.class);
intent.putExtra(FilteredPostsActivity.EXTRA_NAME, mSubredditNamePrefixed.substring(2));
intent.putExtra(FilteredPostsActivity.EXTRA_POST_TYPE, PostPagingSource.TYPE_SUBREDDIT);
@@ -1154,11 +1164,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
});
} else {
- mTypeTextView.setVisibility(View.GONE);
+ typeTextView.setVisibility(View.GONE);
}
if (!mHidePostFlair) {
- mFlairTextView.setOnClickListener(view -> {
+ flairTextView.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, FilteredPostsActivity.class);
intent.putExtra(FilteredPostsActivity.EXTRA_NAME, mSubredditNamePrefixed.substring(2));
intent.putExtra(FilteredPostsActivity.EXTRA_POST_TYPE, PostPagingSource.TYPE_SUBREDDIT);
@@ -1166,10 +1176,10 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
});
} else {
- mFlairTextView.setVisibility(View.GONE);
+ flairTextView.setVisibility(View.GONE);
}
- mNSFWTextView.setOnClickListener(view -> {
+ nSFWTextView.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, FilteredPostsActivity.class);
intent.putExtra(FilteredPostsActivity.EXTRA_NAME, mSubredditNamePrefixed.substring(2));
intent.putExtra(FilteredPostsActivity.EXTRA_POST_TYPE, PostPagingSource.TYPE_SUBREDDIT);
@@ -1177,7 +1187,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
});
- mContentMarkdownView.setLayoutManager(new SwipeLockLinearLayoutManager(mActivity, new SwipeLockInterface() {
+ contentMarkdownView.setLayoutManager(new SwipeLockLinearLayoutManager(mActivity, new SwipeLockInterface() {
@Override
public void lockSwipe() {
((ViewPostDetailActivity) mActivity).lockSwipeRightToGoBack();
@@ -1189,7 +1199,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
}));
- mUpvoteButton.setOnClickListener(view -> {
+ upvoteButton.setOnClickListener(view -> {
if (mPost.isArchived()) {
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
return;
@@ -1200,31 +1210,35 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
return;
}
- ColorFilter previousUpvoteButtonColorFilter = mUpvoteButton.getColorFilter();
- ColorFilter previousDownvoteButtonColorFilter = mDownvoteButton.getColorFilter();
- int previousScoreTextViewColor = mScoreTextView.getCurrentTextColor();
+ int previousUpvoteButtonTextColor = upvoteButton.getCurrentTextColor();
+ int previousDownvoteButtonTextColor = downvoteButton.getCurrentTextColor();
+ Drawable previousUpvoteButtonDrawable = upvoteButton.getIcon();
+ Drawable previousDownvoteButtonDrawable = downvoteButton.getIcon();
int previousVoteType = mPost.getVoteType();
String newVoteType;
- mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
if (previousVoteType != 1) {
//Not upvoted before
mPost.setVoteType(1);
newVoteType = APIUtils.DIR_UPVOTE;
- mUpvoteButton.setColorFilter(mUpvotedColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mUpvotedColor);
+ upvoteButton.setTextColor(mUpvotedColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
} else {
//Upvoted before
mPost.setVoteType(0);
newVoteType = APIUtils.DIR_UNVOTE;
- mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + mPost.getVoteType()));
}
@@ -1235,17 +1249,20 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
public void onVoteThingSuccess() {
if (newVoteType.equals(APIUtils.DIR_UPVOTE)) {
mPost.setVoteType(1);
- mUpvoteButton.setColorFilter(mUpvotedColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mUpvotedColor);
+ upvoteButton.setTextColor(mUpvotedColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
} else {
mPost.setVoteType(0);
- mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
- mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + mPost.getVoteType()));
}
@@ -1257,19 +1274,21 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
mPost.setVoteType(previousVoteType);
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + previousVoteType));
}
- mUpvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
- mDownvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
- mScoreTextView.setTextColor(previousScoreTextViewColor);
+ upvoteButton.setTextColor(previousUpvoteButtonTextColor);
+ upvoteButton.setIcon(previousUpvoteButtonDrawable);
+ upvoteButton.setIconTint(ColorStateList.valueOf(previousUpvoteButtonTextColor));
+ downvoteButton.setIcon(previousDownvoteButtonDrawable);
+ downvoteButton.setIconTint(ColorStateList.valueOf(previousDownvoteButtonTextColor));
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
}, mPost.getFullName(), newVoteType);
});
- mDownvoteButton.setOnClickListener(view -> {
+ downvoteButton.setOnClickListener(view -> {
if (mPost.isArchived()) {
Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show();
return;
@@ -1280,31 +1299,34 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
return;
}
- ColorFilter previousUpvoteButtonColorFilter = mUpvoteButton.getColorFilter();
- ColorFilter previousDownvoteButtonColorFilter = mDownvoteButton.getColorFilter();
- int previousScoreTextViewColor = mScoreTextView.getCurrentTextColor();
+ int previousUpvoteButtonTextColor = upvoteButton.getTextColors().getDefaultColor();
+ int previousDownvoteButtonTextColor = downvoteButton.getTextColors().getDefaultColor();
+ Drawable previousUpvoteButtonDrawable = upvoteButton.getIcon();
+ Drawable previousDownvoteButtonDrawable = downvoteButton.getIcon();
int previousVoteType = mPost.getVoteType();
String newVoteType;
- mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
+ upvoteButton.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
if (previousVoteType != -1) {
- //Not upvoted before
+ //Not downvoted before
mPost.setVoteType(-1);
newVoteType = APIUtils.DIR_DOWNVOTE;
- mDownvoteButton.setColorFilter(mDownvotedColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mDownvotedColor);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor));
} else {
- //Upvoted before
+ //Downvoted before
mPost.setVoteType(0);
newVoteType = APIUtils.DIR_UNVOTE;
- mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mPostIconAndInfoColor);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + mPost.getVoteType()));
}
@@ -1315,17 +1337,19 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
public void onVoteThingSuccess() {
if (newVoteType.equals(APIUtils.DIR_DOWNVOTE)) {
mPost.setVoteType(-1);
- mDownvoteButton.setColorFilter(mDownvotedColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mDownvotedColor);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor));
} else {
mPost.setVoteType(0);
- mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mPostIconAndInfoColor);
+ downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
- mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
+ upvoteButton.setTextColor(mPostIconAndInfoColor);
+ upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + mPost.getVoteType()));
}
@@ -1337,12 +1361,14 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
mPost.setVoteType(previousVoteType);
if (!mHideTheNumberOfVotes) {
- mScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
+ upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
mPost.getScore() + previousVoteType));
}
- mUpvoteButton.setColorFilter(previousUpvoteButtonColorFilter);
- mDownvoteButton.setColorFilter(previousDownvoteButtonColorFilter);
- mScoreTextView.setTextColor(previousScoreTextViewColor);
+ upvoteButton.setTextColor(previousUpvoteButtonTextColor);
+ upvoteButton.setIcon(previousUpvoteButtonDrawable);
+ upvoteButton.setIconTint(ColorStateList.valueOf(previousUpvoteButtonTextColor));
+ downvoteButton.setIcon(previousDownvoteButtonDrawable);
+ downvoteButton.setIconTint(ColorStateList.valueOf(previousDownvoteButtonTextColor));
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
@@ -1350,7 +1376,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
});
if (!mHideTheNumberOfComments) {
- commentsCountTextView.setOnClickListener(view -> {
+ this.commentsCountButton.setOnClickListener(view -> {
if (mPost.isArchived()) {
Toast.makeText(mActivity, R.string.archived_post_comment_unavailable, Toast.LENGTH_SHORT).show();
return;
@@ -1376,23 +1402,23 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivityForResult(intent, WRITE_COMMENT_REQUEST_CODE);
});
} else {
- commentsCountTextView.setVisibility(View.GONE);
+ this.commentsCountButton.setVisibility(View.GONE);
}
- mSaveButton.setOnClickListener(view -> {
+ this.saveButton.setOnClickListener(view -> {
if (mAccessToken == null) {
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
return;
}
if (mPost.isSaved()) {
- mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
+ this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
new SaveThing.SaveThingListener() {
@Override
public void success() {
mPost.setSaved(false);
- mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
+ PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
@@ -1400,19 +1426,19 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public void failed() {
mPost.setSaved(true);
- mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
+ PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
});
} else {
- mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
+ this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
SaveThing.saveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
new SaveThing.SaveThingListener() {
@Override
public void success() {
mPost.setSaved(true);
- mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
+ PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
@@ -1420,7 +1446,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public void failed() {
mPost.setSaved(false);
- mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
+ PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
}
@@ -1428,7 +1454,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
});
- mShareButton.setOnClickListener(view -> {
+ this.shareButton.setOnClickListener(view -> {
Bundle bundle = new Bundle();
bundle.putString(ShareLinkBottomSheetFragment.EXTRA_POST_LINK, mPost.getPermalink());
if (mPost.getPostType() != Post.TEXT_TYPE) {
@@ -1450,149 +1476,112 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
shareLinkBottomSheetFragment.show(mActivity.getSupportFragmentManager(), shareLinkBottomSheetFragment.getTag());
});
- mShareButton.setOnLongClickListener(view -> {
+ this.shareButton.setOnLongClickListener(view -> {
mActivity.copyLink(mPost.getPermalink());
return true;
});
if (mVoteButtonsOnTheRight) {
ConstraintSet constraintSet = new ConstraintSet();
- constraintSet.clone(mBottomConstraintLayout);
- constraintSet.clear(mUpvoteButton.getId(), ConstraintSet.START);
- constraintSet.clear(mScoreTextView.getId(), ConstraintSet.START);
- constraintSet.clear(mDownvoteButton.getId(), ConstraintSet.START);
- constraintSet.clear(mSaveButton.getId(), ConstraintSet.END);
- constraintSet.clear(mShareButton.getId(), ConstraintSet.END);
- constraintSet.connect(mUpvoteButton.getId(), ConstraintSet.END, mScoreTextView.getId(), ConstraintSet.START);
- constraintSet.connect(mScoreTextView.getId(), ConstraintSet.END, mDownvoteButton.getId(), ConstraintSet.START);
- constraintSet.connect(mDownvoteButton.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END);
- constraintSet.connect(commentsCountTextView.getId(), ConstraintSet.START, mSaveButton.getId(), ConstraintSet.END);
- constraintSet.connect(commentsCountTextView.getId(), ConstraintSet.END, mUpvoteButton.getId(), ConstraintSet.START);
- constraintSet.connect(mSaveButton.getId(), ConstraintSet.START, mShareButton.getId(), ConstraintSet.END);
- constraintSet.connect(mShareButton.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START);
- constraintSet.setHorizontalBias(commentsCountTextView.getId(), 0);
- constraintSet.applyTo(mBottomConstraintLayout);
+ constraintSet.clone(bottomConstraintLayout);
+ constraintSet.clear(voteButtonToggleGroup.getId(), ConstraintSet.START);
+ constraintSet.clear(saveButton.getId(), ConstraintSet.END);
+ constraintSet.clear(shareButton.getId(), ConstraintSet.END);
+ constraintSet.connect(voteButtonToggleGroup.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);
}
if (mActivity.typeface != null) {
- mSubredditTextView.setTypeface(mActivity.typeface);
- mUserTextView.setTypeface(mActivity.typeface);
- mAuthorFlairTextView.setTypeface(mActivity.typeface);
- mPostTimeTextView.setTypeface(mActivity.typeface);
- mTypeTextView.setTypeface(mActivity.typeface);
- mSpoilerTextView.setTypeface(mActivity.typeface);
- mNSFWTextView.setTypeface(mActivity.typeface);
- mFlairTextView.setTypeface(mActivity.typeface);
- mAwardsTextView.setTypeface(mActivity.typeface);
- mUpvoteRatioTextView.setTypeface(mActivity.typeface);
- mScoreTextView.setTypeface(mActivity.typeface);
- commentsCountTextView.setTypeface(mActivity.typeface);
+ subredditTextView.setTypeface(mActivity.typeface);
+ userTextView.setTypeface(mActivity.typeface);
+ authorFlairTextView.setTypeface(mActivity.typeface);
+ postTimeTextView.setTypeface(mActivity.typeface);
+ typeTextView.setTypeface(mActivity.typeface);
+ spoilerTextView.setTypeface(mActivity.typeface);
+ nSFWTextView.setTypeface(mActivity.typeface);
+ flairTextView.setTypeface(mActivity.typeface);
+ awardsTextView.setTypeface(mActivity.typeface);
+ upvoteRatioTextView.setTypeface(mActivity.typeface);
+ upvoteButton.setTypeface(mActivity.typeface);
+ commentsCountButton.setTypeface(mActivity.typeface);
}
if (mActivity.titleTypeface != null) {
- mTitleTextView.setTypeface(mActivity.typeface);
+ titleTextView.setTypeface(mActivity.typeface);
}
itemView.setBackgroundColor(mCardViewColor);
- mSubredditTextView.setTextColor(mSubredditColor);
- mUserTextView.setTextColor(mUsernameColor);
- mAuthorFlairTextView.setTextColor(mAuthorFlairTextColor);
- mPostTimeTextView.setTextColor(mSecondaryTextColor);
- mTitleTextView.setTextColor(mPostTitleColor);
- mTypeTextView.setBackgroundColor(mPostTypeBackgroundColor);
- mTypeTextView.setBorderColor(mPostTypeBackgroundColor);
- mTypeTextView.setTextColor(mPostTypeTextColor);
- mSpoilerTextView.setBackgroundColor(mSpoilerBackgroundColor);
- mSpoilerTextView.setBorderColor(mSpoilerBackgroundColor);
- mSpoilerTextView.setTextColor(mSpoilerTextColor);
- mNSFWTextView.setBackgroundColor(mNSFWBackgroundColor);
- mNSFWTextView.setBorderColor(mNSFWBackgroundColor);
- mNSFWTextView.setTextColor(mNSFWTextColor);
- mFlairTextView.setBackgroundColor(mFlairBackgroundColor);
- mFlairTextView.setBorderColor(mFlairBackgroundColor);
- mFlairTextView.setTextColor(mFlairTextColor);
- mArchivedImageView.setColorFilter(mArchivedTintColor, PorterDuff.Mode.SRC_IN);
- mLockedImageView.setColorFilter(mLockedTintColor, PorterDuff.Mode.SRC_IN);
- mCrosspostImageView.setColorFilter(mCrosspostTintColor, PorterDuff.Mode.SRC_IN);
- mAwardsTextView.setTextColor(mSecondaryTextColor);
+ subredditTextView.setTextColor(mSubredditColor);
+ userTextView.setTextColor(mUsernameColor);
+ authorFlairTextView.setTextColor(mAuthorFlairTextColor);
+ postTimeTextView.setTextColor(mSecondaryTextColor);
+ titleTextView.setTextColor(mPostTitleColor);
+ 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(mArchivedTintColor, PorterDuff.Mode.SRC_IN);
+ lockedImageView.setColorFilter(mLockedTintColor, PorterDuff.Mode.SRC_IN);
+ crosspostImageView.setColorFilter(mCrosspostTintColor, PorterDuff.Mode.SRC_IN);
+ awardsTextView.setTextColor(mSecondaryTextColor);
Drawable upvoteRatioDrawable = Utils.getTintedDrawable(mActivity, R.drawable.ic_upvote_ratio, mUpvoteRatioTintColor);
- mUpvoteRatioTextView.setCompoundDrawablesWithIntrinsicBounds(
+ upvoteRatioTextView.setCompoundDrawablesWithIntrinsicBounds(
upvoteRatioDrawable, null, null, null);
- mUpvoteRatioTextView.setTextColor(mSecondaryTextColor);
- mUpvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mScoreTextView.setTextColor(mPostIconAndInfoColor);
- mDownvoteButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- commentsCountTextView.setTextColor(mPostIconAndInfoColor);
- commentsCountTextView.setCompoundDrawablesWithIntrinsicBounds(mCommentIcon, null, null, null);
- mSaveButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
- mShareButton.setColorFilter(mPostIconAndInfoColor, PorterDuff.Mode.SRC_IN);
+ upvoteRatioTextView.setTextColor(mSecondaryTextColor);
+ upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ upvoteButton.setTextColor(mPostIconAndInfoColor);
+ downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ commentsCountButton.setTextColor(mPostIconAndInfoColor);
+ commentsCountButton.setIcon(mCommentIcon);
+ saveButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
+ shareButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
}
}
- class PostDetailVideoAutoplayViewHolder extends PostDetailBaseViewHolder implements ToroPlayer {
+ class PostDetailBaseVideoAutoplayViewHolder extends PostDetailBaseViewHolder implements ToroPlayer {
public Call<String> fetchGfycatOrStreamableVideoCall;
- @BindView(R.id.icon_gif_image_view_item_post_detail_video_autoplay)
AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_video_autoplay)
TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_video_autoplay)
TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_video_autoplay)
TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_video_autoplay)
TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_video_autoplay)
TextView mTitleTextView;
- @BindView(R.id.type_text_view_item_post_detail_video_autoplay)
CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_video_autoplay)
ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_video_autoplay)
ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_video_autoplay)
ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_video_autoplay)
CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_video_autoplay)
CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_video_autoplay)
CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_video_autoplay)
TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_video_autoplay)
TextView mUpvoteRatioTextView;
- @BindView(R.id.aspect_ratio_frame_layout_item_post_detail_video_autoplay)
AspectRatioFrameLayout aspectRatioFrameLayout;
- @BindView(R.id.player_view_item_post_detail_video_autoplay)
PlayerView playerView;
- @BindView(R.id.preview_image_view_item_post_detail_video_autoplay)
GifImageView previewImageView;
- @BindView(R.id.error_loading_gfycat_image_view_item_post_detail_video_autoplay)
ImageView mErrorLoadingGfycatImageView;
- @BindView(R.id.mute_exo_playback_control_view)
ImageView muteButton;
- @BindView(R.id.fullscreen_exo_playback_control_view)
ImageView fullscreenButton;
- @BindView(R.id.exo_pause)
ImageView pauseButton;
- @BindView(R.id.exo_play)
ImageView playButton;
- @BindView(R.id.exo_progress)
DefaultTimeBar progressBar;
- @BindView(R.id.content_markdown_view_item_post_detail_video_autoplay)
RecyclerView mContentMarkdownView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_video_autoplay)
ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_video_autoplay)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_video_autoplay)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_video_autoplay)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_video_autoplay)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_video_autoplay)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_video_autoplay)
- ImageView mShareButton;
+ MaterialButton mUpvoteButton;
+ MaterialButton mDownvoteButton;
+ MaterialButton commentsCountButton;
+ MaterialButton mSaveButton;
+ MaterialButton mShareButton;
@Nullable
Container container;
@Nullable
@@ -1601,32 +1590,73 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
private float volume;
private boolean isManuallyPaused;
- public PostDetailVideoAutoplayViewHolder(@NonNull View itemView) {
+ public PostDetailBaseVideoAutoplayViewHolder(@NonNull View itemView,
+ AspectRatioGifImageView iconGifImageView,
+ TextView subredditTextView,
+ TextView userTextView,
+ TextView authorFlairTextView,
+ TextView postTimeTextView,
+ TextView titleTextView,
+ CustomTextView typeTextView,
+ ImageView crosspostImageView,
+ ImageView archivedImageView,
+ ImageView lockedImageView,
+ CustomTextView nsfwTextView,
+ CustomTextView spoilerTextView,
+ CustomTextView flairTextView,
+ TextView awardsTextView,
+ TextView upvoteRatioTextView,
+ AspectRatioFrameLayout aspectRatioFrameLayout,
+ PlayerView playerView,
+ GifImageView previewImageView,
+ ImageView errorLoadingGfycatImageView,
+ ImageView muteButton,
+ ImageView fullscreenButton,
+ ImageView pauseButton,
+ ImageView playButton,
+ DefaultTimeBar progressBar,
+ RecyclerView contentMarkdownView,
+ ConstraintLayout bottomConstraintLayout,
+ MaterialButtonToggleGroup voteButtonToggleGroup,
+ MaterialButton upvoteButton,
+ MaterialButton downvoteButton,
+ MaterialButton commentsCountButton,
+ MaterialButton saveButton,
+ MaterialButton shareButton) {
super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
+ setBaseView(iconGifImageView,
+ subredditTextView,
+ userTextView,
+ authorFlairTextView,
+ postTimeTextView,
+ titleTextView,
+ typeTextView,
+ crosspostImageView,
+ archivedImageView,
+ lockedImageView,
+ nsfwTextView,
+ spoilerTextView,
+ flairTextView,
+ awardsTextView,
+ upvoteRatioTextView,
+ contentMarkdownView,
+ bottomConstraintLayout,
+ voteButtonToggleGroup,
+ upvoteButton,
+ downvoteButton,
+ commentsCountButton,
+ saveButton,
+ shareButton);
+
+ this.aspectRatioFrameLayout = aspectRatioFrameLayout;
+ this.previewImageView = previewImageView;
+ this.mErrorLoadingGfycatImageView = errorLoadingGfycatImageView;
+ this.playerView = playerView;
+ this.muteButton = muteButton;
+ this.fullscreenButton = fullscreenButton;
+ this.pauseButton = pauseButton;
+ this.playButton = playButton;
+ this.progressBar = progressBar;
aspectRatioFrameLayout.setOnClickListener(null);
@@ -1835,97 +1865,118 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
}
+ class PostDetailVideoAutoplayViewHolder extends PostDetailBaseVideoAutoplayViewHolder {
+ PostDetailVideoAutoplayViewHolder(@NonNull ItemPostDetailVideoAutoplayBinding binding) {
+ super(binding.getRoot(),
+ binding.iconGifImageViewItemPostDetailVideoAutoplay,
+ binding.subredditTextViewItemPostDetailVideoAutoplay,
+ binding.userTextViewItemPostDetailVideoAutoplay,
+ binding.authorFlairTextViewItemPostDetailVideoAutoplay,
+ binding.postTimeTextViewItemPostDetailVideoAutoplay,
+ binding.titleTextViewItemPostDetailVideoAutoplay,
+ binding.typeTextViewItemPostDetailVideoAutoplay,
+ binding.crosspostImageViewItemPostDetailVideoAutoplay,
+ binding.archivedImageViewItemPostDetailVideoAutoplay,
+ binding.lockedImageViewItemPostDetailVideoAutoplay,
+ binding.nsfwTextViewItemPostDetailVideoAutoplay,
+ binding.spoilerCustomTextViewItemPostDetailVideoAutoplay,
+ binding.flairCustomTextViewItemPostDetailVideoAutoplay,
+ binding.awardsTextViewItemPostDetailVideoAutoplay,
+ binding.upvoteRatioTextViewItemPostDetailVideoAutoplay,
+ binding.aspectRatioFrameLayoutItemPostDetailVideoAutoplay,
+ binding.playerViewItemPostDetailVideoAutoplay,
+ binding.previewImageViewItemPostDetailVideoAutoplay,
+ binding.errorLoadingGfycatImageViewItemPostDetailVideoAutoplay,
+ binding.getRoot().findViewById(R.id.mute_exo_playback_control_view),
+ binding.getRoot().findViewById(R.id.fullscreen_exo_playback_control_view),
+ binding.getRoot().findViewById(R.id.exo_pause),
+ binding.getRoot().findViewById(R.id.exo_play),
+ binding.getRoot().findViewById(R.id.exo_progress),
+ binding.contentMarkdownViewItemPostDetailVideoAutoplay,
+ binding.bottomConstraintLayoutItemPostDetailVideoAutoplay,
+ binding.voteButtonToggleItemPostDetailVideoAutoplay,
+ binding.upvoteButtonItemPostDetailVideoAutoplay,
+ binding.downvoteButtonItemPostDetailVideoAutoplay,
+ binding.commentsCountButtonItemPostDetailVideoAutoplay,
+ binding.saveButtonItemPostDetailVideoAutoplay,
+ binding.shareButtonItemPostDetailVideoAutoplay);
+ }
+ }
+
+ class PostDetailVideoAutoplayLegacyControllerViewHolder extends PostDetailBaseVideoAutoplayViewHolder {
+ PostDetailVideoAutoplayLegacyControllerViewHolder(ItemPostDetailVideoAutoplayLegacyControllerBinding binding) {
+ super(binding.getRoot(),
+ binding.iconGifImageViewItemPostDetailVideoAutoplay,
+ binding.subredditTextViewItemPostDetailVideoAutoplay,
+ binding.userTextViewItemPostDetailVideoAutoplay,
+ binding.authorFlairTextViewItemPostDetailVideoAutoplay,
+ binding.postTimeTextViewItemPostDetailVideoAutoplay,
+ binding.titleTextViewItemPostDetailVideoAutoplay,
+ binding.typeTextViewItemPostDetailVideoAutoplay,
+ binding.crosspostImageViewItemPostDetailVideoAutoplay,
+ binding.archivedImageViewItemPostDetailVideoAutoplay,
+ binding.lockedImageViewItemPostDetailVideoAutoplay,
+ binding.nsfwTextViewItemPostDetailVideoAutoplay,
+ binding.spoilerCustomTextViewItemPostDetailVideoAutoplay,
+ binding.flairCustomTextViewItemPostDetailVideoAutoplay,
+ binding.awardsTextViewItemPostDetailVideoAutoplay,
+ binding.upvoteRatioTextViewItemPostDetailVideoAutoplay,
+ binding.aspectRatioFrameLayoutItemPostDetailVideoAutoplay,
+ binding.playerViewItemPostDetailVideoAutoplay,
+ binding.previewImageViewItemPostDetailVideoAutoplay,
+ binding.errorLoadingGfycatImageViewItemPostDetailVideoAutoplay,
+ binding.getRoot().findViewById(R.id.mute_exo_playback_control_view),
+ binding.getRoot().findViewById(R.id.fullscreen_exo_playback_control_view),
+ binding.getRoot().findViewById(R.id.exo_pause),
+ binding.getRoot().findViewById(R.id.exo_play),
+ binding.getRoot().findViewById(R.id.exo_progress),
+ binding.contentMarkdownViewItemPostDetailVideoAutoplay,
+ binding.bottomConstraintLayoutItemPostDetailVideoAutoplay,
+ binding.voteButtonToggleItemPostDetailVideoAutoplay,
+ binding.upvoteButtonItemPostDetailVideoAutoplay,
+ binding.downvoteButtonItemPostDetailVideoAutoplay,
+ binding.commentsCountButtonItemPostDetailVideoAutoplay,
+ binding.saveButtonItemPostDetailVideoAutoplay,
+ binding.shareButtonItemPostDetailVideoAutoplay);
+ }
+ }
+
class PostDetailVideoAndGifPreviewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_video_and_gif_preview)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_video_and_gif_preview)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_video_and_gif_preview)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_video_and_gif_preview)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_video_and_gif_preview)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_video_and_gif_preview)
- TextView mTitleTextView;
- @BindView(R.id.type_text_view_item_post_detail_video_and_gif_preview)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_video_and_gif_preview)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_video_and_gif_preview)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_video_and_gif_preview)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_video_and_gif_preview)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_video_and_gif_preview)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_video_and_gif_preview)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_video_and_gif_preview)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_video_and_gif_preview)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.load_wrapper_item_post_detail_video_and_gif_preview)
- RelativeLayout mLoadWrapper;
- @BindView(R.id.progress_bar_item_post_detail_video_and_gif_preview)
- ProgressBar mLoadImageProgressBar;
- @BindView(R.id.load_image_error_text_view_item_post_detail_video_and_gif_preview)
- TextView mLoadImageErrorTextView;
- @BindView(R.id.video_or_gif_indicator_image_view_item_post_detail)
- ImageView videoOrGifIndicatorImageView;
- @BindView(R.id.image_view_item_post_detail_video_and_gif_preview)
- AspectRatioGifImageView mImageView;
- @BindView(R.id.content_markdown_view_item_post_detail_video_and_gif_preview)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_video_and_gif_preview)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_video_and_gif_preview)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_video_and_gif_preview)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_video_and_gif_preview)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_video_and_gif_preview)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_video_and_gif_preview)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_video_and_gif_preview)
- ImageView mShareButton;
-
- PostDetailVideoAndGifPreviewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
-
- videoOrGifIndicatorImageView.setColorFilter(mMediaIndicatorIconTint, PorterDuff.Mode.SRC_IN);
- videoOrGifIndicatorImageView.setBackgroundTintList(ColorStateList.valueOf(mMediaIndicatorBackgroundColor));
- mLoadImageProgressBar.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
- mLoadImageErrorTextView.setTextColor(mPrimaryTextColor);
-
- mImageView.setOnClickListener(view -> {
+ ItemPostDetailVideoAndGifPreviewBinding binding;
+
+ PostDetailVideoAndGifPreviewHolder(@NonNull ItemPostDetailVideoAndGifPreviewBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailVideoAndGifPreview,
+ binding.subredditTextViewItemPostDetailVideoAndGifPreview,
+ binding.userTextViewItemPostDetailVideoAndGifPreview,
+ binding.authorFlairTextViewItemPostDetailVideoAndGifPreview,
+ binding.postTimeTextViewItemPostDetailVideoAndGifPreview,
+ binding.titleTextViewItemPostDetailVideoAndGifPreview,
+ binding.typeTextViewItemPostDetailVideoAndGifPreview,
+ binding.crosspostImageViewItemPostDetailVideoAndGifPreview,
+ binding.archivedImageViewItemPostDetailVideoAndGifPreview,
+ binding.lockedImageViewItemPostDetailVideoAndGifPreview,
+ binding.nsfwTextViewItemPostDetailVideoAndGifPreview,
+ binding.spoilerCustomTextViewItemPostDetailVideoAndGifPreview,
+ binding.flairCustomTextViewItemPostDetailVideoAndGifPreview,
+ binding.awardsTextViewItemPostDetailVideoAndGifPreview,
+ binding.upvoteRatioTextViewItemPostDetailVideoAndGifPreview,
+ binding.contentMarkdownViewItemPostDetailVideoAndGifPreview,
+ binding.bottomConstraintLayoutItemPostDetailVideoAndGifPreview,
+ binding.voteButtonToggleItemPostDetailVideoAndGifPreview,
+ binding.upvoteButtonItemPostDetailVideoAndGifPreview,
+ binding.downvoteButtonItemPostDetailVideoAndGifPreview,
+ binding.commentsCountButtonItemPostDetailVideoAndGifPreview,
+ binding.saveButtonItemPostDetailVideoAndGifPreview,
+ binding.shareButtonItemPostDetailVideoAndGifPreview);
+
+ binding.videoOrGifIndicatorImageViewItemPostDetail.setColorFilter(mMediaIndicatorIconTint, PorterDuff.Mode.SRC_IN);
+ binding.videoOrGifIndicatorImageViewItemPostDetail.setBackgroundTintList(ColorStateList.valueOf(mMediaIndicatorBackgroundColor));
+ binding.progressBarItemPostDetailVideoAndGifPreview.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
+ binding.loadImageErrorTextViewItemPostDetailVideoAndGifPreview.setTextColor(mPrimaryTextColor);
+
+ binding.imageViewItemPostDetailVideoAndGifPreview.setOnClickListener(view -> {
if (canStartActivity) {
canStartActivity = false;
if (mPost.getPostType() == Post.VIDEO_TYPE) {
@@ -1966,94 +2017,39 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
class PostDetailImageAndGifAutoplayViewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_image_and_gif_autoplay)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mTitleTextView;
- @BindView(R.id.type_text_view_item_post_detail_image_and_gif_autoplay)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_image_and_gif_autoplay)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_image_and_gif_autoplay)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_image_and_gif_autoplay)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_image_and_gif_autoplay)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_image_and_gif_autoplay)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_image_and_gif_autoplay)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.image_view_wrapper_item_post_detail_image_and_gif_autoplay)
- RelativeLayout mRelativeLayout;
- @BindView(R.id.load_wrapper_item_post_detail_image_and_gif_autoplay)
- RelativeLayout mLoadWrapper;
- @BindView(R.id.progress_bar_item_post_detail_image_and_gif_autoplay)
- ProgressBar mLoadImageProgressBar;
- @BindView(R.id.load_image_error_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mLoadImageErrorTextView;
- @BindView(R.id.image_view_item_post_detail_image_and_gif_autoplay)
- AspectRatioGifImageView mImageView;
- @BindView(R.id.content_markdown_view_item_post_detail_image_and_gif_autoplay)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_image_and_gif_autoplay)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_image_and_gif_autoplay)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_image_and_gif_autoplay)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_image_and_gif_autoplay)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_image_and_gif_autoplay)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_image_and_gif_autoplay)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_image_and_gif_autoplay)
- ImageView mShareButton;
-
- PostDetailImageAndGifAutoplayViewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
-
- mLoadImageProgressBar.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
- mLoadImageErrorTextView.setTextColor(mPrimaryTextColor);
-
- mImageView.setOnClickListener(view -> {
+ ItemPostDetailImageAndGifAutoplayBinding binding;
+
+ PostDetailImageAndGifAutoplayViewHolder(@NonNull ItemPostDetailImageAndGifAutoplayBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailImageAndGifAutoplay,
+ binding.subredditTextViewItemPostDetailImageAndGifAutoplay,
+ binding.userTextViewItemPostDetailImageAndGifAutoplay,
+ binding.authorFlairTextViewItemPostDetailImageAndGifAutoplay,
+ binding.postTimeTextViewItemPostDetailImageAndGifAutoplay,
+ binding.titleTextViewItemPostDetailImageAndGifAutoplay,
+ binding.typeTextViewItemPostDetailImageAndGifAutoplay,
+ binding.crosspostImageViewItemPostDetailImageAndGifAutoplay,
+ binding.archivedImageViewItemPostDetailImageAndGifAutoplay,
+ binding.lockedImageViewItemPostDetailImageAndGifAutoplay,
+ binding.nsfwTextViewItemPostDetailImageAndGifAutoplay,
+ binding.spoilerCustomTextViewItemPostDetailImageAndGifAutoplay,
+ binding.flairCustomTextViewItemPostDetailImageAndGifAutoplay,
+ binding.awardsTextViewItemPostDetailImageAndGifAutoplay,
+ binding.upvoteRatioTextViewItemPostDetailImageAndGifAutoplay,
+ binding.contentMarkdownViewItemPostDetailImageAndGifAutoplay,
+ binding.bottomConstraintLayoutItemPostDetailImageAndGifAutoplay,
+ binding.voteButtonToggleItemPostDetailImageAndGifAutoplay,
+ binding.upvoteButtonItemPostDetailImageAndGifAutoplay,
+ binding.downvoteButtonItemPostDetailImageAndGifAutoplay,
+ binding.commentsCountButtonItemPostDetailImageAndGifAutoplay,
+ binding.saveButtonItemPostDetailImageAndGifAutoplay,
+ binding.shareButtonItemPostDetailImageAndGifAutoplay);
+
+ binding.progressBarItemPostDetailImageAndGifAutoplay.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
+ binding.loadImageErrorTextViewItemPostDetailImageAndGifAutoplay.setTextColor(mPrimaryTextColor);
+
+ binding.imageViewItemPostDetailImageAndGifAutoplay.setOnClickListener(view -> {
if (canStartActivity) {
canStartActivity = false;
if (mPost.getPostType() == Post.IMAGE_TYPE) {
@@ -2079,100 +2075,43 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
class PostDetailLinkViewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_link)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_link)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_link)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_link)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_link)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_link)
- TextView mTitleTextView;
- @BindView(R.id.type_text_view_item_post_detail_link)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_link)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_link)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_link)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_link)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_link)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_link)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_link)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_link)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.link_text_view_item_post_detail_link)
- TextView mLinkTextView;
- @BindView(R.id.image_view_wrapper_item_post_detail_link)
- RelativeLayout mRelativeLayout;
- @BindView(R.id.load_wrapper_item_post_detail_link)
- RelativeLayout mLoadWrapper;
- @BindView(R.id.progress_bar_item_post_detail_link)
- ProgressBar mLoadImageProgressBar;
- @BindView(R.id.load_image_error_text_view_item_post_detail_link)
- TextView mLoadImageErrorTextView;
- @BindView(R.id.image_view_item_post_detail_link)
- AspectRatioGifImageView mImageView;
- @BindView(R.id.content_markdown_view_item_post_detail_link)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_link)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_link)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_link)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_link)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_link)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_link)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_link)
- ImageView mShareButton;
-
- PostDetailLinkViewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
+ ItemPostDetailLinkBinding binding;
+
+ PostDetailLinkViewHolder(@NonNull ItemPostDetailLinkBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailLink,
+ binding.subredditTextViewItemPostDetailLink,
+ binding.userTextViewItemPostDetailLink,
+ binding.authorFlairTextViewItemPostDetailLink,
+ binding.postTimeTextViewItemPostDetailLink,
+ binding.titleTextViewItemPostDetailLink,
+ binding.typeTextViewItemPostDetailLink,
+ binding.crosspostImageViewItemPostDetailLink,
+ binding.archivedImageViewItemPostDetailLink,
+ binding.lockedImageViewItemPostDetailLink,
+ binding.nsfwTextViewItemPostDetailLink,
+ binding.spoilerCustomTextViewItemPostDetailLink,
+ binding.flairCustomTextViewItemPostDetailLink,
+ binding.awardsTextViewItemPostDetailLink,
+ binding.upvoteRatioTextViewItemPostDetailLink,
+ binding.contentMarkdownViewItemPostDetailLink,
+ binding.bottomConstraintLayoutItemPostDetailLink,
+ binding.voteButtonToggleItemPostDetailLink,
+ binding.upvoteButtonItemPostDetailLink,
+ binding.downvoteButtonItemPostDetailLink,
+ binding.commentsCountButtonItemPostDetailLink,
+ binding.saveButtonItemPostDetailLink,
+ binding.shareButtonItemPostDetailLink);
if (mActivity.typeface != null) {
- mLinkTextView.setTypeface(mActivity.typeface);
+ binding.linkTextViewItemPostDetailLink.setTypeface(mActivity.typeface);
}
- mLinkTextView.setTextColor(mSecondaryTextColor);
- mLoadImageProgressBar.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
- mLoadImageErrorTextView.setTextColor(mPrimaryTextColor);
+ binding.linkTextViewItemPostDetailLink.setTextColor(mSecondaryTextColor);
+ binding.progressBarItemPostDetailLink.setIndeterminateTintList(ColorStateList.valueOf(mColorAccent));
+ binding.loadImageErrorTextViewItemPostDetailLink.setTextColor(mPrimaryTextColor);
- mImageView.setOnClickListener(view -> {
+ binding.imageViewItemPostDetailLink.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
Uri uri = Uri.parse(mPost.getUrl());
intent.setData(uri);
@@ -2183,92 +2122,43 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
class PostDetailNoPreviewViewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_no_preview_link)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_no_preview_link)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_no_preview_link)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_no_preview_link)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_no_preview_link)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_no_preview_link)
- TextView mTitleTextView;
- @BindView(R.id.content_markdown_view_item_post_detail_no_preview_link)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.type_text_view_item_post_detail_no_preview_link)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_no_preview_link)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_no_preview_link)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_no_preview_link)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_no_preview_link)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_no_preview_link)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_no_preview_link)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_no_preview_link)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_no_preview_link)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.link_text_view_item_post_detail_no_preview_link)
- TextView mLinkTextView;
- @BindView(R.id.image_view_no_preview_post_type_item_post_detail_no_preview_link)
- ImageView mNoPreviewPostTypeImageView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_no_preview_link)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_no_preview_link)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_no_preview_link)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_no_preview_link)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_no_preview_link)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_no_preview_link)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_no_preview_link)
- ImageView mShareButton;
-
- PostDetailNoPreviewViewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
+ ItemPostDetailNoPreviewBinding binding;
+
+ PostDetailNoPreviewViewHolder(@NonNull ItemPostDetailNoPreviewBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailNoPreview,
+ binding.subredditTextViewItemPostDetailNoPreview,
+ binding.userTextViewItemPostDetailNoPreview,
+ binding.authorFlairTextViewItemPostDetailNoPreview,
+ binding.postTimeTextViewItemPostDetailNoPreview,
+ binding.titleTextViewItemPostDetailNoPreview,
+ binding.typeTextViewItemPostDetailNoPreview,
+ binding.crosspostImageViewItemPostDetailNoPreview,
+ binding.archivedImageViewItemPostDetailNoPreview,
+ binding.lockedImageViewItemPostDetailNoPreview,
+ binding.nsfwTextViewItemPostDetailNoPreview,
+ binding.spoilerCustomTextViewItemPostDetailNoPreview,
+ binding.flairCustomTextViewItemPostDetailNoPreview,
+ binding.awardsTextViewItemPostDetailNoPreview,
+ binding.upvoteRatioTextViewItemPostDetailNoPreview,
+ binding.contentMarkdownViewItemPostDetailNoPreview,
+ binding.bottomConstraintLayoutItemPostDetailNoPreview,
+ binding.voteButtonToggleItemPostDetailNoPreview,
+ binding.upvoteButtonItemPostDetailNoPreview,
+ binding.downvoteButtonItemPostDetailNoPreview,
+ binding.commentsCountButtonItemPostDetailNoPreview,
+ binding.saveButtonItemPostDetailNoPreview,
+ binding.shareButtonItemPostDetailNoPreview);
if (mActivity.typeface != null) {
- mLinkTextView.setTypeface(mActivity.typeface);
+ binding.linkTextViewItemPostDetailNoPreview.setTypeface(mActivity.typeface);
}
- mLinkTextView.setTextColor(mSecondaryTextColor);
- mNoPreviewPostTypeImageView.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
- mNoPreviewPostTypeImageView.setColorFilter(mNoPreviewPostTypeIconTint, PorterDuff.Mode.SRC_IN);
+ binding.linkTextViewItemPostDetailNoPreview.setTextColor(mSecondaryTextColor);
+ binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
+ binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setColorFilter(mNoPreviewPostTypeIconTint, PorterDuff.Mode.SRC_IN);
- mNoPreviewPostTypeImageView.setOnClickListener(view -> {
+ binding.imageViewNoPreviewPostTypeItemPostDetailNoPreview.setOnClickListener(view -> {
if (mPost != null) {
if (mPost.getPostType() == Post.VIDEO_TYPE) {
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
@@ -2324,105 +2214,52 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
class PostDetailGalleryViewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_gallery)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_gallery)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_gallery)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_gallery)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_gallery)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_gallery)
- TextView mTitleTextView;
- @BindView(R.id.type_text_view_item_post_detail_gallery)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_gallery)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_gallery)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_gallery)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_gallery)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_gallery)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_gallery)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_gallery)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_gallery)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.gallery_frame_layout_item_post_detail_gallery)
- FrameLayout galleryFrameLayout;
- @BindView(R.id.gallery_recycler_view_item_post_detail_gallery)
- RecyclerView galleryRecyclerView;
- @BindView(R.id.image_index_text_view_item_post_detail_gallery)
- CustomTextView imageIndexTextView;
- @BindView(R.id.image_view_no_preview_link_item_post_detail_gallery)
- ImageView mNoPreviewPostTypeImageView;
- @BindView(R.id.content_markdown_view_item_post_detail_gallery)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_gallery)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_gallery)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_gallery)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_gallery)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_gallery)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_gallery)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_gallery)
- ImageView mShareButton;
+ ItemPostDetailGalleryBinding binding;
PostGalleryTypeImageRecyclerViewAdapter adapter;
- PostDetailGalleryViewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
+ PostDetailGalleryViewHolder(@NonNull ItemPostDetailGalleryBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailGallery,
+ binding.subredditTextViewItemPostDetailGallery,
+ binding.userTextViewItemPostDetailGallery,
+ binding.authorFlairTextViewItemPostDetailGallery,
+ binding.postTimeTextViewItemPostDetailGallery,
+ binding.titleTextViewItemPostDetailGallery,
+ binding.typeTextViewItemPostDetailGallery,
+ binding.crosspostImageViewItemPostDetailGallery,
+ binding.archivedImageViewItemPostDetailGallery,
+ binding.lockedImageViewItemPostDetailGallery,
+ binding.nsfwTextViewItemPostDetailGallery,
+ binding.spoilerCustomTextViewItemPostDetailGallery,
+ binding.flairCustomTextViewItemPostDetailGallery,
+ binding.awardsTextViewItemPostDetailGallery,
+ binding.upvoteRatioTextViewItemPostDetailGallery,
+ binding.contentMarkdownViewItemPostDetailGallery,
+ binding.bottomConstraintLayoutItemPostDetailGallery,
+ binding.voteButtonToggleItemPostDetailGallery,
+ binding.upvoteButtonItemPostDetailGallery,
+ binding.downvoteButtonItemPostDetailGallery,
+ binding.commentsCountButtonItemPostDetailGallery,
+ binding.saveButtonItemPostDetailGallery,
+ binding.shareButtonItemPostDetailGallery);
if (mActivity.typeface != null) {
- imageIndexTextView.setTypeface(mActivity.typeface);
+ binding.imageIndexTextViewItemPostDetailGallery.setTypeface(mActivity.typeface);
}
- imageIndexTextView.setTextColor(mMediaIndicatorIconTint);
- imageIndexTextView.setBackgroundColor(mMediaIndicatorBackgroundColor);
- imageIndexTextView.setBorderColor(mMediaIndicatorBackgroundColor);
- mNoPreviewPostTypeImageView.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
- mNoPreviewPostTypeImageView.setColorFilter(mNoPreviewPostTypeIconTint, PorterDuff.Mode.SRC_IN);
+ binding.imageIndexTextViewItemPostDetailGallery.setTextColor(mMediaIndicatorIconTint);
+ binding.imageIndexTextViewItemPostDetailGallery.setBackgroundColor(mMediaIndicatorBackgroundColor);
+ binding.imageIndexTextViewItemPostDetailGallery.setBorderColor(mMediaIndicatorBackgroundColor);
+ binding.noPreviewPostTypeImageViewItemPostDetailGallery.setBackgroundColor(mNoPreviewPostTypeBackgroundColor);
+ binding.noPreviewPostTypeImageViewItemPostDetailGallery.setColorFilter(mNoPreviewPostTypeIconTint, PorterDuff.Mode.SRC_IN);
adapter = new PostGalleryTypeImageRecyclerViewAdapter(mGlide, mActivity.typeface, mPostDetailMarkwon,
mSaveMemoryCenterInsideDownsampleStrategy, mColorAccent, mPrimaryTextColor,
mCardViewColor, mCommentColor, mScale);
- galleryRecyclerView.setAdapter(adapter);
- new PagerSnapHelper().attachToRecyclerView(galleryRecyclerView);
- galleryRecyclerView.setOnTouchListener((v, motionEvent) -> {
+ binding.galleryRecyclerViewItemPostDetailGallery.setAdapter(adapter);
+ new PagerSnapHelper().attachToRecyclerView(binding.galleryRecyclerViewItemPostDetailGallery);
+ binding.galleryRecyclerViewItemPostDetailGallery.setOnTouchListener((v, motionEvent) -> {
if (motionEvent.getActionMasked() == MotionEvent.ACTION_UP || motionEvent.getActionMasked() == MotionEvent.ACTION_CANCEL) {
if (mActivity.mSliderPanel != null) {
mActivity.mSliderPanel.requestDisallowInterceptTouchEvent(false);
@@ -2444,8 +2281,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
return false;
});
LinearLayoutManagerBugFixed layoutManager = new LinearLayoutManagerBugFixed(mActivity, RecyclerView.HORIZONTAL, false);
- galleryRecyclerView.setLayoutManager(layoutManager);
- galleryRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ binding.galleryRecyclerViewItemPostDetailGallery.setLayoutManager(layoutManager);
+ binding.galleryRecyclerViewItemPostDetailGallery.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
@@ -2454,10 +2291,10 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@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, mPost.getGallery().size()));
+ binding.imageIndexTextViewItemPostDetailGallery.setText(mActivity.getString(R.string.image_index_in_gallery, layoutManager.findFirstVisibleItemPosition() + 1, mPost.getGallery().size()));
}
});
- galleryRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
+ binding.galleryRecyclerViewItemPostDetailGallery.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
private float downX;
private float downY;
private boolean dragged;
@@ -2508,7 +2345,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
});
- mNoPreviewPostTypeImageView.setOnClickListener(view -> {
+ binding.noPreviewPostTypeImageViewItemPostDetailGallery.setOnClickListener(view -> {
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, mPost.getGallery());
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, mPost.getSubredditName());
@@ -2519,79 +2356,34 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
class PostDetailTextViewHolder extends PostDetailBaseViewHolder {
- @BindView(R.id.icon_gif_image_view_item_post_detail_text)
- AspectRatioGifImageView mIconGifImageView;
- @BindView(R.id.subreddit_text_view_item_post_detail_text)
- TextView mSubredditTextView;
- @BindView(R.id.user_text_view_item_post_detail_text)
- TextView mUserTextView;
- @BindView(R.id.author_flair_text_view_item_post_detail_text)
- TextView mAuthorFlairTextView;
- @BindView(R.id.post_time_text_view_item_post_detail_text)
- TextView mPostTimeTextView;
- @BindView(R.id.title_text_view_item_post_detail_text)
- TextView mTitleTextView;
- @BindView(R.id.content_markdown_view_item_post_detail_text)
- RecyclerView mContentMarkdownView;
- @BindView(R.id.type_text_view_item_post_detail_text)
- CustomTextView mTypeTextView;
- @BindView(R.id.crosspost_image_view_item_post_detail_text)
- ImageView mCrosspostImageView;
- @BindView(R.id.archived_image_view_item_post_detail_text)
- ImageView mArchivedImageView;
- @BindView(R.id.locked_image_view_item_post_detail_text)
- ImageView mLockedImageView;
- @BindView(R.id.nsfw_text_view_item_post_detail_text)
- CustomTextView mNSFWTextView;
- @BindView(R.id.spoiler_custom_text_view_item_post_detail_text)
- CustomTextView mSpoilerTextView;
- @BindView(R.id.flair_custom_text_view_item_post_detail_text)
- CustomTextView mFlairTextView;
- @BindView(R.id.awards_text_view_item_post_detail_text)
- TextView mAwardsTextView;
- @BindView(R.id.upvote_ratio_text_view_item_post_detail_text)
- TextView mUpvoteRatioTextView;
- @BindView(R.id.bottom_constraint_layout_item_post_detail_text)
- ConstraintLayout mBottomConstraintLayout;
- @BindView(R.id.plus_button_item_post_detail_text)
- ImageView mUpvoteButton;
- @BindView(R.id.score_text_view_item_post_detail_text)
- TextView mScoreTextView;
- @BindView(R.id.minus_button_item_post_detail_text)
- ImageView mDownvoteButton;
- @BindView(R.id.comments_count_item_post_detail_text)
- TextView commentsCountTextView;
- @BindView(R.id.save_button_item_post_detail_text)
- ImageView mSaveButton;
- @BindView(R.id.share_button_item_post_detail_text)
- ImageView mShareButton;
-
- PostDetailTextViewHolder(@NonNull View itemView) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- setBaseView(mIconGifImageView,
- mSubredditTextView,
- mUserTextView,
- mAuthorFlairTextView,
- mPostTimeTextView,
- mTitleTextView,
- mTypeTextView,
- mCrosspostImageView,
- mArchivedImageView,
- mLockedImageView,
- mNSFWTextView,
- mSpoilerTextView,
- mFlairTextView,
- mAwardsTextView,
- mUpvoteRatioTextView,
- mContentMarkdownView,
- mBottomConstraintLayout,
- mUpvoteButton,
- mScoreTextView,
- mDownvoteButton,
- commentsCountTextView,
- mSaveButton,
- mShareButton);
+ ItemPostDetailTextBinding binding;
+
+ PostDetailTextViewHolder(@NonNull ItemPostDetailTextBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ setBaseView(binding.iconGifImageViewItemPostDetailText,
+ binding.subredditTextViewItemPostDetailText,
+ binding.userTextViewItemPostDetailText,
+ binding.authorFlairTextViewItemPostDetailText,
+ binding.postTimeTextViewItemPostDetailText,
+ binding.titleTextViewItemPostDetailText,
+ binding.typeTextViewItemPostDetailText,
+ binding.crosspostImageViewItemPostDetailText,
+ binding.archivedImageViewItemPostDetailText,
+ binding.lockedImageViewItemPostDetailText,
+ binding.nsfwTextViewItemPostDetailText,
+ binding.spoilerCustomTextViewItemPostDetailText,
+ binding.flairCustomTextViewItemPostDetailText,
+ binding.awardsTextViewItemPostDetailText,
+ binding.upvoteRatioTextViewItemPostDetailText,
+ binding.contentMarkdownViewItemPostDetailText,
+ binding.bottomConstraintLayoutItemPostDetailText,
+ binding.voteButtonToggleItemPostDetailText,
+ binding.upvoteButtonItemPostDetailText,
+ binding.downvoteButtonItemPostDetailText,
+ binding.commentsCountButtonItemPostDetailText,
+ binding.saveButtonItemPostDetailText,
+ binding.shareButtonItemPostDetailText);
}
}
}
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 e7fd43fc..853105e3 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
@@ -3316,6 +3316,14 @@ 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,
+ CustomTextView awardsTextView,
AspectRatioFrameLayout aspectRatioFrameLayout,
GifImageView previewImageView,
ImageView errorLoadingGfycatImageView,
@@ -3597,6 +3605,14 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostVideoTypeAutoplay,
binding.postTimeTextViewItemPostVideoTypeAutoplay,
binding.titleTextViewItemPostVideoTypeAutoplay,
+ binding.typeTextViewItemPostVideoTypeAutoplay,
+ binding.crosspostImageViewItemPostVideoTypeAutoplay,
+ binding.archivedImageViewItemPostVideoTypeAutoplay,
+ binding.lockedImageViewItemPostVideoTypeAutoplay,
+ binding.nsfwTextViewItemPostVideoTypeAutoplay,
+ binding.spoilerCustomTextViewItemPostVideoTypeAutoplay,
+ binding.flairCustomTextViewItemPostVideoTypeAutoplay,
+ binding.awardsTextViewItemPostVideoTypeAutoplay,
binding.aspectRatioFrameLayoutItemPostVideoTypeAutoplay,
binding.previewImageViewItemPostVideoTypeAutoplay,
binding.errorLoadingGfycatImageViewItemPostVideoTypeAutoplay,
@@ -3625,6 +3641,14 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostVideoTypeAutoplay,
binding.postTimeTextViewItemPostVideoTypeAutoplay,
binding.titleTextViewItemPostVideoTypeAutoplay,
+ binding.typeTextViewItemPostVideoTypeAutoplay,
+ binding.crosspostImageViewItemPostVideoTypeAutoplay,
+ binding.archivedImageViewItemPostVideoTypeAutoplay,
+ binding.lockedImageViewItemPostVideoTypeAutoplay,
+ binding.nsfwTextViewItemPostVideoTypeAutoplay,
+ binding.spoilerCustomTextViewItemPostVideoTypeAutoplay,
+ binding.flairCustomTextViewItemPostVideoTypeAutoplay,
+ binding.awardsTextViewItemPostVideoTypeAutoplay,
binding.aspectRatioFrameLayoutItemPostVideoTypeAutoplay,
binding.previewImageViewItemPostVideoTypeAutoplay,
binding.errorLoadingGfycatImageViewItemPostVideoTypeAutoplay,
@@ -4997,29 +5021,37 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
private boolean isManuallyPaused;
PostCard2BaseVideoAutoplayViewHolder(View itemView,
- AspectRatioGifImageView iconGifImageView,
- TextView subredditTextView,
- TextView userTextView,
- ImageView stickiedPostImageView,
- TextView postTimeTextView,
- TextView titleTextView,
- AspectRatioFrameLayout aspectRatioFrameLayout,
- GifImageView previewImageView,
- ImageView errorLoadingGfycatImageView,
- PlayerView videoPlayer,
- ImageView muteButton,
- ImageView fullscreenButton,
- ImageView pauseButton,
- ImageView playButton,
- DefaultTimeBar progressBar,
- ConstraintLayout bottomConstraintLayout,
- MaterialButtonToggleGroup voteButtonToggleGroup,
- MaterialButton upvoteButton,
- MaterialButton downvoteButton,
- MaterialButton commentsCountButton,
- MaterialButton saveButton,
- MaterialButton shareButton,
- View divider) {
+ AspectRatioGifImageView iconGifImageView,
+ TextView subredditTextView,
+ TextView userTextView,
+ ImageView stickiedPostImageView,
+ TextView postTimeTextView,
+ TextView titleTextView,
+ CustomTextView typeTextView,
+ ImageView crosspostImageView,
+ ImageView archivedImageView,
+ ImageView lockedImageView,
+ CustomTextView nsfwTextView,
+ CustomTextView spoilerTextView,
+ CustomTextView flairTextView,
+ CustomTextView awardsTextView,
+ AspectRatioFrameLayout aspectRatioFrameLayout,
+ GifImageView previewImageView,
+ ImageView errorLoadingGfycatImageView,
+ PlayerView videoPlayer,
+ ImageView muteButton,
+ ImageView fullscreenButton,
+ ImageView pauseButton,
+ ImageView playButton,
+ DefaultTimeBar progressBar,
+ ConstraintLayout bottomConstraintLayout,
+ MaterialButtonToggleGroup voteButtonToggleGroup,
+ MaterialButton upvoteButton,
+ MaterialButton downvoteButton,
+ MaterialButton commentsCountButton,
+ MaterialButton saveButton,
+ MaterialButton shareButton,
+ View divider) {
super(itemView);
setBaseView(
iconGifImageView,
@@ -5286,6 +5318,14 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard2VideoAutoplay,
binding.postTimeTextViewItemPostCard2VideoAutoplay,
binding.titleTextViewItemPostCard2VideoAutoplay,
+ binding.typeTextViewItemPostCard2VideoAutoplay,
+ binding.crosspostImageViewItemPostCard2VideoAutoplay,
+ binding.archivedImageViewItemPostCard2VideoAutoplay,
+ binding.lockedImageViewItemPostCard2VideoAutoplay,
+ binding.nsfwTextViewItemPostCard2VideoAutoplay,
+ binding.spoilerCustomTextViewItemPostCard2VideoAutoplay,
+ binding.flairCustomTextViewItemPostCard2VideoAutoplay,
+ binding.awardsTextViewItemPostCard2VideoAutoplay,
binding.aspectRatioFrameLayoutItemPostCard2VideoAutoplay,
binding.previewImageViewItemPostCard2VideoAutoplay,
binding.errorLoadingGfycatImageViewItemPostCard2VideoAutoplay,
@@ -5315,6 +5355,14 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
binding.stickiedPostImageViewItemPostCard2VideoAutoplay,
binding.postTimeTextViewItemPostCard2VideoAutoplay,
binding.titleTextViewItemPostCard2VideoAutoplay,
+ binding.typeTextViewItemPostCard2VideoAutoplay,
+ binding.crosspostImageViewItemPostCard2VideoAutoplay,
+ binding.archivedImageViewItemPostCard2VideoAutoplay,
+ binding.lockedImageViewItemPostCard2VideoAutoplay,
+ binding.nsfwTextViewItemPostCard2VideoAutoplay,
+ binding.spoilerCustomTextViewItemPostCard2VideoAutoplay,
+ binding.flairCustomTextViewItemPostCard2VideoAutoplay,
+ binding.awardsTextViewItemPostCard2VideoAutoplay,
binding.aspectRatioFrameLayoutItemPostCard2VideoAutoplay,
binding.previewImageViewItemPostCard2VideoAutoplay,
binding.errorLoadingGfycatImageViewItemPostCard2VideoAutoplay,
diff --git a/app/src/main/res/layout/item_post_detail_gallery.xml b/app/src/main/res/layout/item_post_detail_gallery.xml
index bb9f2903..d9016438 100644
--- a/app/src/main/res/layout/item_post_detail_gallery.xml
+++ b/app/src/main/res/layout/item_post_detail_gallery.xml
@@ -229,7 +229,7 @@
</FrameLayout>
<ImageView
- android:id="@+id/image_view_no_preview_link_item_post_detail_gallery"
+ android:id="@+id/no_preview_post_type_image_view_item_post_detail_gallery"
android:layout_width="match_parent"
android:layout_height="150dp"
android:scaleType="center"
@@ -249,87 +249,94 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bottom_constraint_layout_item_post_detail_gallery"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_gallery"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_gallery"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- app:layout_constraintBottom_toBottomOf="parent"
+ app:singleSelection="true"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_gallery"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:fontFamily="?attr/font_family"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_gallery"
- app:layout_constraintTop_toTopOf="parent" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_gallery"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_gallery"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/comments_count_item_post_detail_gallery"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_gallery"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_gallery"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
- android:fontFamily="?attr/font_family"
- android:gravity="center_vertical"
- android:padding="12dp"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_gallery"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_gallery"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- android:padding="12dp"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
+ app:layout_constraintHorizontal_bias="1"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_gallery"
app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_gallery"
- app:layout_constraintHorizontal_bias="1"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_gallery"
- app:layout_constraintTop_toTopOf="parent" />
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_image_and_gif_autoplay.xml b/app/src/main/res/layout/item_post_detail_image_and_gif_autoplay.xml
index 900ce5d1..b71ae921 100644
--- a/app/src/main/res/layout/item_post_detail_image_and_gif_autoplay.xml
+++ b/app/src/main/res/layout/item_post_detail_image_and_gif_autoplay.xml
@@ -252,89 +252,96 @@
android:nestedScrollingEnabled="false" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_image_and_gif_autoplay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_image_and_gif_autoplay">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_image_and_gif_autoplay"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_image_and_gif_autoplay"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_image_and_gif_autoplay" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_image_and_gif_autoplay"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_image_and_gif_autoplay"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_image_and_gif_autoplay" />
+ app:layout_constraintBottom_toBottomOf="parent">
- <TextView
- android:id="@+id/comments_count_item_post_detail_image_and_gif_autoplay"
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_image_and_gif_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_image_and_gif_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_image_and_gif_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_image_and_gif_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_image_and_gif_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_image_and_gif_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_image_and_gif_autoplay"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_image_and_gif_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_image_and_gif_autoplay"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_image_and_gif_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_image_and_gif_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_link.xml b/app/src/main/res/layout/item_post_detail_link.xml
index a6299212..4074f4b4 100644
--- a/app/src/main/res/layout/item_post_detail_link.xml
+++ b/app/src/main/res/layout/item_post_detail_link.xml
@@ -262,89 +262,96 @@
android:nestedScrollingEnabled="false" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_link">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_link"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_link"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_link" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_link"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_link"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_link" />
+ app:layout_constraintBottom_toBottomOf="parent">
- <TextView
- android:id="@+id/comments_count_item_post_detail_link"
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_link"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_link"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_link" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_link"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_link"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_link" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_link"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_link"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_no_preview.xml b/app/src/main/res/layout/item_post_detail_no_preview.xml
index e96a45a3..b460f0d7 100644
--- a/app/src/main/res/layout/item_post_detail_no_preview.xml
+++ b/app/src/main/res/layout/item_post_detail_no_preview.xml
@@ -8,13 +8,13 @@
android:background="?attr/cardViewBackgroundColor">
<androidx.constraintlayout.widget.ConstraintLayout
- android:id="@+id/constraint_layout_item_post_detail_no_preview_link"
+ android:id="@+id/constraint_layout_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<ml.docilealligator.infinityforreddit.customviews.AspectRatioGifImageView
- android:id="@+id/icon_gif_image_view_item_post_detail_no_preview_link"
+ android:id="@+id/icon_gif_image_view_item_post_detail_no_preview"
android:layout_width="24dp"
android:layout_height="24dp"
app:layout_constraintBottom_toBottomOf="parent"
@@ -22,36 +22,36 @@
app:layout_constraintTop_toTopOf="parent" />
<TextView
- android:id="@+id/subreddit_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/subreddit_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="8dp"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
- app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview_link"
+ app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview"
app:layout_constraintEnd_toStartOf="@id/guideline"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constrainedWidth="true" />
<TextView
- android:id="@+id/user_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/user_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="8dp"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
- app:layout_constraintBottom_toTopOf="@+id/author_flair_text_view_item_post_detail_no_preview_link"
- app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview_link"
+ app:layout_constraintBottom_toTopOf="@+id/author_flair_text_view_item_post_detail_no_preview"
+ app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview"
app:layout_constraintEnd_toStartOf="@id/guideline"
- app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_no_preview_link"
+ app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_no_preview"
app:layout_constraintHorizontal_bias="0"
app:layout_constrainedWidth="true"/>
<TextView
- android:id="@+id/author_flair_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/author_flair_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
@@ -60,15 +60,15 @@
android:fontFamily="?attr/font_family"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview_link"
+ app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_no_preview"
app:layout_constraintEnd_toStartOf="@id/guideline"
- app:layout_constraintTop_toBottomOf="@+id/user_text_view_item_post_detail_no_preview_link"
+ app:layout_constraintTop_toBottomOf="@+id/user_text_view_item_post_detail_no_preview"
app:layout_constraintHorizontal_bias="0"
app:layout_constrainedWidth="true"
tools:visibility="visible" />
<TextView
- android:id="@+id/post_time_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/post_time_text_view_item_post_detail_no_preview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="end"
@@ -90,7 +90,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
- android:id="@+id/title_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/title_text_view_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
@@ -104,7 +104,7 @@
android:longClickable="true" />
<androidx.recyclerview.widget.RecyclerView
- android:id="@+id/content_markdown_view_item_post_detail_no_preview_link"
+ android:id="@+id/content_markdown_view_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
@@ -123,7 +123,7 @@
app:flRowVerticalGravity="center">
<com.libRG.CustomTextView
- android:id="@+id/type_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/type_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
@@ -135,7 +135,7 @@
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
- android:id="@+id/spoiler_custom_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/spoiler_custom_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -149,7 +149,7 @@
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
- android:id="@+id/nsfw_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/nsfw_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
@@ -162,7 +162,7 @@
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
- android:id="@+id/flair_custom_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/flair_custom_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -175,35 +175,35 @@
app:lib_setShape="rectangle" />
<TextView
- android:id="@+id/upvote_ratio_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/upvote_ratio_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="?attr/font_12"
android:fontFamily="?attr/font_family" />
<ImageView
- android:id="@+id/archived_image_view_item_post_detail_no_preview_link"
+ android:id="@+id/archived_image_view_item_post_detail_no_preview"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_archive_outline"
android:visibility="gone" />
<ImageView
- android:id="@+id/locked_image_view_item_post_detail_no_preview_link"
+ android:id="@+id/locked_image_view_item_post_detail_no_preview"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_outline_lock_24dp"
android:visibility="gone" />
<ImageView
- android:id="@+id/crosspost_image_view_item_post_detail_no_preview_link"
+ android:id="@+id/crosspost_image_view_item_post_detail_no_preview"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/crosspost"
android:visibility="gone" />
<TextView
- android:id="@+id/awards_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/awards_text_view_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="?attr/font_12"
@@ -213,7 +213,7 @@
</com.nex3z.flowlayout.FlowLayout>
<TextView
- android:id="@+id/link_text_view_item_post_detail_no_preview_link"
+ android:id="@+id/link_text_view_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
@@ -223,95 +223,102 @@
android:fontFamily="?attr/font_family" />
<ImageView
- android:id="@+id/image_view_no_preview_post_type_item_post_detail_no_preview_link"
+ android:id="@+id/image_view_no_preview_post_type_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="150dp"
android:scaleType="center" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_no_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_no_preview_link">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_no_preview_link"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_no_preview_link"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_no_preview_link" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_no_preview_link"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_no_preview"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_no_preview_link" />
-
- <TextView
- android:id="@+id/comments_count_item_post_detail_no_preview_link"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_no_preview"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_no_preview"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_no_preview_link" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_no_preview"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
- android:id="@+id/save_button_item_post_detail_no_preview_link"
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/save_button_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_no_preview_link"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_no_preview_link" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_no_preview"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_no_preview"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
- android:id="@+id/share_button_item_post_detail_no_preview_link"
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/share_button_item_post_detail_no_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_text.xml b/app/src/main/res/layout/item_post_detail_text.xml
index 936ef740..625a598d 100644
--- a/app/src/main/res/layout/item_post_detail_text.xml
+++ b/app/src/main/res/layout/item_post_detail_text.xml
@@ -213,89 +213,96 @@
</com.nex3z.flowlayout.FlowLayout>
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_text">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_text"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_text"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
+ app:layout_constraintBottom_toBottomOf="parent">
- <TextView
- android:id="@+id/score_text_view_item_post_detail_text"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_text" />
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_text"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
- <ImageView
- android:id="@+id/minus_button_item_post_detail_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_text" />
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_text"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
- <TextView
- android:id="@+id/comments_count_item_post_detail_text"
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_text" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_text"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_text"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_text" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_text"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_text"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_video_and_gif_preview.xml b/app/src/main/res/layout/item_post_detail_video_and_gif_preview.xml
index f1d84e27..8a7c8044 100644
--- a/app/src/main/res/layout/item_post_detail_video_and_gif_preview.xml
+++ b/app/src/main/res/layout/item_post_detail_video_and_gif_preview.xml
@@ -265,89 +265,96 @@
android:nestedScrollingEnabled="false" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_video_and_gif_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_video_and_gif_preview">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_video_and_gif_preview"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_video_and_gif_preview"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_video_and_gif_preview" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_video_and_gif_preview"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_video_and_gif_preview"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_video_and_gif_preview" />
+ app:layout_constraintBottom_toBottomOf="parent">
- <TextView
- android:id="@+id/comments_count_item_post_detail_video_and_gif_preview"
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_video_and_gif_preview"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_video_and_gif_preview"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_video_and_gif_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_video_and_gif_preview" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_video_and_gif_preview"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_video_and_gif_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_video_and_gif_preview"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_and_gif_preview" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_video_and_gif_preview"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_and_gif_preview"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_video_and_gif_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_video_autoplay.xml b/app/src/main/res/layout/item_post_detail_video_autoplay.xml
index d4818d41..69af5ffd 100644
--- a/app/src/main/res/layout/item_post_detail_video_autoplay.xml
+++ b/app/src/main/res/layout/item_post_detail_video_autoplay.xml
@@ -246,89 +246,96 @@
android:nestedScrollingEnabled="false" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_video_autoplay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_video_autoplay">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_video_autoplay"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_video_autoplay"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_video_autoplay" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_video_autoplay"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_video_autoplay"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_video_autoplay" />
-
- <TextView
- android:id="@+id/comments_count_item_post_detail_video_autoplay"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_video_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_video_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_video_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_video_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_video_autoplay"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_video_autoplay"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/item_post_detail_video_autoplay_legacy_controller.xml b/app/src/main/res/layout/item_post_detail_video_autoplay_legacy_controller.xml
index c21efc56..36400f28 100644
--- a/app/src/main/res/layout/item_post_detail_video_autoplay_legacy_controller.xml
+++ b/app/src/main/res/layout/item_post_detail_video_autoplay_legacy_controller.xml
@@ -247,89 +247,96 @@
android:nestedScrollingEnabled="false" />
<androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/bottom_constraint_layout_item_post_detail_video_autoplay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:id="@+id/bottom_constraint_layout_item_post_detail_video_autoplay">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
- <ImageView
- android:id="@+id/plus_button_item_post_detail_video_autoplay"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_upward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <TextView
- android:id="@+id/score_text_view_item_post_detail_video_autoplay"
- android:layout_width="64dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textSize="?attr/font_12"
- android:textStyle="bold"
- android:fontFamily="?attr/font_family"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/plus_button_item_post_detail_video_autoplay" />
-
- <ImageView
- android:id="@+id/minus_button_item_post_detail_video_autoplay"
- android:layout_width="wrap_content"
+ <com.google.android.material.button.MaterialButtonToggleGroup
+ android:id="@+id/vote_button_toggle_item_post_detail_video_autoplay"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_arrow_downward_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:singleSelection="true"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/score_text_view_item_post_detail_video_autoplay" />
-
- <TextView
- android:id="@+id/comments_count_item_post_detail_video_autoplay"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/upvote_button_item_post_detail_video_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ android:textSize="?attr/font_12"
+ android:textStyle="bold"
+ android:fontFamily="?attr/font_family"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_upvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialButtonOutlinedStyle"
+ android:id="@+id/downvote_button_item_post_detail_video_autoplay"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_downvote_24dp"
+ app:iconSize="24dp"
+ android:backgroundTint="#00000000" />
+
+ </com.google.android.material.button.MaterialButtonToggleGroup>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/comments_count_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:gravity="center_vertical"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:minWidth="0dp"
android:textSize="?attr/font_12"
android:textStyle="bold"
android:fontFamily="?attr/font_family"
- android:drawableStart="@drawable/ic_comment_grey_24dp"
- android:drawablePadding="12dp"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_comment_grey_24dp"
+ app:iconTint="@null"
+ app:iconSize="24dp"
+ app:iconPadding="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/minus_button_item_post_detail_video_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/vote_button_toggle_item_post_detail_video_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/save_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:iconSize="24dp"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@id/comments_count_item_post_detail_video_autoplay"
- app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_autoplay" />
+ app:layout_constraintStart_toEndOf="@id/comments_count_button_item_post_detail_video_autoplay"
+ app:layout_constraintEnd_toStartOf="@id/share_button_item_post_detail_video_autoplay"
+ style="?attr/materialIconButtonOutlinedStyle" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/share_button_item_post_detail_video_autoplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="12dp"
- android:src="@drawable/ic_share_grey_24dp"
- android:background="?actionBarItemBackground"
- android:clickable="true"
- android:focusable="true"
+ app:strokeWidth="0dp"
+ app:icon="@drawable/ic_share_grey_24dp"
+ app:iconSize="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent"
+ style="?attr/materialIconButtonOutlinedStyle" />
</androidx.constraintlayout.widget.ConstraintLayout>