blob: 0daf61bc444352981081d3a60f2d9b0bc1833fa4 (
plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#import "MBXStateManager.h"
#import <Mapbox/Mapbox.h>
#import "MBXState.h"
@interface MBXStateManager()
@property (strong, nonatomic) MBXState *currentState;
@end
@implementation MBXStateManager
+ (instancetype) sharedManager {
static dispatch_once_t once;
static MBXStateManager* sharedManager;
dispatch_once(&once, ^{
sharedManager = [[self alloc] init];
});
return sharedManager;
}
- (MBXState*)currentState {
if (!_currentState) {
_currentState = [[MBXState alloc] init];
NSMutableDictionary *dictionary = [[NSUserDefaults standardUserDefaults] objectForKey:@"mapStateKey"];
if (dictionary[MBXCamera]) {
_currentState.camera = dictionary[MBXCamera];
}
if (dictionary[MBXUserTrackingMode]) {
_currentState.userTrackingMode = [dictionary[MBXUserTrackingMode] boolValue];
}
if (dictionary[MBXShowsUserLocation]) {
_currentState.showsUserLocation = [dictionary[MBXShowsUserLocation] boolValue];
}
if (dictionary[MBXDebugMaskValue]) {
_currentState.debugMask = ((NSNumber *)dictionary[MBXDebugMaskValue]).intValue;
}
if (dictionary[MBXShowsTimeFrameGraph]) {
_currentState.showsTimeFrameGraph = [dictionary[MBXShowsTimeFrameGraph] boolValue];
}
}
return _currentState;
}
- (void)saveState:(MBXState*)state {
_currentState = state;
if (state) {
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
if (state.camera) {
[dictionary setObject:state.camera forKey:MBXCamera];
}
[dictionary setValue:@(state.userTrackingMode) forKey:MBXUserTrackingMode];
[dictionary setValue:@(state.showsUserLocation) forKey:MBXShowsUserLocation];
[dictionary setValue:@(state.debugMask) forKey:MBXDebugMaskValue];
[dictionary setValue:@(state.showsTimeFrameGraph) forKey:MBXShowsTimeFrameGraph];
[[NSUserDefaults standardUserDefaults] setObject:dictionary forKey:@"mapStateKey"];
} else {
[self resetState];
}
}
-(void)restoreState {
}
-(void)resetState {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"mapStateKey"];
}
@end
|