Fixes issue where canceling rename save state prompt would still rename save state
This commit is contained in:
parent
01ed2b6a94
commit
de51210248
@ -71,7 +71,6 @@ class SaveStatesViewController: UICollectionViewController
|
|||||||
fileprivate let imageCache = NSCache<NSURL, UIImage>()
|
fileprivate let imageCache = NSCache<NSURL, UIImage>()
|
||||||
|
|
||||||
fileprivate var emulatorCoreSaveState: SaveStateProtocol?
|
fileprivate var emulatorCoreSaveState: SaveStateProtocol?
|
||||||
fileprivate var selectedSaveState: SaveState?
|
|
||||||
|
|
||||||
fileprivate let dateFormatter: DateFormatter
|
fileprivate let dateFormatter: DateFormatter
|
||||||
|
|
||||||
@ -367,44 +366,35 @@ private extension SaveStatesViewController
|
|||||||
|
|
||||||
func renameSaveState(_ saveState: SaveState)
|
func renameSaveState(_ saveState: SaveState)
|
||||||
{
|
{
|
||||||
self.selectedSaveState = saveState
|
|
||||||
|
|
||||||
let alertController = UIAlertController(title: NSLocalizedString("Rename Save State", comment: ""), message: nil, preferredStyle: .alert)
|
let alertController = UIAlertController(title: NSLocalizedString("Rename Save State", comment: ""), message: nil, preferredStyle: .alert)
|
||||||
alertController.addTextField { (textField) in
|
alertController.addTextField { (textField) in
|
||||||
textField.text = saveState.name
|
textField.text = saveState.name
|
||||||
textField.placeholder = NSLocalizedString("Name", comment: "")
|
textField.placeholder = NSLocalizedString("Name", comment: "")
|
||||||
textField.autocapitalizationType = .words
|
textField.autocapitalizationType = .words
|
||||||
textField.returnKeyType = .done
|
textField.returnKeyType = .done
|
||||||
textField.addTarget(self, action: #selector(SaveStatesViewController.updateSaveStateName(_:)), for: .editingDidEnd)
|
|
||||||
}
|
}
|
||||||
alertController.addAction(UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .cancel, handler: { (action) in
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .cancel, handler: nil))
|
||||||
self.selectedSaveState = nil
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Rename", comment: ""), style: .default, handler: { [unowned alertController] (action) in
|
||||||
}))
|
self.rename(saveState, with: alertController.textFields?.first?.text)
|
||||||
alertController.addAction(UIAlertAction(title: NSLocalizedString("Rename", comment: ""), style: .default, handler: { (action) in
|
|
||||||
self.updateSaveStateName(alertController.textFields!.first!)
|
|
||||||
}))
|
}))
|
||||||
self.present(alertController, animated: true, completion: nil)
|
self.present(alertController, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func updateSaveStateName(_ textField: UITextField)
|
func rename(_ saveState: SaveState, with name: String?)
|
||||||
{
|
{
|
||||||
guard let selectedSaveState = self.selectedSaveState else { return }
|
var name = name
|
||||||
|
if (name ?? "").characters.count == 0
|
||||||
var text = textField.text
|
|
||||||
if text?.characters.count == 0
|
|
||||||
{
|
{
|
||||||
// When text is nil, we know to show the timestamp instead
|
// When text is nil, we know to show the timestamp instead
|
||||||
text = nil
|
name = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
DatabaseManager.shared.performBackgroundTask { (context) in
|
DatabaseManager.shared.performBackgroundTask { (context) in
|
||||||
let saveState = context.object(with: selectedSaveState.objectID) as! SaveState
|
let saveState = context.object(with: saveState.objectID) as! SaveState
|
||||||
saveState.name = text
|
saveState.name = name
|
||||||
|
|
||||||
context.saveWithErrorLogging()
|
context.saveWithErrorLogging()
|
||||||
}
|
}
|
||||||
|
|
||||||
self.selectedSaveState = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func updatePreviewSaveState(_ saveState: SaveState?)
|
func updatePreviewSaveState(_ saveState: SaveState?)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user