diff --git a/Libraries/PushNotificationIOS/RCTPushNotificationManager.m b/Libraries/PushNotificationIOS/RCTPushNotificationManager.m index 4b8988413a8..97f26edabcb 100644 --- a/Libraries/PushNotificationIOS/RCTPushNotificationManager.m +++ b/Libraries/PushNotificationIOS/RCTPushNotificationManager.m @@ -172,7 +172,7 @@ RCT_EXPORT_MODULE() + (void)didRegisterUserNotificationSettings:(__unused UIUserNotificationSettings *)notificationSettings { if ([UIApplication instancesRespondToSelector:@selector(registerForRemoteNotifications)]) { - [[UIApplication sharedApplication] registerForRemoteNotifications]; + [RCTSharedApplication() registerForRemoteNotifications]; [[NSNotificationCenter defaultCenter] postNotificationName:RCTRegisterUserNotificationSettings object:self userInfo:@{@"notificationSettings": notificationSettings}]; @@ -378,7 +378,7 @@ RCT_EXPORT_METHOD(cancelAllLocalNotifications) RCT_EXPORT_METHOD(cancelLocalNotifications:(NSDictionary *)userInfo) { - for (UILocalNotification *notification in [UIApplication sharedApplication].scheduledLocalNotifications) { + for (UILocalNotification *notification in RCTSharedApplication().scheduledLocalNotifications) { __block BOOL matchesAll = YES; NSDictionary *notificationInfo = notification.userInfo; // Note: we do this with a loop instead of just `isEqualToDictionary:` @@ -392,7 +392,7 @@ RCT_EXPORT_METHOD(cancelLocalNotifications:(NSDictionary *)userI } }]; if (matchesAll) { - [[UIApplication sharedApplication] cancelLocalNotification:notification]; + [RCTSharedApplication() cancelLocalNotification:notification]; } } } @@ -418,7 +418,7 @@ RCT_EXPORT_METHOD(getInitialNotification:(RCTPromiseResolveBlock)resolve RCT_EXPORT_METHOD(getScheduledLocalNotifications:(RCTResponseSenderBlock)callback) { - NSArray *scheduledLocalNotifications = [UIApplication sharedApplication].scheduledLocalNotifications; + NSArray *scheduledLocalNotifications = RCTSharedApplication().scheduledLocalNotifications; NSMutableArray *formattedScheduledLocalNotifications = [NSMutableArray new]; for (UILocalNotification *notification in scheduledLocalNotifications) { [formattedScheduledLocalNotifications addObject:RCTFormatLocalNotification(notification)]; diff --git a/Libraries/RCTTest/RCTTestRunner.m b/Libraries/RCTTest/RCTTestRunner.m index ff90ac2ea0e..25538d8161a 100644 --- a/Libraries/RCTTest/RCTTestRunner.m +++ b/Libraries/RCTTest/RCTTestRunner.m @@ -121,7 +121,7 @@ expectErrorBlock:(BOOL(^)(NSString *error))expectErrorBlock testModule.testSuffix = _testSuffix; testModule.view = rootView; - UIViewController *vc = [UIApplication sharedApplication].delegate.window.rootViewController; + UIViewController *vc = RCTSharedApplication().delegate.window.rootViewController; vc.view = [UIView new]; [vc.view addSubview:rootView]; // Add as subview so it doesn't get resized diff --git a/React/Base/RCTLog.h b/React/Base/RCTLog.h index 644adf6c94f..0c6e2a04848 100644 --- a/React/Base/RCTLog.h +++ b/React/Base/RCTLog.h @@ -11,6 +11,7 @@ #import #import +#import #ifndef RCTLOG_ENABLED #define RCTLOG_ENABLED 1 diff --git a/React/Base/RCTLog.mm b/React/Base/RCTLog.mm index 517175e5c60..fd6c6b80d3f 100644 --- a/React/Base/RCTLog.mm +++ b/React/Base/RCTLog.mm @@ -218,7 +218,7 @@ void _RCTLogNativeInternal(RCTLogLevel level, const char *fileName, int lineNumb #if RCT_DEBUG // Log to red box in debug mode. - if ([UIApplication sharedApplication] && level >= RCTLOG_REDBOX_LEVEL) { + if (RCTSharedApplication() && level >= RCTLOG_REDBOX_LEVEL) { NSArray *stackSymbols = [NSThread callStackSymbols]; NSMutableArray *stack = [NSMutableArray arrayWithCapacity:(stackSymbols.count - 1)]; diff --git a/React/Modules/RCTAccessibilityManager.m b/React/Modules/RCTAccessibilityManager.m index 3fcef1e5d3a..a9c341aaaed 100644 --- a/React/Modules/RCTAccessibilityManager.m +++ b/React/Modules/RCTAccessibilityManager.m @@ -64,14 +64,14 @@ RCT_EXPORT_MODULE() [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNewContentSizeCategory:) name:UIContentSizeCategoryDidChangeNotification - object:[UIApplication sharedApplication]]; + object:RCTSharedApplication()]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNewVoiceOverStatus:) name:UIAccessibilityVoiceOverStatusChanged object:nil]; - self.contentSizeCategory = [UIApplication sharedApplication].preferredContentSizeCategory; + self.contentSizeCategory = RCTSharedApplication().preferredContentSizeCategory; _isVoiceOverEnabled = UIAccessibilityIsVoiceOverRunning(); } return self; diff --git a/React/Modules/RCTStatusBarManager.m b/React/Modules/RCTStatusBarManager.m index 849d09436bd..82a4fd9f996 100644 --- a/React/Modules/RCTStatusBarManager.m +++ b/React/Modules/RCTStatusBarManager.m @@ -99,7 +99,7 @@ RCT_EXPORT_MODULE() RCT_EXPORT_METHOD(getHeight:(RCTResponseSenderBlock)callback) { callback(@[@{ - @"height": @([UIApplication sharedApplication].statusBarFrame.size.height), + @"height": @(RCTSharedApplication().statusBarFrame.size.height), }]); } diff --git a/React/Profiler/RCTPerfMonitor.m b/React/Profiler/RCTPerfMonitor.m index 52efbcf267f..16d3ae7b6b7 100644 --- a/React/Profiler/RCTPerfMonitor.m +++ b/React/Profiler/RCTPerfMonitor.m @@ -24,6 +24,7 @@ #import "RCTRootView.h" #import "RCTUIManager.h" #import "RCTBridge+Private.h" +#import "RCTUtils.h" #if __has_include("RCTDevMenu.h") #import "RCTDevMenu.h" @@ -321,7 +322,7 @@ RCT_EXPORT_MODULE() [self updateStats]; - UIWindow *window = [UIApplication sharedApplication].delegate.window; + UIWindow *window = RCTSharedApplication().delegate.window; [window addSubview:self.container]; diff --git a/React/Profiler/RCTProfile.m b/React/Profiler/RCTProfile.m index b81a439dbf1..a7d5ca853c1 100644 --- a/React/Profiler/RCTProfile.m +++ b/React/Profiler/RCTProfile.m @@ -404,7 +404,7 @@ void RCTProfileUnhookModules(RCTBridge *bridge) }; RCTProfileControlsWindow.hidden = YES; dispatch_async(dispatch_get_main_queue(), ^{ - [[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentViewController:activityViewController + [[[[RCTSharedApplication() delegate] window] rootViewController] presentViewController:activityViewController animated:YES completion:nil]; }); diff --git a/React/Views/RCTModalHostView.m b/React/Views/RCTModalHostView.m index b06a310885c..687352e1624 100644 --- a/React/Views/RCTModalHostView.m +++ b/React/Views/RCTModalHostView.m @@ -16,6 +16,7 @@ #import "RCTModalHostViewController.h" #import "RCTTouchHandler.h" #import "RCTUIManager.h" +#import "RCTUtils.h" #import "UIView+React.h" @implementation RCTModalHostView @@ -68,7 +69,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:coder) return; } - UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation]; + UIInterfaceOrientation currentOrientation = [RCTSharedApplication() statusBarOrientation]; if (currentOrientation == _lastKnownOrientation) { return; } diff --git a/React/Views/RCTModalHostViewController.m b/React/Views/RCTModalHostViewController.m index 6b1e8dcb45c..8b57356c3a7 100644 --- a/React/Views/RCTModalHostViewController.m +++ b/React/Views/RCTModalHostViewController.m @@ -28,8 +28,8 @@ } #if !TARGET_OS_TV - _preferredStatusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; - _preferredStatusBarHidden = [[UIApplication sharedApplication] isStatusBarHidden]; + _preferredStatusBarStyle = [RCTSharedApplication() statusBarStyle]; + _preferredStatusBarHidden = [RCTSharedApplication() isStatusBarHidden]; #endif return self; @@ -59,7 +59,7 @@ #if RCT_DEV - (UIInterfaceOrientationMask)supportedInterfaceOrientations { - UIInterfaceOrientationMask appSupportedOrientationsMask = [[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:[[UIApplication sharedApplication] keyWindow]]; + UIInterfaceOrientationMask appSupportedOrientationsMask = [RCTSharedApplication() supportedInterfaceOrientationsForWindow:[RCTSharedApplication() keyWindow]]; if (!(_supportedInterfaceOrientations & appSupportedOrientationsMask)) { RCTLogError(@"Modal was presented with 0x%x orientations mask but the application only supports 0x%x." @"Add more interface orientations to your app's Info.plist to fix this." diff --git a/local-cli/templates/HelloWorld/ios/HelloWorldTests/HelloWorldTests.m b/local-cli/templates/HelloWorld/ios/HelloWorldTests/HelloWorldTests.m index fa1f1683afa..161aba80468 100644 --- a/local-cli/templates/HelloWorld/ios/HelloWorldTests/HelloWorldTests.m +++ b/local-cli/templates/HelloWorld/ios/HelloWorldTests/HelloWorldTests.m @@ -37,7 +37,7 @@ - (void)testRendersWelcomeScreen { - UIViewController *vc = [[[[UIApplication sharedApplication] delegate] window] rootViewController]; + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; BOOL foundElement = NO;