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

Unified Diff: ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.mm

Issue 2785893003: [ios clean] Add placeholder for NTP bookmarks, chrome home and open tabs. (Closed)
Patch Set: Comments 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/ntp/new_tab_page_coordinator.mm
diff --git a/ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.mm b/ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
index 3be996254da49529947f51990f654133187cb452..4d20d5217ec7787d6ca0d3a26d9a1c2e45a905f3 100644
--- a/ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
+++ b/ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
@@ -4,26 +4,84 @@
#import "ios/clean/chrome/browser/ui/ntp/new_tab_page_coordinator.h"
+#include "base/logging.h"
+#include "ios/chrome/browser/ui/ui_util.h"
+#import "ios/clean/chrome/browser/ui/bookmarks/bookmarks_coordinator.h"
+#import "ios/clean/chrome/browser/ui/commands/ntp_commands.h"
+#import "ios/clean/chrome/browser/ui/ntp/new_tab_page_home_coordinator.h"
+#import "ios/clean/chrome/browser/ui/ntp/new_tab_page_incognito_coordinator.h"
+#import "ios/clean/chrome/browser/ui/ntp/new_tab_page_mediator.h"
#import "ios/clean/chrome/browser/ui/ntp/new_tab_page_view_controller.h"
+#import "ios/clean/chrome/browser/ui/open_tabs/open_tabs_coordinator.h"
#import "ios/shared/chrome/browser/coordinator_context/coordinator_context.h"
+#import "ios/shared/chrome/browser/ui/coordinators/browser_coordinator+internal.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
-@interface NTPCoordinator ()
+@interface NTPCoordinator ()<NTPCommands>
+@property(nonatomic, strong) NTPMediator* mediator;
@property(nonatomic, strong) NTPViewController* viewController;
@end
@implementation NTPCoordinator
+@synthesize mediator = _mediator;
@synthesize viewController = _viewController;
+@synthesize webState = _webState;
- (void)start {
+ DCHECK(self.webState);
self.viewController = [[NTPViewController alloc] init];
- [self.context.baseViewController presentViewController:self.viewController
- animated:self.context.animated
- completion:nil];
+ self.mediator = [[NTPMediator alloc] initWithConsumer:self.viewController];
+ self.viewController.ntpCommandHandler = self;
marq (ping after 24h) 2017/04/05 12:22:48 Any reason for these commands not to go through th
justincohen 2017/04/05 19:28:24 Done.
[super start];
}
+- (void)stop {
+ [super stop];
+ for (BrowserCoordinator* child in self.children) {
marq (ping after 24h) 2017/04/05 12:22:48 Does this belong in the superclass?
justincohen 2017/04/05 19:28:24 tab coordinator currently does the same thing. Is
lpromero 2017/04/06 13:01:04 I am thinking about moving it there.
justincohen 2017/04/06 18:25:09 Acknowledged.
+ [child stop];
+ }
+}
+
+- (void)startNTPHomePanel {
marq (ping after 24h) 2017/04/05 12:22:48 #pragma mark - NTPCommands
justincohen 2017/04/05 19:28:24 Done.
+ NTPHomeCoordinator* panelCoordinator = [[NTPHomeCoordinator alloc] init];
+ [self addChildCoordinator:panelCoordinator];
+ panelCoordinator.webState = self.webState;
+ [panelCoordinator start];
+ [self.viewController
+ addHomePanelViewController:panelCoordinator.viewController];
+}
+
+- (void)startNTPBookmarksPanel {
+ BookmarksCoordinator* panelCoordinator = [[BookmarksCoordinator alloc] init];
+ [self addChildCoordinator:panelCoordinator];
+ [panelCoordinator start];
+
+ if (IsIPadIdiom()) {
+ [self.viewController
+ addBookmarksViewController:panelCoordinator.viewController];
+ }
+}
+
+- (void)startNTPOpenTabsPanel {
+ OpenTabsCoordinator* panelCoordinator = [[OpenTabsCoordinator alloc] init];
+ [self addChildCoordinator:panelCoordinator];
+ [panelCoordinator start];
+ if (IsIPadIdiom()) {
marq (ping after 24h) 2017/04/05 12:22:48 The coordinator shouldn't care about what device s
justincohen 2017/04/05 19:28:24 Who should handle the differences in presentation
+ [self.viewController
+ addOpenTabsViewController:panelCoordinator.viewController];
+ }
+}
+
+- (void)startNTPIncognitoPanel {
+ NTPIncognitoCoordinator* panelCoordinator =
+ [[NTPIncognitoCoordinator alloc] init];
+ [self addChildCoordinator:panelCoordinator];
+ [panelCoordinator start];
+ [self.viewController
+ addIncognitoViewController:panelCoordinator.viewController];
+}
+
@end

Powered by Google App Engine
This is Rietveld 408576698