ish/app/SceneDelegate.m
Theodore Dubois 6791a15348 Support multiple windows
Co-authored-by: Noah Peeters <noah.peeters@icloud.com>
2019-10-27 19:29:03 -07:00

44 lines
1.3 KiB
Objective-C

//
// SceneDelegate.m
// iSH
//
// Created by Theodore Dubois on 10/26/19.
//
#import "SceneDelegate.h"
#import "TerminalViewController.h"
@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;
}
@end