session-ios/Signal/src/environment/PropertyListPreferences.m

38 lines
1.1 KiB
Objective-C

#import "Constraints.h"
#import "PropertyListPreferences.h"
#import "TSStorageHeaders.h"
#define SignalDatabaseCollection @"SignalPreferences"
@implementation PropertyListPreferences
- (void)clear {
@synchronized(self) {
NSString *appDomain = NSBundle.mainBundle.bundleIdentifier;
[NSUserDefaults.standardUserDefaults removePersistentDomainForName:appDomain];
}
}
- (id)tryGetValueForKey:(NSString *)key {
ows_require(key != nil);
return [TSStorageManager.sharedManager objectForKey:key inCollection:SignalDatabaseCollection];
}
- (void)setValueForKey:(NSString *)key toValue:(id)value {
ows_require(key != nil);
[TSStorageManager.sharedManager setObject:value forKey:key inCollection:SignalDatabaseCollection];
}
- (id)adjustAndTryGetNewValueForKey:(NSString *)key afterAdjuster:(id (^)(id))adjuster {
ows_require(key != nil);
ows_require(adjuster != nil);
@synchronized(self) {
id oldValue = [self tryGetValueForKey:key];
id newValue = adjuster(oldValue);
[self setValueForKey:key toValue:newValue];
return newValue;
}
}
@end