diff options
3 files changed, 127 insertions, 86 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsListingRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsListingRecyclerViewAdapter.java index 411a8af0..a3b5b5db 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsListingRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsListingRecyclerViewAdapter.java @@ -25,7 +25,6 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.button.MaterialButton; -import com.google.android.material.button.MaterialButtonToggleGroup; import java.util.Locale; @@ -226,17 +225,18 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment commentScoreText = Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType()); } - ((CommentBaseViewHolder) holder).upvoteButton.setText(commentScoreText); + ((CommentBaseViewHolder) holder).scoreTextView.setText(commentScoreText); switch (comment.getVoteType()) { case Comment.VOTE_TYPE_UPVOTE: - ((CommentBaseViewHolder) holder).upvoteButton.setTextColor(mUpvotedColor); ((CommentBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); ((CommentBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mUpvotedColor); break; case Comment.VOTE_TYPE_DOWNVOTE: ((CommentBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); ((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mDownvotedColor); break; } @@ -270,9 +270,9 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment ((CommentBaseViewHolder) holder).authorFlairTextView.setVisibility(View.GONE); ((CommentBaseViewHolder) holder).awardsTextView.setText(""); ((CommentBaseViewHolder) holder).awardsTextView.setVisibility(View.GONE); - ((CommentBaseViewHolder) holder).upvoteButton.setTextColor(mCommentIconAndInfoColor); ((CommentBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); ((CommentBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mCommentIconAndInfoColor); ((CommentBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); ((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); } @@ -354,8 +354,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment TextView awardsTextView; RecyclerView commentMarkdownView; ConstraintLayout bottomConstraintLayout; - MaterialButtonToggleGroup voteButtonToggleGroup; MaterialButton upvoteButton; + TextView scoreTextView; MaterialButton downvoteButton; View placeholder; MaterialButton moreButton; @@ -375,8 +375,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment TextView awardsTextView, RecyclerView commentMarkdownView, ConstraintLayout bottomConstraintLayout, - MaterialButtonToggleGroup voteButtonToggleGroup, MaterialButton upvoteButton, + TextView scoreTextView, MaterialButton downvoteButton, View placeholder, MaterialButton moreButton, @@ -392,8 +392,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment this.awardsTextView = awardsTextView; this.commentMarkdownView = commentMarkdownView; this.bottomConstraintLayout = bottomConstraintLayout; - this.voteButtonToggleGroup = voteButtonToggleGroup; this.upvoteButton = upvoteButton; + this.scoreTextView = scoreTextView; this.downvoteButton = downvoteButton; this.placeholder = placeholder; this.moreButton = moreButton; @@ -409,8 +409,12 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment if (mVoteButtonsOnTheRight) { ConstraintSet constraintSet = new ConstraintSet(); constraintSet.clone(bottomConstraintLayout); - constraintSet.clear(voteButtonToggleGroup.getId(), ConstraintSet.START); - constraintSet.clear(voteButtonToggleGroup.getId(), ConstraintSet.END); + constraintSet.clear(upvoteButton.getId(), ConstraintSet.START); + constraintSet.clear(upvoteButton.getId(), ConstraintSet.END); + constraintSet.clear(scoreTextView.getId(), ConstraintSet.START); + constraintSet.clear(scoreTextView.getId(), ConstraintSet.END); + constraintSet.clear(downvoteButton.getId(), ConstraintSet.START); + constraintSet.clear(downvoteButton.getId(), ConstraintSet.END); constraintSet.clear(expandButton.getId(), ConstraintSet.START); constraintSet.clear(expandButton.getId(), ConstraintSet.END); constraintSet.clear(saveButton.getId(), ConstraintSet.START); @@ -419,8 +423,13 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment constraintSet.clear(replyButton.getId(), ConstraintSet.END); constraintSet.clear(moreButton.getId(), ConstraintSet.START); constraintSet.clear(moreButton.getId(), ConstraintSet.END); - constraintSet.connect(voteButtonToggleGroup.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END); - constraintSet.connect(placeholder.getId(), ConstraintSet.END, voteButtonToggleGroup.getId(), ConstraintSet.START); + constraintSet.connect(upvoteButton.getId(), ConstraintSet.END, scoreTextView.getId(), ConstraintSet.START); + constraintSet.connect(upvoteButton.getId(), ConstraintSet.START, placeholder.getId(), ConstraintSet.END); + constraintSet.connect(scoreTextView.getId(), ConstraintSet.END, downvoteButton.getId(), ConstraintSet.START); + constraintSet.connect(scoreTextView.getId(), ConstraintSet.START, upvoteButton.getId(), ConstraintSet.END); + constraintSet.connect(downvoteButton.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END); + constraintSet.connect(downvoteButton.getId(), ConstraintSet.START, scoreTextView.getId(), ConstraintSet.END); + constraintSet.connect(placeholder.getId(), ConstraintSet.END, upvoteButton.getId(), ConstraintSet.START); constraintSet.connect(placeholder.getId(), ConstraintSet.START, moreButton.getId(), ConstraintSet.END); constraintSet.connect(moreButton.getId(), ConstraintSet.START, expandButton.getId(), ConstraintSet.END); constraintSet.connect(moreButton.getId(), ConstraintSet.END, placeholder.getId(), ConstraintSet.START); @@ -454,7 +463,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment commentTimeTextView.setTextColor(mSecondaryTextColor); awardsTextView.setTextColor(mSecondaryTextColor); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); - upvoteButton.setTextColor(mCommentIconAndInfoColor); + scoreTextView.setTextColor(mCommentIconAndInfoColor); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); moreButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); saveButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); @@ -555,20 +564,20 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment //Not upvoted before comment.setVoteType(Comment.VOTE_TYPE_UPVOTE); newVoteType = APIUtils.DIR_UPVOTE; - upvoteButton.setTextColor(mUpvotedColor); upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + scoreTextView.setTextColor(mUpvotedColor); } else { //Upvoted before comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); newVoteType = APIUtils.DIR_UNVOTE; - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); } if (!comment.isScoreHidden()) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); } @@ -579,16 +588,16 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment if (newVoteType.equals(APIUtils.DIR_UPVOTE)) { comment.setVoteType(Comment.VOTE_TYPE_UPVOTE); if (currentPosition == position) { - upvoteButton.setTextColor(mUpvotedColor); upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + scoreTextView.setTextColor(mUpvotedColor); } } else { comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); if (currentPosition == position) { - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); } } @@ -596,7 +605,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); if (!comment.isScoreHidden()) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); } } @@ -609,6 +618,10 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment } }); + scoreTextView.setOnClickListener(view -> { + upvoteButton.performClick(); + }); + downvoteButton.setOnClickListener(view -> { if (mAccessToken == null) { Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show(); @@ -624,7 +637,6 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment int previousVoteType = comment.getVoteType(); String newVoteType; - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); @@ -634,16 +646,18 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment newVoteType = APIUtils.DIR_DOWNVOTE; downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + scoreTextView.setTextColor(mDownvotedColor); } else { //Downvoted before comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); newVoteType = APIUtils.DIR_UNVOTE; downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); } if (!comment.isScoreHidden()) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); } @@ -656,21 +670,22 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment if (currentPosition == position) { downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + scoreTextView.setTextColor(mDownvotedColor); } } else { comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); if (currentPosition == position) { downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); } } if (currentPosition == position) { - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); if (!comment.isScoreHidden()) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); } } @@ -751,8 +766,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment binding.awardsTextViewItemComment, binding.commentMarkdownViewItemPostComment, binding.bottomConstraintLayoutItemPostComment, - binding.voteButtonToggleItemPostComment, binding.upvoteButtonItemPostComment, + binding.scoreTextViewItemPostComment, binding.downvoteButtonItemPostComment, binding.placeholderItemPostComment, binding.moreButtonItemPostComment, diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java index ac4653b4..1609bb05 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java @@ -30,7 +30,6 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.RequestManager; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.button.MaterialButton; -import com.google.android.material.button.MaterialButtonToggleGroup; import com.lsjwzh.widget.materialloadingprogressbar.CircleProgressBar; import java.util.ArrayList; @@ -454,10 +453,10 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); } - ((CommentBaseViewHolder) holder).upvoteButton.setText(commentText); + ((CommentBaseViewHolder) holder).scoreTextView.setText(commentText); ((CommentBaseViewHolder) holder).topScoreTextView.setText(topScoreText); } else { - ((CommentBaseViewHolder) holder).upvoteButton.setText(mActivity.getString(R.string.vote)); + ((CommentBaseViewHolder) holder).scoreTextView.setText(mActivity.getString(R.string.vote)); } if (comment.isEdited()) { @@ -490,22 +489,23 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi switch (comment.getVoteType()) { case Comment.VOTE_TYPE_UPVOTE: - ((CommentBaseViewHolder) holder).upvoteButton.setTextColor(mUpvotedColor); ((CommentBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); ((CommentBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mUpvotedColor); ((CommentBaseViewHolder) holder).topScoreTextView.setTextColor(mUpvotedColor); break; case Comment.VOTE_TYPE_DOWNVOTE: ((CommentBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); ((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mDownvotedColor); ((CommentBaseViewHolder) holder).topScoreTextView.setTextColor(mDownvotedColor); break; } if (mPost.isArchived()) { ((CommentBaseViewHolder) holder).replyButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor)); - ((CommentBaseViewHolder) holder).upvoteButton.setTextColor(mVoteAndReplyUnavailableVoteButtonColor); ((CommentBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mVoteAndReplyUnavailableVoteButtonColor); ((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor)); } @@ -1123,9 +1123,9 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi ((CommentBaseViewHolder) holder).awardsTextView.setText(""); ((CommentBaseViewHolder) holder).awardsTextView.setVisibility(View.GONE); ((CommentBaseViewHolder) holder).expandButton.setVisibility(View.GONE); - ((CommentBaseViewHolder) holder).upvoteButton.setTextColor(mCommentIconAndInfoColor); ((CommentBaseViewHolder) holder).upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); ((CommentBaseViewHolder) holder).upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + ((CommentBaseViewHolder) holder).scoreTextView.setTextColor(mCommentIconAndInfoColor); ((CommentBaseViewHolder) holder).downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); ((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); ((CommentBaseViewHolder) holder).expandButton.setText(""); @@ -1175,8 +1175,8 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi RecyclerView commentMarkdownView; TextView editedTextView; ConstraintLayout bottomConstraintLayout; - MaterialButtonToggleGroup voteButtonToggleGroup; MaterialButton upvoteButton; + TextView scoreTextView; MaterialButton downvoteButton; View placeholder; MaterialButton moreButton; @@ -1201,8 +1201,8 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi RecyclerView commentMarkdownView, TextView editedTextView, ConstraintLayout bottomConstraintLayout, - MaterialButtonToggleGroup voteButtonToggleGroup, MaterialButton upvoteButton, + TextView scoreTextView, MaterialButton downvoteButton, View placeholder, MaterialButton moreButton, @@ -1221,8 +1221,8 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi this.commentMarkdownView = commentMarkdownView; this.editedTextView = editedTextView; this.bottomConstraintLayout = bottomConstraintLayout; - this.voteButtonToggleGroup = voteButtonToggleGroup; this.upvoteButton = upvoteButton; + this.scoreTextView = scoreTextView; this.downvoteButton = downvoteButton; this.placeholder = placeholder; this.moreButton = moreButton; @@ -1235,8 +1235,12 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi if (mVoteButtonsOnTheRight) { ConstraintSet constraintSet = new ConstraintSet(); constraintSet.clone(bottomConstraintLayout); - constraintSet.clear(voteButtonToggleGroup.getId(), ConstraintSet.START); - constraintSet.clear(voteButtonToggleGroup.getId(), ConstraintSet.END); + constraintSet.clear(upvoteButton.getId(), ConstraintSet.START); + constraintSet.clear(upvoteButton.getId(), ConstraintSet.END); + constraintSet.clear(scoreTextView.getId(), ConstraintSet.START); + constraintSet.clear(scoreTextView.getId(), ConstraintSet.END); + constraintSet.clear(downvoteButton.getId(), ConstraintSet.START); + constraintSet.clear(downvoteButton.getId(), ConstraintSet.END); constraintSet.clear(expandButton.getId(), ConstraintSet.START); constraintSet.clear(expandButton.getId(), ConstraintSet.END); constraintSet.clear(saveButton.getId(), ConstraintSet.START); @@ -1245,8 +1249,13 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi constraintSet.clear(replyButton.getId(), ConstraintSet.END); constraintSet.clear(moreButton.getId(), ConstraintSet.START); constraintSet.clear(moreButton.getId(), ConstraintSet.END); - constraintSet.connect(voteButtonToggleGroup.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END); - constraintSet.connect(placeholder.getId(), ConstraintSet.END, voteButtonToggleGroup.getId(), ConstraintSet.START); + constraintSet.connect(upvoteButton.getId(), ConstraintSet.END, scoreTextView.getId(), ConstraintSet.START); + constraintSet.connect(upvoteButton.getId(), ConstraintSet.START, placeholder.getId(), ConstraintSet.END); + constraintSet.connect(scoreTextView.getId(), ConstraintSet.END, downvoteButton.getId(), ConstraintSet.START); + constraintSet.connect(scoreTextView.getId(), ConstraintSet.START, upvoteButton.getId(), ConstraintSet.END); + constraintSet.connect(downvoteButton.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END); + constraintSet.connect(downvoteButton.getId(), ConstraintSet.START, scoreTextView.getId(), ConstraintSet.END); + constraintSet.connect(placeholder.getId(), ConstraintSet.END, upvoteButton.getId(), ConstraintSet.START); constraintSet.connect(placeholder.getId(), ConstraintSet.START, moreButton.getId(), ConstraintSet.END); constraintSet.connect(moreButton.getId(), ConstraintSet.START, expandButton.getId(), ConstraintSet.END); constraintSet.connect(moreButton.getId(), ConstraintSet.END, placeholder.getId(), ConstraintSet.START); @@ -1277,7 +1286,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi topScoreTextView.setTypeface(mActivity.typeface); editedTextView.setTypeface(mActivity.typeface); awardsTextView.setTypeface(mActivity.typeface); - upvoteButton.setTypeface(mActivity.typeface); + scoreTextView.setTypeface(mActivity.typeface); expandButton.setTypeface(mActivity.typeface); } @@ -1313,7 +1322,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi awardsTextView.setTextColor(mSecondaryTextColor); commentDivider.setBackgroundColor(mDividerColor); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); - upvoteButton.setTextColor(mCommentIconAndInfoColor); + scoreTextView.setTextColor(mCommentIconAndInfoColor); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); moreButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); expandButton.setTextColor(mCommentIconAndInfoColor); @@ -1411,22 +1420,22 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi //Not upvoted before comment.setVoteType(Comment.VOTE_TYPE_UPVOTE); newVoteType = APIUtils.DIR_UPVOTE; - upvoteButton.setTextColor(mUpvotedColor); upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + scoreTextView.setTextColor(mUpvotedColor); topScoreTextView.setTextColor(mUpvotedColor); } else { //Upvoted before comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); newVoteType = APIUtils.DIR_UNVOTE; - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); topScoreTextView.setTextColor(mSecondaryTextColor); } if (!comment.isScoreHidden() && !mHideTheNumberOfVotes) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); topScoreTextView.setText(mActivity.getString(R.string.top_score, Utils.getNVotes(mShowAbsoluteNumberOfVotes, @@ -1440,17 +1449,17 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi if (newVoteType.equals(APIUtils.DIR_UPVOTE)) { comment.setVoteType(Comment.VOTE_TYPE_UPVOTE); if (currentPosition == position) { - upvoteButton.setTextColor(mUpvotedColor); upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor)); + scoreTextView.setTextColor(mUpvotedColor); topScoreTextView.setTextColor(mUpvotedColor); } } else { comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE); if (currentPosition == position) { - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); topScoreTextView.setTextColor(mSecondaryTextColor); } } @@ -1459,7 +1468,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); if (!comment.isScoreHidden() && !mHideTheNumberOfVotes) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); topScoreTextView.setText(mActivity.getString(R.string.top_score, Utils.getNVotes(mShowAbsoluteNumberOfVotes, @@ -1475,6 +1484,10 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi } }); + scoreTextView.setOnClickListener(view -> { + upvoteButton.performClick(); + }); + downvoteButton.setOnClickListener(view -> { if (mPost.isArchived()) { Toast.makeText(mActivity, R.string.archived_post_vote_unavailable, Toast.LENGTH_SHORT).show(); @@ -1491,7 +1504,6 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi int previousVoteType = comment.getVoteType(); String newVoteType; - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); @@ -1501,6 +1513,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi newVoteType = APIUtils.DIR_DOWNVOTE; downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + scoreTextView.setTextColor(mDownvotedColor); topScoreTextView.setTextColor(mDownvotedColor); } else { //Downvoted before @@ -1508,11 +1521,12 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi newVoteType = APIUtils.DIR_UNVOTE; downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); topScoreTextView.setTextColor(mSecondaryTextColor); } if (!comment.isScoreHidden() && !mHideTheNumberOfVotes) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); topScoreTextView.setText(mActivity.getString(R.string.top_score, Utils.getNVotes(mShowAbsoluteNumberOfVotes, @@ -1529,6 +1543,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi if (currentPosition == position) { downvoteButton.setIconResource(R.drawable.ic_downvote_filled_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mDownvotedColor)); + scoreTextView.setTextColor(mDownvotedColor); topScoreTextView.setTextColor(mDownvotedColor); } } else { @@ -1536,16 +1551,16 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi if (currentPosition == position) { downvoteButton.setIconResource(R.drawable.ic_downvote_24dp); downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); + scoreTextView.setTextColor(mCommentIconAndInfoColor); topScoreTextView.setTextColor(mSecondaryTextColor); } } if (currentPosition == position) { - upvoteButton.setTextColor(mCommentIconAndInfoColor); upvoteButton.setIconResource(R.drawable.ic_upvote_24dp); upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor)); if (!comment.isScoreHidden() && !mHideTheNumberOfVotes) { - upvoteButton.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); topScoreTextView.setText(mActivity.getString(R.string.top_score, Utils.getNVotes(mShowAbsoluteNumberOfVotes, @@ -1755,8 +1770,8 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi binding.commentMarkdownViewItemPostComment, binding.editedTextViewItemPostComment, binding.bottomConstraintLayoutItemPostComment, - binding.voteButtonToggleItemPostComment, binding.upvoteButtonItemPostComment, + binding.scoreTextViewItemPostComment, binding.downvoteButtonItemPostComment, binding.placeholderItemPostComment, binding.moreButtonItemPostComment, diff --git a/app/src/main/res/layout/item_comment.xml b/app/src/main/res/layout/item_comment.xml index bd820199..6c981463 100644 --- a/app/src/main/res/layout/item_comment.xml +++ b/app/src/main/res/layout/item_comment.xml @@ -152,45 +152,56 @@ android:paddingStart="4dp" android:paddingEnd="4dp"> - <com.google.android.material.button.MaterialButtonToggleGroup - android:id="@+id/vote_button_toggle_item_post_comment" - android:layout_width="0dp" - android:layout_height="wrap_content" - app:singleSelection="true" + <com.google.android.material.button.MaterialButton + style="?attr/materialIconButtonStyle" + android:id="@+id/upvote_button_item_post_comment" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingStart="8dp" + android:paddingEnd="8dp" + android:minWidth="0dp" + android:backgroundTint="#00000000" + app:strokeWidth="0dp" + app:icon="@drawable/ic_upvote_24dp" + app:iconSize="24dp" + app:layout_constraintHorizontal_chainStyle="spread_inside" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/score_text_view_item_post_comment" + app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" - 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_comment" - 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" /> + app:layout_constraintTop_toTopOf="parent" /> - <com.google.android.material.button.MaterialButton - style="?attr/materialButtonOutlinedStyle" - android:id="@+id/downvote_button_item_post_comment" - 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/score_text_view_item_post_comment" + 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_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/downvote_button_item_post_comment" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/upvote_button_item_post_comment" + app:layout_constraintTop_toTopOf="parent" /> - </com.google.android.material.button.MaterialButtonToggleGroup> + <com.google.android.material.button.MaterialButton + style="?attr/materialIconButtonStyle" + android:id="@+id/downvote_button_item_post_comment" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingStart="8dp" + android:paddingEnd="8dp" + android:minWidth="0dp" + android:backgroundTint="#00000000" + app:strokeWidth="0dp" + app:icon="@drawable/ic_downvote_24dp" + app:iconSize="24dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/placeholder_item_post_comment" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/score_text_view_item_post_comment" + app:layout_constraintTop_toTopOf="parent" /> <View android:id="@+id/placeholder_item_post_comment" @@ -201,7 +212,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/more_button_item_post_comment" app:layout_constraintHorizontal_bias="0.5" - app:layout_constraintStart_toEndOf="@+id/vote_button_toggle_item_post_comment" + app:layout_constraintStart_toEndOf="@+id/downvote_button_item_post_comment" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.button.MaterialButton |