diff --git a/platform/ios/MGLMapView.mm b/platform/ios/MGLMapView.mm index a4604bc58..dd04b7c46 100644 --- a/platform/ios/MGLMapView.mm +++ b/platform/ios/MGLMapView.mm @@ -365,10 +365,23 @@ mbgl::DefaultFileSource *mbglFileSource = nullptr; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ NSMutableDictionary *evt = [[NSMutableDictionary alloc] init]; - [evt setValue:[[NSNumber alloc] initWithDouble:mbglMap->getLatLng().latitude] forKey:@"lat"]; - [evt setValue:[[NSNumber alloc] initWithDouble:mbglMap->getLatLng().longitude] forKey:@"lng"]; - [evt setValue:[[NSNumber alloc] initWithDouble:mbglMap->getZoom()] forKey:@"zoom"]; - [evt setValue:[[NSNumber alloc] initWithBool:[[UIApplication sharedApplication] isRegisteredForRemoteNotifications]] forKey:@"enabled.push"]; + [evt setValue:@(mbglMap->getLatLng().latitude) forKey:@"lat"]; + [evt setValue:@(mbglMap->getLatLng().longitude) forKey:@"lng"]; + [evt setValue:@(mbglMap->getZoom()) forKey:@"zoom"]; + + BOOL isRegisteredForRemoteNotifications; + if ([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) { + // iOS 8+ + isRegisteredForRemoteNotifications = [[UIApplication sharedApplication] isRegisteredForRemoteNotifications]; + } else { + // iOS 7 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" + UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; + isRegisteredForRemoteNotifications = (types == UIRemoteNotificationTypeNone) ? NO : YES; + #pragma clang diagnostic pop + } + [evt setValue:@(isRegisteredForRemoteNotifications) forKey:@"enabled.push"]; NSString *email = @"Unknown"; Class MFMailComposeViewController = NSClassFromString(@"MFMailComposeViewController");