clear avatar cache when system name changes
This commit is contained in:
parent
5e367cb115
commit
6b81ff70e5
|
@ -255,8 +255,10 @@ public class Contact implements ListItem, Blockable {
|
|||
this.serverName = serverName;
|
||||
}
|
||||
|
||||
public void setSystemName(String systemName) {
|
||||
public boolean setSystemName(String systemName) {
|
||||
String old = this.systemName;
|
||||
this.systemName = systemName;
|
||||
return (old == null && systemName != null) || (old != null && !old.equals(systemName));
|
||||
}
|
||||
|
||||
public void setPresenceName(String presenceName) {
|
||||
|
|
|
@ -1518,16 +1518,18 @@ public class XmppConnectionService extends Service {
|
|||
+ "#"
|
||||
+ phoneContact.getString("lookup");
|
||||
contact.setSystemAccount(systemAccount);
|
||||
if (contact.setPhotoUri(phoneContact.getString("photouri"))) {
|
||||
boolean needsCacheClean = contact.setPhotoUri(phoneContact.getString("photouri"));
|
||||
needsCacheClean |= contact.setSystemName(phoneContact.getString("displayname"));
|
||||
if (needsCacheClean) {
|
||||
getAvatarService().clear(contact);
|
||||
}
|
||||
contact.setSystemName(phoneContact.getString("displayname"));
|
||||
withSystemAccounts.remove(contact);
|
||||
}
|
||||
for (Contact contact : withSystemAccounts) {
|
||||
contact.setSystemAccount(null);
|
||||
contact.setSystemName(null);
|
||||
if (contact.setPhotoUri(null)) {
|
||||
boolean needsCacheClean = contact.setPhotoUri(null);
|
||||
needsCacheClean |= contact.setSystemName(null);
|
||||
if (needsCacheClean) {
|
||||
getAvatarService().clear(contact);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue