Change summary
src/main/java/eu/siacs/conversations/entities/Contact.java | 4
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 10
2 files changed, 9 insertions(+), 5 deletions(-)
Detailed changes
@@ -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);
}
}