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

Side by Side Diff: ios/clean/chrome/browser/ui/tab/tab_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/tab/tab_coordinator.h" 5 #import "ios/clean/chrome/browser/ui/tab/tab_coordinator.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "ios/chrome/browser/chrome_url_constants.h" 11 #include "ios/chrome/browser/chrome_url_constants.h"
12 #import "ios/clean/chrome/browser/ui/animators/zoom_transition_animator.h" 12 #import "ios/clean/chrome/browser/ui/animators/zoom_transition_controller.h"
13 #import "ios/clean/chrome/browser/ui/commands/tab_commands.h" 13 #import "ios/clean/chrome/browser/ui/commands/tab_commands.h"
14 #import "ios/clean/chrome/browser/ui/commands/tab_strip_commands.h" 14 #import "ios/clean/chrome/browser/ui/commands/tab_strip_commands.h"
15 #import "ios/clean/chrome/browser/ui/find_in_page/find_in_page_coordinator.h" 15 #import "ios/clean/chrome/browser/ui/find_in_page/find_in_page_coordinator.h"
16 #import "ios/clean/chrome/browser/ui/ntp/ntp_coordinator.h" 16 #import "ios/clean/chrome/browser/ui/ntp/ntp_coordinator.h"
17 #import "ios/clean/chrome/browser/ui/tab/tab_container_view_controller.h" 17 #import "ios/clean/chrome/browser/ui/tab/tab_container_view_controller.h"
18 #import "ios/clean/chrome/browser/ui/tab_strip/tab_strip_coordinator.h" 18 #import "ios/clean/chrome/browser/ui/tab_strip/tab_strip_coordinator.h"
19 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_coordinator.h" 19 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_coordinator.h"
20 #import "ios/clean/chrome/browser/ui/web_contents/web_coordinator.h" 20 #import "ios/clean/chrome/browser/ui/web_contents/web_coordinator.h"
21 #import "ios/shared/chrome/browser/ui/broadcaster/chrome_broadcaster.h" 21 #import "ios/shared/chrome/browser/ui/broadcaster/chrome_broadcaster.h"
22 #import "ios/shared/chrome/browser/ui/browser_list/browser.h" 22 #import "ios/shared/chrome/browser/ui/browser_list/browser.h"
23 #import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h" 23 #import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h"
24 #import "ios/shared/chrome/browser/ui/coordinators/browser_coordinator+internal. h" 24 #import "ios/shared/chrome/browser/ui/coordinators/browser_coordinator+internal. h"
25 #import "ios/web/public/web_state/web_state.h" 25 #import "ios/web/public/web_state/web_state.h"
26 #import "ios/web/public/web_state/web_state_observer_bridge.h" 26 #import "ios/web/public/web_state/web_state_observer_bridge.h"
27 27
28 #if !defined(__has_feature) || !__has_feature(objc_arc) 28 #if !defined(__has_feature) || !__has_feature(objc_arc)
29 #error "This file requires ARC support." 29 #error "This file requires ARC support."
30 #endif 30 #endif
31 31
32 @interface TabCoordinator ()<CRWWebStateObserver, 32 @interface TabCoordinator ()<CRWWebStateObserver, TabCommands>
33 TabCommands, 33 @property(nonatomic, strong) ZoomTransitionController* transitionController;
34 UIViewControllerTransitioningDelegate>
35 @property(nonatomic, strong) TabContainerViewController* viewController; 34 @property(nonatomic, strong) TabContainerViewController* viewController;
36 @property(nonatomic, weak) NTPCoordinator* ntpCoordinator; 35 @property(nonatomic, weak) NTPCoordinator* ntpCoordinator;
37 @property(nonatomic, weak) WebCoordinator* webCoordinator; 36 @property(nonatomic, weak) WebCoordinator* webCoordinator;
38 @end 37 @end
39 38
40 @implementation TabCoordinator { 39 @implementation TabCoordinator {
41 std::unique_ptr<web::WebStateObserverBridge> _webStateObserver; 40 std::unique_ptr<web::WebStateObserverBridge> _webStateObserver;
42 } 41 }
43 42
43 @synthesize transitionController = _transitionController;
44 @synthesize presentationKey = _presentationKey; 44 @synthesize presentationKey = _presentationKey;
45 @synthesize viewController = _viewController; 45 @synthesize viewController = _viewController;
46 @synthesize webState = _webState; 46 @synthesize webState = _webState;
47 @synthesize webCoordinator = _webCoordinator; 47 @synthesize webCoordinator = _webCoordinator;
48 @synthesize ntpCoordinator = _ntpCoordinator; 48 @synthesize ntpCoordinator = _ntpCoordinator;
49 49
50 #pragma mark - BrowserCoordinator 50 #pragma mark - BrowserCoordinator
51 51
52 - (void)start { 52 - (void)start {
53 self.viewController = [self newTabContainer]; 53 self.viewController = [self newTabContainer];
54 self.viewController.transitioningDelegate = self; 54 self.transitionController = [[ZoomTransitionController alloc] init];
55 self.transitionController.presentationKey = self.presentationKey;
56 self.viewController.transitioningDelegate = self.transitionController;
55 self.viewController.modalPresentationStyle = UIModalPresentationCustom; 57 self.viewController.modalPresentationStyle = UIModalPresentationCustom;
56 _webStateObserver = 58 _webStateObserver =
57 base::MakeUnique<web::WebStateObserverBridge>(self.webState, self); 59 base::MakeUnique<web::WebStateObserverBridge>(self.webState, self);
58 60
59 [self.browser->broadcaster() 61 [self.browser->broadcaster()
60 broadcastValue:@"tabStripVisible" 62 broadcastValue:@"tabStripVisible"
61 ofObject:self.viewController 63 ofObject:self.viewController
62 selector:@selector(broadcastTabStripVisible:)]; 64 selector:@selector(broadcastTabStripVisible:)];
63 65
64 CommandDispatcher* dispatcher = self.browser->dispatcher(); 66 CommandDispatcher* dispatcher = self.browser->dispatcher();
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 - (void)webState:(web::WebState*)webState 177 - (void)webState:(web::WebState*)webState
176 didStartNavigation:(web::NavigationContext*)navigation { 178 didStartNavigation:(web::NavigationContext*)navigation {
177 if (self.ntpCoordinator) { 179 if (self.ntpCoordinator) {
178 [self.ntpCoordinator stop]; 180 [self.ntpCoordinator stop];
179 [self removeChildCoordinator:self.ntpCoordinator]; 181 [self removeChildCoordinator:self.ntpCoordinator];
180 self.viewController.contentViewController = 182 self.viewController.contentViewController =
181 self.webCoordinator.viewController; 183 self.webCoordinator.viewController;
182 } 184 }
183 } 185 }
184 186
185 #pragma mark - UIViewControllerTransitioningDelegate
186
187 - (id<UIViewControllerAnimatedTransitioning>)
188 animationControllerForPresentedController:(UIViewController*)presented
189 presentingController:(UIViewController*)presenting
190 sourceController:(UIViewController*)source {
191 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init];
192 animator.presenting = YES;
193 animator.presentationKey = self.presentationKey;
194 [animator selectDelegate:@[ source, presenting ]];
195 return animator;
196 }
197
198 - (id<UIViewControllerAnimatedTransitioning>)
199 animationControllerForDismissedController:(UIViewController*)dismissed {
200 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init];
201 animator.presenting = NO;
202 animator.presentationKey = self.presentationKey;
203 [animator selectDelegate:@[ dismissed.presentingViewController ]];
204 return animator;
205 }
206
207 #pragma mark - TabCommands 187 #pragma mark - TabCommands
208 188
209 - (void)loadURL:(web::NavigationManager::WebLoadParams)params { 189 - (void)loadURL:(web::NavigationManager::WebLoadParams)params {
210 self.webState->GetNavigationManager()->LoadURLWithParams(params); 190 self.webState->GetNavigationManager()->LoadURLWithParams(params);
211 } 191 }
212 192
213 #pragma mark - TabStripCommands 193 #pragma mark - TabStripCommands
214 194
215 - (void)showTabStrip { 195 - (void)showTabStrip {
216 self.viewController.tabStripVisible = YES; 196 self.viewController.tabStripVisible = YES;
217 } 197 }
218 198
219 @end 199 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698