aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/MucOptions.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-11-22 21:00:33 +0100
committerChristian Schneppe <christian@pix-art.de>2017-11-22 21:49:45 +0100
commit72df864d41e91d184dd20178d48e7b68df13e725 (patch)
tree0aae3068c35f175549d70232adf72e24ea393561 /src/main/java/de/pixart/messenger/entities/MucOptions.java
parentacdb88839648405e0498d7774bcdc9f422ebc5c2 (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.java34
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();