Commit 7daedbc1 authored by gambard's avatar gambard Committed by Commit Bot

Add dispatcher for VoiceSearch commands

During the removal of the VoiceSearch commands, ContentSuggestions was
forgotten. This CL uses the new API to start voice search with the
dispatcher.

Bug: 750636
Change-Id: Ie1cb80f0beb2969868a565c2c60c0df564c10bc8
Reviewed-on: https://chromium-review.googlesource.com/593660Reviewed-by: default avatarRohit Rao <rohitrao@chromium.org>
Reviewed-by: default avatarJean-François Geyelin <jif@chromium.org>
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490759}
parent 18460103
...@@ -29,6 +29,7 @@ void swizzleUIImageImageNamed() { ...@@ -29,6 +29,7 @@ void swizzleUIImageImageNamed() {
// TODO(crbug.com/720355): Add missing image. // TODO(crbug.com/720355): Add missing image.
[whiteList addObject:@"find_close_pressed_incognito"]; [whiteList addObject:@"find_close_pressed_incognito"];
// TODO(crbug.com/720338): Add missing images. // TODO(crbug.com/720338): Add missing images.
[whiteList addObject:@"glif-mic-to-dots-small_37"];
[whiteList addObject:@"glif-mic-to-dots-large_37"]; [whiteList addObject:@"glif-mic-to-dots-large_37"];
[whiteList addObject:@"glif-google-to-dots_28"]; [whiteList addObject:@"glif-google-to-dots_28"];
// TODO(crbug.com/721338): Add missing image. // TODO(crbug.com/721338): Add missing image.
......
...@@ -12,6 +12,7 @@ namespace ios { ...@@ -12,6 +12,7 @@ namespace ios {
class ChromeBrowserState; class ChromeBrowserState;
} }
@protocol ApplicationCommands;
@protocol BrowserCommands; @protocol BrowserCommands;
@protocol ChromeExecuteCommand; @protocol ChromeExecuteCommand;
@class ContentSuggestionsHeaderViewController; @class ContentSuggestionsHeaderViewController;
...@@ -29,9 +30,12 @@ class WebStateList; ...@@ -29,9 +30,12 @@ class WebStateList;
// URLLoader used to open pages. // URLLoader used to open pages.
@property(nonatomic, weak) id<UrlLoader> URLLoader; @property(nonatomic, weak) id<UrlLoader> URLLoader;
@property(nonatomic, assign) WebStateList* webStateList; @property(nonatomic, assign) WebStateList* webStateList;
@property(nonatomic, weak) @property(nonatomic, weak) id<ApplicationCommands,
id<BrowserCommands, ChromeExecuteCommand, OmniboxFocuser, UrlLoader> BrowserCommands,
dispatcher; ChromeExecuteCommand,
OmniboxFocuser,
UrlLoader>
dispatcher;
// Whether the Suggestions UI is displayed. If this is true, start is a no-op. // Whether the Suggestions UI is displayed. If this is true, start is a no-op.
@property(nonatomic, readonly) BOOL visible; @property(nonatomic, readonly) BOOL visible;
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#import "ios/chrome/browser/ui/toolbar/toolbar_owner.h" #import "ios/chrome/browser/ui/toolbar/toolbar_owner.h"
#import "ios/public/provider/chrome/browser/voice/logo_animation_controller.h" #import "ios/public/provider/chrome/browser/voice/logo_animation_controller.h"
@protocol ApplicationCommands;
@protocol ContentSuggestionsCollectionSynchronizing; @protocol ContentSuggestionsCollectionSynchronizing;
@protocol ContentSuggestionsHeaderViewControllerDelegate; @protocol ContentSuggestionsHeaderViewControllerDelegate;
@protocol ContentSuggestionsHeaderViewControllerCommandHandler; @protocol ContentSuggestionsHeaderViewControllerCommandHandler;
...@@ -30,7 +31,8 @@ class ReadingListModel; ...@@ -30,7 +31,8 @@ class ReadingListModel;
ToolbarOwner, ToolbarOwner,
LogoAnimationControllerOwnerOwner> LogoAnimationControllerOwnerOwner>
@property(nonatomic, weak) id<UrlLoader, OmniboxFocuser> dispatcher; @property(nonatomic, weak) id<ApplicationCommands, OmniboxFocuser, UrlLoader>
dispatcher;
@property(nonatomic, weak) id<ContentSuggestionsHeaderViewControllerDelegate> @property(nonatomic, weak) id<ContentSuggestionsHeaderViewControllerDelegate>
delegate; delegate;
@property(nonatomic, weak) @property(nonatomic, weak)
......
...@@ -5,12 +5,15 @@ ...@@ -5,12 +5,15 @@
#import "ios/chrome/browser/content_suggestions/content_suggestions_header_view_controller.h" #import "ios/chrome/browser/content_suggestions/content_suggestions_header_view_controller.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h" #include "base/metrics/user_metrics.h"
#include "components/strings/grit/components_strings.h" #include "components/strings/grit/components_strings.h"
#import "ios/chrome/browser/content_suggestions/content_suggestions_header_view_controller_delegate.h" #import "ios/chrome/browser/content_suggestions/content_suggestions_header_view_controller_delegate.h"
#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h" #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
#import "ios/chrome/browser/ui/commands/application_commands.h"
#import "ios/chrome/browser/ui/commands/generic_chrome_command.h" #import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
#include "ios/chrome/browser/ui/commands/ios_command_ids.h" #include "ios/chrome/browser/ui/commands/ios_command_ids.h"
#include "ios/chrome/browser/ui/commands/start_voice_search_command.h"
#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_synchronizing.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_synchronizing.h"
#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h"
#import "ios/chrome/browser/ui/ntp/new_tab_page_header_view.h" #import "ios/chrome/browser/ui/ntp/new_tab_page_header_view.h"
...@@ -254,7 +257,10 @@ const CGFloat kHintLabelSidePadding = 12; ...@@ -254,7 +257,10 @@ const CGFloat kHintLabelSidePadding = 12;
- (void)loadVoiceSearch:(id)sender { - (void)loadVoiceSearch:(id)sender {
DCHECK(self.voiceSearchIsEnabled); DCHECK(self.voiceSearchIsEnabled);
base::RecordAction(UserMetricsAction("MobileNTPMostVisitedVoiceSearch")); base::RecordAction(UserMetricsAction("MobileNTPMostVisitedVoiceSearch"));
[sender chromeExecuteCommand:sender]; UIView* view = base::mac::ObjCCastStrict<UIView>(sender);
StartVoiceSearchCommand* command =
[[StartVoiceSearchCommand alloc] initWithOriginView:view];
[self.dispatcher startVoiceSearch:command];
} }
- (void)preloadVoiceSearch:(id)sender { - (void)preloadVoiceSearch:(id)sender {
......
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