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

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

Issue 2786893002: [ios] Dispatcher for tab_strip and tab_grid. (Closed)
Patch Set: Created 3 years, 9 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 945ed8931fdde03f828233b29d034056fcca5fb5..ee3023bf751638098fc8c4b077fd70ff974f7448 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
@@ -9,7 +9,6 @@
#include "base/strings/sys_string_conversions.h"
#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_commands.h"
#import "ios/clean/chrome/browser/ui/commands/tab_grid_commands.h"
#import "ios/clean/chrome/browser/ui/settings/settings_coordinator.h"
#import "ios/clean/chrome/browser/ui/tab/tab_coordinator.h"
@@ -18,6 +17,7 @@
#import "ios/shared/chrome/browser/coordinator_context/coordinator_context.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"
#import "ios/shared/chrome/browser/ui/coordinators/browser_coordinator+internal.h"
#import "ios/web/public/navigation_manager.h"
#include "ios/web/public/web_state/web_state.h"
@@ -28,7 +28,7 @@
#error "This file requires ARC support."
#endif
-@interface TabGridCoordinator ()<SettingsCommands, TabCommands, TabGridCommands>
+@interface TabGridCoordinator ()<SettingsCommands, TabGridCommands>
@property(nonatomic, strong) TabGridViewController* viewController;
@property(nonatomic, weak) SettingsCoordinator* settingsCoordinator;
@property(nonatomic, readonly) WebStateList& webStateList;
@@ -64,11 +64,24 @@
self.mediator = [[TabGridMediator alloc] init];
self.mediator.webStateList = &self.webStateList;
+ CommandDispatcher* dispatcher = self.browser->dispatcher();
+ // SettingsCommands
+ [dispatcher startDispatchingToTarget:self
+ forSelector:@selector(showSettings)];
+ [dispatcher startDispatchingToTarget:self
+ forSelector:@selector(closeSettings)];
+ // TabGridCommands
+ [dispatcher startDispatchingToTarget:self
+ forSelector:@selector(showTabGridTabAtIndex:)];
+ [dispatcher startDispatchingToTarget:self
+ forSelector:@selector(closeTabGridTabAtIndex:)];
+ [dispatcher startDispatchingToTarget:self
+ forSelector:@selector(createAndShowNewTabInTabGrid)];
+ [dispatcher startDispatchingToTarget:self forSelector:@selector(showTabGrid)];
+
self.viewController = [[TabGridViewController alloc] init];
self.viewController.dataSource = self.mediator;
- self.viewController.settingsCommandHandler = self;
- self.viewController.tabCommandHandler = self;
- self.viewController.tabGridCommandHandler = self;
+ self.viewController.dispatcher = static_cast<id>(self.browser->dispatcher());
self.mediator.consumer = self.viewController;
@@ -81,9 +94,14 @@
[super start];
}
-#pragma mark - TabCommands
+- (void)stop {
+ [super stop];
+ [self.browser->dispatcher() stopDispatchingToTarget:self];
+}
+
+#pragma mark - TabGridCommands
-- (void)showTabAtIndex:(int)index {
+- (void)showTabGridTabAtIndex:(int)index {
self.webStateList.ActivateWebStateAt(index);
// PLACEHOLDER: The tab coordinator should be able to get the active webState
// on its own.
@@ -95,23 +113,21 @@
[tabCoordinator start];
}
-- (void)closeTabAtIndex:(int)index {
+- (void)closeTabGridTabAtIndex:(int)index {
std::unique_ptr<web::WebState> closedWebState(
self.webStateList.DetachWebStateAt(index));
}
-- (void)createAndShowNewTab {
+- (void)createAndShowNewTabInTabGrid {
web::WebState::CreateParams webStateCreateParams(
self.browser->browser_state());
std::unique_ptr<web::WebState> webState =
web::WebState::Create(webStateCreateParams);
self.webStateList.InsertWebState(self.webStateList.count(),
webState.release());
- [self showTabAtIndex:self.webStateList.count() - 1];
+ [self showTabGridTabAtIndex:self.webStateList.count() - 1];
}
-#pragma mark - TabGridCommands
-
- (void)showTabGrid {
// This object should only ever have at most one child.
DCHECK_LE(self.children.count, 1UL);
@@ -150,7 +166,7 @@
params.transition_type = ui::PAGE_TRANSITION_LINK;
activeWebState->GetNavigationManager()->LoadURLWithParams(params);
if (!self.children.count) {
- [self showTabAtIndex:self.webStateList.active_index()];
+ [self showTabGridTabAtIndex:self.webStateList.active_index()];
}
}

Powered by Google App Engine
This is Rietveld 408576698