Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: ios/clean/chrome/browser/ui/tools/tools_coordinator.mm

Issue 2952213003: [ios clean] Refactors ToolsMenu and Tabs presentation (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/clean/chrome/browser/ui/tools/tools_coordinator.h" 5 #import "ios/clean/chrome/browser/ui/tools/tools_coordinator.h"
6 6
7 #import "ios/clean/chrome/browser/ui/animators/zoom_transition_animator.h"
8 #import "ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.h"
9 #import "ios/clean/chrome/browser/ui/tools/menu_view_controller.h" 7 #import "ios/clean/chrome/browser/ui/tools/menu_view_controller.h"
10 #import "ios/clean/chrome/browser/ui/tools/tools_mediator.h" 8 #import "ios/clean/chrome/browser/ui/tools/tools_mediator.h"
9 #import "ios/clean/chrome/browser/ui/tools/tools_menu_transition_controller.h"
11 #import "ios/shared/chrome/browser/ui/browser_list/browser.h" 10 #import "ios/shared/chrome/browser/ui/browser_list/browser.h"
12 11
13 #if !defined(__has_feature) || !__has_feature(objc_arc) 12 #if !defined(__has_feature) || !__has_feature(objc_arc)
14 #error "This file requires ARC support." 13 #error "This file requires ARC support."
15 #endif 14 #endif
16 15
17 @interface ToolsCoordinator ()<UIViewControllerTransitioningDelegate> 16 @interface ToolsCoordinator ()
17 @property(nonatomic, strong) ToolsMediator* mediator;
18 @property(nonatomic, strong)
19 ToolsMenuTransitionController* transitionController;
18 @property(nonatomic, strong) MenuViewController* viewController; 20 @property(nonatomic, strong) MenuViewController* viewController;
19 @property(nonatomic, strong) ToolsMediator* mediator;
20 @end 21 @end
21 22
22 @implementation ToolsCoordinator 23 @implementation ToolsCoordinator
24 @synthesize mediator = _mediator;
25 @synthesize transitionController = _transitionController;
26 @synthesize toolsMenuConfiguration = _toolsMenuConfiguration;
23 @synthesize viewController = _viewController; 27 @synthesize viewController = _viewController;
24 @synthesize mediator = _mediator;
25 @synthesize toolsMenuConfiguration = _toolsMenuConfiguration;
26 @synthesize webState = _webState; 28 @synthesize webState = _webState;
27 29
28 #pragma mark - BrowserCoordinator 30 #pragma mark - BrowserCoordinator
29 31
30 - (void)start { 32 - (void)start {
31 self.viewController = [[MenuViewController alloc] init]; 33 self.viewController = [[MenuViewController alloc] init];
32 self.viewController.modalPresentationStyle = UIModalPresentationCustom; 34 self.viewController.modalPresentationStyle = UIModalPresentationCustom;
33 self.viewController.transitioningDelegate = self; 35 self.transitionController = [[ToolsMenuTransitionController alloc]
36 initWithDispatcher:static_cast<id>(self.browser->dispatcher())];
37 self.viewController.transitioningDelegate = self.transitionController;
34 self.viewController.dispatcher = static_cast<id>(self.browser->dispatcher()); 38 self.viewController.dispatcher = static_cast<id>(self.browser->dispatcher());
35 self.mediator = 39 self.mediator =
36 [[ToolsMediator alloc] initWithConsumer:self.viewController 40 [[ToolsMediator alloc] initWithConsumer:self.viewController
37 configuration:self.toolsMenuConfiguration]; 41 configuration:self.toolsMenuConfiguration];
38 if (self.webState) { 42 if (self.webState) {
39 self.mediator.webState = self.webState; 43 self.mediator.webState = self.webState;
40 } 44 }
41 [super start]; 45 [super start];
42 } 46 }
43 47
44 #pragma mark - Setters 48 #pragma mark - Setters
45 49
46 - (void)setWebState:(web::WebState*)webState { 50 - (void)setWebState:(web::WebState*)webState {
47 _webState = webState; 51 _webState = webState;
48 if (self.mediator) { 52 if (self.mediator) {
49 self.mediator.webState = self.webState; 53 self.mediator.webState = self.webState;
50 } 54 }
51 } 55 }
52 56
53 #pragma mark - UIViewControllerTransitioningDelegate
54
55 - (id<UIViewControllerAnimatedTransitioning>)
56 animationControllerForPresentedController:(UIViewController*)presented
57 presentingController:(UIViewController*)presenting
58 sourceController:(UIViewController*)source {
59 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init];
60 animator.presenting = YES;
61 [animator selectDelegate:@[ source, presenting ]];
62 return animator;
63 }
64
65 - (id<UIViewControllerAnimatedTransitioning>)
66 animationControllerForDismissedController:(UIViewController*)dismissed {
67 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init];
68 animator.presenting = NO;
69 [animator selectDelegate:@[ dismissed.presentingViewController ]];
70 return animator;
71 }
72
73 - (UIPresentationController*)
74 presentationControllerForPresentedViewController:(UIViewController*)presented
75 presentingViewController:(UIViewController*)presenting
76 sourceViewController:(UIViewController*)source {
77 MenuPresentationController* menuPresentation =
78 [[MenuPresentationController alloc]
79 initWithPresentedViewController:presented
80 presentingViewController:presenting];
81 menuPresentation.dispatcher = static_cast<id>(self.browser->dispatcher());
82 return menuPresentation;
83 }
84
85 @end 57 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698