From b7dc72a5e934ef5ec8ab408c3fa8a92b07604f2d Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Sat, 27 Oct 2018 16:48:38 +0200 Subject: [PATCH] Sort hosts ignoring case --- .../Scenes/Organizer/ImportedHostsViewController.swift | 2 +- .../Scenes/Organizer/OrganizerViewController.swift | 4 ++-- .../Scenes/Organizer/WizardHostViewController.swift | 2 +- Passepartout/Sources/Utils.swift | 6 ++++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift b/Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift index 6d5e57c5..1f9b2db5 100644 --- a/Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift +++ b/Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift @@ -30,7 +30,7 @@ import SwiftyBeaver private let log = SwiftyBeaver.self class ImportedHostsViewController: UITableViewController { - private lazy var pendingConfigurationURLs = TransientStore.shared.service.pendingConfigurationURLs().sorted { $0.normalizedFilename < $1.normalizedFilename } + private lazy var pendingConfigurationURLs = TransientStore.shared.service.pendingConfigurationURLs().sortedCaseInsensitive() private var parsedFile: ParsedFile? diff --git a/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift b/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift index 5e6ae8e5..e0cd4f12 100644 --- a/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift +++ b/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift @@ -56,8 +56,8 @@ class OrganizerViewController: UITableViewController, TableModelHost { }() func reloadModel() { - providers = service.ids(forContext: .provider).sorted() - hosts = service.ids(forContext: .host).sorted() + providers = service.ids(forContext: .provider) + hosts = service.ids(forContext: .host).sortedCaseInsensitive() var providerRows = [RowType](repeating: .profile, count: providers.count) var hostRows = [RowType](repeating: .profile, count: hosts.count) diff --git a/Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift b/Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift index 6b90f34d..f6919c0f 100644 --- a/Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift +++ b/Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift @@ -33,7 +33,7 @@ class WizardHostViewController: UITableViewController, TableModelHost, Wizard { @IBOutlet private weak var itemNext: UIBarButtonItem! private let existingHosts: [String] = { - return TransientStore.shared.service.ids(forContext: .host).sorted() + return TransientStore.shared.service.ids(forContext: .host).sortedCaseInsensitive() }() var parsedFile: ParsedFile? { diff --git a/Passepartout/Sources/Utils.swift b/Passepartout/Sources/Utils.swift index d90a7e51..89091858 100644 --- a/Passepartout/Sources/Utils.swift +++ b/Passepartout/Sources/Utils.swift @@ -222,3 +222,9 @@ extension URL { return filename.components(separatedBy: CharacterSet.filename.inverted).joined(separator: URL.illegalCharacterFallback) } } + +extension Array where Element: CustomStringConvertible { + public func sortedCaseInsensitive() -> [Element] { + return sorted { $0.description.lowercased() < $1.description.lowercased() } + } +}