Index: ios/chrome/browser/ui/bookmarks/bookmark_collection_cells.mm |
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_collection_cells.mm b/ios/chrome/browser/ui/bookmarks/bookmark_collection_cells.mm |
index 38ea80526f47f812abd7a0d07f0106af33e32ee6..315ceedc82523c4487b4fe73e70dd33c232b90ad 100644 |
--- a/ios/chrome/browser/ui/bookmarks/bookmark_collection_cells.mm |
+++ b/ios/chrome/browser/ui/bookmarks/bookmark_collection_cells.mm |
@@ -7,8 +7,7 @@ |
#import <QuartzCore/QuartzCore.h> |
#include "base/logging.h" |
-#include "base/mac/objc_property_releaser.h" |
-#include "base/mac/scoped_nsobject.h" |
+ |
#import "ios/chrome/browser/ui/bookmarks/bookmark_extended_button.h" |
#import "ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.h" |
#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" |
@@ -22,38 +21,37 @@ |
#import "ui/gfx/ios/NSString+CrStringDrawing.h" |
#include "url/gurl.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
const CGFloat kBookmarkItemCellDefaultImageSize = 40.0; |
const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
} // namespace |
-@interface BookmarkCell () { |
- @protected |
- // Subclasses should set these in the constructor with the wanted values. |
- CGFloat _imageSize; |
- |
- @private |
- base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkCell; |
-} |
+@interface BookmarkCell () |
// Redefined to be read-write. |
-@property(nonatomic, retain) UILabel* titleLabel; |
+@property(nonatomic, strong) UILabel* titleLabel; |
// Redefined to readwrite. |
-@property(nonatomic, retain) UIImageView* imageView; |
+@property(nonatomic, strong) UIImageView* imageView; |
// Label to show placeholder text when there is no image displayed. |
-@property(nonatomic, retain) UILabel* placeholderLabel; |
+@property(nonatomic, strong) UILabel* placeholderLabel; |
// When the cell is selected for editing, a cover is shown with a blue color. |
// Subclasses should insert new views below this view. |
-@property(nonatomic, retain) UIView* highlightCover; |
+@property(nonatomic, strong) UIView* highlightCover; |
// Lists the accessibility elements that are to be seen by UIAccessibility. |
@property(nonatomic, readonly) NSMutableArray* accessibilityElements; |
// Location of the last touch on the cell. |
@property(nonatomic, assign) CGPoint touchLocation; |
// The view doing the highlight animation. Only set while the cell is |
// highlighted. |
-@property(nonatomic, retain) MDCInkView* touchFeedbackView; |
-@property(nonatomic, retain) BookmarkExtendedButton* button; |
+@property(nonatomic, strong) MDCInkView* touchFeedbackView; |
+@property(nonatomic, strong) BookmarkExtendedButton* button; |
@property(nonatomic, assign) SEL buttonAction; |
-@property(nonatomic, assign) id buttonTarget; |
+@property(nonatomic, weak) id buttonTarget; |
+// Side of a square image. Subclasses should set this to desired size. |
+@property(nonatomic, assign) CGFloat imageSize; |
@end |
@implementation BookmarkCell |
@@ -68,6 +66,7 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
@synthesize buttonAction = _buttonAction; |
@synthesize buttonTarget = _buttonTarget; |
@synthesize placeholderLabel = _placeholderLabel; |
+@synthesize imageSize = _imageSize; |
+ (NSString*)reuseIdentifier { |
NOTREACHED(); |
@@ -77,7 +76,6 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
- (instancetype)initWithFrame:(CGRect)frame { |
self = [super initWithFrame:frame]; |
if (self) { |
- _propertyReleaser_BookmarkCell.Init(self, [BookmarkCell class]); |
self.exclusiveTouch = YES; |
self.backgroundColor = [UIColor whiteColor]; |
@@ -102,8 +100,7 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
_highlightCover.translatesAutoresizingMaskIntoConstraints = NO; |
[self.contentView addSubview:_highlightCover]; |
- self.button = base::scoped_nsobject<BookmarkExtendedButton>( |
- [[BookmarkExtendedButton alloc] init]); |
+ self.button = [[BookmarkExtendedButton alloc] init]; |
self.button.contentMode = UIViewContentModeCenter; |
self.button.backgroundColor = [UIColor clearColor]; |
[self.button addTarget:self |
@@ -127,7 +124,7 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
} |
- (void)updateConstraints { |
- if (_imageSize) { |
+ if (self.imageSize) { |
// Create constraints. |
// Align all the views on the same horizontal line. |
@@ -152,10 +149,10 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
@"highlight" : self.highlightCover |
}, |
@{ |
- @"buttonSize" : [NSNumber numberWithFloat:32.0], |
- @"leadingImageMargin" : [NSNumber numberWithFloat:16.0], |
- @"leadingMargin" : [NSNumber numberWithFloat:64.0], |
- @"imageSize" : [NSNumber numberWithFloat:_imageSize], |
+ @"buttonSize" :@32.0, |
+ @"leadingImageMargin" : @16.0, |
+ @"leadingMargin" : @64.0, |
+ @"imageSize" : @(self.imageSize), |
}, |
self.contentView); |
// clang-format on |
@@ -247,8 +244,8 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
if (highlighted) { |
// Creates an ink feedback and animates it. |
- base::scoped_nsobject<MDCInkView> touchFeedbackView( |
- [[MDCInkView alloc] initWithFrame:self.bounds]); |
+ MDCInkView* touchFeedbackView = |
+ [[MDCInkView alloc] initWithFrame:self.bounds]; |
[self addSubview:touchFeedbackView]; |
self.touchFeedbackView = touchFeedbackView; |
[self.touchFeedbackView startTouchBeganAnimationAtPoint:self.touchLocation |
@@ -272,9 +269,12 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
} |
- (void)buttonTapped:(id)target { |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks" |
[self.buttonTarget performSelector:self.buttonAction |
withObject:self |
withObject:target]; |
+#pragma clang diagnostic pop |
} |
- (void)showButtonOfType:(bookmark_cell::ButtonType)buttonType |
@@ -355,11 +355,6 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
#pragma mark - BookmarkItemCell |
-@interface BookmarkItemCell () { |
- base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkItemCell; |
-} |
-@end |
- |
@implementation BookmarkItemCell |
+ (NSString*)reuseIdentifier { |
@@ -373,15 +368,13 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
- (instancetype)initWithFrame:(CGRect)frame { |
self = [super initWithFrame:frame]; |
if (self) { |
- _propertyReleaser_BookmarkItemCell.Init(self, [BookmarkItemCell class]); |
- |
// Set the non-layout properties of the titles. |
UIFont* font = [MDCTypography subheadFont]; |
self.titleLabel.font = font; |
self.titleLabel.backgroundColor = [UIColor clearColor]; |
self.titleLabel.numberOfLines = 1; |
- _imageSize = kBookmarkItemCellDefaultImageSize; |
+ self.imageSize = kBookmarkItemCellDefaultImageSize; |
} |
return self; |
} |
@@ -406,13 +399,6 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
@end |
#pragma mark - BookmarkFolderCell |
- |
-@interface BookmarkFolderCell () { |
- base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkFolderCell; |
-} |
- |
-@end |
- |
@implementation BookmarkFolderCell |
+ (NSString*)reuseIdentifier { |
@@ -422,12 +408,10 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
- (instancetype)initWithFrame:(CGRect)frame { |
self = [super initWithFrame:frame]; |
if (self) { |
- _propertyReleaser_BookmarkFolderCell.Init(self, [BookmarkFolderCell class]); |
- |
self.imageView.image = [UIImage imageNamed:@"bookmark_gray_folder"]; |
self.titleLabel.font = [MDCTypography subheadFont]; |
- _imageSize = kBookmarkFolderCellDefaultImageSize; |
+ self.imageSize = kBookmarkFolderCellDefaultImageSize; |
} |
return self; |
} |
@@ -448,14 +432,13 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
#pragma mark - BookmarkHeaderView |
-@interface BookmarkHeaderView () { |
- base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkHeaderView; |
-} |
-@property(nonatomic, retain) UILabel* titleLabel; |
+@interface BookmarkHeaderView () |
+@property(nonatomic, strong) UILabel* titleLabel; |
@end |
@implementation BookmarkHeaderView |
@synthesize titleLabel = _titleLabel; |
+ |
+ (NSString*)reuseIdentifier { |
return @"BookmarkHeaderView"; |
} |
@@ -467,9 +450,7 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
- (instancetype)initWithFrame:(CGRect)frame { |
self = [super initWithFrame:frame]; |
if (self) { |
- _propertyReleaser_BookmarkHeaderView.Init(self, [BookmarkHeaderView class]); |
- base::scoped_nsobject<UILabel> titleLabel( |
- [[UILabel alloc] initWithFrame:CGRectZero]); |
+ UILabel* titleLabel = [[UILabel alloc] initWithFrame:CGRectZero]; |
self.titleLabel = titleLabel; |
UIFont* font = [MDCTypography body2Font]; |
self.titleLabel.font = font; |
@@ -507,11 +488,9 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
#pragma mark - BookmarkHeaderSeparatorView |
-@interface BookmarkHeaderSeparatorView () { |
- base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkHeaderSeparatorView; |
-} |
+@interface BookmarkHeaderSeparatorView () |
// The bottom separator line. |
-@property(nonatomic, retain) UIView* lineView; |
+@property(nonatomic, strong) UIView* lineView; |
@end |
@implementation BookmarkHeaderSeparatorView |
@@ -529,8 +508,6 @@ const CGFloat kBookmarkFolderCellDefaultImageSize = 24.0; |
- (instancetype)initWithFrame:(CGRect)frame { |
self = [super initWithFrame:frame]; |
if (self) { |
- _propertyReleaser_BookmarkHeaderSeparatorView.Init( |
- self, [BookmarkHeaderSeparatorView class]); |
_lineView = [[UIView alloc] init]; |
_lineView.backgroundColor = bookmark_utils_ios::separatorColor(); |
[self addSubview:_lineView]; |