chromium/ios/chrome/browser/ui/authentication/identity_chooser/identity_chooser_transition_delegate.mm

// Copyright 2018 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/chrome/browser/ui/authentication/identity_chooser/identity_chooser_transition_delegate.h"

#import "ios/chrome/browser/ui/authentication/identity_chooser/identity_chooser_animator.h"
#import "ios/chrome/browser/ui/authentication/identity_chooser/identity_chooser_presentation_controller.h"

@implementation IdentityChooserTransitionDelegate

@synthesize origin = _origin;

#pragma mark - UIViewControllerTransitioningDelegate

- (UIPresentationController*)
presentationControllerForPresentedViewController:(UIViewController*)presented
                        presentingViewController:(UIViewController*)presenting
                            sourceViewController:(UIViewController*)source {
  return [[IdentityChooserPresentationController alloc]
      initWithPresentedViewController:presented
             presentingViewController:presenting];
}

- (id<UIViewControllerAnimatedTransitioning>)
animationControllerForPresentedController:(UIViewController*)presented
                     presentingController:(UIViewController*)presenting
                         sourceController:(UIViewController*)source {
  IdentityChooserAnimator* animator = [[IdentityChooserAnimator alloc] init];
  animator.appearing = YES;
  animator.origin = self.origin;
  return animator;
}

- (id<UIViewControllerAnimatedTransitioning>)
animationControllerForDismissedController:(UIViewController*)dismissed {
  IdentityChooserAnimator* animator = [[IdentityChooserAnimator alloc] init];
  animator.appearing = NO;
  return animator;
}

@end