diff --git a/res/values/strings.xml b/res/values/strings.xml index d1c0973cf3..f1bf331920 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -169,6 +169,9 @@ Creating %1$s… Cannot add non-TextSecure contacts to an existing TextSecure group + + Me + Import Export diff --git a/src/org/thoughtcrime/securesms/GroupMembersDialog.java b/src/org/thoughtcrime/securesms/GroupMembersDialog.java index dfc564a2d6..b1f3cb8884 100644 --- a/src/org/thoughtcrime/securesms/GroupMembersDialog.java +++ b/src/org/thoughtcrime/securesms/GroupMembersDialog.java @@ -10,6 +10,9 @@ import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipients; import org.thoughtcrime.securesms.util.GroupUtil; +import org.thoughtcrime.securesms.util.TextSecurePreferences; +import org.thoughtcrime.securesms.util.Util; +import org.whispersystems.textsecure.api.util.InvalidNumberException; import java.io.IOException; import java.util.LinkedList; @@ -17,6 +20,8 @@ import java.util.List; public class GroupMembersDialog extends AsyncTask { + private static final String TAG = GroupMembersDialog.class.getSimpleName(); + private final Recipients recipients; private final Context context; @@ -50,10 +55,13 @@ public class GroupMembersDialog extends AsyncTask { progress.dismiss(); } - List recipientStrings = new LinkedList(); + List recipientStrings = new LinkedList<>(); + recipientStrings.add(context.getString(R.string.GroupMembersDialog_me)); for (Recipient recipient : members.getRecipientsList()) { - recipientStrings.add(recipient.toShortString()); + if (!isLocalNumber(recipient)) { + recipientStrings.add(recipient.toShortString()); + } } AlertDialog.Builder builder = new AlertDialog.Builder(context); @@ -69,4 +77,16 @@ public class GroupMembersDialog extends AsyncTask { if (recipients.isGroupRecipient()) execute(); else onPostExecute(recipients); } + + private boolean isLocalNumber(Recipient recipient) { + try { + String localNumber = TextSecurePreferences.getLocalNumber(context); + String e164Number = Util.canonicalizeNumber(context, recipient.getNumber()); + + return e164Number != null && e164Number.equals(localNumber); + } catch (InvalidNumberException e) { + Log.w(TAG, e); + return false; + } + } }