Index: ios/chrome/browser/ui/ntp/whats_new_header_view.mm |
diff --git a/ios/chrome/browser/ui/ntp/whats_new_header_view.mm b/ios/chrome/browser/ui/ntp/whats_new_header_view.mm |
index 43c43f9eb203e3bb7b1fd27b03f14334525a89c1..0314b32c5f3a9072d68a36cd3f2492c371a30765 100644 |
--- a/ios/chrome/browser/ui/ntp/whats_new_header_view.mm |
+++ b/ios/chrome/browser/ui/ntp/whats_new_header_view.mm |
@@ -5,13 +5,16 @@ |
#import "ios/chrome/browser/ui/ntp/whats_new_header_view.h" |
#include "base/logging.h" |
-#include "base/mac/scoped_nsobject.h" |
#import "ios/chrome/browser/ui/uikit_ui_util.h" |
#include "ios/chrome/common/string_util.h" |
#include "ios/public/provider/chrome/browser/chrome_browser_provider.h" |
#include "ios/public/provider/chrome/browser/images/branded_image_provider.h" |
#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
const CGFloat kLabelTopMargin = 16; |
@@ -28,11 +31,11 @@ const int kLinkColorRgb = 0x5595FE; |
} // namespace |
@interface WhatsNewHeaderView () { |
- base::scoped_nsobject<UIImageView> _infoIconImageView; |
- base::scoped_nsobject<UILabel> _promoLabel; |
- base::scoped_nsobject<NSLayoutConstraint> _edgeConstraint; |
- base::scoped_nsobject<UIView> _leftSpacer; |
- base::scoped_nsobject<UIView> _rightSpacer; |
+ UIImageView* _infoIconImageView; |
+ UILabel* _promoLabel; |
+ NSLayoutConstraint* _edgeConstraint; |
+ UIView* _leftSpacer; |
+ UIView* _rightSpacer; |
CGFloat _sideMargin; |
} |
@@ -49,16 +52,15 @@ const int kLinkColorRgb = 0x5595FE; |
UIImage* infoIconImage = ios::GetChromeBrowserProvider() |
->GetBrandedImageProvider() |
->GetWhatsNewIconImage(WHATS_NEW_INFO); |
- _infoIconImageView.reset([[UIImageView alloc] initWithImage:infoIconImage]); |
- _promoLabel.reset([[[self class] promoLabel] retain]); |
+ _infoIconImageView = [[UIImageView alloc] initWithImage:infoIconImage]; |
+ _promoLabel = [[self class] promoLabel]; |
[_promoLabel setUserInteractionEnabled:YES]; |
- base::scoped_nsobject<UITapGestureRecognizer> promoTapRecognizer( |
- [[UITapGestureRecognizer alloc] |
- initWithTarget:self |
- action:@selector(promoButtonPressed)]); |
+ UITapGestureRecognizer* promoTapRecognizer = [[UITapGestureRecognizer alloc] |
+ initWithTarget:self |
+ action:@selector(promoButtonPressed)]; |
[_promoLabel addGestureRecognizer:promoTapRecognizer]; |
- _leftSpacer.reset([[UIView alloc] initWithFrame:CGRectZero]); |
- _rightSpacer.reset([[UIView alloc] initWithFrame:CGRectZero]); |
+ _leftSpacer = [[UIView alloc] initWithFrame:CGRectZero]; |
+ _rightSpacer = [[UIView alloc] initWithFrame:CGRectZero]; |
[_leftSpacer setHidden:YES]; |
[_rightSpacer setHidden:YES]; |
@@ -105,14 +107,14 @@ const int kLinkColorRgb = 0x5595FE; |
], |
views, metrics, self); |
- _edgeConstraint.reset([[NSLayoutConstraint |
+ _edgeConstraint = [NSLayoutConstraint |
constraintWithItem:_leftSpacer |
attribute:NSLayoutAttributeWidth |
relatedBy:NSLayoutRelationGreaterThanOrEqual |
toItem:nil |
attribute:NSLayoutAttributeNotAnAttribute |
multiplier:1 |
- constant:_sideMargin] retain]); |
+ constant:_sideMargin]; |
[self addConstraint:_edgeConstraint]; |
} |
[_edgeConstraint setConstant:_sideMargin]; |
@@ -136,13 +138,13 @@ const int kLinkColorRgb = 0x5595FE; |
[self setNeedsUpdateConstraints]; |
CGFloat maxLabelWidth = |
width - 2 * sideMargin - kInfoIconSize - kLabelLeftMargin; |
- [_promoLabel.get() setPreferredMaxLayoutWidth:maxLabelWidth]; |
+ [_promoLabel setPreferredMaxLayoutWidth:maxLabelWidth]; |
} |
- (void)promoButtonPressed { |
[_delegate onPromoLabelTapped]; |
[self removeConstraints:self.constraints]; |
- _edgeConstraint.reset(); |
+ _edgeConstraint = nil; |
} |
+ (void)setText:(NSString*)promoLabelText inPromoLabel:(UILabel*)promoLabel { |
@@ -153,8 +155,7 @@ const int kLinkColorRgb = 0x5595FE; |
DCHECK_NE(0u, linkRange.length); |
NSMutableAttributedString* attributedText = |
- [[[NSMutableAttributedString alloc] initWithString:strippedText] |
- autorelease]; |
+ [[NSMutableAttributedString alloc] initWithString:strippedText]; |
// Sets the styling to mimic a link. |
UIColor* linkColor = UIColorFromRGB(kLinkColorRgb, 1.0); |
@@ -170,8 +171,7 @@ const int kLinkColorRgb = 0x5595FE; |
// Sets the line spacing on the attributed string. |
NSInteger strLength = [strippedText length]; |
- base::scoped_nsobject<NSMutableParagraphStyle> style( |
- [[NSMutableParagraphStyle alloc] init]); |
+ NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init]; |
[style setLineSpacing:kLabelLineSpacing]; |
[attributedText addAttribute:NSParagraphStyleAttributeName |
value:style |
@@ -181,21 +181,20 @@ const int kLinkColorRgb = 0x5595FE; |
} |
+ (UILabel*)promoLabel { |
- base::scoped_nsobject<UILabel> promoLabel( |
- [[UILabel alloc] initWithFrame:CGRectZero]); |
+ UILabel* promoLabel = [[UILabel alloc] initWithFrame:CGRectZero]; |
[promoLabel |
setFont:[[MDCTypography fontLoader] regularFontOfSize:kLabelFontSize]]; |
[promoLabel setTextColor:UIColorFromRGB(kTextColorRgb, 1.0)]; |
[promoLabel setNumberOfLines:0]; |
[promoLabel setTextAlignment:NSTextAlignmentNatural]; |
[promoLabel setLineBreakMode:NSLineBreakByWordWrapping]; |
- return promoLabel.autorelease(); |
+ return promoLabel; |
} |
+ (int)heightToFitText:(NSString*)text inWidth:(CGFloat)width { |
CGFloat maxWidthForLabel = width - kInfoIconSize - kLabelLeftMargin; |
- base::scoped_nsobject<UILabel> promoLabel([[self promoLabel] retain]); |
- [[self class] setText:text inPromoLabel:promoLabel.get()]; |
+ UILabel* promoLabel = [self promoLabel]; |
+ [[self class] setText:text inPromoLabel:promoLabel]; |
CGFloat promoLabelHeight = |
[promoLabel sizeThatFits:CGSizeMake(maxWidthForLabel, CGFLOAT_MAX)] |
.height; |