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

Side by Side Diff: ios/chrome/today_extension/physical_web_optin_footer.mm

Issue 2938433002: [ObjC ARC] Converts ios/chrome/today_extension:today_extension to ARC. (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/today_extension/physical_web_optin_footer.h" 5 #import "ios/chrome/today_extension/physical_web_optin_footer.h"
6 6
7 #import "base/mac/scoped_block.h" 7 #import "base/mac/scoped_block.h"
8 #import "base/mac/scoped_nsobject.h" 8 #import "base/mac/scoped_nsobject.h"
9 #include "ios/chrome/today_extension/interactive_label.h" 9 #include "ios/chrome/today_extension/interactive_label.h"
10 #include "ios/chrome/today_extension/lock_screen_state.h" 10 #include "ios/chrome/today_extension/lock_screen_state.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 base::scoped_nsobject<TransparentButton> _dismissButton; 52 base::scoped_nsobject<TransparentButton> _dismissButton;
53 // Physical Web logo. 53 // Physical Web logo.
54 base::scoped_nsobject<UIImageView> _imageView; 54 base::scoped_nsobject<UIImageView> _imageView;
55 // Outer horizontal padding. 55 // Outer horizontal padding.
56 CGFloat _horizontalPadding; 56 CGFloat _horizontalPadding;
57 // Physical Web logo size. 57 // Physical Web logo size.
58 CGSize _imageSize; 58 CGSize _imageSize;
59 // Distance between the icon and the title. 59 // Distance between the icon and the title.
60 CGFloat _imageTextSeparator; 60 CGFloat _imageTextSeparator;
61 // Opt-in action block. 61 // Opt-in action block.
62 base::mac::ScopedBlock<EnableDisableBlock> _optinAction; 62 EnableDisableBlock _optinAction;
63 // Dismiss action block. 63 // Dismiss action block.
64 base::mac::ScopedBlock<EnableDisableBlock> _dismissAction; 64 EnableDisableBlock _dismissAction;
65 // Whether the screen is locked. 65 // Whether the screen is locked.
66 BOOL _locked; 66 BOOL _locked;
67 } 67 }
68 68
69 - (id)initWithLeftInset:(CGFloat)leftInset 69 - (id)initWithLeftInset:(CGFloat)leftInset
70 learnMoreBlock:(LearnMoreBlock)learnMoreBlock 70 learnMoreBlock:(LearnMoreBlock)learnMoreBlock
71 optinAction:(EnableDisableBlock)optinAction 71 optinAction:(EnableDisableBlock)optinAction
72 dismissAction:(EnableDisableBlock)dismissAction { 72 dismissAction:(EnableDisableBlock)dismissAction {
73 self = [super init]; 73 self = [super init];
74 if (self) { 74 if (self) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 initWithFrame:CGRectZero 109 initWithFrame:CGRectZero
110 labelString:description 110 labelString:description
111 fontSize:kDescriptionFontSize 111 fontSize:kDescriptionFontSize
112 labelAlignment:ui_util::IsRTL() ? NSTextAlignmentRight 112 labelAlignment:ui_util::IsRTL() ? NSTextAlignmentRight
113 : NSTextAlignmentLeft 113 : NSTextAlignmentLeft
114 insets:UIEdgeInsetsZero 114 insets:UIEdgeInsetsZero
115 buttonString:nil 115 buttonString:nil
116 linkBlock:learnMoreBlock 116 linkBlock:learnMoreBlock
117 buttonBlock:NULL]); 117 buttonBlock:NULL]);
118 [_descriptionLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; 118 [_descriptionLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
119 UIStackView* textStack = [[[UIStackView alloc] 119 UIStackView* textStack = [[UIStackView alloc]
120 initWithArrangedSubviews:@[ _titleView, _descriptionLabel ]] 120 initWithArrangedSubviews:@[ _titleView, _descriptionLabel ]];
121 autorelease];
122 121
123 [textStack setAxis:UILayoutConstraintAxisVertical]; 122 [textStack setAxis:UILayoutConstraintAxisVertical];
124 [textStack setDistribution:UIStackViewDistributionEqualSpacing]; 123 [textStack setDistribution:UIStackViewDistributionEqualSpacing];
125 [textStack setSpacing:kTitleVerticalMargin]; 124 [textStack setSpacing:kTitleVerticalMargin];
126 [textStack setTranslatesAutoresizingMaskIntoConstraints:NO]; 125 [textStack setTranslatesAutoresizingMaskIntoConstraints:NO];
127 126
128 [_mainView addSubview:textStack]; 127 [_mainView addSubview:textStack];
129 [_mainView addSubview:_imageView]; 128 [_mainView addSubview:_imageView];
130 129
131 _horizontalPadding = leftInset + ui_util::ChromeIconOffset(); 130 _horizontalPadding = leftInset + ui_util::ChromeIconOffset();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 forState:UIControlStateNormal]; 176 forState:UIControlStateNormal];
178 [_dismissButton 177 [_dismissButton
179 setTitle:l10n_util::GetNSString( 178 setTitle:l10n_util::GetNSString(
180 IDS_IOS_PYSICAL_WEB_TODAY_EXTENSION_OPTIN_DISMISS) 179 IDS_IOS_PYSICAL_WEB_TODAY_EXTENSION_OPTIN_DISMISS)
181 forState:UIControlStateNormal]; 180 forState:UIControlStateNormal];
182 [_dismissButton setBorderWidth:1.0]; 181 [_dismissButton setBorderWidth:1.0];
183 [_dismissButton setBorderColor:ui_util::TitleColor()]; 182 [_dismissButton setBorderColor:ui_util::TitleColor()];
184 [_dismissButton addTarget:self 183 [_dismissButton addTarget:self
185 action:@selector(dismissButtonPressed:) 184 action:@selector(dismissButtonPressed:)
186 forControlEvents:UIControlEventTouchUpInside]; 185 forControlEvents:UIControlEventTouchUpInside];
187 _dismissAction.reset(dismissAction, base::scoped_policy::RETAIN); 186 _dismissAction = [dismissAction copy];
188 [_dismissButton setTranslatesAutoresizingMaskIntoConstraints:NO]; 187 [_dismissButton setTranslatesAutoresizingMaskIntoConstraints:NO];
189 188
190 _optInButton.reset([[TransparentButton alloc] initWithFrame:CGRectZero]); 189 _optInButton.reset([[TransparentButton alloc] initWithFrame:CGRectZero]);
191 [_optInButton setCornerRadius:ui_util::kUIButtonCornerRadius]; 190 [_optInButton setCornerRadius:ui_util::kUIButtonCornerRadius];
192 [[_optInButton titleLabel] setFont:buttonFont]; 191 [[_optInButton titleLabel] setFont:buttonFont];
193 [_optInButton setInkColor:ui_util::InkColor()]; 192 [_optInButton setInkColor:ui_util::InkColor()];
194 [_optInButton setBackgroundColor:ui_util::BackgroundColor()]; 193 [_optInButton setBackgroundColor:ui_util::BackgroundColor()];
195 [_optInButton setTitleColor:[UIColor blackColor] 194 [_optInButton setTitleColor:[UIColor blackColor]
196 forState:UIControlStateNormal]; 195 forState:UIControlStateNormal];
197 [_optInButton setTitle:l10n_util::GetNSString( 196 [_optInButton setTitle:l10n_util::GetNSString(
198 IDS_IOS_PYSICAL_WEB_TODAY_EXTENSION_OPTIN_ACCEPT) 197 IDS_IOS_PYSICAL_WEB_TODAY_EXTENSION_OPTIN_ACCEPT)
199 forState:UIControlStateNormal]; 198 forState:UIControlStateNormal];
200 [_optInButton addTarget:self 199 [_optInButton addTarget:self
201 action:@selector(optInButtonPressed:) 200 action:@selector(optInButtonPressed:)
202 forControlEvents:UIControlEventTouchUpInside]; 201 forControlEvents:UIControlEventTouchUpInside];
203 [_optInButton setTranslatesAutoresizingMaskIntoConstraints:NO]; 202 [_optInButton setTranslatesAutoresizingMaskIntoConstraints:NO];
204 203
205 [[_optInButton heightAnchor] constraintEqualToConstant:kButtonHeight]; 204 [[_optInButton heightAnchor] constraintEqualToConstant:kButtonHeight];
206 [[_dismissButton heightAnchor] constraintEqualToConstant:kButtonHeight]; 205 [[_dismissButton heightAnchor] constraintEqualToConstant:kButtonHeight];
207 [[_optInButton widthAnchor] 206 [[_optInButton widthAnchor]
208 constraintEqualToAnchor:[_dismissButton widthAnchor]]; 207 constraintEqualToAnchor:[_dismissButton widthAnchor]];
209 208
210 _optinAction.reset(optinAction, base::scoped_policy::RETAIN); 209 _optinAction = [optinAction copy];
211 UIStackView* buttonStack = [[UIStackView alloc] 210 UIStackView* buttonStack = [[UIStackView alloc]
212 initWithArrangedSubviews:@[ _dismissButton, _optInButton ]]; 211 initWithArrangedSubviews:@[ _dismissButton, _optInButton ]];
213 [buttonStack setUserInteractionEnabled:YES]; 212 [buttonStack setUserInteractionEnabled:YES];
214 [buttonStack setAxis:UILayoutConstraintAxisHorizontal]; 213 [buttonStack setAxis:UILayoutConstraintAxisHorizontal];
215 [buttonStack setSpacing:kButtonSpacing]; 214 [buttonStack setSpacing:kButtonSpacing];
216 [buttonStack setTranslatesAutoresizingMaskIntoConstraints:NO]; 215 [buttonStack setTranslatesAutoresizingMaskIntoConstraints:NO];
217 216
218 [[_optInButton heightAnchor] constraintEqualToConstant:kButtonHeight].active = 217 [[_optInButton heightAnchor] constraintEqualToConstant:kButtonHeight].active =
219 YES; 218 YES;
220 [[_dismissButton heightAnchor] constraintEqualToConstant:kButtonHeight] 219 [[_dismissButton heightAnchor] constraintEqualToConstant:kButtonHeight]
221 .active = YES; 220 .active = YES;
222 221
223 [_optInButton setContentEdgeInsets:UIEdgeInsetsMake(0, kButtonPadding, 0, 222 [_optInButton setContentEdgeInsets:UIEdgeInsetsMake(0, kButtonPadding, 0,
224 kButtonPadding)]; 223 kButtonPadding)];
225 [_dismissButton setContentEdgeInsets:UIEdgeInsetsMake(0, kButtonPadding, 0, 224 [_dismissButton setContentEdgeInsets:UIEdgeInsetsMake(0, kButtonPadding, 0,
226 kButtonPadding)]; 225 kButtonPadding)];
227 226
228 [[_optInButton widthAnchor] 227 [[_optInButton widthAnchor]
229 constraintEqualToAnchor:[_dismissButton widthAnchor]] 228 constraintEqualToAnchor:[_dismissButton widthAnchor]]
230 .active = YES; 229 .active = YES;
231 return [buttonStack autorelease]; 230 return buttonStack;
232 } 231 }
233 232
234 - (CGFloat)heightForWidth:(CGFloat)width { 233 - (CGFloat)heightForWidth:(CGFloat)width {
235 CGFloat height = ui_util::kSecondLineVerticalPadding + 234 CGFloat height = ui_util::kSecondLineVerticalPadding +
236 [_titleView frame].size.height + kTitleVerticalMargin + 235 [_titleView frame].size.height + kTitleVerticalMargin +
237 [_descriptionLabel 236 [_descriptionLabel
238 sizeThatFits:CGSizeMake(width - (_horizontalPadding * 2 + 237 sizeThatFits:CGSizeMake(width - (_horizontalPadding * 2 +
239 _imageTextSeparator), 238 _imageTextSeparator),
240 CGFLOAT_MAX)] 239 CGFLOAT_MAX)]
241 .height + 240 .height +
242 ui_util::kSecondLineVerticalPadding; 241 ui_util::kSecondLineVerticalPadding;
243 242
244 if (!_locked) { 243 if (!_locked) {
245 height += kButtonVerticalMargin + kButtonHeight; 244 height += kButtonVerticalMargin + kButtonHeight;
246 } 245 }
247 return height; 246 return height;
248 } 247 }
249 248
250 - (UIView*)view { 249 - (UIView*)view {
251 return _mainView; 250 return _mainView;
252 } 251 }
253 252
254 - (void)optInButtonPressed:(id)sender { 253 - (void)optInButtonPressed:(id)sender {
255 _optinAction.get()(); 254 if (_optinAction)
255 _optinAction();
256 } 256 }
257 257
258 - (void)dismissButtonPressed:(id)sender { 258 - (void)dismissButtonPressed:(id)sender {
259 _dismissAction.get()(); 259 if (_dismissAction)
260 _dismissAction();
260 } 261 }
261 262
262 @end 263 @end
OLDNEW
« no previous file with comments | « ios/chrome/today_extension/notification_center_url_button.mm ('k') | ios/chrome/today_extension/today_view_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698