From fc8dc7404ab03d70fc9863c110cc8e44994675a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Sun, 28 Jul 2024 11:23:40 +0200 Subject: [PATCH] Remove ObjC workaround MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- NextcloudTalk/BaseChatTableViewCell+File.swift | 2 +- .../DetailedOptionsSelectorTableViewController.m | 2 +- NextcloudTalk/NCUtils.swift | 13 ++++++------- NextcloudTalk/SettingsTableViewController.swift | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/NextcloudTalk/BaseChatTableViewCell+File.swift b/NextcloudTalk/BaseChatTableViewCell+File.swift index 116a880ea..4a1b4c904 100644 --- a/NextcloudTalk/BaseChatTableViewCell+File.swift +++ b/NextcloudTalk/BaseChatTableViewCell+File.swift @@ -183,7 +183,7 @@ extension BaseChatTableViewCell { if let image = UIImage(named: imageName) { let size = CGSize(width: fileMessageCellFileMaxPreviewWidth, height: fileMessageCellFileMaxPreviewHeight) - if let renderedImage = NCUtils.renderAspectImage(image: image, ofSize: size, toOrigin: .zero) { + if let renderedImage = NCUtils.renderAspectImage(image: image, ofSize: size, centerImage: false) { self.filePreviewImageView?.image = renderedImage self.filePreviewImageViewHeightConstraint?.constant = renderedImage.size.height diff --git a/NextcloudTalk/DetailedOptionsSelectorTableViewController.m b/NextcloudTalk/DetailedOptionsSelectorTableViewController.m index b2ba4807d..2e0c105d9 100644 --- a/NextcloudTalk/DetailedOptionsSelectorTableViewController.m +++ b/NextcloudTalk/DetailedOptionsSelectorTableViewController.m @@ -81,7 +81,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"DetailOptionIdentifier"]; if (_type == DetailedOptionsSelectorTypeAccounts) { - [cell.imageView setImage:[NCUtils renderAspectImageWithImage:option.image ofSize:CGSizeMake(20, 20)]]; + [cell.imageView setImage:[NCUtils renderAspectImageWithImage:option.image ofSize:CGSizeMake(20, 20) centerImage:YES]]; [cell.detailTextLabel setText:[option.subtitle stringByReplacingOccurrencesOfString:@"https://" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [option.subtitle length])]]; [cell.detailTextLabel setTextColor:[UIColor secondaryLabelColor]]; } else { diff --git a/NextcloudTalk/NCUtils.swift b/NextcloudTalk/NCUtils.swift index 77f039a99..00686c12e 100644 --- a/NextcloudTalk/NCUtils.swift +++ b/NextcloudTalk/NCUtils.swift @@ -293,19 +293,18 @@ import AVFoundation return image } - // Workaround for ObjC - public static func renderAspectImage(image: UIImage?, ofSize size: CGSize) -> UIImage? { - return renderAspectImage(image: image, ofSize: size, toOrigin: nil) - } - - public static func renderAspectImage(image: UIImage?, ofSize size: CGSize, toOrigin origin: CGPoint?) -> UIImage? { + public static func renderAspectImage(image: UIImage?, ofSize size: CGSize, centerImage center: Bool) -> UIImage? { guard let image else { return nil } let newRect = CGRect(x: 0, y: 0, width: size.width, height: size.height) UIGraphicsBeginImageContextWithOptions(newRect.size, false, 0.0) let aspectRatio = AVMakeRect(aspectRatio: image.size, insideRect: newRect) - let targetOrigin = origin ?? CGPoint(x: newRect.maxX / 2 - aspectRatio.width / 2, y: newRect.maxY / 2 - aspectRatio.height / 2) + var targetOrigin: CGPoint = .zero + + if center { + targetOrigin = CGPoint(x: newRect.maxX / 2 - aspectRatio.width / 2, y: newRect.maxY / 2 - aspectRatio.height / 2) + } image.draw(in: CGRect(origin: targetOrigin, size: aspectRatio.size)) let newImage = UIGraphicsGetImageFromCurrentImageContext() diff --git a/NextcloudTalk/SettingsTableViewController.swift b/NextcloudTalk/SettingsTableViewController.swift index aea3bae5f..92f35b6da 100644 --- a/NextcloudTalk/SettingsTableViewController.swift +++ b/NextcloudTalk/SettingsTableViewController.swift @@ -833,7 +833,7 @@ class SettingsTableViewController: UITableViewController, UITextFieldDelegate, U private extension UITableViewCell { func setSettingsImage(image: UIImage?, renderingMode: UIImage.RenderingMode = .alwaysTemplate) { // Render all images to a size of 20x20 so all cells have the same width for the imageView - self.imageView?.image = NCUtils.renderAspectImage(image: image, ofSize: .init(width: 20, height: 20))?.withRenderingMode(renderingMode) + self.imageView?.image = NCUtils.renderAspectImage(image: image, ofSize: .init(width: 20, height: 20), centerImage: true)?.withRenderingMode(renderingMode) self.imageView?.tintColor = .secondaryLabel self.imageView?.contentMode = .scaleAspectFit }