Chromium Code Reviews| Index: ios/showcase/core/app_delegate.mm |
| diff --git a/ios/showcase/core/app_delegate.mm b/ios/showcase/core/app_delegate.mm |
| index fda5403304f46f7c728ab057675a3296453a1808..8136bfb75cbc186ddd6f81d899a287cbcc131e51 100644 |
| --- a/ios/showcase/core/app_delegate.mm |
| +++ b/ios/showcase/core/app_delegate.mm |
| @@ -4,6 +4,10 @@ |
| #import "ios/showcase/core/app_delegate.h" |
| +#import "ios/clean/chrome/app/application_state.h" |
| +#import "ios/clean/chrome/app/steps/launch_to_background.h" |
| +#import "ios/clean/chrome/app/steps/launch_to_basic.h" |
| +#import "ios/clean/chrome/app/steps/launch_to_foreground.h" |
| #import "ios/showcase/core/showcase_model.h" |
| #import "ios/showcase/core/showcase_view_controller.h" |
| #import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" |
| @@ -14,8 +18,13 @@ |
| #error "This file requires ARC support." |
| #endif |
| +@interface AppDelegate () |
| +@property(nonatomic, strong) ApplicationState* applicationState; |
| +@end |
| + |
| @implementation AppDelegate |
| @synthesize window = _window; |
| +@synthesize applicationState = _applicationState; |
| - (BOOL)application:(UIApplication*)application |
| didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { |
| @@ -27,6 +36,13 @@ |
| initWithRootViewController:viewController]; |
| self.window.rootViewController = navigationController; |
| [self.window makeKeyAndVisible]; |
| + |
| + self.applicationState = [[ApplicationState alloc] init]; |
|
marq (ping after 24h)
2017/01/24 09:49:07
Sorry for any confusion caused by my comment in ch
|
| + self.applicationState.application = application; |
| + [self configureApplicationState]; |
| + |
| + [self.applicationState launchWithOptions:launchOptions]; |
| + |
| return YES; |
| } |
| @@ -41,4 +57,23 @@ |
| return [rows sortedArrayUsingDescriptors:@[ sortDescriptor ]]; |
| } |
| +// Configures the application state for application launch by setting the launch |
| +// steps. |
| +// Future architecture/refactoring note: configuring the application state in |
| +// this way is outside the scope of responsibility of the object as defined in |
| +// the header file. The correct solution is probably a helper object that can |
| +// perform all of the configuration necessary, and that can be adjusted as |
| +// needed. |
| +- (void)configureApplicationState { |
| + [self.applicationState.launchSteps addObjectsFromArray:@[ |
| + [[ProviderInitializer alloc] init], |
| + [[SetupBundleAndUserDefaults alloc] init], |
| + [[StartChromeMain alloc] init], |
| + [[SetBrowserState alloc] init], |
| + [[BeginForegrounding alloc] init], |
| + [[PrepareForUI alloc] init], |
| + [[CompleteForegrounding alloc] init], |
| + ]]; |
| +} |
| + |
| @end |