When Cr4shed crash handler is on, chaining to it will eventually crash instead of returning so that JVM can continue perform dump. For now, signal handlers are reset to default. abort() is now caught and shown in the launcher. Temporarily disabled safe area when windowed, until I can properly set it up, in order to workaround buttons going out of bounds.
69 lines
2.6 KiB
Objective-C
69 lines
2.6 KiB
Objective-C
#import "AppDelegate.h"
|
|
#import "LoginViewController.h"
|
|
#import "SceneDelegate.h"
|
|
#import "ios_uikit_bridge.h"
|
|
#import "utils.h"
|
|
|
|
// SurfaceViewController
|
|
extern dispatch_group_t fatalExitGroup;
|
|
|
|
@implementation AppDelegate
|
|
|
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
if (@available(iOS 13.0, *)) {
|
|
} else {
|
|
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
|
|
launchInitialViewController(self.window);
|
|
[self.window makeKeyAndVisible];
|
|
}
|
|
|
|
return YES;
|
|
}
|
|
|
|
#pragma mark - UISceneSession lifecycle
|
|
|
|
|
|
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){
|
|
// Called when a new scene session is being created.
|
|
// Use this method to select a configuration to create the new scene with.
|
|
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
|
|
}
|
|
|
|
|
|
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions API_AVAILABLE(ios(13.0)){
|
|
// Called when the user discards a scene session.
|
|
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
|
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
|
}
|
|
|
|
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
|
|
NSDictionary *data = [NSDictionary dictionaryWithObject:url forKey:@"url"];
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"MSALoginCallback" object:self userInfo:data];
|
|
return YES;
|
|
}
|
|
|
|
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
|
CallbackBridge_setWindowAttrib(GLFW_FOCUSED, 1);
|
|
}
|
|
|
|
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
|
CallbackBridge_setWindowAttrib(GLFW_VISIBLE, 0);
|
|
}
|
|
|
|
- (void)applicationWillEnterForeground:(UIApplication *)application {
|
|
CallbackBridge_setWindowAttrib(GLFW_VISIBLE, 1);
|
|
}
|
|
|
|
- (void)applicationWillResignActive:(UIApplication *)application {
|
|
CallbackBridge_setWindowAttrib(GLFW_FOCUSED, 0);
|
|
}
|
|
|
|
- (void)applicationWillTerminate:(UIApplication *)application {
|
|
if (fatalExitGroup != nil) {
|
|
dispatch_group_leave(fatalExitGroup);
|
|
fatalExitGroup = nil;
|
|
}
|
|
}
|
|
|
|
@end
|