| Index: ios/chrome/browser/ui/authentication/chrome_signin_view_controller.h
|
| diff --git a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.h b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f2e1c3a999ddd5f9e63377182d8dff67c2cbcca7
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.h
|
| @@ -0,0 +1,106 @@
|
| +// Copyright 2015 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_BROWSER_UI_AUTHENTICATION_CHROME_SIGNIN_VIEW_CONTROLLER_H_
|
| +#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_CHROME_SIGNIN_VIEW_CONTROLLER_H_
|
| +
|
| +#import <UIKit/UIKit.h>
|
| +
|
| +#include "components/signin/core/browser/signin_metrics.h"
|
| +#import "ios/chrome/browser/signin/constants.h"
|
| +
|
| +@class ChromeSigninViewController;
|
| +@class GenericChromeCommand;
|
| +@class ChromeIdentity;
|
| +
|
| +namespace ios {
|
| +class ChromeBrowserState;
|
| +} // namespace ios
|
| +
|
| +@protocol ChromeSigninViewControllerDelegate<NSObject>
|
| +
|
| +// Informs the delegate that a sign-in operation will start in |controller|.
|
| +- (void)willStartSignIn:(ChromeSigninViewController*)controller;
|
| +
|
| +// Informs the delegate that an add account operation will start in
|
| +// |controller|.
|
| +- (void)willStartAddAccount:(ChromeSigninViewController*)controller;
|
| +
|
| +// Informs the delegate that the user skipped sign-in in |controller|.
|
| +- (void)didSkipSignIn:(ChromeSigninViewController*)controller;
|
| +
|
| +// Informs the delegate that the sign-in failed in |controller|.
|
| +- (void)didFailSignIn:(ChromeSigninViewController*)controller;
|
| +
|
| +// Informs the delegate that the user was signed in in |controller|.
|
| +//
|
| +// Note that the sign-in flow did not actually finish when this method is
|
| +// called. The delegate will be called with [-didAcceptSignIn:] or
|
| +// [-didUndoSignIn:identity:] once the user decides to accept or to undo the
|
| +// sign-in operation.
|
| +- (void)didSignIn:(ChromeSigninViewController*)controller;
|
| +
|
| +// Informs the delegate that the sign-in of |identity| was undone in
|
| +// |controller|.
|
| +// |identity| will be automatically forgotten if it was added during this
|
| +// sign-in flow.
|
| +- (void)didUndoSignIn:(ChromeSigninViewController*)controller
|
| + identity:(ChromeIdentity*)identity;
|
| +
|
| +// Informs the delegate that the user has accepted the sign-in in |controller|.
|
| +// If |command| is not nil, the delegate is expected to execute it.
|
| +// This marks the end of the sign-in flow.
|
| +- (void)didAcceptSignIn:(ChromeSigninViewController*)controller
|
| + executeCommand:(GenericChromeCommand*)command;
|
| +
|
| +@end
|
| +
|
| +// ChromeSigninViewController is a view controller that handles all the
|
| +// sign-in UI flow.
|
| +@interface ChromeSigninViewController : UIViewController
|
| +
|
| +@property(nonatomic, assign) id<ChromeSigninViewControllerDelegate> delegate;
|
| +
|
| +// Data clearing policy to use during the authentication.
|
| +// It is valid to set this in the |willStartSignIn:| method of the delegate.
|
| +@property(nonatomic, assign) ShouldClearData shouldClearData;
|
| +
|
| +// Designated initializer.
|
| +// * |browserState| is the current browser state.
|
| +// * |isPresentedOnSettings| indicates whether the settings view controller is
|
| +// part of the presented view controllers stack.
|
| +// * |accessPoint| represents the access point that initiated the sign-in.
|
| +// * |identity| will be signed in without requiring user input if not nil.
|
| +- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
|
| + isPresentedOnSettings:(BOOL)isPresentedOnSettings
|
| + signInAccessPoint:(signin_metrics::AccessPoint)accessPoint
|
| + signInIdentity:(ChromeIdentity*)identity;
|
| +
|
| +// Cancels the on-going authentication operation (if any). |delegate| will be
|
| +// called with |didFailSignIn|.
|
| +- (void)cancel;
|
| +
|
| +@end
|
| +
|
| +@interface ChromeSigninViewController (Subclassing)
|
| +
|
| +@property(nonatomic, readonly) ios::ChromeBrowserState* browserState;
|
| +
|
| +@property(nonatomic, readonly) UIColor* backgroundColor;
|
| +
|
| +// Vertical padding used underneath buttons. Default value is 18.
|
| +@property(nonatomic, assign) CGFloat buttonVerticalPadding;
|
| +
|
| +// Primary button title used to accept the sign-in.
|
| +@property(nonatomic, readonly) NSString* acceptSigninButtonTitle;
|
| +
|
| +// Secondary button title used to skip the sign-in.
|
| +@property(nonatomic, readonly) NSString* skipSigninButtonTitle;
|
| +
|
| +@property(nonatomic, readonly) UIButton* primaryButton;
|
| +@property(nonatomic, readonly) UIButton* secondaryButton;
|
| +
|
| +@end
|
| +
|
| +#endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_CHROME_SIGNIN_VIEW_CONTROLLER_H_
|
|
|