Index: ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm |
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm |
index fc76ca31dc784badbb44b3b5aa6f815657ba354c..98e64e16763de17dcaa4f81eee20d2116f68954e 100644 |
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm |
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm |
@@ -4,9 +4,16 @@ |
#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h" |
+#include "base/i18n/rtl.h" |
#include "base/logging.h" |
+#include "components/strings/grit/components_strings.h" |
+#include "ios/chrome/browser/ui/commands/ios_command_ids.h" |
#import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_most_visited_item.h" |
+#import "ios/chrome/browser/ui/toolbar/web_toolbar_controller.h" |
#include "ios/chrome/browser/ui/ui_util.h" |
+#include "ios/chrome/grit/ios_strings.h" |
+#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" |
+#include "ui/base/l10n/l10n_util.h" |
#if !defined(__has_feature) || !__has_feature(objc_arc) |
#error "This file requires ARC support." |
@@ -21,6 +28,8 @@ const CGFloat kDoodleTopMarginIPadPortrait = 82; |
const CGFloat kDoodleTopMarginIPadLandscape = 82; |
const CGFloat kNTPSearchFieldBottomPadding = 16; |
+const CGFloat kVoiceSearchButtonWidth = 48; |
+ |
// Height for the doodle frame when Google is not the default search engine. |
const CGFloat kNonGoogleSearchDoodleHeight = 60; |
// Height for the header view on tablet when Google is not the default search |
@@ -134,4 +143,55 @@ CGFloat heightForLogoHeader(CGFloat width, |
return headerHeight; |
} |
+void configureSearchHintLabel(UILabel* searchHintLabel, |
+ UIButton* searchTapTarget, |
+ CGFloat searchFieldWidth) { |
+ CGRect hintFrame = CGRectInset(searchTapTarget.bounds, 12, 3); |
+ const CGFloat kVoiceSearchOffset = 48; |
+ hintFrame.size.width = searchFieldWidth - kVoiceSearchOffset; |
+ [searchHintLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; |
+ |
+ [searchTapTarget addSubview:searchHintLabel]; |
+ |
+ [NSLayoutConstraint activateConstraints:@[ |
+ [searchHintLabel.heightAnchor |
+ constraintEqualToConstant:hintFrame.size.height], |
+ [searchHintLabel.centerYAnchor |
+ constraintEqualToAnchor:searchTapTarget.centerYAnchor] |
+ ]]; |
+ |
+ [searchHintLabel setText:l10n_util::GetNSString(IDS_OMNIBOX_EMPTY_HINT)]; |
+ if (base::i18n::IsRTL()) { |
+ [searchHintLabel setTextAlignment:NSTextAlignmentRight]; |
+ } |
+ [searchHintLabel |
+ setTextColor:[UIColor |
+ colorWithWhite:kiPhoneOmniboxPlaceholderColorBrightness |
+ alpha:1.0]]; |
+ [searchHintLabel setFont:[MDCTypography subheadFont]]; |
+} |
+ |
+void configureVoiceSearchButton(UIButton* voiceSearchButton, |
+ UIButton* searchTapTarget) { |
+ UIImage* micImage = [UIImage imageNamed:@"voice_icon"]; |
+ [voiceSearchButton setTranslatesAutoresizingMaskIntoConstraints:NO]; |
+ [searchTapTarget addSubview:voiceSearchButton]; |
+ |
+ [NSLayoutConstraint activateConstraints:@[ |
+ [voiceSearchButton.centerYAnchor |
+ constraintEqualToAnchor:searchTapTarget.centerYAnchor], |
+ [voiceSearchButton.widthAnchor |
+ constraintEqualToConstant:kVoiceSearchButtonWidth], |
+ [voiceSearchButton.heightAnchor |
+ constraintEqualToAnchor:voiceSearchButton.widthAnchor], |
+ ]]; |
+ |
+ [voiceSearchButton setAdjustsImageWhenHighlighted:NO]; |
+ [voiceSearchButton setImage:micImage forState:UIControlStateNormal]; |
+ [voiceSearchButton setTag:IDC_VOICE_SEARCH]; |
+ [voiceSearchButton setAccessibilityLabel:l10n_util::GetNSString( |
+ IDS_IOS_ACCNAME_VOICE_SEARCH)]; |
+ [voiceSearchButton setAccessibilityIdentifier:@"Voice Search"]; |
+} |
+ |
} // namespace content_suggestions |