| Index: ios/chrome/app/application_delegate/app_state.h
|
| diff --git a/ios/chrome/app/application_delegate/app_state.h b/ios/chrome/app/application_delegate/app_state.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..52aff1d69a87ab08387913c612277d99f2538453
|
| --- /dev/null
|
| +++ b/ios/chrome/app/application_delegate/app_state.h
|
| @@ -0,0 +1,91 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef IOS_CHROME_APP_APPLICATION_DELEGATE_APP_STATE_H_
|
| +#define IOS_CHROME_APP_APPLICATION_DELEGATE_APP_STATE_H_
|
| +
|
| +#import <UIKit/UIKit.h>
|
| +
|
| +@protocol AppNavigation;
|
| +@protocol BrowserLauncher;
|
| +@protocol BrowserViewInformation;
|
| +@protocol TabOpening;
|
| +@protocol TabSwitching;
|
| +@protocol StartupInformation;
|
| +@class DeviceSharingManager;
|
| +@class MainApplicationDelegate;
|
| +@class MemoryWarningHelper;
|
| +@class MetricsMediator;
|
| +@class TabModel;
|
| +
|
| +// Represents the application state and responds to application state changes
|
| +// and system events.
|
| +@interface AppState : NSObject
|
| +
|
| +- (instancetype)init NS_UNAVAILABLE;
|
| +
|
| +- (instancetype)
|
| +initWithBrowserLauncher:(id<BrowserLauncher>)browserLauncher
|
| + startupInformation:(id<StartupInformation>)startupInformation
|
| + applicationDelegate:(MainApplicationDelegate*)applicationDelegate
|
| + NS_DESIGNATED_INITIALIZER;
|
| +
|
| +// YES if the user has ever interacted with the application. May be NO if the
|
| +// application has been woken up by the system for background work.
|
| +@property(nonatomic, readonly) BOOL userInteracted;
|
| +
|
| +// Window for the application, it is not set during the initialization method.
|
| +// Set the property before calling methods related to it.
|
| +@property(nonatomic, assign) UIWindow* window;
|
| +
|
| +// Saves the launchOptions to be used from -newTabFromLaunchOptions. If the
|
| +// application is in background, initialize the browser to basic. If not, launch
|
| +// the browser.
|
| +// Returns whether additional delegate handling should be performed (call to
|
| +// -performActionForShortcutItem or -openURL by the system for example)
|
| +- (BOOL)requiresHandlingAfterLaunchWithOptions:(NSDictionary*)launchOptions
|
| + stateBackground:(BOOL)stateBackground;
|
| +
|
| +// Whether the application is in Safe Mode.
|
| +- (BOOL)isInSafeMode;
|
| +
|
| +// Logs duration of the session in the main tab model and records that chrome is
|
| +// no longer in cold start.
|
| +- (void)willResignActiveTabModel;
|
| +
|
| +// Called when the application is getting terminated. It stops all outgoing
|
| +// requests, config updates, clears the device sharing manager and stops the
|
| +// mainChrome instance.
|
| +- (void)applicationWillTerminate:(UIApplication*)application
|
| + applicationNavigation:(id<AppNavigation>)appNavigation;
|
| +
|
| +// Resumes the session: reinitializing metrics and opening new tab if necessary.
|
| +// User sessions are defined in terms of BecomeActive/ResignActive so that
|
| +// session boundaries include things like turning the screen off or getting a
|
| +// phone call, not just switching apps.
|
| +- (void)resumeSessionWithTabOpener:(id<TabOpening>)tabOpener
|
| + tabSwitcher:(id<TabSwitching>)tabSwitcher;
|
| +
|
| +// Called when going into the background. iOS already broadcasts, so
|
| +// stakeholders can register for it directly.
|
| +- (void)applicationDidEnterBackground:(UIApplication*)application
|
| + memoryHelper:(MemoryWarningHelper*)memoryHelper
|
| + tabSwitcherIsActive:(BOOL)tabSwitcherIsActive;
|
| +
|
| +// Called when returning to the foreground. Resets and uploads the metrics.
|
| +// Starts the browser to foreground if needed.
|
| +- (void)applicationWillEnterForeground:(UIApplication*)application
|
| + metricsMediator:(MetricsMediator*)metricsMediator
|
| + memoryHelper:(MemoryWarningHelper*)memoryHelper
|
| + tabOpener:(id<TabOpening>)tabOpener
|
| + appNavigation:(id<AppNavigation>)appNavigation;
|
| +
|
| +// Sets the return value for -didFinishLaunchingWithOptions that determines if
|
| +// UIKit should make followup delegate calls such as
|
| +// -performActionForShortcutItem or -openURL.
|
| +- (void)launchFromURLHandled:(BOOL)URLHandled;
|
| +
|
| +@end
|
| +
|
| +#endif // IOS_CHROME_APP_APPLICATION_DELEGATE_APP_STATE_H_
|
|
|