diff options
author | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-12-24 14:07:15 +0100 |
---|---|---|
committer | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-12-24 14:07:15 +0100 |
commit | b4f8f4754018b711072dcf5e12f1bfe71353b907 (patch) | |
tree | 0e6271f5f286d50e7709e7e05d284df7414b57b4 /src/main | |
parent | 15d27e2cbb616480e6ce6cf5d25de9e5ab81c9c2 (diff) |
display '#' in generated channel avatars
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/AvatarService.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/services/AvatarService.java b/src/main/java/de/pixart/messenger/services/AvatarService.java index 0ae6f7099..5a96c929c 100644 --- a/src/main/java/de/pixart/messenger/services/AvatarService.java +++ b/src/main/java/de/pixart/messenger/services/AvatarService.java @@ -60,6 +60,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { private static final String PREFIX_CONVERSATION = "conversation"; private static final String PREFIX_ACCOUNT = "account"; private static final String PREFIX_GENERIC = "generic"; + private static final String CHANNEL_SYMBOL = "#"; final private ArrayList<Integer> sizes = new ArrayList<>(); final private HashMap<String, Set<String>> conversationDependentKeys = new HashMap<>(); @@ -97,7 +98,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { if (conversation != null) { return get(conversation, size, cacheOnly); } - return get(result.getName(), room != null ? room.asBareJid().toEscapedString() : result.getName(), size, cacheOnly); + return get(CHANNEL_SYMBOL, room != null ? room.asBareJid().toEscapedString() : result.getName(), size, cacheOnly); } private Bitmap get(final Contact contact, final int size, boolean cachedOnly) { @@ -342,12 +343,16 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { bitmap = mXmppConnectionService.getFileBackend().getAvatar(mucOptions.getAvatar(), size); if (bitmap == null) { - final List<MucOptions.User> users = mucOptions.getUsersRelevantForNameAndAvatar(); - if (users.size() == 0) { - Conversation c = mucOptions.getConversation(); - bitmap = getImpl(c.getName().toString(), c.getJid().asBareJid().toString(), size); + Conversation c = mucOptions.getConversation(); + if (mucOptions.isPrivateAndNonAnonymous()) { + final List<MucOptions.User> users = mucOptions.getUsersRelevantForNameAndAvatar(); + if (users.size() == 0) { + bitmap = getImpl(c.getName().toString(), c.getJid().asBareJid().toString(), size); + } else { + bitmap = getImpl(users, size); + } } else { - bitmap = getImpl(users, size); + bitmap = getImpl(CHANNEL_SYMBOL, c.getJid().asBareJid().toString(), size); } } @@ -631,7 +636,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { private static boolean drawTile(Canvas canvas, String name, String seed, int left, int top, int right, int bottom) { if (name != null) { - final String letter = getFirstLetter(name); + final String letter = name.equals(CHANNEL_SYMBOL) ? name : getFirstLetter(name); final int color = UIHelper.getColorForName(seed == null ? name : seed); drawTile(canvas, letter, color, left, top, right, bottom); return true; |