Skip to content

Commit

Permalink
Improve the logic to ensure templateSettings.json is free of dirty data
Browse files Browse the repository at this point in the history
  • Loading branch information
livid committed Sep 24, 2024
1 parent 9d2ef18 commit 2ddb874
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 4 deletions.
21 changes: 21 additions & 0 deletions Planet/Entities/MyPlanetModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,13 @@ class MyPlanetModel: Equatable, Hashable, Identifiable, ObservableObject, Codabl
touched = true
}
}
// Remove settings not in default
for (key, value) in currentSettings {
if defaultSettings[key] == nil {
currentSettings.removeValue(forKey: key)
touched = true
}
}
if touched {
let data = try JSONSerialization.data(withJSONObject: currentSettings, options: [.prettyPrinted, .sortedKeys])
try data.write(to: templateSettingsPath)
Expand All @@ -323,13 +330,27 @@ class MyPlanetModel: Equatable, Hashable, Identifiable, ObservableObject, Codabl
do {
// Read current settings
var currentSettings: [String: String] = templateSettings()
// Default settings
let defaultSettings: [String: String] = self.template?.defaultSettings() ?? [:]
// Remove settings not in default
for (key, value) in currentSettings {
debugPrint("Template Settings: Checking setting \(key)")
if defaultSettings[key] == nil {
currentSettings.removeValue(forKey: key)
debugPrint("Template Settings: Removing setting \(key)")
} else {
debugPrint("Template Settings: Keeping setting \(key)")
}
}
// Update settings
for (key, value) in settings {
currentSettings[key] = value
}
// Write settings
let data = try JSONSerialization.data(withJSONObject: currentSettings, options: [.prettyPrinted, .sortedKeys])
try data.write(to: templateSettingsPath)

try self.copyTemplateSettings()
}
catch {
debugPrint("Error updating template settings: \(error) \(settings)")
Expand Down
1 change: 0 additions & 1 deletion Planet/Views/My/MyPlanetEditView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,6 @@ struct MyPlanetEditView: View {
planet.filebaseAPIToken = filebaseAPIToken
Task {
planet.updateTemplateSettings(settings: userSettings)
try? planet.copyTemplateSettings()
try planet.save()
Task(priority: .background) {
try await planet.rebuild()
Expand Down
1 change: 0 additions & 1 deletion Planet/Views/My/MyPlanetTemplateSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,6 @@ struct MyPlanetTemplateSettingsView: View {
Button {
Task.detached(priority: .userInitiated) {
await planet.updateTemplateSettings(settings: userSettings)
try? await planet.copyTemplateSettings()
try await planet.save()
Task(priority: .background) {
try await planet.rebuild()
Expand Down
2 changes: 1 addition & 1 deletion Planet/versioning.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1 @@
CURRENT_PROJECT_VERSION = 2248
CURRENT_PROJECT_VERSION = 2249
1 change: 0 additions & 1 deletion PlanetLite/Croptop/MintSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ struct MintSettings: View {
debugPrint("Template-level user settings: \(userSettings)")
Task {
planet.updateTemplateSettings(settings: userSettings)
try? planet.copyTemplateSettings()
try await planet.publish()
}
dismiss()
Expand Down

0 comments on commit 2ddb874

Please sign in to comment.