Index: ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.mm |
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.mm |
index 6f6de34a3300c6db95cfe840e7e2d698805452df..3a959b0a37f9a5141a71c83a93be13e659a10734 100644 |
--- a/ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.mm |
+++ b/ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.mm |
@@ -8,11 +8,9 @@ |
#include "base/auto_reset.h" |
#include "base/i18n/rtl.h" |
-#import "base/ios/weak_nsobject.h" |
#include "base/logging.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_node.h" |
@@ -35,6 +33,10 @@ |
#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 |
+ |
using bookmarks::BookmarkNode; |
namespace { |
@@ -55,8 +57,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
BookmarkModelBridgeObserver, |
BookmarkTextFieldItemDelegate> { |
std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; |
- base::mac::ObjCPropertyReleaser |
- _propertyReleaser_BookmarkFolderEditorViewController; |
+ |
// Flag to ignore bookmark model Move notifications when the move is performed |
// by this class. |
BOOL _ignoresOwnMove; |
@@ -65,14 +66,14 @@ typedef NS_ENUM(NSInteger, ItemType) { |
@property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; |
@property(nonatomic, assign) ios::ChromeBrowserState* browserState; |
@property(nonatomic, assign) const BookmarkNode* folder; |
-@property(nonatomic, retain) BookmarkFolderViewController* folderViewController; |
+@property(nonatomic, strong) BookmarkFolderViewController* folderViewController; |
@property(nonatomic, assign) const BookmarkNode* parentFolder; |
-@property(nonatomic, assign) UIBarButtonItem* doneItem; |
-@property(nonatomic, retain) BookmarkTextFieldItem* titleItem; |
-@property(nonatomic, retain) BookmarkParentFolderItem* parentFolderItem; |
+@property(nonatomic, weak) UIBarButtonItem* doneItem; |
+@property(nonatomic, strong) BookmarkTextFieldItem* titleItem; |
+@property(nonatomic, strong) BookmarkParentFolderItem* parentFolderItem; |
// Bottom toolbar with DELETE button that only appears when the edited folder |
// allows deletion. |
-@property(nonatomic, assign) BookmarksElevatedToolbar* toolbar; |
+@property(nonatomic, weak) BookmarksElevatedToolbar* toolbar; |
// |bookmarkModel| must not be NULL and must be loaded. |
- (instancetype)initWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
@@ -113,12 +114,12 @@ typedef NS_ENUM(NSInteger, ItemType) { |
+ (instancetype) |
folderCreatorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
parentFolder:(const BookmarkNode*)parentFolder { |
- base::scoped_nsobject<BookmarkFolderEditorViewController> folderCreator( |
- [[self alloc] initWithBookmarkModel:bookmarkModel]); |
- folderCreator.get().parentFolder = parentFolder; |
- folderCreator.get().folder = NULL; |
- folderCreator.get().editingExistingFolder = NO; |
- return folderCreator.autorelease(); |
+ BookmarkFolderEditorViewController* folderCreator = |
+ [[self alloc] initWithBookmarkModel:bookmarkModel]; |
+ folderCreator.parentFolder = parentFolder; |
+ folderCreator.folder = NULL; |
+ folderCreator.editingExistingFolder = NO; |
+ return folderCreator = nil; |
} |
+ (instancetype) |
@@ -128,13 +129,13 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
DCHECK(folder); |
DCHECK(!bookmarkModel->is_permanent_node(folder)); |
DCHECK(browserState); |
- base::scoped_nsobject<BookmarkFolderEditorViewController> folderEditor( |
- [[self alloc] initWithBookmarkModel:bookmarkModel]); |
- folderEditor.get().parentFolder = folder->parent(); |
- folderEditor.get().folder = folder; |
- folderEditor.get().browserState = browserState; |
- folderEditor.get().editingExistingFolder = YES; |
- return folderEditor.autorelease(); |
+ BookmarkFolderEditorViewController* folderEditor = |
+ [[self alloc] initWithBookmarkModel:bookmarkModel]; |
+ folderEditor.parentFolder = folder->parent(); |
+ folderEditor.folder = folder; |
+ folderEditor.browserState = browserState; |
+ folderEditor.editingExistingFolder = YES; |
+ return folderEditor = nil; |
} |
#pragma mark - Initialization |
@@ -144,8 +145,6 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
DCHECK(bookmarkModel->loaded()); |
self = [super initWithStyle:CollectionViewControllerStyleAppBar]; |
if (self) { |
- _propertyReleaser_BookmarkFolderEditorViewController.Init( |
- self, [BookmarkFolderEditorViewController class]); |
_bookmarkModel = bookmarkModel; |
// Set up the bookmark model oberver. |
@@ -163,7 +162,6 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
- (void)dealloc { |
_titleItem.delegate = nil; |
_folderViewController.delegate = nil; |
- [super dealloc]; |
} |
#pragma mark - UIViewController |
@@ -173,13 +171,13 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
self.collectionView.backgroundColor = [UIColor whiteColor]; |
// Add Done button. |
- base::scoped_nsobject<UIBarButtonItem> doneItem([[UIBarButtonItem alloc] |
+ UIBarButtonItem* doneItem = [[UIBarButtonItem alloc] |
initWithTitle:l10n_util::GetNSString( |
IDS_IOS_BOOKMARK_EDIT_MODE_EXIT_MOBILE) |
style:UIBarButtonItemStylePlain |
target:self |
- action:@selector(saveFolder)]); |
- doneItem.get().accessibilityIdentifier = @"Save"; |
+ action:@selector(saveFolder)]; |
+ doneItem.accessibilityIdentifier = @"Save"; |
self.navigationItem.rightBarButtonItem = doneItem; |
self.doneItem = doneItem; |
@@ -273,14 +271,14 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
std::set<const BookmarkNode*> editedNodes; |
if (self.folder) |
editedNodes.insert(self.folder); |
- base::scoped_nsobject<BookmarkFolderViewController> folderViewController( |
+ BookmarkFolderViewController* folderViewController = |
[[BookmarkFolderViewController alloc] |
initWithBookmarkModel:self.bookmarkModel |
allowsNewFolders:NO |
editedNodes:editedNodes |
allowsCancel:NO |
- selectedFolder:self.parentFolder]); |
- folderViewController.get().delegate = self; |
+ selectedFolder:self.parentFolder]; |
+ folderViewController.delegate = self; |
self.folderViewController = folderViewController; |
[self.navigationController pushViewController:folderViewController |
@@ -442,23 +440,23 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
[self.collectionViewModel addSectionWithIdentifier:SectionIdentifierInfo]; |
- base::scoped_nsobject<BookmarkTextFieldItem> titleItem( |
- [[BookmarkTextFieldItem alloc] initWithType:ItemTypeFolderTitle]); |
- titleItem.get().text = |
+ BookmarkTextFieldItem* titleItem = |
+ [[BookmarkTextFieldItem alloc] initWithType:ItemTypeFolderTitle]; |
+ titleItem.text = |
(self.folder) |
? bookmark_utils_ios::TitleForBookmarkNode(self.folder) |
: l10n_util::GetNSString(IDS_IOS_BOOKMARK_NEW_GROUP_DEFAULT_NAME); |
- titleItem.get().placeholder = |
+ titleItem.placeholder = |
l10n_util::GetNSString(IDS_IOS_BOOKMARK_NEW_EDITOR_NAME_LABEL); |
- titleItem.get().accessibilityIdentifier = @"Title"; |
+ titleItem.accessibilityIdentifier = @"Title"; |
[self.collectionViewModel addItem:titleItem |
toSectionWithIdentifier:SectionIdentifierInfo]; |
- titleItem.get().delegate = self; |
+ titleItem.delegate = self; |
self.titleItem = titleItem; |
- base::scoped_nsobject<BookmarkParentFolderItem> parentFolderItem( |
- [[BookmarkParentFolderItem alloc] initWithType:ItemTypeParentFolder]); |
- parentFolderItem.get().title = |
+ BookmarkParentFolderItem* parentFolderItem = |
+ [[BookmarkParentFolderItem alloc] initWithType:ItemTypeParentFolder]; |
+ parentFolderItem.title = |
bookmark_utils_ios::TitleForBookmarkNode(self.parentFolder); |
[self.collectionViewModel addItem:parentFolderItem |
toSectionWithIdentifier:SectionIdentifierInfo]; |
@@ -467,26 +465,24 @@ folderEditorWithBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel |
- (void)addToolbar { |
// Add bottom toolbar with Delete button. |
- base::scoped_nsobject<BookmarksElevatedToolbar> buttonBar( |
- [[BookmarksElevatedToolbar alloc] init]); |
- base::scoped_nsobject<UIBarButtonItem> deleteItem([[UIBarButtonItem alloc] |
+ BookmarksElevatedToolbar* buttonBar = [[BookmarksElevatedToolbar alloc] init]; |
+ UIBarButtonItem* deleteItem = [[UIBarButtonItem alloc] |
initWithTitle:l10n_util::GetNSString(IDS_IOS_BOOKMARK_GROUP_DELETE) |
style:UIBarButtonItemStylePlain |
target:self |
- action:@selector(deleteFolder)]); |
- deleteItem.get().accessibilityIdentifier = @"Delete Folder"; |
+ action:@selector(deleteFolder)]; |
+ deleteItem.accessibilityIdentifier = @"Delete Folder"; |
[deleteItem setTitleTextAttributes:@{ |
NSForegroundColorAttributeName : [UIColor blackColor] |
} |
forState:UIControlStateNormal]; |
- [buttonBar.get().layer |
- addSublayer:[[[MDCShadowLayer alloc] init] autorelease]]; |
- buttonBar.get().shadowElevation = MDCShadowElevationSearchBarResting; |
- buttonBar.get().items = @[ deleteItem ]; |
+ [buttonBar.layer addSublayer:[[MDCShadowLayer alloc] init]]; |
+ buttonBar.shadowElevation = MDCShadowElevationSearchBarResting; |
+ buttonBar.items = @[ deleteItem ]; |
[self.view addSubview:buttonBar]; |
// Constraint |buttonBar| to be in bottom. |
- buttonBar.get().translatesAutoresizingMaskIntoConstraints = NO; |
+ buttonBar.translatesAutoresizingMaskIntoConstraints = NO; |
[self.view addConstraints: |
[NSLayoutConstraint |
constraintsWithVisualFormat:@"H:|[buttonBar]|" |