clear muc tiles when avatar of member changes
This commit is contained in:
parent
f9600b950f
commit
49de43b364
|
@ -449,7 +449,7 @@ public class MucOptions {
|
|||
return null;
|
||||
}
|
||||
|
||||
public User findUserByRealJid(Jid jid) {
|
||||
private User findUserByRealJid(Jid jid) {
|
||||
if (jid == null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -463,6 +463,10 @@ public class MucOptions {
|
|||
return null;
|
||||
}
|
||||
|
||||
public boolean isContactInRoom(Contact contact) {
|
||||
return findUserByRealJid(contact.getJid().toBareJid()) != null;
|
||||
}
|
||||
|
||||
public boolean isUserInRoom(Jid jid) {
|
||||
return findUserByFullJid(jid) != null;
|
||||
}
|
||||
|
|
|
@ -99,6 +99,9 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
|
|||
key(contact, size));
|
||||
}
|
||||
}
|
||||
for(Conversation conversation : mXmppConnectionService.findAllConferencesWith(contact)) {
|
||||
clear(conversation);
|
||||
}
|
||||
}
|
||||
|
||||
private String key(Contact contact, int size) {
|
||||
|
|
|
@ -1352,6 +1352,17 @@ public class XmppConnectionService extends Service {
|
|||
return this.accounts;
|
||||
}
|
||||
|
||||
public List<Conversation> findAllConferencesWith(Contact contact) {
|
||||
ArrayList<Conversation> results = new ArrayList<>();
|
||||
for(Conversation conversation : conversations) {
|
||||
if (conversation.getMode() == Conversation.MODE_MULTI
|
||||
&& conversation.getMucOptions().isContactInRoom(contact)) {
|
||||
results.add(conversation);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
public Conversation find(final Iterable<Conversation> haystack, final Contact contact) {
|
||||
for (final Conversation conversation : haystack) {
|
||||
if (conversation.getContact() == contact) {
|
||||
|
|
Loading…
Reference in a new issue