From fb9272cd6cbc065ab6de55f82b4ef65f297ee035 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 14 Nov 2018 13:42:36 -0800 Subject: [PATCH] Adds support for syncing SaveStates --- Delta/Database/Model/Human/SaveState.swift | 24 ++++++++++++++++++++++ External/Harmony | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Delta/Database/Model/Human/SaveState.swift b/Delta/Database/Model/Human/SaveState.swift index e9c139f..6588813 100644 --- a/Delta/Database/Model/Human/SaveState.swift +++ b/Delta/Database/Model/Human/SaveState.swift @@ -9,6 +9,7 @@ import Foundation import DeltaCore +import Harmony @objc public enum SaveStateType: Int16 { @@ -90,3 +91,26 @@ public class SaveState: _SaveState, SaveStateProtocol return fetchRequest } } + +extension SaveState: Syncable +{ + public static var syncablePrimaryKey: AnyKeyPath { + return \SaveState.identifier + } + + public var syncableKeys: Set { + return [\SaveState.creationDate, \SaveState.filename, \SaveState.modifiedDate, \SaveState.name, \SaveState.type] + } + + public var syncableFiles: Set { + return [File(identifier: "saveState", fileURL: self.fileURL), File(identifier: "thumbnail", fileURL: self.imageFileURL)] + } + + public var syncableRelationships: Set { + return [\SaveState.game] + } + + public var isSyncingEnabled: Bool { + return self.type != .auto && self.type != .quick + } +} diff --git a/External/Harmony b/External/Harmony index 47cc6cd..ee45cd9 160000 --- a/External/Harmony +++ b/External/Harmony @@ -1 +1 @@ -Subproject commit 47cc6cd87cd7e04765b05204a03f83c9eab7c159 +Subproject commit ee45cd9ff3ff6c50c29e85cd466c4031108c3fde