/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ #import "AppDelegate.h" #import "ReactNativeConfig.h" #import "React/RCTLog.h" #import "RCTBundleURLProvider.h" #import "RCTRootView.h" #import "SplashScreen.h" #import "TestFairy.h" #import "RNFIRMessaging.h" /* Macro to send app logs to TestFairy, potential duplicate of prefix header */ #define NSLog(s, ...) do { NSLog(s, ##__VA_ARGS__); TFLog(s, ##__VA_ARGS__); } while (0) @import Instabug; @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { signal(SIGPIPE, SIG_IGN); NSURL *jsCodeLocation; /* Enable debug logs from React Native for release mode */ NSString *debugLogsEnabled = [ReactNativeConfig envFor:@"DEBUG_LOGS_ENABLED"]; if([debugLogsEnabled isEqualToString:@"1"]){ RCTSetLogThreshold(RCTLogLevelInfo - 1); } jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"StatusIm" initialProperties:nil launchOptions:launchOptions]; rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [UIViewController new]; rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; [SplashScreen show]; NSString *testfairyEnabled = [ReactNativeConfig envFor:@"TESTFAIRY_ENABLED"]; if([testfairyEnabled isEqualToString:@"1"]){ [TestFairy begin:@"969f6c921cb435cea1d41d1ea3f5b247d6026d55"]; } [Instabug startWithToken:@"5534212f4a44f477c9ab270ab5cd2062" invocationEvent:IBGInvocationEventShake]; [FIRApp configure]; [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self]; return YES; } - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler { [RNFIRMessaging willPresentNotification:notification withCompletionHandler:completionHandler]; } - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { [RNFIRMessaging didReceiveNotificationResponse:response withCompletionHandler:completionHandler]; } -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { [RNFIRMessaging didReceiveLocalNotification:notification]; } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler{ [RNFIRMessaging didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; } @end