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/settings/cells/signin_promo_item.mm

Issue 2749703003: Adding mediator for Sign-in promo (Closed)
Patch Set: Update tests Created 3 years, 9 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
Index: ios/chrome/browser/ui/settings/cells/signin_promo_item.mm
diff --git a/ios/chrome/browser/ui/settings/cells/signin_promo_item.mm b/ios/chrome/browser/ui/settings/cells/signin_promo_item.mm
deleted file mode 100644
index e8f25ad71242c5f1ef2c19bad77b3cfbc162ef73..0000000000000000000000000000000000000000
--- a/ios/chrome/browser/ui/settings/cells/signin_promo_item.mm
+++ /dev/null
@@ -1,230 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/ui/settings/cells/signin_promo_item.h"
-
-#include "base/strings/sys_string_conversions.h"
-#import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.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"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-namespace {
-// Horizontal padding for label and buttons.
-const CGFloat kHorizontalPadding = 40;
-// Vertical padding for the image and the label.
-const CGFloat kVerticalPadding = 12;
-// Vertical padding for buttons.
-const CGFloat kButtonVerticalPadding = 6;
-// Image size.
-const CGFloat kImageFixedSize = 48;
-// Button height.
-const CGFloat kButtonHeight = 36;
-}
-
-@implementation SigninPromoItem
-
-@synthesize profileImage = _profileImage;
-@synthesize profileName = _profileName;
-@synthesize profileEmail = _profileEmail;
-
-- (instancetype)initWithType:(NSInteger)type {
- self = [super initWithType:type];
- if (self) {
- self.cellClass = [SigninPromoCell class];
- }
- return self;
-}
-
-#pragma mark - CollectionViewItem
-
-- (void)configureCell:(SigninPromoCell*)cell {
- [super configureCell:cell];
- cell.imageView.image = _profileImage;
- cell.textLabel.text = l10n_util::GetNSString(IDS_IOS_SIGNIN_PROMO_SETTINGS);
- [cell.signinButton
- setTitle:l10n_util::GetNSStringF(IDS_IOS_SIGNIN_PROMO_CONTINUE_AS,
- base::SysNSStringToUTF16(_profileName))
- forState:UIControlStateNormal];
- [cell.notMeButton
- setTitle:l10n_util::GetNSStringF(IDS_IOS_SIGNIN_PROMO_NOT,
- base::SysNSStringToUTF16(_profileEmail))
- forState:UIControlStateNormal];
-}
-
-@end
-
-@implementation SigninPromoCell
-
-@synthesize imageView = _imageView;
-@synthesize textLabel = _textLabel;
-@synthesize signinButton = _signinButton;
-@synthesize notMeButton = _notMeButton;
-
-- (instancetype)initWithFrame:(CGRect)frame {
- self = [super initWithFrame:frame];
- if (self) {
- self.isAccessibilityElement = YES;
- [self addSubviews];
- [self setDefaultViewStyling];
- [self setViewConstraints];
- }
- return self;
-}
-
-// Create and add subviews.
-- (void)addSubviews {
- UIView* contentView = self.contentView;
- contentView.clipsToBounds = YES;
-
- _imageView = [[UIImageView alloc] init];
- _imageView.translatesAutoresizingMaskIntoConstraints = NO;
- [contentView addSubview:_imageView];
-
- _textLabel = [[UILabel alloc] init];
- _textLabel.translatesAutoresizingMaskIntoConstraints = NO;
- [contentView addSubview:_textLabel];
-
- _signinButton = [[MDCFlatButton alloc] init];
- _signinButton.translatesAutoresizingMaskIntoConstraints = NO;
- _signinButton.accessibilityIdentifier = @"signin_promo_button";
- [contentView addSubview:_signinButton];
-
- _notMeButton = [[MDCFlatButton alloc] init];
- _notMeButton.translatesAutoresizingMaskIntoConstraints = NO;
- _notMeButton.accessibilityIdentifier = @"signin_promo_no_button";
- [contentView addSubview:_notMeButton];
-}
-
-- (void)setDefaultViewStyling {
- _imageView.contentMode = UIViewContentModeCenter;
- _imageView.layer.masksToBounds = YES;
- _imageView.contentMode = UIViewContentModeScaleAspectFit;
- _textLabel.font = [MDCTypography buttonFont];
- _textLabel.textColor = [[MDCPalette greyPalette] tint900];
- _textLabel.numberOfLines = 0;
- _textLabel.textAlignment = NSTextAlignmentCenter;
- [_signinButton setBackgroundColor:[[MDCPalette cr_bluePalette] tint500]
- forState:UIControlStateNormal];
- _signinButton.customTitleColor = [UIColor whiteColor];
- _signinButton.inkColor = [UIColor colorWithWhite:1 alpha:0.2];
- _notMeButton.customTitleColor = [[MDCPalette cr_bluePalette] tint500];
- _notMeButton.uppercaseTitle = NO;
-}
-
-- (void)setViewConstraints {
- UIView* contentView = self.contentView;
-
- [NSLayoutConstraint activateConstraints:@[
- // Set vertical anchors.
- [_imageView.topAnchor constraintEqualToAnchor:contentView.topAnchor
- constant:kVerticalPadding * 2],
- [_textLabel.topAnchor constraintEqualToAnchor:_imageView.bottomAnchor
- constant:kVerticalPadding],
- [_signinButton.topAnchor
- constraintEqualToAnchor:_textLabel.bottomAnchor
- constant:kVerticalPadding + kButtonVerticalPadding],
- [_notMeButton.topAnchor constraintEqualToAnchor:_signinButton.bottomAnchor
- constant:kButtonVerticalPadding * 2],
- [contentView.bottomAnchor
- constraintEqualToAnchor:_notMeButton.bottomAnchor
- constant:kVerticalPadding + kButtonVerticalPadding],
-
- // Set horizontal anchors.
- [_imageView.centerXAnchor
- constraintEqualToAnchor:contentView.centerXAnchor],
- [_textLabel.centerXAnchor
- constraintEqualToAnchor:contentView.centerXAnchor],
- [_signinButton.centerXAnchor
- constraintEqualToAnchor:contentView.centerXAnchor],
- [_signinButton.leadingAnchor
- constraintEqualToAnchor:contentView.leadingAnchor
- constant:kHorizontalPadding],
- [contentView.trailingAnchor
- constraintEqualToAnchor:_signinButton.trailingAnchor
- constant:kHorizontalPadding],
- [_notMeButton.centerXAnchor
- constraintEqualToAnchor:contentView.centerXAnchor],
- [_notMeButton.leadingAnchor
- constraintEqualToAnchor:contentView.leadingAnchor
- constant:kHorizontalPadding],
- [contentView.trailingAnchor
- constraintEqualToAnchor:_notMeButton.trailingAnchor
- constant:kHorizontalPadding],
-
- // Fix width and height.
- [_imageView.widthAnchor constraintEqualToConstant:kImageFixedSize],
- [_imageView.heightAnchor constraintEqualToConstant:kImageFixedSize],
- [_signinButton.heightAnchor constraintEqualToConstant:kButtonHeight],
- [_notMeButton.heightAnchor constraintEqualToConstant:kButtonHeight],
- ]];
-}
-
-// Implements -layoutSubviews as per instructions in documentation for
-// +[MDCCollectionViewCell cr_preferredHeightForWidth:forItem:].
-- (void)layoutSubviews {
- [super layoutSubviews];
-
- // Adjust the text label preferredMaxLayoutWidth when the parent's width
- // changes, for instance on screen rotation.
- CGFloat parentWidth = CGRectGetWidth(self.contentView.bounds);
- _textLabel.preferredMaxLayoutWidth = parentWidth - 2 * kHorizontalPadding;
-
- // Re-layout with the new preferred width to allow the label to adjust its
- // height.
- [super layoutSubviews];
-}
-
-#pragma mark - Action
-
-- (void)accessibilitySigninAction:(id)unused {
- // TODO(jlebel): Need to implement
- NSLog(@"Sign-in action");
-}
-
-- (void)accessibilityNotMeAction:(id)unused {
- // TODO(jlebel): Need to implement
- NSLog(@"Not me action");
-}
-
-#pragma mark - UICollectionReusableView
-
-- (void)prepareForReuse {
- [super prepareForReuse];
- _imageView.image = nil;
- _textLabel.text = nil;
- _signinButton = nil;
- _notMeButton = nil;
-}
-
-#pragma mark - NSObject(Accessibility)
-
-- (NSArray<UIAccessibilityCustomAction*>*)accessibilityCustomActions {
- NSString* signinActionName =
- [_signinButton titleForState:UIControlStateNormal];
- UIAccessibilityCustomAction* signinCustomAction =
- [[UIAccessibilityCustomAction alloc]
- initWithName:signinActionName
- target:self
- selector:@selector(accessibilitySigninAction:)];
- NSString* notMeActionName = [_notMeButton titleForState:UIControlStateNormal];
- UIAccessibilityCustomAction* notMeCustomAction =
- [[UIAccessibilityCustomAction alloc]
- initWithName:notMeActionName
- target:self
- selector:@selector(accessibilityNotMeAction:)];
- return [NSArray arrayWithObjects:signinCustomAction, notMeCustomAction, nil];
-}
-
-- (NSString*)accessibilityLabel {
- return l10n_util::GetNSString(IDS_IOS_SIGNIN_PROMO_SETTINGS);
-}
-
-@end

Powered by Google App Engine
This is Rietveld 408576698