Consolidate admin delete into one string.

This commit is contained in:
Michelle Tang
2026-03-03 15:24:30 -05:00
committed by Greyson Parrelli
parent 74d9e3248b
commit a6c8b940c9
2 changed files with 10 additions and 12 deletions

View File

@@ -146,6 +146,7 @@ import org.thoughtcrime.securesms.util.LongClickMovementMethod;
import org.thoughtcrime.securesms.util.MediaUtil;
import org.thoughtcrime.securesms.util.MessageRecordUtil;
import org.thoughtcrime.securesms.util.PlaceholderURLSpan;
import org.thoughtcrime.securesms.util.SpanUtil;
import org.thoughtcrime.securesms.util.Projection;
import org.thoughtcrime.securesms.util.ProjectionList;
import org.thoughtcrime.securesms.util.RemoteConfig;
@@ -1171,8 +1172,8 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
} else if (!isAdminDelete) {
body = formatDeletedText(context.getString(R.string.ConversationItem_s_deleted_this_message, message.getDeletedByRecipient().getDisplayName(context)));
} else {
SpannableString prefix = formatDeletedText(context.getString(R.string.ConversationItem_admin));
SpannableString suffix = formatDeletedText(context.getString(R.string.ConversationItem_deleted_this_message));
String template = context.getString(R.string.ConversationItem_admin_s_deleted_this_message, SpanUtil.SPAN_PLACE_HOLDER);
int start = template.indexOf(SpanUtil.SPAN_PLACE_HOLDER);
int nameColor = colorizer.getIncomingGroupSenderColor(getContext(), message.getDeletedByRecipient());
SpannableString name = new SpannableString(message.getDeletedByRecipient().getDisplayName(context));
@@ -1180,12 +1181,11 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
name.setSpan(new RecipientClickableSpan(conversationMessage.getDeletedByRecipient().getId()), 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
name.setSpan(new StyleSpan(Typeface.BOLD), 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
body = new SpannableStringBuilder()
.append(prefix)
.append(" ")
.append(name)
.append(" ")
.append(suffix);
SpannableStringBuilder builder = new SpannableStringBuilder(template);
builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, org.signal.core.ui.R.color.signal_colorOnSurfaceVariant)), 0, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.replace(start, start + SpanUtil.SPAN_PLACE_HOLDER.length(), name);
body = builder;
}
return new SpannableStringBuilder()

View File

@@ -458,10 +458,8 @@
<!-- Conversation message shown when someone deletes their own message. Placeholder is the name of the person. -->
<string name="ConversationItem_s_deleted_this_message">%1$s deleted this message</string>
<string name="ConversationItem_you_deleted_this_message">You deleted this message</string>
<!-- First part of a conversation message when a message has been deleted by an admin. -->
<string name="ConversationItem_admin">Admin</string>
<!-- Second part of a conversation message when a message has been deleted by an admin. -->
<string name="ConversationItem_deleted_this_message">deleted this message</string>
<!-- Conversation message when a message has been deleted by an admin. The placeholder is the admin's name. -->
<string name="ConversationItem_admin_s_deleted_this_message">Admin %1$s deleted this message</string>
<!-- Dialog error message shown when user can\'t download a message from someone else due to a permanent failure (e.g., unable to decrypt), placeholder is other\'s name -->
<string name="ConversationItem_cant_download_message_s_will_need_to_send_it_again">Can\'t download message. %1$s will need to send it again.</string>
<!-- Dialog error message shown when user can\'t download an image message from someone else due to a permanent failure (e.g., unable to decrypt), placeholder is other\'s name -->