From 2f2ef9548944aed2ed9cf62a6fc4895486fabef3 Mon Sep 17 00:00:00 2001
From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
Date: Tue, 7 May 2019 11:04:41 -0400
Subject: [PATCH] UI: account avatar

Fix image corners radius and limit size.

Change-Id: Ie7e0aaaf8244511a461e93c748af25c734c340fa
---
 src/AccRingGeneralVC.mm       | 8 ++++----
 src/AccSipGeneralVC.mm        | 8 ++++----
 src/AddSIPAccountVC.mm        | 5 +++--
 src/Constants.h               | 2 ++
 src/RingWizardNewAccountVC.mm | 4 ++--
 5 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/AccRingGeneralVC.mm b/src/AccRingGeneralVC.mm
index 2a220f4f..a07278fd 100644
--- a/src/AccRingGeneralVC.mm
+++ b/src/AccRingGeneralVC.mm
@@ -42,6 +42,7 @@
 #import "views/RoundedTextField.h"
 #import "ExportPasswordWC.h"
 #import "utils.h"
+#import "Constants.h"
 
 @interface AccRingGeneralVC ()
 
@@ -114,7 +115,6 @@ typedef NS_ENUM(NSInteger, TagViews) {
 - (void)awakeFromNib
 {
     [super awakeFromNib];
-    [photoView setBordered:YES];
     [addProfilePhotoImage setWantsLayer: YES];
     devicesTableView.delegate = self;
     devicesTableView.dataSource = self;
@@ -142,7 +142,7 @@ typedef NS_ENUM(NSInteger, TagViews) {
     NSImage *image = [[NSImage alloc] initWithData:imageData];
     if(image) {
         [photoView setBordered:NO];
-        [photoView setImage: [image roundCorners: 350]];
+        [photoView setImage: [image roundCorners: image.size.height * 0.5]];
         [addProfilePhotoImage setHidden:YES];
     } else {
         [photoView setImage:nil];
@@ -241,8 +241,8 @@ typedef NS_ENUM(NSInteger, TagViews) {
     }
     if (auto outputImage = [picker outputImage]) {
         auto image = [picker inputImage];
-        CGFloat newSize = MIN(image.size.height, image.size.width);
-        outputImage = [outputImage cropImageToSize:CGSizeMake(newSize, newSize)];
+        CGFloat newSize = MIN(MIN(image.size.height, image.size.width), MAX_IMAGE_SIZE);
+        outputImage = [outputImage imageResizeInsideMax: newSize];
         [photoView setImage: [outputImage roundCorners: outputImage.size.height * 0.5]];
         [photoView setBordered:NO];
         [addProfilePhotoImage setHidden:YES];
diff --git a/src/AccSipGeneralVC.mm b/src/AccSipGeneralVC.mm
index ceba2a48..384d58bf 100644
--- a/src/AccSipGeneralVC.mm
+++ b/src/AccSipGeneralVC.mm
@@ -36,6 +36,7 @@
 #import "AccSipGeneralVC.h"
 #import "views/NSColor+RingTheme.h"
 #import "views/NSImage+Extensions.h"
+#import "Constants.h"
 
 @interface AccSipGeneralVC ()
 
@@ -76,7 +77,6 @@ typedef NS_ENUM(NSInteger, TagViews) {
 -(void)viewDidLoad {
     [super viewDidLoad];
     [[self view] setAutoresizingMask: NSViewMinXMargin | NSViewMaxXMargin];
-    [photoView setBordered:YES];
     [addProfilePhotoImage setWantsLayer: YES];
     [self setEditingMode:NO];
     [self updateView];
@@ -93,8 +93,8 @@ typedef NS_ENUM(NSInteger, TagViews) {
     if (auto outputImage = [picker outputImage]) {
         [photoView setBordered:NO];
         auto image = [picker inputImage];
-        CGFloat newSize = MIN(image.size.height, image.size.width);
-        outputImage = [outputImage cropImageToSize:CGSizeMake(newSize, newSize)];
+        CGFloat newSize = MIN(MIN(image.size.height, image.size.width), MAX_IMAGE_SIZE);
+        outputImage = [outputImage imageResizeInsideMax: newSize];
         [photoView setImage: [outputImage roundCorners: outputImage.size.height * 0.5]];
         [addProfilePhotoImage setHidden:YES];
         auto imageToBytes = QByteArray::fromNSData([outputImage TIFFRepresentation]).toBase64();
@@ -128,7 +128,7 @@ typedef NS_ENUM(NSInteger, TagViews) {
     NSImage *image = [[NSImage alloc] initWithData:imageData];
     if(image) {
         [photoView setBordered:NO];
-        [photoView setImage: [image roundCorners: 350]];
+        [photoView setImage: [image roundCorners: image.size.height * 0.5]];
         [addProfilePhotoImage setHidden:YES];
     } else {
         [photoView setImage:nil];
diff --git a/src/AddSIPAccountVC.mm b/src/AddSIPAccountVC.mm
index 0de219d9..5acb4aef 100644
--- a/src/AddSIPAccountVC.mm
+++ b/src/AddSIPAccountVC.mm
@@ -29,6 +29,7 @@
 //ring
 #import "AddSIPAccountVC.h"
 #import "views/NSImage+Extensions.h"
+#import "Constants.h"
 
 @interface AddSIPAccountVC () {
     __unsafe_unretained IBOutlet NSButton* photoView;
@@ -149,8 +150,8 @@ NSTimer* timeoutTimer;
     if (auto outputImage = [picker outputImage]) {
         [photoView setBordered:NO];
         auto image = [picker inputImage];
-        CGFloat newSize = MIN(image.size.height, image.size.width);
-        outputImage = [outputImage cropImageToSize:CGSizeMake(newSize, newSize)];
+        CGFloat newSize = MIN(MIN(image.size.height, image.size.width), MAX_IMAGE_SIZE);
+        outputImage = [outputImage imageResizeInsideMax: newSize];
         [photoView setImage:outputImage];
         [addProfilePhotoImage setHidden:YES];
     } else if(!photoView.image) {
diff --git a/src/Constants.h b/src/Constants.h
index c5987c14..416f3142 100644
--- a/src/Constants.h
+++ b/src/Constants.h
@@ -38,3 +38,5 @@ namespace Preferences {
     /* download folder for incoming images*/
     NSString * const DownloadFolder = @"download_folder";
 }
+
+const CGFloat MAX_IMAGE_SIZE = 1024;
diff --git a/src/RingWizardNewAccountVC.mm b/src/RingWizardNewAccountVC.mm
index 9d709b27..77f9778a 100644
--- a/src/RingWizardNewAccountVC.mm
+++ b/src/RingWizardNewAccountVC.mm
@@ -194,8 +194,8 @@ NSInteger const ERROR_REPEAT_MISMATCH           = -2;
     if (auto outputImage = [picker outputImage]) {
         [photoView setBordered:NO];
         auto image = [picker inputImage];
-        CGFloat newSize = MIN(image.size.height, image.size.width);
-        outputImage = [outputImage cropImageToSize:CGSizeMake(newSize, newSize)];
+        CGFloat newSize = MIN(MIN(image.size.height, image.size.width), MAX_IMAGE_SIZE);
+        outputImage = [outputImage imageResizeInsideMax: newSize];
         [photoView setImage:outputImage];
         [addProfilePhotoImage setHidden:YES];
     } else if(!photoView.image) {
-- 
GitLab