diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-11-22 21:00:33 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-11-22 21:49:45 +0100 |
commit | 72df864d41e91d184dd20178d48e7b68df13e725 (patch) | |
tree | 0aae3068c35f175549d70232adf72e24ea393561 /src/main/java/de/pixart/messenger/entities/MucOptions.java | |
parent | acdb88839648405e0498d7774bcdc9f422ebc5c2 (diff) |
send and show read markers in private, non-anonymous groups
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/MucOptions.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/MucOptions.java | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/MucOptions.java b/src/main/java/de/pixart/messenger/entities/MucOptions.java index f60c2643c..50ea4c2fb 100644 --- a/src/main/java/de/pixart/messenger/entities/MucOptions.java +++ b/src/main/java/de/pixart/messenger/entities/MucOptions.java @@ -11,6 +11,7 @@ import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.utils.JidHelper; import de.pixart.messenger.utils.Namespace; +import de.pixart.messenger.utils.UIHelper; import de.pixart.messenger.xmpp.chatstate.ChatState; import de.pixart.messenger.xmpp.forms.Data; import de.pixart.messenger.xmpp.forms.Field; @@ -279,6 +280,10 @@ public class MucOptions { return options.getAccount(); } + public Conversation getConversation() { + return options.getConversation(); + } + public Jid getFullJid() { return fullJid; } @@ -518,6 +523,21 @@ public class MucOptions { return null; } + public User findUser(ReadByMarker readByMarker) { + if (readByMarker.getRealJid() != null) { + User user = findUserByRealJid(readByMarker.getRealJid().toBareJid()); + if (user == null) { + user = new User(this, readByMarker.getFullJid()); + user.setRealJid(readByMarker.getRealJid()); + } + return user; + } else if (readByMarker.getFullJid() != null) { + return findUserByFullJid(readByMarker.getFullJid()); + } else { + return null; + } + } + public boolean isContactInRoom(Contact contact) { return findUserByRealJid(contact.getJid().toBareJid()) != null; } @@ -661,17 +681,9 @@ public class MucOptions { if (builder.length() != 0) { builder.append(", "); } - Contact contact = user.getContact(); - if (contact != null && !contact.getDisplayName().isEmpty()) { - builder.append(contact.getDisplayName().split("\\s+")[0]); - } else { - final String name = user.getName(); - final Jid jid = user.getRealJid(); - if (name != null) { - builder.append(name.split("\\s+")[0]); - } else if (jid != null) { - builder.append(jid.getLocalpart()); - } + String name = UIHelper.getDisplayName(user); + if (name != null) { + builder.append(name.split("\\s+")[0]); } } return builder.toString(); |