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

Unified Diff: ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm

Issue 2934463002: [iOS] Add experimental new keyboard accessory view. (Closed)
Patch Set: Rebased. Created 3 years, 6 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
« no previous file with comments | « ios/chrome/browser/ui/toolbar/toolbar_tools_menu_button.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm
diff --git a/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm
index ba6ae8de275f17080ee428288b0bbbeba5c91462..d37b9d4ee1d5644c1c673d8123beafa094041053 100644
--- a/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm
+++ b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm
@@ -29,6 +29,7 @@
#include "ios/chrome/browser/autocomplete/autocomplete_scheme_classifier_impl.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/chrome_url_constants.h"
+#include "ios/chrome/browser/experimental_flags.h"
#include "ios/chrome/browser/reading_list/reading_list_model_factory.h"
#include "ios/chrome/browser/search_engines/template_url_service_factory.h"
#import "ios/chrome/browser/tabs/tab.h"
@@ -47,6 +48,8 @@
#import "ios/chrome/browser/ui/reversed_animation.h"
#include "ios/chrome/browser/ui/rtl_geometry.h"
#import "ios/chrome/browser/ui/toolbar/keyboard_accessory_view.h"
+#import "ios/chrome/browser/ui/toolbar/keyboard_accessory_view_protocol.h"
+#import "ios/chrome/browser/ui/toolbar/new_keyboard_accessory_view.h"
#import "ios/chrome/browser/ui/toolbar/toolbar_controller+protected.h"
#import "ios/chrome/browser/ui/toolbar/toolbar_controller.h"
#import "ios/chrome/browser/ui/toolbar/toolbar_model_ios.h"
@@ -242,7 +245,7 @@ @interface WebToolbarController ()<LocationBarDelegate,
UIButton* _voiceSearchButton;
OmniboxTextFieldIOS* _omniBox;
UIButton* _cancelButton;
- KeyboardAccessoryView* _keyBoardAccessoryView;
+ UIView<KeyboardAccessoryViewProtocol>* _keyboardAccessoryView;
// Progress bar used to show what fraction of the page has loaded.
MDCProgressView* _determinateProgressView;
UIImageView* _omniboxBackground;
@@ -875,10 +878,10 @@ - (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection {
[self updateToolbarState];
// Update keyboard accessory views.
- auto mode = _keyBoardAccessoryView.mode;
- _keyBoardAccessoryView = nil;
+ auto mode = _keyboardAccessoryView.mode;
+ _keyboardAccessoryView = nil;
[_omniBox setInputAccessoryView:[self keyboardAccessoryView]];
- _keyBoardAccessoryView.mode = mode;
+ _keyboardAccessoryView.mode = mode;
if ([_omniBox isFirstResponder]) {
[_omniBox reloadInputViews];
}
@@ -1261,7 +1264,7 @@ - (void)locationBarHasBecomeFirstResponder {
[self.delegate locationBarDidBecomeFirstResponder:self];
[self animateMaterialOmnibox];
- _keyBoardAccessoryView.mode = VOICE_SEARCH;
+ _keyboardAccessoryView.mode = VOICE_SEARCH;
// Record the appropriate user action for focusing the omnibox.
web::WebState* webState = [self.delegate currentWebState];
@@ -1299,13 +1302,13 @@ - (void)locationBarChanged {
// If the voice search button is visible but about to be hidden (i.e.
// the omnibox is no longer empty) then this is the first omnibox text so
// record a user action.
- if (_keyBoardAccessoryView.mode == VOICE_SEARCH && editingAndNotEmpty) {
+ if (_keyboardAccessoryView.mode == VOICE_SEARCH && editingAndNotEmpty) {
base::RecordAction(UserMetricsAction("MobileFirstTextInOmnibox"));
}
if (editingAndNotEmpty) {
- _keyBoardAccessoryView.mode = KEY_SHORTCUTS;
+ _keyboardAccessoryView.mode = KEY_SHORTCUTS;
} else {
- _keyBoardAccessoryView.mode = VOICE_SEARCH;
+ _keyboardAccessoryView.mode = VOICE_SEARCH;
}
}
@@ -1464,7 +1467,7 @@ - (void)keyboardAccessoryVoiceSearchTouchDown {
if (ios::GetChromeBrowserProvider()
->GetVoiceSearchProvider()
->IsVoiceSearchEnabled()) {
- [self preloadVoiceSearch:_keyBoardAccessoryView];
+ [self preloadVoiceSearch:_keyboardAccessoryView];
}
}
@@ -1475,12 +1478,18 @@ - (void)keyboardAccessoryVoiceSearchTouchUpInside {
base::RecordAction(UserMetricsAction("MobileCustomRowVoiceSearch"));
GenericChromeCommand* command =
[[GenericChromeCommand alloc] initWithTag:IDC_VOICE_SEARCH];
- [_keyBoardAccessoryView chromeExecuteCommand:command];
+ [_keyboardAccessoryView chromeExecuteCommand:command];
} else {
- _keyBoardAccessoryView.mode = KEY_SHORTCUTS;
+ _keyboardAccessoryView.mode = KEY_SHORTCUTS;
}
}
+- (void)keyboardAccessoryCameraSearchTouchUpInside {
+ GenericChromeCommand* command =
+ [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_QR_SCANNER];
+ [_keyboardAccessoryView chromeExecuteCommand:command];
+}
+
- (void)keyPressed:(NSString*)title {
NSString* text = [self updateTextForDotCom:title];
[_omniBox insertTextWhileEditing:text];
@@ -1842,18 +1851,28 @@ - (void)loadURLForQuery:(NSString*)query {
}
- (UIView*)keyboardAccessoryView {
- if (!_keyBoardAccessoryView) {
- NSArray<NSString*>* buttonTitles =
- [NSArray arrayWithObjects:@":", @".", @"-", @"/", kDotComTLD, nil];
- _keyBoardAccessoryView =
- [[KeyboardAccessoryView alloc] initWithButtons:buttonTitles
- delegate:self];
- [_keyBoardAccessoryView
+ if (!_keyboardAccessoryView) {
+ if (experimental_flags::IsKeyboardAccessoryViewWithCameraSearchEnabled()) {
+ // The '.' shortcut is left out because the new keyboard accessory view
+ // has less free space for the shortcut buttons, and the '.' is already
+ // present in the standard iOS keyboard.
+ NSArray<NSString*>* buttonTitles = @[ @":", @"-", @"/", kDotComTLD ];
+ _keyboardAccessoryView =
+ [[NewKeyboardAccessoryView alloc] initWithButtons:buttonTitles
+ delegate:self];
+ } else {
+ NSArray<NSString*>* buttonTitles =
+ @[ @":", @".", @"-", @"/", kDotComTLD ];
+ _keyboardAccessoryView =
+ [[KeyboardAccessoryView alloc] initWithButtons:buttonTitles
+ delegate:self];
+ }
+ [_keyboardAccessoryView
setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
_hardwareKeyboardWatcher = [[HardwareKeyboardWatcher alloc]
- initWithAccessoryView:_keyBoardAccessoryView];
+ initWithAccessoryView:_keyboardAccessoryView];
}
- return _keyBoardAccessoryView;
+ return _keyboardAccessoryView;
}
- (void)preloadVoiceSearch:(id)sender {
« no previous file with comments | « ios/chrome/browser/ui/toolbar/toolbar_tools_menu_button.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698