Commit a93cf6db authored by edchin's avatar edchin Committed by Commit Bot

[ios] Migrate ReadingListCoordinator from BVC

Bug: 905524
Change-Id: I883868f373b39fcbcb39b63869e19ff1532369b6
Reviewed-on: https://chromium-review.googlesource.com/c/1340527
Commit-Queue: edchin <edchin@chromium.org>
Reviewed-by: default avatarRohit Rao <rohitrao@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Reviewed-by: default avataredchin <edchin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609350}
parent e962e125
...@@ -175,7 +175,6 @@ ...@@ -175,7 +175,6 @@
#import "ios/chrome/browser/ui/presenters/vertical_animation_container.h" #import "ios/chrome/browser/ui/presenters/vertical_animation_container.h"
#import "ios/chrome/browser/ui/print/print_controller.h" #import "ios/chrome/browser/ui/print/print_controller.h"
#import "ios/chrome/browser/ui/reading_list/offline_page_native_content.h" #import "ios/chrome/browser/ui/reading_list/offline_page_native_content.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.h" #import "ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.h"
#import "ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator.h" #import "ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator.h"
#include "ios/chrome/browser/ui/sad_tab/features.h" #include "ios/chrome/browser/ui/sad_tab/features.h"
...@@ -479,9 +478,6 @@ NSString* const kBrowserViewControllerSnackbarCategory = ...@@ -479,9 +478,6 @@ NSString* const kBrowserViewControllerSnackbarCategory =
// Used to display the Voice Search UI. Nil if not visible. // Used to display the Voice Search UI. Nil if not visible.
scoped_refptr<VoiceSearchController> _voiceSearchController; scoped_refptr<VoiceSearchController> _voiceSearchController;
// Used to display the Reading List.
ChromeCoordinator* _readingListCoordinator;
// Used to display the Find In Page UI. Nil if not visible. // Used to display the Find In Page UI. Nil if not visible.
FindBarControllerIOS* _findBarController; FindBarControllerIOS* _findBarController;
...@@ -1780,7 +1776,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint ...@@ -1780,7 +1776,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint
self.typingShield = nil; self.typingShield = nil;
if (_voiceSearchController) if (_voiceSearchController)
_voiceSearchController->SetDispatcher(nil); _voiceSearchController->SetDispatcher(nil);
_readingListCoordinator = nil;
self.recentTabsCoordinator = nil; self.recentTabsCoordinator = nil;
self.primaryToolbarCoordinator = nil; self.primaryToolbarCoordinator = nil;
self.secondaryToolbarContainerCoordinator = nil; self.secondaryToolbarContainerCoordinator = nil;
...@@ -4484,14 +4479,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint ...@@ -4484,14 +4479,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint
[self addToReadingListURL:[command URL] title:[command title]]; [self addToReadingListURL:[command URL] title:[command title]];
} }
- (void)showReadingList {
_readingListCoordinator = [[ReadingListCoordinator alloc]
initWithBaseViewController:self
browserState:self.browserState
loader:self];
[_readingListCoordinator start];
}
- (void)preloadVoiceSearch { - (void)preloadVoiceSearch {
// Preload VoiceSearchController and views and view controllers needed // Preload VoiceSearchController and views and view controllers needed
// for voice search. // for voice search.
......
...@@ -8,6 +8,7 @@ source_set("commands") { ...@@ -8,6 +8,7 @@ source_set("commands") {
"activity_service_commands.h", "activity_service_commands.h",
"application_commands.h", "application_commands.h",
"browser_commands.h", "browser_commands.h",
"browser_coordinator_commands.h",
"browsing_data_commands.h", "browsing_data_commands.h",
"command_dispatcher.h", "command_dispatcher.h",
"command_dispatcher.mm", "command_dispatcher.mm",
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import "ios/chrome/browser/ui/commands/activity_service_commands.h" #import "ios/chrome/browser/ui/commands/activity_service_commands.h"
#import "ios/chrome/browser/ui/commands/browser_coordinator_commands.h"
#import "ios/chrome/browser/ui/commands/page_info_commands.h" #import "ios/chrome/browser/ui/commands/page_info_commands.h"
#import "ios/chrome/browser/ui/commands/popup_menu_commands.h" #import "ios/chrome/browser/ui/commands/popup_menu_commands.h"
#import "ios/chrome/browser/ui/commands/qr_scanner_commands.h" #import "ios/chrome/browser/ui/commands/qr_scanner_commands.h"
...@@ -19,8 +20,11 @@ class GURL; ...@@ -19,8 +20,11 @@ class GURL;
// Protocol for commands that will generally be handled by the "current tab", // Protocol for commands that will generally be handled by the "current tab",
// which in practice is the BrowserViewController instance displaying the tab. // which in practice is the BrowserViewController instance displaying the tab.
// TODO(crbug.com/906662) : Extract BrowserCoordinatorCommands from
// BrowserCommands.
@protocol BrowserCommands<NSObject, @protocol BrowserCommands<NSObject,
ActivityServiceCommands, ActivityServiceCommands,
BrowserCoordinatorCommands,
PageInfoCommands, PageInfoCommands,
PopupMenuCommands, PopupMenuCommands,
QRScannerCommands, QRScannerCommands,
...@@ -50,9 +54,6 @@ class GURL; ...@@ -50,9 +54,6 @@ class GURL;
// Adds a page to the reading list using data in |command|. // Adds a page to the reading list using data in |command|.
- (void)addToReadingList:(ReadingListAddCommand*)command; - (void)addToReadingList:(ReadingListAddCommand*)command;
// Shows the Reading List UI.
- (void)showReadingList;
// Preloads voice search on the current BVC. // Preloads voice search on the current BVC.
- (void)preloadVoiceSearch; - (void)preloadVoiceSearch;
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_
#define IOS_CHROME_BROWSER_UI_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_
#import <Foundation/Foundation.h>
// Protocol for commands that will be handled by the BrowserCoordinator.
// TODO(crbug.com/906662) : Rename this protocol to one that is more descriptive
// and representative of the contents.
@protocol BrowserCoordinatorCommands
// Shows the Reading List UI.
- (void)showReadingList;
@end
#endif // IOS_CHROME_BROWSER_UI_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_
...@@ -31,6 +31,7 @@ source_set("main") { ...@@ -31,6 +31,7 @@ source_set("main") {
"//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/commands",
"//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
"//ios/chrome/browser/ui/qr_scanner:coordinator", "//ios/chrome/browser/ui/qr_scanner:coordinator",
"//ios/chrome/browser/ui/reading_list",
"//ios/chrome/browser/ui/snackbar", "//ios/chrome/browser/ui/snackbar",
"//ios/public/provider/chrome/browser", "//ios/public/provider/chrome/browser",
] ]
......
...@@ -8,8 +8,10 @@ ...@@ -8,8 +8,10 @@
#import "ios/chrome/browser/ui/browser_view_controller.h" #import "ios/chrome/browser/ui/browser_view_controller.h"
#import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h" #import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h"
#import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/application_commands.h"
#import "ios/chrome/browser/ui/commands/browser_coordinator_commands.h"
#import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h"
#import "ios/chrome/browser/ui/qr_scanner/qr_scanner_legacy_coordinator.h" #import "ios/chrome/browser/ui/qr_scanner/qr_scanner_legacy_coordinator.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h"
#import "ios/chrome/browser/ui/snackbar/snackbar_coordinator.h" #import "ios/chrome/browser/ui/snackbar/snackbar_coordinator.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
...@@ -30,20 +32,24 @@ ...@@ -30,20 +32,24 @@
@property(nonatomic, strong) @property(nonatomic, strong)
FormInputAccessoryCoordinator* formInputAccessoryCoordinator; FormInputAccessoryCoordinator* formInputAccessoryCoordinator;
// Coordinator for displaying snackbars.
@property(nonatomic, strong) SnackbarCoordinator* snackbarCoordinator;
// Coordinator for the QR scanner. // Coordinator for the QR scanner.
@property(nonatomic, strong) QRScannerLegacyCoordinator* qrScannerCoordinator; @property(nonatomic, strong) QRScannerLegacyCoordinator* qrScannerCoordinator;
// Coordinator for displaying the Reading List.
@property(nonatomic, strong) ReadingListCoordinator* readingListCoordinator;
// Coordinator for displaying snackbars.
@property(nonatomic, strong) SnackbarCoordinator* snackbarCoordinator;
@end @end
@implementation BrowserCoordinator @implementation BrowserCoordinator
@synthesize dispatcher = _dispatcher; @synthesize dispatcher = _dispatcher;
// Private child coordinators // Child coordinators
@synthesize formInputAccessoryCoordinator = _formInputAccessoryCoordinator; @synthesize formInputAccessoryCoordinator = _formInputAccessoryCoordinator;
@synthesize snackbarCoordinator = _snackbarCoordinator;
@synthesize qrScannerCoordinator = _qrScannerCoordinator; @synthesize qrScannerCoordinator = _qrScannerCoordinator;
@synthesize readingListCoordinator = _readingListCoordinator;
@synthesize snackbarCoordinator = _snackbarCoordinator;
#pragma mark - ChromeCoordinator #pragma mark - ChromeCoordinator
...@@ -53,11 +59,15 @@ ...@@ -53,11 +59,15 @@
self.dispatcher = [[CommandDispatcher alloc] init]; self.dispatcher = [[CommandDispatcher alloc] init];
[self createViewController]; [self createViewController];
[self startChildCoordinators]; [self startChildCoordinators];
[self.dispatcher
startDispatchingToTarget:self
forProtocol:@protocol(BrowserCoordinatorCommands)];
[super start]; [super start];
} }
- (void)stop { - (void)stop {
[super stop]; [super stop];
[self.dispatcher stopDispatchingToTarget:self];
[self stopChildCoordinators]; [self stopChildCoordinators];
[self destroyViewController]; [self destroyViewController];
self.dispatcher = nil; self.dispatcher = nil;
...@@ -98,13 +108,15 @@ ...@@ -98,13 +108,15 @@
self.formInputAccessoryCoordinator.delegate = self; self.formInputAccessoryCoordinator.delegate = self;
[self.formInputAccessoryCoordinator start]; [self.formInputAccessoryCoordinator start];
self.snackbarCoordinator = [[SnackbarCoordinator alloc] init];
self.snackbarCoordinator.dispatcher = self.dispatcher;
[self.snackbarCoordinator start];
self.qrScannerCoordinator = [[QRScannerLegacyCoordinator alloc] self.qrScannerCoordinator = [[QRScannerLegacyCoordinator alloc]
initWithBaseViewController:self.viewController]; initWithBaseViewController:self.viewController];
self.qrScannerCoordinator.dispatcher = self.dispatcher; self.qrScannerCoordinator.dispatcher = self.dispatcher;
/* ReadingListCoordinator is created and started by a BrowserCommand */
self.snackbarCoordinator = [[SnackbarCoordinator alloc] init];
self.snackbarCoordinator.dispatcher = self.dispatcher;
[self.snackbarCoordinator start];
} }
// Stops child coordinators. // Stops child coordinators.
...@@ -112,11 +124,24 @@ ...@@ -112,11 +124,24 @@
[self.formInputAccessoryCoordinator stop]; [self.formInputAccessoryCoordinator stop];
self.formInputAccessoryCoordinator = nil; self.formInputAccessoryCoordinator = nil;
[self.qrScannerCoordinator stop];
self.qrScannerCoordinator = nil;
[self.readingListCoordinator stop];
self.readingListCoordinator = nil;
[self.snackbarCoordinator stop]; [self.snackbarCoordinator stop];
self.snackbarCoordinator = nil; self.snackbarCoordinator = nil;
}
[self.qrScannerCoordinator stop]; #pragma mark - BrowserCoordinatorCommands
self.qrScannerCoordinator = nil;
- (void)showReadingList {
self.readingListCoordinator = [[ReadingListCoordinator alloc]
initWithBaseViewController:self.viewController
browserState:self.browserState
loader:self.viewController];
[self.readingListCoordinator start];
} }
#pragma mark - FormInputAccessoryCoordinatorDelegate #pragma mark - FormInputAccessoryCoordinatorDelegate
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment