[ios] Address iosapp state manager tailwork

This commit is contained in:
Jason Wray
2019-06-17 17:16:02 -07:00
committed by Jason Wray
parent 3f9fd46fd4
commit 3d6da49073
2 changed files with 20 additions and 8 deletions

View File

@@ -21,9 +21,9 @@ NSString *const MBXReuseQueueStatsEnabled = @"MBXReuseQueueStatsEnabled";
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:_camera forKey:MBXCamera];
[coder encodeObject:[NSNumber numberWithInt:_userTrackingMode] forKey:MBXUserTrackingMode];
[coder encodeObject:[NSNumber numberWithUnsignedInteger:_userTrackingMode] forKey:MBXUserTrackingMode];
[coder encodeBool:_showsUserLocation forKey:MBXShowsUserLocation];
[coder encodeObject:[NSNumber numberWithInt:_debugMask] forKey:MBXDebugMaskValue];
[coder encodeObject:[NSNumber numberWithUnsignedInteger:_debugMask] forKey:MBXDebugMaskValue];
[coder encodeBool:_showsZoomLevelOrnament forKey:MBXShowsZoomLevelOrnament];
[coder encodeBool:_showsTimeFrameGraph forKey:MBXShowsTimeFrameGraph];
[coder encodeBool:_debugLoggingEnabled forKey:MBXDebugLoggingEnabled];
@@ -68,7 +68,18 @@ NSString *const MBXReuseQueueStatsEnabled = @"MBXReuseQueueStatsEnabled";
}
- (NSString*) debugDescription {
return [NSString stringWithFormat:@"Camera: %@\nTracking mode: %lu\nShows user location: %@\nDebug mask value: %lu\nShows zoom level ornament: %@\nShows time frame graph: %@\nDebug logging enabled: %@\nShows map scale: %@\nShows user heading indicator: %@\nFramerate measurement enabled: %@", self.camera, (unsigned long)self.userTrackingMode, (self.showsUserLocation) ? @"YES" : @"NO", (unsigned long)self.debugMask, (self.showsZoomLevelOrnament) ? @"YES" : @"NO", (self.showsTimeFrameGraph) ? @"YES" : @"NO", (self.debugLoggingEnabled) ? @"YES" : @"NO", (self.showsMapScale) ? @"YES" : @"NO", (self.showsUserHeadingIndicator) ? @"YES" : @"NO", (self.framerateMeasurementEnabled) ? @"YES" : @"NO", (self.reuseQueueStatsEnabled) ? @"YES" : @"NO"];
return [NSString stringWithFormat:@"Camera: %@\nTracking mode: %lu\nShows user location: %@\nDebug mask value: %lu\nShows zoom level ornament: %@\nShows time frame graph: %@\nDebug logging enabled: %@\nShows map scale: %@\nShows user heading indicator: %@\nFramerate measurement enabled: %@\nReuse queue stats enabled: %@",
self.camera,
(unsigned long)self.userTrackingMode,
self.showsUserLocation ? @"YES" : @"NO",
(unsigned long)self.debugMask,
self.showsZoomLevelOrnament ? @"YES" : @"NO",
self.showsTimeFrameGraph ? @"YES" : @"NO",
self.debugLoggingEnabled ? @"YES" : @"NO",
self.showsMapScale ? @"YES" : @"NO",
self.showsUserHeadingIndicator ? @"YES" : @"NO",
self.framerateMeasurementEnabled ? @"YES" : @"NO",
self.reuseQueueStatsEnabled ? @"YES" : @"NO"];
}
@end

View File

@@ -3,6 +3,8 @@
#import "MBXState.h"
#import "MBXViewController.h"
static NSString * const MBXStateManagerMapStateKey = @"mapStateKey";
@interface MBXStateManager()
@property (strong, nonatomic) MBXState *currentState;
@@ -22,20 +24,19 @@
}
- (MBXState*)currentState {
NSData *encodedMapState = [[NSUserDefaults standardUserDefaults] objectForKey:@"mapStateKey"];
MBXState *currentState = (MBXState *)[NSKeyedUnarchiver unarchiveObjectWithData: encodedMapState];
NSData *encodedMapState = [[NSUserDefaults standardUserDefaults] objectForKey:MBXStateManagerMapStateKey];
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];
[[NSUserDefaults standardUserDefaults] setObject:encodedMapState forKey:MBXStateManagerMapStateKey];
}
- (void)resetState {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"mapStateKey"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:MBXStateManagerMapStateKey];
}