From eaa8429bd8f2df9233f43a96bff698e87a20ee12 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 4 Dec 2018 17:06:42 -0800 Subject: [PATCH] Adds SaveState.localizedName --- Delta/Database/Model/Human/SaveState.swift | 12 ++++++++++++ .../Save States/SaveStatesViewController.swift | 10 +--------- .../Syncing/GameSyncStatusViewController.swift | 18 +----------------- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/Delta/Database/Model/Human/SaveState.swift b/Delta/Database/Model/Human/SaveState.swift index 6588813..1eaac9e 100644 --- a/Delta/Database/Model/Human/SaveState.swift +++ b/Delta/Database/Model/Human/SaveState.swift @@ -22,6 +22,13 @@ import Harmony @objc(SaveState) public class SaveState: _SaveState, SaveStateProtocol { + public static let localizedDateFormatter: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.timeStyle = .short + dateFormatter.dateStyle = .short + return dateFormatter + }() + public var fileURL: URL { let fileURL = DatabaseManager.saveStatesDirectoryURL(for: self.game!).appendingPathComponent(self.filename) return fileURL @@ -37,6 +44,11 @@ public class SaveState: _SaveState, SaveStateProtocol return self.game!.type } + public var localizedName: String { + let localizedName = self.name ?? SaveState.localizedDateFormatter.string(from: self.modifiedDate) + return localizedName + } + @NSManaged private var primitiveFilename: String @NSManaged private var primitiveIdentifier: String @NSManaged private var primitiveCreationDate: Date diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index d2ffda9..c432073 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -70,16 +70,10 @@ class SaveStatesViewController: UICollectionViewController private var emulatorCoreSaveState: SaveStateProtocol? - private let dateFormatter: DateFormatter - required init?(coder aDecoder: NSCoder) { self.dataSource = RSTFetchedResultsCollectionViewPrefetchingDataSource(fetchedResultsController: NSFetchedResultsController()) - self.dateFormatter = DateFormatter() - self.dateFormatter.timeStyle = .short - self.dateFormatter.dateStyle = .short - super.init(coder: aDecoder) self.prepareDataSource() @@ -255,9 +249,7 @@ private extension SaveStatesViewController cell.maximumImageSize = CGSize(width: self.prototypeCellWidthConstraint.constant, height: (self.prototypeCellWidthConstraint.constant / dimensions.width) * dimensions.height) cell.textLabel.font = UIFont.preferredFont(forTextStyle: .subheadline) - - let name = saveState.name ?? self.dateFormatter.string(from: saveState.modifiedDate) - cell.textLabel.text = name + cell.textLabel.text = saveState.localizedName } func configure(_ headerView: SaveStatesCollectionHeaderView, forSection section: Int) diff --git a/Delta/Settings/Syncing/GameSyncStatusViewController.swift b/Delta/Settings/Syncing/GameSyncStatusViewController.swift index b5ad75f..ab098d4 100644 --- a/Delta/Settings/Syncing/GameSyncStatusViewController.swift +++ b/Delta/Settings/Syncing/GameSyncStatusViewController.swift @@ -27,14 +27,6 @@ class GameSyncStatusViewController: UITableViewController private lazy var dataSource = self.makeDataSource() - private let dateFormatter: DateFormatter = { - let dateFormatter = DateFormatter() - dateFormatter.timeStyle = .short - dateFormatter.dateStyle = .short - - return dateFormatter - }() - private var recordsByObjectURI = [URL: Record]() override func viewDidLoad() @@ -100,15 +92,7 @@ private extension GameSyncStatusViewController let saveStatesDataSource = RSTFetchedResultsTableViewDataSource(fetchRequest: saveStatesFetchRequest, managedObjectContext: DatabaseManager.shared.viewContext) saveStatesDataSource.cellConfigurationHandler = { (cell, saveState, indexPath) in - if let name = saveState.name - { - cell.textLabel?.text = name - } - else - { - cell.textLabel?.text = self.dateFormatter.string(from: saveState.modifiedDate) - } - + cell.textLabel?.text = saveState.localizedName configure(cell, recordedObject: saveState) }