| Index: ios/chrome/browser/ui/ntp/google_landing_controller.mm
|
| diff --git a/ios/chrome/browser/ui/ntp/google_landing_controller.mm b/ios/chrome/browser/ui/ntp/google_landing_controller.mm
|
| index 8c675207dace2884bd99c9ab57b365f7bb2e9087..a0e9fe48a5c23b903ed9c36b5dfb230d7915aa1a 100644
|
| --- a/ios/chrome/browser/ui/ntp/google_landing_controller.mm
|
| +++ b/ios/chrome/browser/ui/ntp/google_landing_controller.mm
|
| @@ -14,6 +14,7 @@
|
| #import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
|
| #include "ios/chrome/browser/ui/commands/ios_command_ids.h"
|
| #import "ios/chrome/browser/ui/context_menu/context_menu_coordinator.h"
|
| +#import "ios/chrome/browser/ui/ntp/google_landing_commands.h"
|
| #import "ios/chrome/browser/ui/ntp/google_landing_data_source.h"
|
| #import "ios/chrome/browser/ui/ntp/most_visited_cell.h"
|
| #import "ios/chrome/browser/ui/ntp/most_visited_layout.h"
|
| @@ -21,6 +22,7 @@
|
| #import "ios/chrome/browser/ui/ntp/new_tab_page_header_view.h"
|
| #import "ios/chrome/browser/ui/ntp/whats_new_header_view.h"
|
| #import "ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.h"
|
| +#import "ios/chrome/browser/ui/toolbar/web_toolbar_controller.h"
|
| #include "ios/chrome/browser/ui/ui_util.h"
|
| #import "ios/chrome/browser/ui/uikit_ui_util.h"
|
| #include "ios/chrome/common/string_util.h"
|
| @@ -229,6 +231,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| @synthesize dataSource = _dataSource;
|
| // Property declared in NewTabPagePanelProtocol.
|
| @synthesize delegate = _delegate;
|
| +@synthesize dispatcher = _dispatcher;
|
| @synthesize isOffTheRecord = _isOffTheRecord;
|
| @synthesize logoIsShowing = _logoIsShowing;
|
| @synthesize promoText = _promoText;
|
| @@ -755,7 +758,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (_scrolledToTop) {
|
| _animateHeader = NO;
|
| if (!IsIPadIdiom()) {
|
| - [self.dataSource onFakeboxAnimationComplete];
|
| + [self.dispatcher onFakeboxAnimationComplete];
|
| [_headerView fadeOutShadow];
|
| [_searchTapTarget setHidden:YES];
|
| }
|
| @@ -764,12 +767,12 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| }
|
|
|
| - (void)searchFieldTapped:(id)sender {
|
| - [self.dataSource focusFakebox];
|
| + [self.dispatcher focusFakebox];
|
| }
|
|
|
| - (void)blurOmnibox {
|
| if (_omniboxFocused) {
|
| - [self.dataSource cancelOmniboxEdit];
|
| + [self.dispatcher cancelOmniboxEdit];
|
| } else {
|
| [self locationBarResignsFirstResponder];
|
| }
|
| @@ -792,7 +795,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| _scrolledToTop = NO;
|
| if (!IsIPadIdiom()) {
|
| [_searchTapTarget setHidden:NO];
|
| - [self.dataSource onFakeboxBlur];
|
| + [self.dispatcher onFakeboxBlur];
|
| }
|
|
|
| // Reload most visited sites in case the number of placeholder cells needs to
|
| @@ -940,8 +943,8 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| const NSUInteger visitedIndex = indexPath.row;
|
| [self blurOmnibox];
|
| DCHECK(visitedIndex < [self numberOfItems]);
|
| - [self.dataSource logMostVisitedClick:visitedIndex tileType:cell.tileType];
|
| - [self.dataSource loadURL:[self urlForIndex:visitedIndex]
|
| + [self.dispatcher logMostVisitedClick:visitedIndex tileType:cell.tileType];
|
| + [self.dispatcher loadURL:[self urlForIndex:visitedIndex]
|
| referrer:web::Referrer()
|
| transition:ui::PAGE_TRANSITION_AUTO_BOOKMARK
|
| rendererInitiated:NO];
|
| @@ -971,7 +974,8 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (!IsIPadIdiom()) {
|
| // iPhone header also contains a toolbar since the normal toolbar is
|
| // hidden.
|
| - [_headerView addToolbarWithDataSource:self.dataSource];
|
| + [_headerView addToolbarWithDataSource:self.dataSource
|
| + dispatcher:self.dispatcher];
|
| [_headerView setToolbarTabCount:self.tabCount];
|
| }
|
| [_supplementaryViews addObject:_headerView];
|
| @@ -991,7 +995,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (self.promoCanShow) {
|
| [_promoHeaderView setText:self.promoText];
|
| [_promoHeaderView setIcon:self.promoIcon];
|
| - [self.dataSource promoViewed];
|
| + [self.dispatcher promoViewed];
|
| }
|
| [_supplementaryViews addObject:_promoHeaderView];
|
| }
|
| @@ -1100,9 +1104,9 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (!strongSelf)
|
| return;
|
| MostVisitedCell* cell = (MostVisitedCell*)sender.view;
|
| - [strongSelf.get().dataSource logMostVisitedClick:index
|
| + [strongSelf.get().dispatcher logMostVisitedClick:index
|
| tileType:cell.tileType];
|
| - [strongSelf.get().dataSource webPageOrderedOpen:url
|
| + [strongSelf.get().dispatcher webPageOrderedOpen:url
|
| referrer:web::Referrer()
|
| inBackground:YES
|
| appendTo:kCurrentTab];
|
| @@ -1120,9 +1124,9 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (!strongSelf)
|
| return;
|
| MostVisitedCell* cell = (MostVisitedCell*)sender.view;
|
| - [strongSelf.get().dataSource logMostVisitedClick:index
|
| + [strongSelf.get().dispatcher logMostVisitedClick:index
|
| tileType:cell.tileType];
|
| - [strongSelf.get().dataSource webPageOrderedOpen:url
|
| + [strongSelf.get().dispatcher webPageOrderedOpen:url
|
| referrer:web::Referrer()
|
| inIncognito:YES
|
| inBackground:NO
|
| @@ -1144,7 +1148,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| if (!strongSelf)
|
| return;
|
| base::RecordAction(UserMetricsAction("MostVisited_UrlBlacklisted"));
|
| - [strongSelf.get().dataSource addBlacklistedURL:url];
|
| + [strongSelf.get().dispatcher addBlacklistedURL:url];
|
| [strongSelf showMostVisitedUndoForURL:net::NSURLWithGURL(url)];
|
| };
|
| [_contextMenuCoordinator addItemWithTitle:title action:action];
|
| @@ -1167,7 +1171,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| [weakSelf retain]);
|
| if (!strongSelf)
|
| return;
|
| - [strongSelf.get().dataSource
|
| + [strongSelf.get().dispatcher
|
| removeBlacklistedURL:net::GURLWithNSURL(_deletedUrl)];
|
| };
|
| action.title = l10n_util::GetNSString(IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE);
|
| @@ -1183,10 +1187,10 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| }
|
|
|
| - (void)onPromoLabelTapped {
|
| - [self.dataSource cancelOmniboxEdit];
|
| + [self.dispatcher cancelOmniboxEdit];
|
| [_promoHeaderView setHidden:YES];
|
| [self.view setNeedsLayout];
|
| - [self.dataSource promoTapped];
|
| + [self.dispatcher promoTapped];
|
| }
|
|
|
| // Returns the Y value to use for the scroll view's contentOffset when scrolling
|
| @@ -1280,7 +1284,7 @@ const CGFloat kMostVisitedPaddingIPadFavicon = 24;
|
| CGFloat pinnedOffsetY = [self pinnedOffsetY];
|
| if (_omniboxFocused && scrollView.dragging &&
|
| scrollView.contentOffset.y < pinnedOffsetY) {
|
| - [self.dataSource cancelOmniboxEdit];
|
| + [self.dispatcher cancelOmniboxEdit];
|
| }
|
|
|
| if (IsIPadIdiom()) {
|
|
|