From 43d2ce8e39dca8968d4dd9832df9e1daefc94e96 Mon Sep 17 00:00:00 2001 From: Anna Zakharova Date: Wed, 16 Oct 2024 17:05:48 +0100 Subject: [PATCH 1/2] IOS-3375 Remove redundant formatters copies --- .../Formatters/NumberFormatter+Extension.swift | 10 ++++++++++ .../Models/Relations/RelationsBuilder.swift | 15 ++------------- .../TextRelationEditingService.swift | 7 +------ .../Entities/RelationsSectionBuilder.swift | 10 ++-------- .../Filters/List/RelationFilterBuilder.swift | 7 +------ .../Filters/Text/SetFiltersTextViewModel.swift | 9 +-------- 6 files changed, 17 insertions(+), 41 deletions(-) create mode 100644 Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift diff --git a/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift b/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift new file mode 100644 index 0000000000..65ddc3e985 --- /dev/null +++ b/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift @@ -0,0 +1,10 @@ +import Foundation + +extension NumberFormatter { + static let `default`: NumberFormatter = { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.groupingSeparator = "" + return formatter + }() +} diff --git a/Anytype/Sources/Models/Relations/RelationsBuilder.swift b/Anytype/Sources/Models/Relations/RelationsBuilder.swift index f6dd93a354..c0c35556e2 100644 --- a/Anytype/Sources/Models/Relations/RelationsBuilder.swift +++ b/Anytype/Sources/Models/Relations/RelationsBuilder.swift @@ -18,20 +18,9 @@ final class RelationsBuilder: RelationsBuilderProtocol { // MARK: - Private variables - private let dateFormatter: DateFormatter = { - let dateFormatter = DateFormatter() - dateFormatter.dateStyle = .medium - dateFormatter.timeStyle = .none - dateFormatter.doesRelativeDateFormatting = true - return dateFormatter - }() + private let dateFormatter = DateFormatter.relationDateFormatter - private let numberFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .decimal - formatter.groupingSeparator = "" - return formatter - }() + private let numberFormatter = NumberFormatter.default // MARK: - Internal functions diff --git a/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift b/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift index c0932f65c1..f61f319049 100644 --- a/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift +++ b/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift @@ -10,12 +10,7 @@ final class TextRelationEditingService: TextRelationEditingServiceProtocol { @Injected(\.relationsService) private var service: any RelationsServiceProtocol - private let numberFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .decimal - formatter.groupingSeparator = "" - return formatter - }() + private let numberFormatter = NumberFormatter.default // MARK: - TextRelationDetailsServiceProtocol diff --git a/Anytype/Sources/PresentationLayer/TextEditor/EditorPage/Views/Settings/Relations/Entities/RelationsSectionBuilder.swift b/Anytype/Sources/PresentationLayer/TextEditor/EditorPage/Views/Settings/Relations/Entities/RelationsSectionBuilder.swift index 8a97820fcc..4f4b8a635a 100644 --- a/Anytype/Sources/PresentationLayer/TextEditor/EditorPage/Views/Settings/Relations/Entities/RelationsSectionBuilder.swift +++ b/Anytype/Sources/PresentationLayer/TextEditor/EditorPage/Views/Settings/Relations/Entities/RelationsSectionBuilder.swift @@ -5,14 +5,8 @@ import UIKit final class RelationsSectionBuilder { // MARK: - Private variables - - private let dateFormatter: DateFormatter = { - let dateFormatter = DateFormatter() - dateFormatter.dateStyle = .medium - dateFormatter.timeStyle = .none - dateFormatter.doesRelativeDateFormatting = true - return dateFormatter - }() + + private let dateFormatter = DateFormatter.relationDateFormatter // MARK: - Internal functions diff --git a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift index f23ce0e0f2..8b467d59fc 100644 --- a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift +++ b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift @@ -14,12 +14,7 @@ final class RelationFilterBuilder { return dateFormatter }() - private let numberFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .decimal - formatter.groupingSeparator = "" - return formatter - }() + private let numberFormatter = NumberFormatter.default func relation( detailsStorage: ObjectDetailsStorage, diff --git a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift index f2cf7b935d..1b04d64a25 100644 --- a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift +++ b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift @@ -9,13 +9,6 @@ final class SetFiltersTextViewModel: ObservableObject { private var keyboardListenerHelper: KeyboardEventsListnerHelper? - private static let numberFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .decimal - formatter.groupingSeparator = "" - return formatter - }() - init(filter: SetFilter, onApplyText: @escaping (String) -> Void) { self.input = Self.initialValue(from: filter) self.keyboardType = Self.keybordType(for: filter) @@ -40,7 +33,7 @@ final class SetFiltersTextViewModel: ObservableObject { switch filter.conditionType { case .number: if let doubleValue = filter.filter.value.safeDoubleValue { - return numberFormatter.string(from: NSNumber(floatLiteral: doubleValue)) ?? "" + return NumberFormatter.default.string(from: NSNumber(floatLiteral: doubleValue)) ?? "" } else { return "" } From ca24b4e9f42963ba6d653da6c21f30ca980abe45 Mon Sep 17 00:00:00 2001 From: Anna Zakharova Date: Wed, 16 Oct 2024 17:08:16 +0100 Subject: [PATCH 2/2] IOS-3375 Rename --- .../Sources/Helpers/Formatters/NumberFormatter+Extension.swift | 2 +- Anytype/Sources/Models/Relations/RelationsBuilder.swift | 2 +- .../TextRelationDetailsService/TextRelationEditingService.swift | 2 +- .../Set/Views/Popups/Filters/List/RelationFilterBuilder.swift | 2 +- .../Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift b/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift index 65ddc3e985..54a08a2562 100644 --- a/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift +++ b/Anytype/Sources/Helpers/Formatters/NumberFormatter+Extension.swift @@ -1,7 +1,7 @@ import Foundation extension NumberFormatter { - static let `default`: NumberFormatter = { + static let decimalWithNoSeparator: NumberFormatter = { let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.groupingSeparator = "" diff --git a/Anytype/Sources/Models/Relations/RelationsBuilder.swift b/Anytype/Sources/Models/Relations/RelationsBuilder.swift index c0c35556e2..50c5cecf5d 100644 --- a/Anytype/Sources/Models/Relations/RelationsBuilder.swift +++ b/Anytype/Sources/Models/Relations/RelationsBuilder.swift @@ -20,7 +20,7 @@ final class RelationsBuilder: RelationsBuilderProtocol { private let dateFormatter = DateFormatter.relationDateFormatter - private let numberFormatter = NumberFormatter.default + private let numberFormatter = NumberFormatter.decimalWithNoSeparator // MARK: - Internal functions diff --git a/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift b/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift index f61f319049..79b43d1bbb 100644 --- a/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift +++ b/Anytype/Sources/PresentationLayer/Common/SwiftUI/RelationDetailsViews/Text/TextRelationDetailsService/TextRelationEditingService.swift @@ -10,7 +10,7 @@ final class TextRelationEditingService: TextRelationEditingServiceProtocol { @Injected(\.relationsService) private var service: any RelationsServiceProtocol - private let numberFormatter = NumberFormatter.default + private let numberFormatter = NumberFormatter.decimalWithNoSeparator // MARK: - TextRelationDetailsServiceProtocol diff --git a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift index 8b467d59fc..7e4c225151 100644 --- a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift +++ b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/List/RelationFilterBuilder.swift @@ -14,7 +14,7 @@ final class RelationFilterBuilder { return dateFormatter }() - private let numberFormatter = NumberFormatter.default + private let numberFormatter = NumberFormatter.decimalWithNoSeparator func relation( detailsStorage: ObjectDetailsStorage, diff --git a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift index 1b04d64a25..f0fe02c7d6 100644 --- a/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift +++ b/Anytype/Sources/PresentationLayer/TextEditor/Set/Views/Popups/Filters/Text/SetFiltersTextViewModel.swift @@ -33,7 +33,7 @@ final class SetFiltersTextViewModel: ObservableObject { switch filter.conditionType { case .number: if let doubleValue = filter.filter.value.safeDoubleValue { - return NumberFormatter.default.string(from: NSNumber(floatLiteral: doubleValue)) ?? "" + return NumberFormatter.decimalWithNoSeparator.string(from: NSNumber(floatLiteral: doubleValue)) ?? "" } else { return "" }