Fixes Game Save errors not being grouped with Game errors
This commit is contained in:
parent
8bc9d02e4c
commit
9db68aa9e4
@ -45,6 +45,20 @@ extension SyncResultViewController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension Record
|
||||||
|
{
|
||||||
|
var localizedTitle: String {
|
||||||
|
guard let type = SyncManager.RecordType(rawValue: self.recordID.type) else { return self.localizedName ?? NSLocalizedString("Unknown", comment: "") }
|
||||||
|
|
||||||
|
switch type
|
||||||
|
{
|
||||||
|
case .game: return NSLocalizedString("Game", comment: "")
|
||||||
|
case .gameSave: return NSLocalizedString("Game Save", comment: "")
|
||||||
|
case .saveState, .cheat, .controllerSkin, .gameCollection, .gameControllerInputMapping: return self.localizedName ?? type.localizedName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class SyncResultViewController: UITableViewController
|
class SyncResultViewController: UITableViewController
|
||||||
{
|
{
|
||||||
var result: Result<[Record<NSManagedObject>: Result<Void, RecordError>], SyncError>!
|
var result: Result<[Record<NSManagedObject>: Result<Void, RecordError>], SyncError>!
|
||||||
@ -114,14 +128,7 @@ private extension SyncResultViewController
|
|||||||
switch error.value
|
switch error.value
|
||||||
{
|
{
|
||||||
case let error as RecordError:
|
case let error as RecordError:
|
||||||
guard let recordType = SyncManager.RecordType(rawValue: error.record.recordID.type) else { return }
|
title = error.record.localizedTitle
|
||||||
|
|
||||||
switch recordType
|
|
||||||
{
|
|
||||||
case .game: title = NSLocalizedString("Game", comment: "")
|
|
||||||
case .gameSave: title = NSLocalizedString("Game Save", comment: "")
|
|
||||||
case .saveState, .cheat, .controllerSkin, .gameCollection, .gameControllerInputMapping: title = error.record.localizedName ?? recordType.localizedName
|
|
||||||
}
|
|
||||||
|
|
||||||
switch error
|
switch error
|
||||||
{
|
{
|
||||||
@ -204,11 +211,16 @@ private extension SyncResultViewController
|
|||||||
switch recordType
|
switch recordType
|
||||||
{
|
{
|
||||||
case .game: group = .game(error.record.recordID)
|
case .game: group = .game(error.record.recordID)
|
||||||
case .gameSave: group = .game(error.record.recordID)
|
|
||||||
case .gameCollection: group = .gameCollection
|
case .gameCollection: group = .gameCollection
|
||||||
case .controllerSkin: group = .controllerSkin
|
case .controllerSkin: group = .controllerSkin
|
||||||
case .gameControllerInputMapping: group = .gameControllerInputMapping
|
case .gameControllerInputMapping: group = .gameControllerInputMapping
|
||||||
|
|
||||||
|
case .gameSave:
|
||||||
|
guard let gameID = error.record.metadata?[.gameID] else { continue }
|
||||||
|
|
||||||
|
let recordID = RecordID(type: SyncManager.RecordType.game.rawValue, identifier: gameID)
|
||||||
|
group = .game(recordID)
|
||||||
|
|
||||||
case .saveState:
|
case .saveState:
|
||||||
guard let gameID = error.record.metadata?[.gameID] else { continue }
|
guard let gameID = error.record.metadata?[.gameID] else { continue }
|
||||||
|
|
||||||
@ -228,6 +240,16 @@ private extension SyncResultViewController
|
|||||||
errorsByGroup[group, default: []].append(error)
|
errorsByGroup[group, default: []].append(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (group, errors) in errorsByGroup
|
||||||
|
{
|
||||||
|
let sortedErrors = errors.sorted { (a, b) -> Bool in
|
||||||
|
guard let a = a as? RecordError, let b = b as? RecordError else { return false }
|
||||||
|
return a.record.localizedTitle < b.record.localizedTitle
|
||||||
|
}
|
||||||
|
|
||||||
|
errorsByGroup[group] = sortedErrors
|
||||||
|
}
|
||||||
|
|
||||||
let sortedErrors = errorsByGroup.sorted { (a, b) in
|
let sortedErrors = errorsByGroup.sorted { (a, b) in
|
||||||
let groupA = a.key
|
let groupA = a.key
|
||||||
let groupB = b.key
|
let groupB = b.key
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user