Chromium Code Reviews| Index: ios/chrome/browser/ui/authentication/signin_promo_view.mm |
| diff --git a/ios/chrome/browser/ui/authentication/signin_promo_view.mm b/ios/chrome/browser/ui/authentication/signin_promo_view.mm |
| index a52cb923ee05f564194f080dbb7e3785e3a56024..07437f63fe10d234a2aa8c043648109607832f44 100644 |
| --- a/ios/chrome/browser/ui/authentication/signin_promo_view.mm |
| +++ b/ios/chrome/browser/ui/authentication/signin_promo_view.mm |
| @@ -9,6 +9,7 @@ |
| #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h" |
| #import "ios/chrome/browser/ui/uikit_ui_util.h" |
| #include "ios/chrome/grit/ios_chromium_strings.h" |
| +#include "ios/chrome/grit/ios_strings.h" |
| #import "ios/third_party/material_components_ios/src/components/Buttons/src/MaterialButtons.h" |
| #import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" |
| #include "ui/base/l10n/l10n_util.h" |
| @@ -42,6 +43,7 @@ const CGFloat kButtonHeight = 36; |
| @synthesize textLabel = _textLabel; |
| @synthesize primaryButton = _primaryButton; |
| @synthesize secondaryButton = _secondaryButton; |
| +@synthesize closeButton = _closeButton; |
| - (instancetype)initWithFrame:(CGRect)frame { |
| self = [super initWithFrame:frame]; |
| @@ -75,6 +77,11 @@ const CGFloat kButtonHeight = 36; |
| forControlEvents:UIControlEventTouchUpInside]; |
| [self addSubview:_secondaryButton]; |
| + _closeButton = [[UIButton alloc] init]; |
| + _closeButton.translatesAutoresizingMaskIntoConstraints = NO; |
| + _closeButton.accessibilityIdentifier = @"signin_promo_close_button"; |
| + [self addSubview:_closeButton]; |
| + |
| // Adding style. |
| _imageView.contentMode = UIViewContentModeCenter; |
| _imageView.layer.masksToBounds = YES; |
| @@ -93,6 +100,10 @@ const CGFloat kButtonHeight = 36; |
| _secondaryButton.customTitleColor = [[MDCPalette cr_bluePalette] tint500]; |
| _secondaryButton.uppercaseTitle = NO; |
| + [_closeButton setImage:[UIImage imageNamed:@"signin_promo_close_gray"] |
| + forState:UIControlStateNormal]; |
| + // _closeButton.hidden = YES; |
|
lpromero
2017/05/23 12:06:16
Still needed? Otherwise remove.
jlebel
2017/05/23 12:43:26
Done.
|
| + |
| // Adding constraints. |
| NSDictionary* metrics = @{ |
| @"kButtonHeight" : @(kButtonHeight), |
| @@ -122,6 +133,10 @@ const CGFloat kButtonHeight = 36; |
| ]; |
| ApplyVisualConstraintsWithMetricsAndOptions( |
| visualConstraints, views, metrics, NSLayoutFormatAlignAllCenterX); |
| + NSArray* buttonVisualConstraints = |
| + @[ @"H:[closeButton]-|", @"V:|-[closeButton]" ]; |
| + ApplyVisualConstraints(buttonVisualConstraints, |
| + @{ @"closeButton" : _closeButton }); |
| // Constraints for cold state mode. |
| NSArray* coldStateVisualConstraints = @[ |
| @@ -201,6 +216,10 @@ const CGFloat kButtonHeight = 36; |
| [_secondaryButton sendActionsForControlEvents:UIControlEventTouchUpInside]; |
| } |
| +- (void)accessibilityCloseAction:(id)unused { |
| + [_closeButton sendActionsForControlEvents:UIControlEventTouchUpInside]; |
| +} |
| + |
| - (CGFloat)horizontalPadding { |
| return kHorizontalPadding; |
| } |
| @@ -223,6 +242,8 @@ const CGFloat kButtonHeight = 36; |
| #pragma mark - NSObject(Accessibility) |
| - (NSArray<UIAccessibilityCustomAction*>*)accessibilityCustomActions { |
| + NSMutableArray* actions = [NSMutableArray array]; |
| + |
| NSString* primaryActionName = |
| [_primaryButton titleForState:UIControlStateNormal]; |
| UIAccessibilityCustomAction* primaryCustomAction = |
| @@ -230,17 +251,29 @@ const CGFloat kButtonHeight = 36; |
| initWithName:primaryActionName |
| target:self |
| selector:@selector(accessibilityPrimaryAction:)]; |
| - if (_mode == SigninPromoViewModeColdState) { |
| - return @[ primaryCustomAction ]; |
| + [actions addObject:primaryCustomAction]; |
| + |
| + if (_mode == SigninPromoViewModeWarmState) { |
| + NSString* secondaryActionName = |
| + [_secondaryButton titleForState:UIControlStateNormal]; |
| + UIAccessibilityCustomAction* secondaryCustomAction = |
| + [[UIAccessibilityCustomAction alloc] |
| + initWithName:secondaryActionName |
| + target:self |
| + selector:@selector(accessibilitySecondaryAction:)]; |
| + [actions addObject:secondaryCustomAction]; |
| } |
| - NSString* secondaryActionName = |
| - [_secondaryButton titleForState:UIControlStateNormal]; |
| - UIAccessibilityCustomAction* secondaryCustomAction = |
| + |
| + NSString* closeActionName = |
| + l10n_util::GetNSString(IDS_IOS_SIGNIN_PROMO_CLOSE_ACCESSIBILITY); |
| + UIAccessibilityCustomAction* closeCustomAction = |
| [[UIAccessibilityCustomAction alloc] |
| - initWithName:secondaryActionName |
| + initWithName:closeActionName |
| target:self |
| - selector:@selector(accessibilitySecondaryAction:)]; |
| - return @[ primaryCustomAction, secondaryCustomAction ]; |
| + selector:@selector(accessibilityCloseAction:)]; |
| + [actions addObject:closeCustomAction]; |
| + |
| + return actions; |
| } |
| - (NSString*)accessibilityLabel { |