ish/app/SceneDelegate.m
2020-04-12 13:18:41 -07:00

58 lines
1.8 KiB
Objective-C

//
// SceneDelegate.m
// iSH
//
// Created by Theodore Dubois on 10/26/19.
//
#import "SceneDelegate.h"
TerminalViewController *currentTerminalViewController = NULL;
@interface SceneDelegate ()
@property NSString *terminalUUID;
@end
static NSString *const TerminalUUID = @"TerminalUUID";
@implementation SceneDelegate
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
TerminalViewController *vc = (TerminalViewController *) self.window.rootViewController;
vc.sceneSession = session;
if (session.stateRestorationActivity == nil) {
[vc startNewSession];
} else {
self.terminalUUID = session.stateRestorationActivity.userInfo[TerminalUUID];
[vc reconnectSessionFromTerminalUUID:
[[NSUUID alloc] initWithUUIDString:self.terminalUUID]];
}
}
- (NSUserActivity *)stateRestorationActivityForScene:(UIScene *)scene {
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"app.ish.scene"];
TerminalViewController *vc = (TerminalViewController *) self.window.rootViewController;
self.terminalUUID = vc.sessionTerminalUUID.UUIDString;
if (self.terminalUUID != nil) {
[activity addUserInfoEntriesFromDictionary:@{TerminalUUID: self.terminalUUID}];
}
return activity;
}
- (void)sceneDidBecomeActive:(UIScene *)scene {
TerminalViewController *terminalViewController = (TerminalViewController *) self.window.rootViewController;;
currentTerminalViewController = terminalViewController;
}
- (void)sceneWillResignActive:(UIScene *)scene {
TerminalViewController *terminalViewController = (TerminalViewController *) self.window.rootViewController;
if (currentTerminalViewController == terminalViewController) {
currentTerminalViewController = NULL;
}
}
@end