diff options
author | Carl Schwan <carl@carlschwan.eu> | 2022-08-31 14:24:25 +0200 |
---|---|---|
committer | Carl Schwan <carl@carlschwan.eu> | 2022-09-09 14:23:41 +0200 |
commit | bc9a48804688e06a842169be0ed3efbf2fead559 (patch) | |
tree | 81241be20f6da44e83dae52221ddb7ae914fed0e /lib | |
parent | f3ec1d3a9f6806aee32b27942e56931f79d9d02c (diff) | |
download | nextcloud-server-bc9a48804688e06a842169be0ed3efbf2fead559.tar.gz nextcloud-server-bc9a48804688e06a842169be0ed3efbf2fead559.zip |
Update avatars on update
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Avatar/Avatar.php | 12 | ||||
-rw-r--r-- | lib/private/Repair/ClearGeneratedAvatarCache.php | 20 | ||||
-rw-r--r-- | lib/public/Color.php | 6 |
3 files changed, 19 insertions, 19 deletions
diff --git a/lib/private/Avatar/Avatar.php b/lib/private/Avatar/Avatar.php index 1e6ebd7c61b..9b9220936eb 100644 --- a/lib/private/Avatar/Avatar.php +++ b/lib/private/Avatar/Avatar.php @@ -111,10 +111,10 @@ abstract class Avatar implements IAvatar { * @return string * */ - protected function getAvatarVector(int $size, bool $dark): string { + protected function getAvatarVector(int $size, bool $darkTheme): string { $userDisplayName = $this->getDisplayName(); $fgRGB = $this->avatarBackgroundColor($userDisplayName); - $bgRGB = $fgRGB->alphaBlending(0.1, $dark ? new Color(0, 0, 0) : new Color(255, 255, 255)); + $bgRGB = $fgRGB->alphaBlending(0.1, $darkTheme ? new Color(0, 0, 0) : new Color(255, 255, 255)); $fill = sprintf("%02x%02x%02x", $bgRGB->red(), $bgRGB->green(), $bgRGB->blue()); $fgFill = sprintf("%02x%02x%02x", $fgRGB->red(), $fgRGB->green(), $fgRGB->blue()); $text = $this->getAvatarText(); @@ -125,13 +125,13 @@ abstract class Avatar implements IAvatar { /** * Generate png avatar from svg with Imagick */ - protected function generateAvatarFromSvg(int $size, bool $dark): ?string { + protected function generateAvatarFromSvg(int $size, bool $darkTheme): ?string { if (!extension_loaded('imagick')) { return null; } try { $font = __DIR__ . '/../../../core/fonts/NotoSans-Regular.ttf'; - $svg = $this->getAvatarVector($size, $dark); + $svg = $this->getAvatarVector($size, $darkTheme); $avatar = new Imagick(); $avatar->setFont($font); $avatar->readImageBlob($svg); @@ -147,10 +147,10 @@ abstract class Avatar implements IAvatar { /** * Generate png avatar with GD */ - protected function generateAvatar(string $userDisplayName, int $size, bool $dark): string { + protected function generateAvatar(string $userDisplayName, int $size, bool $darkTheme): string { $text = $this->getAvatarText(); $textColor = $this->avatarBackgroundColor($userDisplayName); - $backgroundColor = $textColor->alphaBlending(0.1, $dark ? new Color(0, 0, 0) : new Color(255, 255, 255)); + $backgroundColor = $textColor->alphaBlending(0.1, $darkTheme ? new Color(0, 0, 0) : new Color(255, 255, 255)); $im = imagecreatetruecolor($size, $size); $background = imagecolorallocate( diff --git a/lib/private/Repair/ClearGeneratedAvatarCache.php b/lib/private/Repair/ClearGeneratedAvatarCache.php index 314299a0528..1c1be4f7893 100644 --- a/lib/private/Repair/ClearGeneratedAvatarCache.php +++ b/lib/private/Repair/ClearGeneratedAvatarCache.php @@ -30,35 +30,29 @@ use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; class ClearGeneratedAvatarCache implements IRepairStep { - - /** @var AvatarManager */ - protected $avatarManager; - - /** @var IConfig */ - private $config; + protected AvatarManager $avatarManager; + private IConfig $config; public function __construct(IConfig $config, AvatarManager $avatarManager) { $this->config = $config; $this->avatarManager = $avatarManager; } - public function getName() { + public function getName(): string { return 'Clear every generated avatar on major updates'; } /** * Check if this repair step should run - * - * @return boolean */ - private function shouldRun() { + private function shouldRun(): bool { $versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0.0'); - // was added to 15.0.0.4 - return version_compare($versionFromBeforeUpdate, '15.0.0.4', '<='); + // was added to 25.0.0.10 + return version_compare($versionFromBeforeUpdate, '25.0.0.10', '<='); } - public function run(IOutput $output) { + public function run(IOutput $output): void { if ($this->shouldRun()) { try { $this->avatarManager->clearCachedAvatars(); diff --git a/lib/public/Color.php b/lib/public/Color.php index 6c9a35ca49c..d5b2a92a6ac 100644 --- a/lib/public/Color.php +++ b/lib/public/Color.php @@ -125,6 +125,12 @@ class Color { return $palette; } + /** + * Alpha blend another color with a given opacity to this color + * + * @return Color The new color + * @since 25.0.0 + */ public function alphaBlending(float $opacity, Color $source): Color { return new Color( (int)((1 - $opacity) * $source->red() + $opacity * $this->red()), |