diff --git a/src/Contact/Avatar.php b/src/Contact/Avatar.php index 13311580b1..ed2cf9a50a 100644 --- a/src/Contact/Avatar.php +++ b/src/Contact/Avatar.php @@ -44,11 +44,12 @@ class Avatar /** * Returns a field array with locally cached avatar pictures * - * @param array $contact - * @param string $avatar + * @param array $contact Contact array + * @param string $avatar Link to avatar picture + * @param bool $force force picture update * @return array */ - public static function fetchAvatarContact(array $contact, string $avatar): array + public static function fetchAvatarContact(array $contact, string $avatar, bool $force = false): array { $fields = ['avatar' => $avatar, 'avatar-date' => DateTimeFormat::utcNow(), 'photo' => '', 'thumb' => '', 'micro' => '']; @@ -61,7 +62,7 @@ class Avatar return $fields; } - if ($avatar != $contact['avatar']) { + if (($avatar != $contact['avatar']) || $force) { self::deleteCache($contact); Logger::debug('Avatar file name changed', ['new' => $avatar, 'old' => $contact['avatar']]); } elseif (self::isCacheFile($contact['photo']) && self::isCacheFile($contact['thumb']) && self::isCacheFile($contact['micro'])) { diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 61dd688c77..3fff50775d 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2049,7 +2049,7 @@ class Contact } } else { Photo::delete(['uid' => $uid, 'contact-id' => $cid, 'photo-type' => Photo::CONTACT_AVATAR]); - $fields = Avatar::fetchAvatarContact($contact, $avatar); + $fields = Avatar::fetchAvatarContact($contact, $avatar, $force); $update = ($avatar . $fields['photo'] . $fields['thumb'] . $fields['micro'] != $contact['avatar'] . $contact['photo'] . $contact['thumb'] . $contact['micro']) || $force; }