diff --git a/res/values/strings.xml b/res/values/strings.xml index 14a1e55fd..5ede7d411 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -408,7 +408,8 @@ Received a message encrypted using an old version of Signal that is no longer supported. Please ask the sender to update to the most recent version and resend the message. You have left the group. - Updated the group. + You updated the group. + %s updated the group. %s called you Called %s Missed call from %s @@ -575,6 +576,7 @@ Duplicate message. + Group updated Left the group Secure session reset. Draft: @@ -886,7 +888,6 @@ %1$s joined the group. %1$s joined the group. - Group updated. Group name is now \'%1$s\'. diff --git a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java index 2c5365be8..1da0a55d8 100644 --- a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java @@ -25,8 +25,8 @@ import android.text.style.StyleSpan; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.MmsSmsColumns; import org.thoughtcrime.securesms.database.SmsDatabase; -import org.thoughtcrime.securesms.database.documents.NetworkFailure; import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; +import org.thoughtcrime.securesms.database.documents.NetworkFailure; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipients; import org.thoughtcrime.securesms.util.ExpirationUtil; @@ -93,9 +93,9 @@ public abstract class MessageRecord extends DisplayRecord { @Override public SpannableString getDisplayBody() { if (isGroupUpdate() && isOutgoing()) { - return emphasisAdded(context.getString(R.string.MessageRecord_updated_group)); + return emphasisAdded(context.getString(R.string.MessageRecord_you_updated_group)); } else if (isGroupUpdate()) { - return emphasisAdded(GroupUtil.getDescription(context, getBody().getBody()).toString()); + return emphasisAdded(GroupUtil.getDescription(context, getBody().getBody()).toString(getIndividualRecipient())); } else if (isGroupQuit() && isOutgoing()) { return emphasisAdded(context.getString(R.string.MessageRecord_left_group)); } else if (isGroupQuit()) { diff --git a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java index ab766227c..8f39fd379 100644 --- a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java @@ -28,10 +28,8 @@ import android.text.style.StyleSpan; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.MmsSmsColumns; import org.thoughtcrime.securesms.database.SmsDatabase; -import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.recipients.Recipients; import org.thoughtcrime.securesms.util.ExpirationUtil; -import org.thoughtcrime.securesms.util.GroupUtil; /** * The message record model which represents thread heading messages. @@ -75,7 +73,7 @@ public class ThreadRecord extends DisplayRecord { if (SmsDatabase.Types.isDecryptInProgressType(type)) { return emphasisAdded(context.getString(R.string.MessageDisplayHelper_decrypting_please_wait)); } else if (isGroupUpdate()) { - return emphasisAdded(GroupUtil.getDescription(context, getBody().getBody()).toString()); + return emphasisAdded(context.getString(R.string.ThreadRecord_group_updated)); } else if (isGroupQuit()) { return emphasisAdded(context.getString(R.string.ThreadRecord_left_the_group)); } else if (isKeyExchange()) { diff --git a/src/org/thoughtcrime/securesms/util/GroupUtil.java b/src/org/thoughtcrime/securesms/util/GroupUtil.java index 3a1422dce..6b35fe870 100644 --- a/src/org/thoughtcrime/securesms/util/GroupUtil.java +++ b/src/org/thoughtcrime/securesms/util/GroupUtil.java @@ -6,6 +6,7 @@ import android.support.annotation.Nullable; import android.util.Log; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientFactory; import org.thoughtcrime.securesms.recipients.Recipients; @@ -61,33 +62,33 @@ public class GroupUtil { if (groupContext == null || groupContext.getMembersList().isEmpty()) { this.members = null; } else { - this.members = RecipientFactory.getRecipientsFromString(context, Util.join(groupContext.getMembersList(), ", "), true); + this.members = RecipientFactory.getRecipientsFromStrings(context, groupContext.getMembersList(), true); } } - public String toString() { + public String toString(Recipient sender) { + StringBuilder description = new StringBuilder(); + description.append(context.getString(R.string.MessageRecord_s_updated_group, sender.toShortString())); + if (groupContext == null) { - return context.getString(R.string.GroupUtil_group_updated); + return description.toString(); } - StringBuilder description = new StringBuilder(); - String title = groupContext.getName(); + String title = groupContext.getName(); if (members != null) { + description.append("\n"); description.append(context.getResources().getQuantityString(R.plurals.GroupUtil_joined_the_group, members.getRecipientsList().size(), members.toShortString())); } if (title != null && !title.trim().isEmpty()) { - if (description.length() > 0) description.append(" "); + if (members != null) description.append(" "); + else description.append("\n"); description.append(context.getString(R.string.GroupUtil_group_name_is_now, title)); } - if (description.length() > 0) { - return description.toString(); - } else { - return context.getString(R.string.GroupUtil_group_updated); - } + return description.toString(); } public void addListener(Recipients.RecipientsModifiedListener listener) {