closed #89 make custom widgets codable
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user