add a few more helpers
This commit is contained in:
+18
@@ -159,4 +159,22 @@ class Preferences(private val context: Context) {
|
|||||||
val set = safeInstance.getStringSet(key, setOf()) ?: setOf()
|
val set = safeInstance.getStringSet(key, setOf()) ?: setOf()
|
||||||
return set.contains(value)
|
return set.contains(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun hasValue(key: String): Boolean {
|
||||||
|
val safeInstance = getInstance(context)
|
||||||
|
return safeInstance.contains(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getValues(keys: Set<String>): Map<String, Any?> {
|
||||||
|
val safeInstance = getInstance(context)
|
||||||
|
return keys.associateWith { key ->
|
||||||
|
when (val value = safeInstance.all[key]) {
|
||||||
|
is String -> value
|
||||||
|
is Float -> value
|
||||||
|
is Boolean -> value
|
||||||
|
is Set<*> -> value
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,15 +2,15 @@ import Foundation
|
|||||||
|
|
||||||
public class SharedPrefs {
|
public class SharedPrefs {
|
||||||
public static let shared = SharedPrefs()
|
public static let shared = SharedPrefs()
|
||||||
|
|
||||||
private let defaults = UserDefaults(suiteName: "group.app.bsky")
|
private let defaults = UserDefaults(suiteName: "group.app.bsky")
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
if defaults == nil {
|
if defaults == nil {
|
||||||
NSLog("Failed to get user defaults for app group.")
|
NSLog("Failed to get user defaults for app group.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func getDefaults(_ info: String = "(no info)") -> UserDefaults? {
|
private func getDefaults(_ info: String = "(no info)") -> UserDefaults? {
|
||||||
guard let defaults = self.defaults else {
|
guard let defaults = self.defaults else {
|
||||||
NSLog("Failed to get defaults for app group: \(info)")
|
NSLog("Failed to get defaults for app group: \(info)")
|
||||||
@@ -18,39 +18,39 @@ public class SharedPrefs {
|
|||||||
}
|
}
|
||||||
return defaults
|
return defaults
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setValue(_ key: String, _ value: String?) {
|
public func setValue(_ key: String, _ value: String?) {
|
||||||
getDefaults(key)?.setValue(value, forKey: key)
|
getDefaults(key)?.setValue(value, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setValue(_ key: String, _ value: Double?) {
|
public func setValue(_ key: String, _ value: Double?) {
|
||||||
getDefaults(key)?.setValue(value, forKey: key)
|
getDefaults(key)?.setValue(value, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setValue(_ key: String, _ value: Bool?) {
|
public func setValue(_ key: String, _ value: Bool?) {
|
||||||
getDefaults(key)?.setValue(value, forKey: key)
|
getDefaults(key)?.setValue(value, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func _setAnyValue(_ key: String, _ value: Any?) {
|
public func _setAnyValue(_ key: String, _ value: Any?) {
|
||||||
getDefaults(key)?.setValue(value, forKey: key)
|
getDefaults(key)?.setValue(value, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func removeValue(_ key: String) {
|
public func removeValue(_ key: String) {
|
||||||
getDefaults(key)?.removeObject(forKey: key)
|
getDefaults(key)?.removeObject(forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func getString(_ key: String) -> String? {
|
public func getString(_ key: String) -> String? {
|
||||||
return getDefaults(key)?.string(forKey: key)
|
return getDefaults(key)?.string(forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func getNumber(_ key: String) -> Double? {
|
public func getNumber(_ key: String) -> Double? {
|
||||||
return getDefaults(key)?.double(forKey: key)
|
return getDefaults(key)?.double(forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func getBool(_ key: String) -> Bool? {
|
public func getBool(_ key: String) -> Bool? {
|
||||||
return getDefaults(key)?.bool(forKey: key)
|
return getDefaults(key)?.bool(forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func addToSet(_ key: String, _ value: String) {
|
public func addToSet(_ key: String, _ value: String) {
|
||||||
var dict: [String:Bool]?
|
var dict: [String:Bool]?
|
||||||
if var currDict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] {
|
if var currDict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] {
|
||||||
@@ -63,7 +63,7 @@ public class SharedPrefs {
|
|||||||
}
|
}
|
||||||
getDefaults(key)?.setValue(dict, forKey: key)
|
getDefaults(key)?.setValue(dict, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func removeFromSet(_ key: String, _ value: String) {
|
public func removeFromSet(_ key: String, _ value: String) {
|
||||||
guard var dict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] else {
|
guard var dict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] else {
|
||||||
return
|
return
|
||||||
@@ -71,15 +71,19 @@ public class SharedPrefs {
|
|||||||
dict.removeValue(forKey: value)
|
dict.removeValue(forKey: value)
|
||||||
getDefaults(key)?.setValue(dict, forKey: key)
|
getDefaults(key)?.setValue(dict, forKey: key)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setContains(_ key: String, _ value: String) -> Bool {
|
public func setContains(_ key: String, _ value: String) -> Bool {
|
||||||
guard let dict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] else {
|
guard let dict = getDefaults(key)?.dictionary(forKey: key) as? [String:Bool] else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return dict[value] == true
|
return dict[value] == true
|
||||||
}
|
}
|
||||||
|
|
||||||
public func hasValue(_ key: String) -> Bool {
|
public func hasValue(_ key: String) -> Bool {
|
||||||
return getDefaults(key)?.value(forKey: key) != nil
|
return getDefaults(key)?.value(forKey: key) != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func getValues(_ keys: [String]) -> [String:Any?]? {
|
||||||
|
return getDefaults("keys:\(keys)")?.dictionaryWithValues(forKeys: keys)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user