closed #89 make custom widgets codable

This commit is contained in:
Trey t
2022-02-21 11:36:45 -06:00
parent bdfa780c22
commit 83060e8353
45 changed files with 679 additions and 130 deletions

View File

@@ -18,7 +18,7 @@ class UserDefaultsStore {
case moodImages
case moodTint
case personalityPack
case customIcon
case customWidget
case contentViewCurrentSelectedHeaderViewBackDays
case contentViewHeaderTag
@@ -81,5 +81,25 @@ class UserDefaultsStore {
return Theme.system
}
}
static func getCustomWidget() -> CustomWidgetModel {
if let data = GroupUserDefaults.groupDefaults.object(forKey: UserDefaultsStore.Keys.customWidget.rawValue) as? Data,
let model = try? JSONDecoder().decode(CustomWidgetModel.self, from: data) {
return model
} else {
return CustomWidgetModel.defaultCustomWidget
}
}
@discardableResult
static func saveCustomWidget(widgetModel: CustomWidgetModel) -> CustomWidgetModel {
do {
let data = try JSONEncoder().encode(widgetModel)
GroupUserDefaults.groupDefaults.set(data, forKey: UserDefaultsStore.Keys.customWidget.rawValue)
return UserDefaultsStore.getCustomWidget()
} catch {
fatalError("error saving")
}
}
}