diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Conversation.java | 13 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/MucOptions.java | 34 |
2 files changed, 35 insertions, 12 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java index 3df78fde0..1bfb50034 100644 --- a/src/main/java/de/pixart/messenger/entities/Conversation.java +++ b/src/main/java/de/pixart/messenger/entities/Conversation.java @@ -509,12 +509,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public String getName() { if (getMode() == MODE_MULTI) { - if (getMucOptions().getSubject() != null) { - return getMucOptions().getSubject(); - } else if (bookmark != null - && bookmark.getBookmarkName() != null - && !bookmark.getBookmarkName().trim().isEmpty()) { - return bookmark.getBookmarkName().trim(); + final String subject = getMucOptions().getSubject(); + final String bookmarkName = bookmark != null ? bookmark.getBookmarkName() : null; + + if (subject != null && !subject.trim().isEmpty()) { + return subject; + } else if (bookmarkName != null && !bookmarkName.trim().isEmpty()) { + return bookmarkName; } else { String generatedName = getMucOptions().createNameFromParticipants(); if (generatedName != null) { diff --git a/src/main/java/de/pixart/messenger/entities/MucOptions.java b/src/main/java/de/pixart/messenger/entities/MucOptions.java index f1c3aa9e8..c6e0b6dc2 100644 --- a/src/main/java/de/pixart/messenger/entities/MucOptions.java +++ b/src/main/java/de/pixart/messenger/entities/MucOptions.java @@ -361,12 +361,11 @@ public class MucOptions { private final Set<User> users = new HashSet<>(); private final List<String> features = new ArrayList<>(); private Data form = new Data(); - private Conversation conversation; + private final Conversation conversation; private boolean isOnline = false; private Error error = Error.NONE; public OnRenameListener onRenameListener = null; private User self; - private String subject = null; private String password = null; public MucOptions(Conversation conversation) { @@ -660,15 +659,37 @@ public class MucOptions { return self; } - public void setSubject(String content) { - this.subject = content; + public boolean setSubject(String subject) { + return this.conversation.setAttribute("subject", subject); } public String getSubject() { - return this.subject; + return this.conversation.getAttribute("subject"); } + public List<User> getFallbackUsersFromCryptoTargets() { + List<User> users = new ArrayList<>(); + for (Jid jid : conversation.getAcceptedCryptoTargets()) { + User user = new User(this, null); + user.setRealJid(jid); + users.add(user); + } + return users; + } + + public List<User> getUsersRelevantForNameAndAvatar() { + final List<User> users; + if (isOnline) { + users = getUsers(5); + } else { + users = getFallbackUsersFromCryptoTargets(); + } + return users; + } + + public int NumberOfUsers() { + List<User> users = getUsersRelevantForNameAndAvatar(); if (users.size() >= 1) { return users.size(); } else { @@ -679,9 +700,10 @@ public class MucOptions { public String createNameFromParticipants() { + List<User> users = getUsersRelevantForNameAndAvatar(); if (users.size() >= 1) { StringBuilder builder = new StringBuilder(); - for (User user : getUsers(5)) { + for (User user : users) { if (builder.length() != 0) { builder.append(", "); } |