diff options
Diffstat (limited to 'platform/ios/app/MBXStateManager.m')
-rw-r--r-- | platform/ios/app/MBXStateManager.m | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/platform/ios/app/MBXStateManager.m b/platform/ios/app/MBXStateManager.m new file mode 100644 index 0000000000..679a4a075f --- /dev/null +++ b/platform/ios/app/MBXStateManager.m @@ -0,0 +1,43 @@ +#import "MBXStateManager.h" +#import <Mapbox/Mapbox.h> +#import "MBXState.h" +#import "MBXViewController.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 { + NSData *encodedMapState = [[NSUserDefaults standardUserDefaults] objectForKey:@"mapStateKey"]; + MBXState *currentState = (MBXState *)[NSKeyedUnarchiver unarchiveObjectWithData: encodedMapState]; + + return currentState; +} + +- (void)saveState:(MBXState*)mapState { + NSData *encodedMapState = [NSKeyedArchiver archivedDataWithRootObject:mapState]; + [[NSUserDefaults standardUserDefaults] setObject:encodedMapState forKey:@"mapStateKey"]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (void)resetState { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"mapStateKey"]; +} + + + +@end |