Adds ability to rename save states
This commit is contained in:
parent
6a2b2164be
commit
bf6b0adbd0
@ -57,6 +57,7 @@ class SaveStatesViewController: UICollectionViewController
|
|||||||
private let imageCache = NSCache()
|
private let imageCache = NSCache()
|
||||||
|
|
||||||
private var currentGameState: SaveStateType?
|
private var currentGameState: SaveStateType?
|
||||||
|
private var selectedSaveState: SaveState?
|
||||||
|
|
||||||
private let dateFormatter: NSDateFormatter
|
private let dateFormatter: NSDateFormatter
|
||||||
|
|
||||||
@ -248,6 +249,9 @@ private extension SaveStatesViewController
|
|||||||
alertController.addAction(UIAlertAction(title: NSLocalizedString("Delete Save State", comment: ""), style: .Destructive, handler: { action in
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Delete Save State", comment: ""), style: .Destructive, handler: { action in
|
||||||
self.deleteSaveState(saveState)
|
self.deleteSaveState(saveState)
|
||||||
}))
|
}))
|
||||||
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Rename Save State", comment: ""), style: .Default, handler: { action in
|
||||||
|
self.renameSaveState(saveState)
|
||||||
|
}))
|
||||||
|
|
||||||
let section = self.correctedSectionForSectionIndex(indexPath.section)
|
let section = self.correctedSectionForSectionIndex(indexPath.section)
|
||||||
switch section
|
switch section
|
||||||
@ -315,6 +319,50 @@ private extension SaveStatesViewController
|
|||||||
self.presentViewController(confirmationAlertController, animated: true, completion: nil)
|
self.presentViewController(confirmationAlertController, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func renameSaveState(saveState: SaveState)
|
||||||
|
{
|
||||||
|
self.selectedSaveState = saveState
|
||||||
|
|
||||||
|
let alertController = UIAlertController(title: NSLocalizedString("Rename Save State", comment: ""), message: nil, preferredStyle: .Alert)
|
||||||
|
alertController.addTextFieldWithConfigurationHandler { (textField) in
|
||||||
|
textField.text = saveState.name
|
||||||
|
textField.placeholder = NSLocalizedString("Name", comment: "")
|
||||||
|
textField.autocapitalizationType = .Words
|
||||||
|
textField.returnKeyType = .Done
|
||||||
|
textField.addTarget(self, action: #selector(SaveStatesViewController.updateSaveStateName(_:)), forControlEvents: .EditingDidEnd)
|
||||||
|
}
|
||||||
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .Cancel, handler: { (action) in
|
||||||
|
self.selectedSaveState = nil
|
||||||
|
}))
|
||||||
|
alertController.addAction(UIAlertAction(title: NSLocalizedString("Rename", comment: ""), style: .Default, handler: { (action) in
|
||||||
|
self.updateSaveStateName(alertController.textFields!.first!)
|
||||||
|
}))
|
||||||
|
self.presentViewController(alertController, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func updateSaveStateName(textField: UITextField)
|
||||||
|
{
|
||||||
|
guard let selectedSaveState = self.selectedSaveState else { return }
|
||||||
|
|
||||||
|
var text = textField.text
|
||||||
|
if text?.characters.count == 0
|
||||||
|
{
|
||||||
|
// When text is nil, we know to show the timestamp instead
|
||||||
|
text = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
let backgroundContext = DatabaseManager.sharedManager.backgroundManagedObjectContext()
|
||||||
|
backgroundContext.performBlock {
|
||||||
|
|
||||||
|
let saveState = backgroundContext.objectWithID(selectedSaveState.objectID) as! SaveState
|
||||||
|
saveState.name = text
|
||||||
|
|
||||||
|
backgroundContext.saveWithErrorLogging()
|
||||||
|
}
|
||||||
|
|
||||||
|
self.selectedSaveState = nil
|
||||||
|
}
|
||||||
|
|
||||||
func lockSaveState(saveState: SaveState)
|
func lockSaveState(saveState: SaveState)
|
||||||
{
|
{
|
||||||
let backgroundContext = DatabaseManager.sharedManager.backgroundManagedObjectContext()
|
let backgroundContext = DatabaseManager.sharedManager.backgroundManagedObjectContext()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user