Commit 352bf58f authored by Gauthier Ambard's avatar Gauthier Ambard Committed by Commit Bot

[iOS] Position VoiceSearch LayoutGuide with Frame

This CL changes the VoiceSearch LayoutGuide to position it using frames
instead of autolayout as the autolayout positioning is introducing a bug
on 3x devices.

Bug: 874017
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I451e3c787065347a1b0ece28fb4f68de7c31b8e4
Reviewed-on: https://chromium-review.googlesource.com/1181049Reviewed-by: default avatarStepan Khapugin <stkhapugin@chromium.org>
Reviewed-by: default avatarJustin Cohen <justincohen@chromium.org>
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584462}
parent 10d5669e
......@@ -4,6 +4,7 @@
#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_header_view_controller.h"
#include "base/ios/ios_util.h"
#include "base/logging.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
......@@ -376,8 +377,20 @@ const UIEdgeInsets kSearchBoxStretchInsets = {3, 3, 3, 3};
DCHECK(self.voiceSearchIsEnabled);
base::RecordAction(UserMetricsAction("MobileNTPMostVisitedVoiceSearch"));
UIView* voiceSearchButton = base::mac::ObjCCastStrict<UIView>(sender);
[NamedGuide guideWithName:kVoiceSearchButtonGuide view:voiceSearchButton]
.constrainedView = voiceSearchButton;
if (base::ios::IsRunningOnIOS12OrLater()) {
[NamedGuide guideWithName:kVoiceSearchButtonGuide view:voiceSearchButton]
.constrainedView = voiceSearchButton;
} else {
// On iOS 11 and below, constraining the layout guide to a view instead of
// using frame freeze the app. The root cause wasn't found. See
// https://crbug.com/874017.
NamedGuide* voiceSearchGuide =
[NamedGuide guideWithName:kVoiceSearchButtonGuide
view:voiceSearchButton];
voiceSearchGuide.constrainedFrame =
[voiceSearchGuide.owningView convertRect:voiceSearchButton.bounds
fromView:voiceSearchButton];
}
[self.dispatcher startVoiceSearch];
}
......
......@@ -4,6 +4,7 @@
#import "ios/chrome/browser/ui/location_bar/location_bar_view_controller.h"
#include "base/ios/ios_util.h"
#include "base/metrics/user_metrics.h"
#include "components/strings/grit/components_strings.h"
#import "ios/chrome/browser/ui/commands/activity_service_commands.h"
......@@ -404,8 +405,19 @@ typedef NS_ENUM(int, TrailingButtonState) {
}
- (void)startVoiceSearch {
[NamedGuide guideWithName:kVoiceSearchButtonGuide view:self.view]
.constrainedView = self.locationBarSteadyView.trailingButton;
if (base::ios::IsRunningOnIOS12OrLater()) {
[NamedGuide guideWithName:kVoiceSearchButtonGuide view:self.view]
.constrainedView = self.locationBarSteadyView.trailingButton;
} else {
// On iOS 11 and below, constraining the layout guide to a view instead of
// using frame freeze the app. The root cause wasn't found. See
// https://crbug.com/874017.
NamedGuide* voiceSearchGuide =
[NamedGuide guideWithName:kVoiceSearchButtonGuide view:self.view];
voiceSearchGuide.constrainedFrame = [voiceSearchGuide.owningView
convertRect:self.locationBarSteadyView.trailingButton.bounds
fromView:self.locationBarSteadyView.trailingButton];
}
[self.dispatcher startVoiceSearch];
}
......
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