-
Notifications
You must be signed in to change notification settings - Fork 5
/
DaijirinListController.m
49 lines (37 loc) · 1.76 KB
/
DaijirinListController.m
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 <Preferences/Preferences.h>
__attribute__((visibility("hidden")))
@interface DaijirinListController: PSListController @end
@implementation DaijirinListController
- (void)updateSpecifier:(id)specifier {
PSSpecifier* slaveSpecifier = [self specifierForID:@"SlaveToggle"];
if ([[self readPreferenceValue:specifier] boolValue])
[slaveSpecifier setProperty:[NSNumber numberWithBool:YES] forKey:@"enabled"];
[self reloadSpecifier:slaveSpecifier];
}
- (void)setMasterToggle:(id)value specifier:(id)specifier { // thanks @Sakurina https://gist.github.com/1033214
// You'd set the "set" property for your switch in your plist to
// "setMasterToggle:specifier:" so this gets called
[self setPreferenceValue:value specifier:specifier];
BOOL boolValue = [value boolValue];
// "SlaveToggle" is the ID of the toggle that depends on this switch
PSSpecifier* slaveSpecifier = [self specifierForID:@"SlaveToggle"];
if (!boolValue)
[self setPreferenceValue:[NSNumber numberWithBool:NO] specifier:slaveSpecifier];
[slaveSpecifier setProperty:[NSNumber numberWithBool:boolValue] forKey:@"enabled"];
[self reloadSpecifier:slaveSpecifier];
// Of course, you might want to split that behavior out into another method
// you could call during your initializer otherwise it will remain enabled
// when you first launch the prefs bundle.
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (id)specifiers {
if(_specifiers == nil) {
_specifiers = [[self loadSpecifiersFromPlistName:@"Daijirin" target:self] retain];
[self updateSpecifier:[self specifierForID:@"ALCEnabledID"]];
}
return _specifiers;
}
- (void)github:(id)github {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://github.com/r-plus/Daijirin-ActionMenu-Plugin"]];
}
@end