diff options
Diffstat (limited to 'platform/ios/app/MBXState.m')
-rw-r--r-- | platform/ios/app/MBXState.m | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/platform/ios/app/MBXState.m b/platform/ios/app/MBXState.m new file mode 100644 index 0000000000..49ccd67e8d --- /dev/null +++ b/platform/ios/app/MBXState.m @@ -0,0 +1,74 @@ +#import "MBXState.h" + +NSString *const MBXCamera = @"MBXCamera"; +NSString *const MBXUserTrackingMode = @"MBXUserTrackingMode"; +NSString *const MBXShowsUserLocation = @"MBXShowsUserLocation"; +NSString *const MBXDebugMaskValue = @"MBXDebugMaskValue"; +NSString *const MBXShowsZoomLevelOrnament = @"MBXShowsZoomLevelOrnament"; +NSString *const MBXShowsTimeFrameGraph = @"MBXShowsFrameTimeGraph"; +NSString *const MBXDebugLoggingEnabled = @"MGLMapboxMetricsDebugLoggingEnabled"; +NSString *const MBXShowsMapScale = @"MBXMapShowsScale"; +NSString *const MBXMapShowsHeadingIndicator = @"MBXMapShowsHeadingIndicator"; +NSString *const MBXMapFramerateMeasurementEnabled = @"MBXMapFramerateMeasurementEnabled"; +NSString *const MBXReuseQueueStatsEnabled = @"MBXReuseQueueStatsEnabled"; + +@interface MBXState() + +@end + +@implementation MBXState + +- (void)encodeWithCoder:(NSCoder *)coder +{ + [coder encodeObject:_camera forKey:MBXCamera]; + [coder encodeObject:[NSNumber numberWithInt:_userTrackingMode] forKey:MBXUserTrackingMode]; + [coder encodeBool:_showsUserLocation forKey:MBXShowsUserLocation]; + [coder encodeObject:[NSNumber numberWithInt:_debugMask] forKey:MBXDebugMaskValue]; + [coder encodeBool:_showsZoomLevelOrnament forKey:MBXShowsZoomLevelOrnament]; + [coder encodeBool:_showsTimeFrameGraph forKey:MBXShowsTimeFrameGraph]; + [coder encodeBool:_debugLoggingEnabled forKey:MBXDebugLoggingEnabled]; + [coder encodeBool:_showsMapScale forKey:MBXShowsMapScale]; + [coder encodeBool:_showsUserHeadingIndicator forKey:MBXMapShowsHeadingIndicator]; + [coder encodeBool:_framerateMeasurementEnabled forKey:MBXMapFramerateMeasurementEnabled]; + [coder encodeBool:_reuseQueueStatsEnabled forKey:MBXReuseQueueStatsEnabled]; +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)decoder { + if (self = [super init]) { + MGLMapCamera *decodedCamera = [decoder decodeObjectForKey:MBXCamera]; + NSNumber *decodedUserTrackingMode = [decoder decodeObjectForKey:MBXUserTrackingMode]; + BOOL decodedShowsUserLocation = [decoder decodeBoolForKey:MBXShowsUserLocation]; + NSNumber *decodedDebugMaskOptions = [decoder decodeObjectForKey:MBXDebugMaskValue]; + BOOL decodedZoomLevelOrnament = [decoder decodeBoolForKey:MBXShowsZoomLevelOrnament]; + BOOL decodedShowsTimeFrameGraph = [decoder decodeBoolForKey:MBXShowsTimeFrameGraph]; + BOOL decodedDebugLoggingEnabled = [decoder decodeBoolForKey:MBXDebugLoggingEnabled]; + BOOL decodedShowsMapScale = [decoder decodeBoolForKey:MBXShowsMapScale]; + BOOL decodedShowsUserHeadingIndicator = [decoder decodeBoolForKey:MBXMapShowsHeadingIndicator]; + BOOL decodedFramerateMeasurementEnabled = [decoder decodeBoolForKey:MBXMapFramerateMeasurementEnabled]; + BOOL decodedReuseQueueStatsEnabled = [decoder decodeBoolForKey:MBXReuseQueueStatsEnabled]; + + _camera = decodedCamera; + _userTrackingMode = decodedUserTrackingMode.intValue; + _showsUserLocation = decodedShowsUserLocation; + _debugMask = decodedDebugMaskOptions.intValue; + _showsZoomLevelOrnament = decodedZoomLevelOrnament; + _showsTimeFrameGraph = decodedShowsTimeFrameGraph; + _debugLoggingEnabled = decodedDebugLoggingEnabled; + _showsMapScale = decodedShowsMapScale; + _showsUserHeadingIndicator = decodedShowsUserHeadingIndicator; + _framerateMeasurementEnabled = decodedFramerateMeasurementEnabled; + _reuseQueueStatsEnabled = decodedReuseQueueStatsEnabled; + } + + return self; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (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"]; +} + +@end |