diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 4f7cd2598..7772bad87 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1576,6 +1576,19 @@ class Contact return; } + // Replace cached avatar pictures from the default avatar with the default avatars in different sizes + if (strpos($avatar, self::DEFAULT_AVATAR_PHOTO)) { + $fields = ['avatar' => $avatar, 'avatar-date' => DateTimeFormat::utcNow(), + 'photo' => DI::baseUrl() . self::DEFAULT_AVATAR_PHOTO, + 'thumb' => DI::baseUrl() . self::DEFAULT_AVATAR_THUMB, + 'micro' => DI::baseUrl() . self::DEFAULT_AVATAR_MICRO]; + if ($fields['photo'] . $fields['thumb'] . $fields['micro'] != $contact['photo'] . $contact['thumb'] . $contact['micro']) { + DBA::update('contact', $fields, ['id' => $cid]); + Photo::delete(['uid' => $uid, 'contact-id' => $cid, 'album' => Photo::CONTACT_PHOTOS]); + } + return; + } + $data = [ $contact['photo'] ?? '', $contact['thumb'] ?? '', @@ -1584,16 +1597,6 @@ class Contact $update = ($contact['avatar'] != $avatar) || $force; - if (strpos($avatar, self::DEFAULT_AVATAR_PHOTO)) { - $fields = ['avatar' => $avatar, 'avatar-date' => DateTimeFormat::utcNow(), - 'photo' => DI::baseUrl() . self::DEFAULT_AVATAR_PHOTO, - 'thumb' => DI::baseUrl() . self::DEFAULT_AVATAR_THUMB, - 'micro' => DI::baseUrl() . self::DEFAULT_AVATAR_MICRO]; - DBA::update('contact', $fields, ['id' => $cid]); - Photo::delete(['uid' => $uid, 'contact-id' => $cid, 'album' => Photo::CONTACT_PHOTOS]); - return; - } - if (!$update) { foreach ($data as $image_uri) { $image_rid = Photo::ridFromURI($image_uri);