blob: 0a2e93d0abb9d25c75f89e1e344d07271b81665b [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/web_view/shell/shell_app_delegate.h"
#import <ChromeWebView/ChromeWebView.h>
#import "ios/web_view/shell/shell_view_controller.h"
@implementation ShellAppDelegate
@synthesize window = _window;
- (BOOL)application:(UIApplication*)application
willFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
[[CWVGlobalState sharedInstance] earlyInit];
[[CWVGlobalState sharedInstance] start];
// Note that initialization of the window and the root view controller must be
// done here, not in -application:didFinishLaunchingWithOptions: when state
// restoration is supported.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
self.window.tintColor = [UIColor darkGrayColor];
ShellViewController* controller = [[ShellViewController alloc] init];
// Gives a restoration identifier so that state restoration works.
controller.restorationIdentifier = @"rootViewController";
self.window.rootViewController = controller;
return YES;
}
- (BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication*)application {
}
- (void)applicationDidEnterBackground:(UIApplication*)application {
}
- (void)applicationWillEnterForeground:(UIApplication*)application {
}
- (void)applicationDidBecomeActive:(UIApplication*)application {
}
- (void)applicationWillTerminate:(UIApplication*)application {
[[CWVGlobalState sharedInstance] stop];
}
- (BOOL)application:(UIApplication*)application
shouldSaveSecureApplicationState:(NSCoder*)coder {
return YES;
}
- (BOOL)application:(UIApplication*)application
shouldRestoreSecureApplicationState:(NSCoder*)coder {
return YES;
}
- (void)application:(UIApplication*)application
didDecodeRestorableStateWithCoder:(NSCoder*)coder {
}
- (void)application:(UIApplication*)application
willEncodeRestorableStateWithCoder:(NSCoder*)coder {
}
- (UIViewController*)application:(UIApplication*)application
viewControllerWithRestorationIdentifierPath:
(NSArray<NSString*>*)identifierComponents
coder:(NSCoder*)coder {
const NSUInteger identifiersCount = identifierComponents.count;
if (identifiersCount > 0) {
NSString* identifier = identifierComponents[identifiersCount - 1];
UIViewController* rootViewController = self.window.rootViewController;
if ([identifier isEqualToString:rootViewController.restorationIdentifier]) {
return rootViewController;
}
}
return nil;
}
@end