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

Unified Diff: ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm

Issue 2810603002: [ios clean] Adds ToolsMenu to TabGrid (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
diff --git a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
index 97487607c9a5169ba586038d07e720175f0fb377..1b4c34a2c0cb63c0cb257fb371031ce3c760ee79 100644
--- a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
+++ b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
@@ -10,10 +10,12 @@
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#import "ios/clean/chrome/browser/ui/commands/settings_commands.h"
#import "ios/clean/chrome/browser/ui/commands/tab_grid_commands.h"
+#import "ios/clean/chrome/browser/ui/commands/tools_menu_commands.h"
#import "ios/clean/chrome/browser/ui/settings/settings_coordinator.h"
#import "ios/clean/chrome/browser/ui/tab/tab_coordinator.h"
#import "ios/clean/chrome/browser/ui/tab_grid/tab_grid_mediator.h"
#import "ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.h"
+#import "ios/clean/chrome/browser/ui/tools/tools_coordinator.h"
#import "ios/shared/chrome/browser/tabs/web_state_list.h"
#import "ios/shared/chrome/browser/ui/browser_list/browser.h"
#import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h"
@@ -27,9 +29,12 @@
#error "This file requires ARC support."
#endif
-@interface TabGridCoordinator ()<SettingsCommands, TabGridCommands>
+@interface TabGridCoordinator ()<SettingsCommands,
+ ToolsMenuCommands,
+ TabGridCommands>
@property(nonatomic, strong) TabGridViewController* viewController;
@property(nonatomic, weak) SettingsCoordinator* settingsCoordinator;
+@property(nonatomic, weak) ToolsCoordinator* toolsMenuCoordinator;
@property(nonatomic, readonly) WebStateList& webStateList;
@property(nonatomic, strong) TabGridMediator* mediator;
@end
@@ -37,6 +42,7 @@
@implementation TabGridCoordinator
@synthesize viewController = _viewController;
@synthesize settingsCoordinator = _settingsCoordinator;
+@synthesize toolsMenuCoordinator = _toolsMenuCoordinator;
@synthesize mediator = _mediator;
#pragma mark - Properties
@@ -75,6 +81,7 @@
[dispatcher startDispatchingToTarget:self
forSelector:@selector(createAndShowNewTabInTabGrid)];
[dispatcher startDispatchingToTarget:self forSelector:@selector(showTabGrid)];
+ [self registerForToolsMenuCommands];
self.viewController = [[TabGridViewController alloc] init];
self.viewController.dataSource = self.mediator;
@@ -91,7 +98,8 @@
}
- (void)childCoordinatorDidStart:(BrowserCoordinator*)childCoordinator {
- DCHECK([childCoordinator isKindOfClass:[SettingsCoordinator class]] ||
+ DCHECK([childCoordinator isKindOfClass:[ToolsCoordinator class]] ||
+ [childCoordinator isKindOfClass:[SettingsCoordinator class]] ||
[childCoordinator isKindOfClass:[TabCoordinator class]]);
[self.viewController presentViewController:childCoordinator.viewController
animated:YES
@@ -99,7 +107,8 @@
}
- (void)childCoordinatorWillStop:(BrowserCoordinator*)childCoordinator {
- DCHECK([childCoordinator isKindOfClass:[SettingsCoordinator class]] ||
+ DCHECK([childCoordinator isKindOfClass:[ToolsCoordinator class]] ||
+ [childCoordinator isKindOfClass:[SettingsCoordinator class]] ||
[childCoordinator isKindOfClass:[TabCoordinator class]]);
[childCoordinator.viewController.presentingViewController
dismissViewControllerAnimated:YES
@@ -117,6 +126,10 @@
tabCoordinator.presentationKey =
[NSIndexPath indexPathForItem:index inSection:0];
[self addChildCoordinator:tabCoordinator];
+ [self.browser->dispatcher()
edchin 2017/04/10 05:50:57 Extract to method (like you did for registering) t
sczs 2017/04/11 18:47:59 Same as above.
edchin 2017/04/12 09:13:36 Register/deregister should have a mirrored structu
+ stopDispatchingForSelector:@selector(showToolsMenu)];
+ [self.browser->dispatcher()
+ stopDispatchingForSelector:@selector(closeToolsMenu)];
[tabCoordinator start];
}
@@ -140,6 +153,30 @@
BrowserCoordinator* child = [self.children anyObject];
[child stop];
[self removeChildCoordinator:child];
+ [self registerForToolsMenuCommands];
+}
+
+#pragma mark - ToolsMenuCommands
+
+- (void)registerForToolsMenuCommands {
edchin 2017/04/10 05:50:57 Move this to a private section at the end.
sczs 2017/04/11 18:47:59 Done.
+ [self.browser->dispatcher()
+ startDispatchingToTarget:self
+ forSelector:@selector(showToolsMenu)];
+ [self.browser->dispatcher()
+ startDispatchingToTarget:self
+ forSelector:@selector(closeToolsMenu)];
+}
+
+- (void)showToolsMenu {
+ ToolsCoordinator* toolsCoordinator = [[ToolsCoordinator alloc] init];
+ [self addChildCoordinator:toolsCoordinator];
+ [toolsCoordinator start];
+ self.toolsMenuCoordinator = toolsCoordinator;
+}
+
+- (void)closeToolsMenu {
+ [self.toolsMenuCoordinator stop];
+ [self removeChildCoordinator:self.toolsMenuCoordinator];
}
#pragma mark - SettingsCommands
edchin 2017/04/10 05:50:57 Should these disappear from this file due to this
sczs 2017/04/11 18:47:59 For now TabGrid will still be in charge of display

Powered by Google App Engine
This is Rietveld 408576698