| Index: ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm b/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| index e342f092a4d743ec0c3ae614a2943f93f13a33f2..01654b9867960432c4225d6ff1c66d7ce0d16cdb 100644
|
| --- a/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| +++ b/ios/chrome/browser/ui/bookmarks/bookmark_collection_view.mm
|
| @@ -9,11 +9,8 @@
|
| #include <map>
|
| #include <memory>
|
|
|
| -#include "base/ios/weak_nsobject.h"
|
| #include "base/mac/bind_objc_block.h"
|
| #include "base/mac/foundation_util.h"
|
| -#include "base/mac/objc_property_releaser.h"
|
| -#include "base/mac/scoped_nsobject.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "components/bookmarks/browser/bookmark_model.h"
|
| #include "components/bookmarks/browser/bookmark_model_observer.h"
|
| @@ -34,6 +31,10 @@
|
| #include "skia/ext/skia_utils_ios.h"
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| using bookmarks::BookmarkNode;
|
|
|
| namespace {
|
| @@ -62,8 +63,6 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge;
|
| ios::ChromeBrowserState* _browserState;
|
|
|
| - base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkCollectionView;
|
| -
|
| // Map of favicon load tasks for each index path. Used to keep track of
|
| // pending favicon load operations so that they can be cancelled upon cell
|
| // reuse. Keys are (section, item) pairs of cell index paths.
|
| @@ -75,16 +74,16 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| // Redefined to be readwrite.
|
| @property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel;
|
| // Redefined to be readwrite.
|
| -@property(nonatomic, retain) UICollectionView* collectionView;
|
| +@property(nonatomic, strong) UICollectionView* collectionView;
|
| // Redefined to be readwrite.
|
| @property(nonatomic, assign) BOOL editing;
|
| // Detects a long press on a cell.
|
| -@property(nonatomic, retain) UILongPressGestureRecognizer* longPressRecognizer;
|
| +@property(nonatomic, strong) UILongPressGestureRecognizer* longPressRecognizer;
|
| // Background view of the collection view shown when there is no items.
|
| -@property(nonatomic, retain)
|
| +@property(nonatomic, strong)
|
| BookmarkCollectionViewBackground* emptyCollectionBackgroundView;
|
| // Shadow to display over the content.
|
| -@property(nonatomic, retain) UIView* shadow;
|
| +@property(nonatomic, strong) UIView* shadow;
|
|
|
| // Updates the editing state for the cell.
|
| - (void)updateEditingStateOfCell:(BookmarkCell*)cell
|
| @@ -137,9 +136,6 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| frame:(CGRect)frame {
|
| self = [super initWithFrame:frame];
|
| if (self) {
|
| - _propertyReleaser_BookmarkCollectionView.Init(
|
| - self, [BookmarkCollectionView class]);
|
| -
|
| _browserState = browserState;
|
|
|
| // Set up connection to the BookmarkModel.
|
| @@ -170,17 +166,16 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| [moi self];
|
| });
|
| _faviconTaskTracker.TryCancelAll();
|
| - [super dealloc];
|
| }
|
|
|
| - (void)setupViews {
|
| self.backgroundColor = bookmark_utils_ios::mainBackgroundColor();
|
| - base::scoped_nsobject<UICollectionViewFlowLayout> layout(
|
| - [[UICollectionViewFlowLayout alloc] init]);
|
| + UICollectionViewFlowLayout* layout =
|
| + [[UICollectionViewFlowLayout alloc] init];
|
|
|
| - base::scoped_nsobject<UICollectionView> collectionView(
|
| + UICollectionView* collectionView =
|
| [[UICollectionView alloc] initWithFrame:self.bounds
|
| - collectionViewLayout:layout]);
|
| + collectionViewLayout:layout];
|
| self.collectionView = collectionView;
|
| self.collectionView.backgroundColor = [UIColor clearColor];
|
| self.collectionView.autoresizingMask =
|
| @@ -205,9 +200,8 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| [self addSubview:self.collectionView];
|
|
|
| // Set up the background view shown when the collection is empty.
|
| - base::scoped_nsobject<BookmarkCollectionViewBackground>
|
| - emptyCollectionBackgroundView(
|
| - [[BookmarkCollectionViewBackground alloc] initWithFrame:CGRectZero]);
|
| + BookmarkCollectionViewBackground* emptyCollectionBackgroundView =
|
| + [[BookmarkCollectionViewBackground alloc] initWithFrame:CGRectZero];
|
| self.emptyCollectionBackgroundView = emptyCollectionBackgroundView;
|
| self.emptyCollectionBackgroundView.autoresizingMask =
|
| UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
| @@ -219,11 +213,9 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
|
|
| [self updateShadow];
|
|
|
| - self.longPressRecognizer =
|
| - base::scoped_nsobject<UILongPressGestureRecognizer>(
|
| - [[UILongPressGestureRecognizer alloc]
|
| - initWithTarget:self
|
| - action:@selector(longPress:)]);
|
| + self.longPressRecognizer = [[UILongPressGestureRecognizer alloc]
|
| + initWithTarget:self
|
| + action:@selector(longPress:)];
|
| self.longPressRecognizer.delegate = self;
|
| [self.collectionView addGestureRecognizer:self.longPressRecognizer];
|
| }
|
| @@ -240,10 +232,9 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| self.shadow =
|
| bookmark_utils_ios::dropShadowWithWidth(CGRectGetWidth(self.bounds));
|
| } else {
|
| - self.shadow = [[[UIView alloc]
|
| + self.shadow = [[UIView alloc]
|
| initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds),
|
| - 1 / [[UIScreen mainScreen] scale])]
|
| - autorelease];
|
| + 1 / [[UIScreen mainScreen] scale])];
|
| self.shadow.backgroundColor = [UIColor colorWithWhite:0.0 alpha:.12];
|
| }
|
|
|
| @@ -486,12 +477,12 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| [self cancelLoadingFaviconAtIndexPath:indexPath];
|
|
|
| // Start loading a favicon.
|
| - base::WeakNSObject<BookmarkCollectionView> weakSelf(self);
|
| + __weak BookmarkCollectionView* weakSelf = self;
|
| const bookmarks::BookmarkNode* node = [self nodeAtIndexPath:indexPath];
|
| GURL blockURL(node->url());
|
| void (^faviconBlock)(const favicon_base::LargeIconResult&) = ^(
|
| const favicon_base::LargeIconResult& result) {
|
| - base::scoped_nsobject<BookmarkCollectionView> strongSelf([weakSelf retain]);
|
| + BookmarkCollectionView* strongSelf = weakSelf;
|
| if (!strongSelf)
|
| return;
|
| UIImage* favIcon = nil;
|
| @@ -499,8 +490,7 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| UIColor* textColor = nil;
|
| NSString* fallbackText = nil;
|
| if (result.bitmap.is_valid()) {
|
| - scoped_refptr<base::RefCountedMemory> data =
|
| - result.bitmap.bitmap_data.get();
|
| + scoped_refptr<base::RefCountedMemory> data = result.bitmap.bitmap_data;
|
| favIcon = [UIImage imageWithData:[NSData dataWithBytes:data->front()
|
| length:data->size()]];
|
| } else if (result.fallback_icon_style) {
|
| @@ -527,7 +517,7 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| base::CancelableTaskTracker::TaskId taskId =
|
| IOSChromeLargeIconServiceFactory::GetForBrowserState(self.browserState)
|
| ->GetLargeIconOrFallbackStyle(node->url(), minSize, preferredSize,
|
| - base::BindBlock(faviconBlock),
|
| + base::BindBlockArc(faviconBlock),
|
| &_faviconTaskTracker);
|
| _faviconLoadTasks[IntegerPair(indexPath.section, indexPath.item)] = taskId;
|
| }
|
| @@ -701,8 +691,7 @@ const NSTimeInterval kShowEmptyBookmarksBackgroundRefreshDelay = 1.0;
|
| UICollectionViewCell* cell =
|
| [self.collectionView cellForItemAtIndexPath:indexPath];
|
| if (!cell) {
|
| - cell = [[[BookmarkPromoCell alloc] initWithFrame:estimatedFrame]
|
| - autorelease];
|
| + cell = [[BookmarkPromoCell alloc] initWithFrame:estimatedFrame];
|
| }
|
| cell.frame = estimatedFrame;
|
| [cell layoutIfNeeded];
|
|
|