From e786102f03921915d58b179e50a898762466dba6 Mon Sep 17 00:00:00 2001 From: Morgan Pretty Date: Thu, 10 Mar 2022 15:19:38 +1100 Subject: [PATCH] Updated the profile icon to default to using two characters (initials if possible) --- .../Profile Pictures/Identicon+ObjC.swift | 12 +++++++++++- .../Profile Pictures/PlaceholderIcon.swift | 1 - 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/SignalUtilitiesKit/Profile Pictures/Identicon+ObjC.swift b/SignalUtilitiesKit/Profile Pictures/Identicon+ObjC.swift index a2d87e318..126a1afe0 100644 --- a/SignalUtilitiesKit/Profile Pictures/Identicon+ObjC.swift +++ b/SignalUtilitiesKit/Profile Pictures/Identicon+ObjC.swift @@ -8,7 +8,17 @@ public final class Identicon : NSObject { if content.count > 2 && content.hasPrefix("05") { content.removeFirst(2) } - let layer = icon.generateLayer(with: size, text: content.substring(to: 1)) + let initials: String = content + .split(separator: " ") + .compactMap { word in word.first.map { String($0) } } + .joined() + let layer = icon.generateLayer( + with: size, + text: (initials.count >= 2 ? + initials.substring(to: 2).uppercased() : + content.substring(to: 2).capitalized + ) + ) let rect = CGRect(origin: CGPoint.zero, size: layer.frame.size) let renderer = UIGraphicsImageRenderer(size: rect.size) return renderer.image { layer.render(in: $0.cgContext) } diff --git a/SignalUtilitiesKit/Profile Pictures/PlaceholderIcon.swift b/SignalUtilitiesKit/Profile Pictures/PlaceholderIcon.swift index 2e763c2e7..450fcbcb4 100644 --- a/SignalUtilitiesKit/Profile Pictures/PlaceholderIcon.swift +++ b/SignalUtilitiesKit/Profile Pictures/PlaceholderIcon.swift @@ -37,7 +37,6 @@ public class PlaceholderIcon { } private func getTextLayer(with diameter: CGFloat, colour: CGColor? = nil, text: String) -> CALayer { - let text = text.capitalized let font = UIFont.boldSystemFont(ofSize: diameter / 2) let height = NSString(string: text).boundingRect(with: CGSize(width: diameter, height: CGFloat.greatestFiniteMagnitude), options: .usesLineFragmentOrigin, attributes: [ NSAttributedString.Key.font : font ], context: nil).height