Commit 6716028c authored by Nohemi Fernandez's avatar Nohemi Fernandez Committed by Commit Bot

[iOS] Implement add account button for UnifiedConsentCoordinator.

Implements the add account button tap event in the
UnifiedConsentCoordinator, which opens the add account flow.

See go/chrome-ios-signin-migration for more information.

Bug: 971989
Change-Id: I51b167da48deb8092bbab139ed2fce34a4cac194
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2062410
Commit-Queue: Nohemi Fernandez <fernandex@chromium.org>
Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#742713}
parent a9992e3c
......@@ -21,7 +21,6 @@ source_set("add_account_signin") {
"//ios/chrome/browser/ui/alert_coordinator",
"//ios/chrome/browser/ui/authentication",
"//ios/chrome/browser/ui/authentication/signin:signin_protected",
"//ios/chrome/browser/ui/authentication/signin/user_signin",
"//ios/public/provider/chrome/browser",
"//ios/public/provider/chrome/browser/signin",
]
......
......@@ -13,7 +13,6 @@
#import "ios/chrome/browser/ui/authentication/authentication_ui_util.h"
#import "ios/chrome/browser/ui/authentication/signin/add_account_signin/add_account_signin_mediator.h"
#import "ios/chrome/browser/ui/authentication/signin/signin_coordinator+protected.h"
#import "ios/chrome/browser/ui/authentication/signin/user_signin/user_signin_coordinator.h"
#import "ios/public/provider/chrome/browser/chrome_browser_provider.h"
#import "ios/public/provider/chrome/browser/signin/chrome_identity_interaction_manager.h"
#import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h"
......
......@@ -20,6 +20,8 @@ using signin_metrics::PromoAction;
// Coordinator that handles the user consent before the user signs in.
@property(nonatomic, strong)
UnifiedConsentCoordinator* unifiedConsentCoordinator;
// Coordinator that handles adding a user account.
@property(nonatomic, strong) SigninCoordinator* addAccountSigninCoordinator;
// View controller that handles the sign-in UI.
@property(nonatomic, strong) UserSigninViewController* viewController;
// Suggested identity shown at sign-in.
......@@ -65,6 +67,19 @@ using signin_metrics::PromoAction;
[self.unifiedConsentCoordinator start];
self.addAccountSigninCoordinator = [SigninCoordinator
addAccountCoordinatorWithBaseViewController:self.viewController
browser:self.browser
accessPoint:self.accessPoint];
__weak UserSigninCoordinator* weakSelf = self;
self.addAccountSigninCoordinator.signinCompletion =
^(SigninCoordinatorResult signinResult, ChromeIdentity* identity) {
if (signinResult == SigninCoordinatorResultSuccess) {
weakSelf.defaultIdentity = identity;
}
};
// Display UnifiedConsentViewController within the host.
self.viewController.unifiedConsentViewController =
self.unifiedConsentCoordinator.viewController;
......@@ -75,6 +90,8 @@ using signin_metrics::PromoAction;
- (void)stop {
[super stop];
[self.addAccountSigninCoordinator stop];
self.addAccountSigninCoordinator = nil;
self.unifiedConsentCoordinator = nil;
}
......@@ -92,7 +109,8 @@ using signin_metrics::PromoAction;
- (void)unifiedConsentCoordinatorDidTapOnAddAccount:
(UnifiedConsentCoordinator*)coordinator {
// TODO(crbug.com/971989): Needs implementation.
DCHECK_EQ(self.unifiedConsentCoordinator, coordinator);
[self.addAccountSigninCoordinator start];
}
- (void)unifiedConsentCoordinatorNeedPrimaryButtonUpdate:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment