From 3e72a48d492f2337cb6b674b496f1bf17da14cb1 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Fri, 3 Mar 2023 07:30:03 +0800 Subject: [PATCH] Adds NumberFormatter to Unread Counts Fixes #3892 --- Mac/MainWindow/Sidebar/UnreadCountView.swift | 18 +++++++++++++++++- .../Cell/MasterFeedUnreadCountView.swift | 14 +++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Mac/MainWindow/Sidebar/UnreadCountView.swift b/Mac/MainWindow/Sidebar/UnreadCountView.swift index 25ee1c2a4..9cb9e59c8 100644 --- a/Mac/MainWindow/Sidebar/UnreadCountView.swift +++ b/Mac/MainWindow/Sidebar/UnreadCountView.swift @@ -27,7 +27,7 @@ class UnreadCountView : NSView { } } var unreadCountString: String { - return unreadCount < 1 ? "" : "\(unreadCount)" + return unreadCount < 1 ? "" : numberFormatter.string(from: NSNumber(value: unreadCount))! } private var intrinsicContentSizeIsValid = false @@ -92,5 +92,21 @@ class UnreadCountView : NSView { unreadCountString.draw(at: textRect().origin, withAttributes: Appearance.textAttributes) } } + + var numberFormatter: NumberFormatter! + + override init(frame frameRect: NSRect) { + super.init(frame: frameRect) + self.frame = frameRect + + let formatter = NumberFormatter() + formatter.locale = Locale.current + formatter.numberStyle = .decimal + numberFormatter = formatter + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } } diff --git a/iOS/MasterFeed/Cell/MasterFeedUnreadCountView.swift b/iOS/MasterFeed/Cell/MasterFeedUnreadCountView.swift index e084036b9..17db54492 100644 --- a/iOS/MasterFeed/Cell/MasterFeedUnreadCountView.swift +++ b/iOS/MasterFeed/Cell/MasterFeedUnreadCountView.swift @@ -35,8 +35,10 @@ class MasterFeedUnreadCountView : UIView { } var unreadCountString: String { - return unreadCount < 1 ? "" : "\(unreadCount)" + return unreadCount < 1 ? "" : numberFormatter.string(from: NSNumber(value: unreadCount))! } + + var numberFormatter: NumberFormatter! private var contentSizeIsValid = false private var _contentSize = CGSize.zero @@ -44,11 +46,21 @@ class MasterFeedUnreadCountView : UIView { override init(frame: CGRect) { super.init(frame: frame) self.isOpaque = false + + let formatter = NumberFormatter() + formatter.locale = Locale.current + formatter.numberStyle = .decimal + numberFormatter = formatter } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.isOpaque = false + + let formatter = NumberFormatter() + formatter.locale = Locale.current + formatter.numberStyle = .decimal + numberFormatter = formatter } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {