Disallowing replying to locked comment. Hide the reply option in PostOptionsBottomSheetFragment if the post is locked or archived.

This commit is contained in:
Docile-Alligator 2025-07-29 18:47:30 -04:00
parent e68c6352be
commit 7647079dfd
4 changed files with 40 additions and 28 deletions

View File

@ -572,7 +572,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
((CommentBaseViewHolder) holder).downvoteButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
}
if (mPost.isLocked()) {
if (mPost.isLocked() || comment.isLocked()) {
((CommentBaseViewHolder) holder).replyButton.setIconTint(ColorStateList.valueOf(mVoteAndReplyUnavailableVoteButtonColor));
}
@ -1538,6 +1538,11 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
Comment comment = getCurrentComment(this);
if (comment != null) {
if (comment.isLocked()) {
Toast.makeText(mActivity, R.string.locked_comment_reply_unavailable, Toast.LENGTH_SHORT).show();
return;
}
Intent intent = new Intent(mActivity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, comment.getDepth() + 1);
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, comment.getCommentMarkdown());

View File

@ -18,7 +18,6 @@ import androidx.fragment.app.Fragment;
import java.util.ArrayList;
import ml.docilealligator.infinityforreddit.thing.MediaMetadata;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.activities.BaseActivity;
@ -31,6 +30,7 @@ import ml.docilealligator.infinityforreddit.activities.ViewUserDetailActivity;
import ml.docilealligator.infinityforreddit.comment.Comment;
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
import ml.docilealligator.infinityforreddit.databinding.FragmentCommentMoreBottomSheetBinding;
import ml.docilealligator.infinityforreddit.thing.MediaMetadata;
import ml.docilealligator.infinityforreddit.utils.ShareScreenshotUtilsKt;
import ml.docilealligator.infinityforreddit.utils.Utils;
@ -124,7 +124,22 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
}
if (showReplyAndSaveOption) {
binding.replyTextViewCommentMoreBottomSheetFragment.setVisibility(View.VISIBLE);
if (!comment.isLocked()) {
binding.replyTextViewCommentMoreBottomSheetFragment.setVisibility(View.VISIBLE);
binding.replyTextViewCommentMoreBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(activity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, comment.getDepth() + 1);
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, comment.getCommentMarkdown());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, comment.getCommentRawText());
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, comment.getFullName());
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, true);
intent.putExtra(CommentActivity.EXTRA_PARENT_POSITION_KEY, bundle.getInt(EXTRA_POSITION));
activity.startActivityForResult(intent, CommentActivity.WRITE_COMMENT_REQUEST_CODE);
dismiss();
});
}
binding.saveTextViewCommentMoreBottomSheetFragment.setVisibility(View.VISIBLE);
if (comment.isSaved()) {
binding.saveTextViewCommentMoreBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(ContextCompat.getDrawable(activity, R.drawable.ic_bookmark_day_night_24dp), null, null, null);
@ -133,19 +148,6 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
binding.saveTextViewCommentMoreBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(ContextCompat.getDrawable(activity, R.drawable.ic_bookmark_border_day_night_24dp), null, null, null);
binding.saveTextViewCommentMoreBottomSheetFragment.setText(R.string.save_comment);
}
binding.replyTextViewCommentMoreBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(activity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, comment.getDepth() + 1);
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, comment.getCommentMarkdown());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, comment.getCommentRawText());
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, comment.getFullName());
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, true);
intent.putExtra(CommentActivity.EXTRA_PARENT_POSITION_KEY, bundle.getInt(EXTRA_POSITION));
activity.startActivityForResult(intent, CommentActivity.WRITE_COMMENT_REQUEST_CODE);
dismiss();
});
binding.saveTextViewCommentMoreBottomSheetFragment.setOnClickListener(view -> {
if (activity instanceof ViewPostDetailActivity) {

View File

@ -201,19 +201,23 @@ public class PostOptionsBottomSheetFragment extends LandscapeExpandedRoundedBott
binding.crosspostTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
binding.reportTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
} else {
binding.commentTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(mBaseActivity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, mPost.getFullName());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_TITLE_KEY, mPost.getTitle());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, mPost.getSelfText());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, mPost.getSelfTextPlain());
intent.putExtra(CommentActivity.EXTRA_SUBREDDIT_NAME_KEY, mPost.getSubredditName());
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, false);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, 0);
mBaseActivity.startActivity(intent);
if (mPost.isLocked() || mPost.isArchived()) {
binding.commentTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
} else {
binding.commentTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(mBaseActivity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, mPost.getFullName());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_TITLE_KEY, mPost.getTitle());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, mPost.getSelfText());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, mPost.getSelfTextPlain());
intent.putExtra(CommentActivity.EXTRA_SUBREDDIT_NAME_KEY, mPost.getSubredditName());
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, false);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, 0);
mBaseActivity.startActivity(intent);
dismiss();
});
dismiss();
});
}
if (mPost.isHidden()) {
binding.hidePostTextViewPostOptionsBottomSheetFragment.setText(R.string.action_unhide_post);

View File

@ -302,6 +302,7 @@
<string name="archived_post_reply_unavailable">Archived post. Reply unavailable.</string>
<string name="locked_post_comment_unavailable">Locked post. Comment unavailable.</string>
<string name="locked_post_reply_unavailable">Locked post. Reply unavailable.</string>
<string name="locked_comment_reply_unavailable">Locked comment. Reply unavailable.</string>
<string name="text">TEXT</string>
<string name="link">LINK</string>