| 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..19eb757327300a7d8fcb7fc4104e36a22207b44b 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;
|
| }
|
|
|
| + (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;
|
| }
|
|
|
| #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]|"
|
|
|