From 1874115bd58bfebf61c30526db155abe135731c7 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 20 Mar 2023 19:45:13 -0500 Subject: [PATCH] Add system name and groups when adding a contact for the first time --- .../java/eu/siacs/conversations/entities/Contact.java | 8 ++++++++ src/main/java/eu/siacs/conversations/ui/XmppActivity.java | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Contact.java b/src/main/java/eu/siacs/conversations/entities/Contact.java index 56080512a9b367d13a16d4db3f2a6f608d694a4f..e12233e107b749f06f3d6bd75edaaa2484f1b31c 100644 --- a/src/main/java/eu/siacs/conversations/entities/Contact.java +++ b/src/main/java/eu/siacs/conversations/entities/Contact.java @@ -369,6 +369,12 @@ public class Contact implements ListItem, Blockable { return groups; } + public void copySystemTagsToGroups() { + for (String tag : getSystemTags(true)) { + this.groups.put(tag); + } + } + private Collection getSystemTags(final boolean unique) { final Collection tags = unique ? new HashSet<>() : new ArrayList<>(); for (int i = 0; i < this.systemTags.length(); ++i) { @@ -490,6 +496,8 @@ public class Contact implements ListItem, Blockable { item.setAttribute("jid", this.jid); if (this.serverName != null) { item.setAttribute("name", this.serverName); + } else { + item.setAttribute("name", getDisplayName()); } for (String group : getGroups(false)) { item.addChild("group").setContent(group); diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java index e99408e2507f348f331d9e45717d77c9c2d46d4b..16e7d55080c97fc061fa451f78aa9ea190a213d8 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java @@ -689,7 +689,10 @@ public abstract class XmppActivity extends ActionBarActivity { builder.setTitle(contact.getJid().toString()); builder.setMessage(getString(R.string.not_in_roster)); builder.setNegativeButton(getString(R.string.cancel), null); - builder.setPositiveButton(getString(R.string.add_contact), (dialog, which) -> xmppConnectionService.createContact(contact, true)); + builder.setPositiveButton(getString(R.string.add_contact), (dialog, which) -> { + contact.copySystemTagsToGroups(); + xmppConnectionService.createContact(contact, true); + }); builder.create().show(); }