From bb6fbfea3716d68847ca5f000baba59897b801ae Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 24 Feb 2021 13:02:21 -0600 Subject: [PATCH] Replaces placeholder DS Home Screen image --- Delta.xcodeproj/project.pbxproj | 4 ---- Delta/Database/DatabaseManager.swift | 4 ++-- Resources/Assets.xcassets/Contents.json | 6 +++--- .../DS Home Screen.imageset/Contents.json | 12 ++++++++++++ .../DS Home Screen.imageset/DS.pdf | Bin 0 -> 43942 bytes Resources/DS.png | Bin 12511 -> 0 bytes 6 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 Resources/Assets.xcassets/DS Home Screen.imageset/Contents.json create mode 100644 Resources/Assets.xcassets/DS Home Screen.imageset/DS.pdf delete mode 100644 Resources/DS.png diff --git a/Delta.xcodeproj/project.pbxproj b/Delta.xcodeproj/project.pbxproj index f497ce0..959d483 100644 --- a/Delta.xcodeproj/project.pbxproj +++ b/Delta.xcodeproj/project.pbxproj @@ -139,7 +139,6 @@ BFCEA67E1D56FF640061A534 /* UIViewControllerContextTransitioning+Conveniences.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFCEA67D1D56FF640061A534 /* UIViewControllerContextTransitioning+Conveniences.swift */; }; BFD097211D3A01B8005A44C2 /* SaveStatesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3540041C5DA70400C1184C /* SaveStatesViewController.swift */; }; BFD1EF402336BD8800D197CF /* UIDevice+Processor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD1EF3F2336BD8800D197CF /* UIDevice+Processor.swift */; }; - BFDB0FEC24464758001C727C /* DS.png in Resources */ = {isa = PBXBuildFile; fileRef = BFDB0FEB24464757001C727C /* DS.png */; }; BFDB3418219E4B1700595A62 /* SyncStatusViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDB3417219E4B1700595A62 /* SyncStatusViewController.swift */; }; BFDCA1E6244EBAA900B8FBDB /* liblibDeSmuME.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BFDCA1E5244EBAA900B8FBDB /* liblibDeSmuME.a */; }; BFDCA1E9244F7E1000B8FBDB /* Delta5ToDelta6.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = BFDCA1E8244F7E1000B8FBDB /* Delta5ToDelta6.xcmappingmodel */; }; @@ -323,7 +322,6 @@ BFC9B7381CEFCD34008629BB /* CheatsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheatsViewController.swift; sourceTree = ""; }; BFCEA67D1D56FF640061A534 /* UIViewControllerContextTransitioning+Conveniences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewControllerContextTransitioning+Conveniences.swift"; sourceTree = ""; }; BFD1EF3F2336BD8800D197CF /* UIDevice+Processor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDevice+Processor.swift"; sourceTree = ""; }; - BFDB0FEB24464757001C727C /* DS.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DS.png; sourceTree = ""; }; BFDB3417219E4B1700595A62 /* SyncStatusViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncStatusViewController.swift; sourceTree = ""; }; BFDCA1E5244EBAA900B8FBDB /* liblibDeSmuME.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = liblibDeSmuME.a; sourceTree = BUILT_PRODUCTS_DIR; }; BFDCA1E7244F7DB100B8FBDB /* Delta 6.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Delta 6.xcdatamodel"; sourceTree = ""; }; @@ -769,7 +767,6 @@ isa = PBXGroup; children = ( BF6BB2451BB73FE800CCF94A /* Assets.xcassets */, - BFDB0FEB24464757001C727C /* DS.png */, BF02D5D91DDEBB3000A5E131 /* openvgdb.sqlite */, ); path = Resources; @@ -980,7 +977,6 @@ BF6BF3211EB82362008E83CD /* GamesDatabase.storyboard in Resources */, BFAB9F88219A4B670080EC7D /* GoogleService-Info.plist in Resources */, BF3540001C5DA3C500C1184C /* PausePresentationControllerContentView.xib in Resources */, - BFDB0FEC24464758001C727C /* DS.png in Resources */, BF5E7F461B9A652600AE44F8 /* Settings.storyboard in Resources */, BF02D5DA1DDEBB3000A5E131 /* openvgdb.sqlite in Resources */, BF71CF8A1FE904B1001F1613 /* GameTableViewCell.xib in Resources */, diff --git a/Delta/Database/DatabaseManager.swift b/Delta/Database/DatabaseManager.swift index 81d5f19..9ec9ca4 100644 --- a/Delta/Database/DatabaseManager.swift +++ b/Delta/Database/DatabaseManager.swift @@ -154,12 +154,12 @@ extension DatabaseManager bios.type = .ds bios.filename = filename - if let sourceURL = Bundle.main.url(forResource: "DS", withExtension: "png") + if let artwork = UIImage(named: "DS Home Screen"), let artworkData = artwork.pngData() { do { let destinationURL = DatabaseManager.artworkURL(for: bios) - try FileManager.default.copyItem(at: sourceURL, to: destinationURL, shouldReplace: true) + try artworkData.write(to: destinationURL, options: .atomic) bios.artworkURL = destinationURL } catch diff --git a/Resources/Assets.xcassets/Contents.json b/Resources/Assets.xcassets/Contents.json index da4a164..73c0059 100644 --- a/Resources/Assets.xcassets/Contents.json +++ b/Resources/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Resources/Assets.xcassets/DS Home Screen.imageset/Contents.json b/Resources/Assets.xcassets/DS Home Screen.imageset/Contents.json new file mode 100644 index 0000000..fc3f563 --- /dev/null +++ b/Resources/Assets.xcassets/DS Home Screen.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "DS.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/DS Home Screen.imageset/DS.pdf b/Resources/Assets.xcassets/DS Home Screen.imageset/DS.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6d80bd9dcb069f64c51a92220b47243bd934c497 GIT binary patch literal 43942 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 y_$aQOY0Zh`_G{t;aQ$;?x)Au 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