forked from ImageOptim/ImageOptim
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSharedPrefs.m
More file actions
49 lines (36 loc) · 1.46 KB
/
SharedPrefs.m
File metadata and controls
49 lines (36 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#import "SharedPrefs.h"
NSUserDefaults *IOSharedPrefs(void) {
if (NSAppKitVersionNumber < NSAppKitVersionNumber10_10) {
return nil;
}
return [[NSUserDefaults alloc] initWithSuiteName:@"59KZTZA4XR.net.pornel.ImageOptim"];
}
static void copyToDefs(const NSArray *__nonnull keys, const NSUserDefaults *__nonnull defs, NSUserDefaults *__nonnull shared) {
for (NSString *key in keys) {
id val = [defs objectForKey:key];
if (val) {
[shared setObject:val forKey:key];
} else {
[shared removeObjectForKey:key];
}
}
}
void IOSharedPrefsCopy(NSUserDefaults *__nonnull defs) {
if (NSAppKitVersionNumber < NSAppKitVersionNumber10_10) {
return;
}
// Whole dictionaryRepresentation is massive, so just copy interesting bits
const NSArray *keys = @[
@"AdvPngEnabled", @"AdvPngLevel", @"GifsicleEnabled",
@"JpegOptimEnabled", @"JpegTranEnabled", @"JpegTranStripAll",
@"OptiPngEnabled",
@"PngCrush2Enabled", @"PngOutEnabled",
@"PngOutRemoveChunks", @"ZopfliEnabled",
@"PngMinQuality", @"JpegOptimMaxQuality", @"GifQuality",
];
NSUserDefaults *shared = IOSharedPrefs();
copyToDefs(keys, defs, shared);
[[NSNotificationCenter defaultCenter] addObserverForName:NSUserDefaultsDidChangeNotification object:defs queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note){
copyToDefs(keys, defs, shared);
}];
}