Index: ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm |
diff --git a/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm b/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm |
index 85c30c82f59d287464b09e76d1bba37cf16cc33a..22ca935ad3ef4f922fd9aa901510e437c2b37532 100644 |
--- a/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm |
+++ b/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm |
@@ -8,7 +8,6 @@ |
#include "base/auto_reset.h" |
#include "base/mac/foundation_util.h" |
-#import "base/mac/scoped_nsobject.h" |
#include "components/browser_sync/profile_sync_service.h" |
#include "components/google/core/browser/google_util.h" |
#include "components/signin/core/browser/account_tracker_service.h" |
@@ -52,6 +51,10 @@ |
#include "ui/base/l10n/l10n_util_mac.h" |
#include "url/gurl.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
// The a11y identifier of the view controller's view. |
NSString* const kSettingsSyncId = @"kSettingsSyncId"; |
// Notification when a switch account operation will start. |
@@ -95,7 +98,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
SyncSetupService* _syncSetupService; // Weak. |
std::unique_ptr<SyncObserverBridge> _syncObserver; |
std::unique_ptr<OAuth2TokenServiceObserverBridge> _tokenServiceObserver; |
- base::scoped_nsobject<AuthenticationFlow> _authenticationFlow; |
+ AuthenticationFlow* _authenticationFlow; |
// Whether switching sync account is allowed on the screen. |
BOOL _allowSwitchSyncAccount; |
// Whether an authentication operation is in progress (e.g switch accounts). |
@@ -104,11 +107,10 @@ typedef NS_ENUM(NSInteger, ItemType) { |
BOOL _ignoreSyncStateChanges; |
// Cache for Identity items avatar images. |
- base::scoped_nsobject<ResizedAvatarCache> _avatarCache; |
+ ResizedAvatarCache* _avatarCache; |
std::unique_ptr<ChromeIdentityServiceObserverBridge> _identityServiceObserver; |
// Enable lookup of item corresponding to a given identity GAIA ID string. |
- base::scoped_nsobject<NSDictionary<NSString*, CollectionViewItem*>> |
- _identityMap; |
+ NSDictionary<NSString*, CollectionViewItem*>* _identityMap; |
} |
// Stops observing browser state services. |
@@ -205,7 +207,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
_tokenServiceObserver.reset(new OAuth2TokenServiceObserverBridge( |
OAuth2TokenServiceFactory::GetForBrowserState(_browserState), self)); |
self.collectionViewAccessibilityIdentifier = kSettingsSyncId; |
- _avatarCache.reset([[ResizedAvatarCache alloc] init]); |
+ _avatarCache = [[ResizedAvatarCache alloc] init]; |
_identityServiceObserver.reset( |
new ChromeIdentityServiceObserverBridge(self)); |
[self loadModel]; |
@@ -264,11 +266,11 @@ typedef NS_ENUM(NSInteger, ItemType) { |
// Sync to Section. |
if ([self hasAccountsSection]) { |
NSMutableDictionary<NSString*, CollectionViewItem*>* mutableIdentityMap = |
- [[[NSMutableDictionary alloc] init] autorelease]; |
+ [[NSMutableDictionary alloc] init]; |
// Accounts section. Cells enabled if sync is on. |
[model addSectionWithIdentifier:SectionIdentifierSyncAccounts]; |
- CollectionViewTextItem* syncToHeader = [[[CollectionViewTextItem alloc] |
- initWithType:ItemTypeHeader] autorelease]; |
+ CollectionViewTextItem* syncToHeader = |
+ [[CollectionViewTextItem alloc] initWithType:ItemTypeHeader]; |
syncToHeader.text = l10n_util::GetNSString(IDS_IOS_SYNC_TO_TITLE); |
syncToHeader.textColor = [[MDCPalette greyPalette] tint500]; |
[model setHeader:syncToHeader |
@@ -288,13 +290,13 @@ typedef NS_ENUM(NSInteger, ItemType) { |
toSectionWithIdentifier:SectionIdentifierSyncAccounts]; |
[mutableIdentityMap setObject:accountItem forKey:identity.gaiaID]; |
} |
- _identityMap.reset([mutableIdentityMap retain]); |
+ _identityMap = mutableIdentityMap; |
} |
// Data Types to sync. Enabled if sync is on. |
[model addSectionWithIdentifier:SectionIdentifierSyncServices]; |
- CollectionViewTextItem* syncServicesHeader = [ |
- [[CollectionViewTextItem alloc] initWithType:ItemTypeHeader] autorelease]; |
+ CollectionViewTextItem* syncServicesHeader = |
+ [[CollectionViewTextItem alloc] initWithType:ItemTypeHeader]; |
syncServicesHeader.text = |
l10n_util::GetNSString(IDS_IOS_SYNC_DATA_TYPES_TITLE); |
syncServicesHeader.textColor = [[MDCPalette greyPalette] tint500]; |
@@ -333,8 +335,8 @@ typedef NS_ENUM(NSInteger, ItemType) { |
- (CollectionViewItem*)syncErrorItem { |
DCHECK([self shouldDisplaySyncError]); |
- CollectionViewAccountItem* syncErrorItem = [[[CollectionViewAccountItem alloc] |
- initWithType:ItemTypeSyncError] autorelease]; |
+ CollectionViewAccountItem* syncErrorItem = |
+ [[CollectionViewAccountItem alloc] initWithType:ItemTypeSyncError]; |
syncErrorItem.text = l10n_util::GetNSString(IDS_IOS_SYNC_ERROR_TITLE); |
syncErrorItem.image = [UIImage imageNamed:@"settings_error"]; |
syncErrorItem.detailText = |
@@ -344,8 +346,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
- (CollectionViewItem*)accountItem:(ChromeIdentity*)identity { |
CollectionViewAccountItem* identityAccountItem = |
- [[[CollectionViewAccountItem alloc] initWithType:ItemTypeAccount] |
- autorelease]; |
+ [[CollectionViewAccountItem alloc] initWithType:ItemTypeAccount]; |
[self updateAccountItem:identityAccountItem withIdentity:identity]; |
identityAccountItem.enabled = _syncSetupService->IsSyncEnabled(); |
@@ -386,7 +387,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
- (CollectionViewItem*)encryptionCellItem { |
TextAndErrorItem* encryptionCellItem = |
- [[[TextAndErrorItem alloc] initWithType:ItemTypeEncryption] autorelease]; |
+ [[TextAndErrorItem alloc] initWithType:ItemTypeEncryption]; |
encryptionCellItem.text = |
l10n_util::GetNSString(IDS_IOS_SYNC_ENCRYPTION_TITLE); |
encryptionCellItem.accessoryType = |
@@ -398,8 +399,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
- (CollectionViewItem*)manageSyncedDataItem { |
CollectionViewTextItem* manageSyncedDataItem = |
- [[[CollectionViewTextItem alloc] initWithType:ItemTypeManageSyncedData] |
- autorelease]; |
+ [[CollectionViewTextItem alloc] initWithType:ItemTypeManageSyncedData]; |
manageSyncedDataItem.text = |
l10n_util::GetNSString(IDS_IOS_SYNC_RESET_GOOGLE_DASHBOARD_NO_LINK); |
manageSyncedDataItem.accessibilityTraits |= UIAccessibilityTraitButton; |
@@ -411,8 +411,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
- (SyncSwitchItem*)switchItemWithType:(NSInteger)type |
title:(NSString*)title |
subTitle:(NSString*)detailText { |
- SyncSwitchItem* switchItem = |
- [[[SyncSwitchItem alloc] initWithType:type] autorelease]; |
+ SyncSwitchItem* switchItem = [[SyncSwitchItem alloc] initWithType:type]; |
switchItem.text = title; |
switchItem.detailText = detailText; |
return switchItem; |
@@ -496,8 +495,8 @@ typedef NS_ENUM(NSInteger, ItemType) { |
GURL learnMoreUrl = google_util::AppendGoogleLocaleParam( |
GURL(kSyncGoogleDashboardURL), |
GetApplicationContext()->GetApplicationLocale()); |
- base::scoped_nsobject<OpenUrlCommand> command( |
- [[OpenUrlCommand alloc] initWithURLFromChrome:learnMoreUrl]); |
+ OpenUrlCommand* command = |
+ [[OpenUrlCommand alloc] initWithURLFromChrome:learnMoreUrl]; |
[command setTag:IDC_CLOSE_SETTINGS_AND_OPEN_URL]; |
[self chromeExecuteCommand:command]; |
break; |
@@ -591,9 +590,8 @@ typedef NS_ENUM(NSInteger, ItemType) { |
return; |
} |
- base::scoped_nsobject<GenericChromeCommand> command( |
- [ios_internal::sync::GetSyncCommandForBrowserState(_browserState) |
- retain]); |
+ GenericChromeCommand* command = |
+ ios_internal::sync::GetSyncCommandForBrowserState(_browserState); |
[self chromeExecuteCommand:command]; |
} |
@@ -608,21 +606,21 @@ typedef NS_ENUM(NSInteger, ItemType) { |
object:self]; |
[self preventUserInteraction]; |
DCHECK(!_authenticationFlow); |
- _authenticationFlow.reset([[AuthenticationFlow alloc] |
+ _authenticationFlow = [[AuthenticationFlow alloc] |
initWithBrowserState:_browserState |
identity:identity |
shouldClearData:SHOULD_CLEAR_DATA_USER_CHOICE |
postSignInAction:postSignInAction |
- presentingViewController:self]); |
+ presentingViewController:self]; |
- base::WeakNSObject<SyncSettingsCollectionViewController> weakSelf(self); |
+ __weak SyncSettingsCollectionViewController* weakSelf = self; |
[_authenticationFlow startSignInWithCompletion:^(BOOL success) { |
[weakSelf didSwitchAccountWithSuccess:success]; |
}]; |
} |
- (void)didSwitchAccountWithSuccess:(BOOL)success { |
- _authenticationFlow.reset(); |
+ _authenticationFlow = nil; |
[self allowUserInteraction]; |
[[NSNotificationCenter defaultCenter] |
postNotificationName:kSwitchAccountDidFinishNotification |
@@ -691,16 +689,15 @@ typedef NS_ENUM(NSInteger, ItemType) { |
[self shouldDisableSettingsOnSyncError]) |
return; |
- base::scoped_nsobject<UIViewController> controllerToPush; |
+ UIViewController* controllerToPush; |
// If there was a sync error, prompt the user to enter the passphrase. |
// Otherwise, show the full encryption options. |
if (syncService->IsPassphraseRequired()) { |
- controllerToPush.reset( |
- [[SyncEncryptionPassphraseCollectionViewController alloc] |
- initWithBrowserState:_browserState]); |
+ controllerToPush = [[SyncEncryptionPassphraseCollectionViewController alloc] |
+ initWithBrowserState:_browserState]; |
} else { |
- controllerToPush.reset([[SyncEncryptionCollectionViewController alloc] |
- initWithBrowserState:_browserState]); |
+ controllerToPush = [[SyncEncryptionCollectionViewController alloc] |
+ initWithBrowserState:_browserState]; |
} |
[self.navigationController pushViewController:controllerToPush animated:YES]; |
} |
@@ -708,7 +705,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
#pragma mark Updates |
- (void)updateCollectionView { |
- base::WeakNSObject<SyncSettingsCollectionViewController> weakSelf(self); |
+ __weak SyncSettingsCollectionViewController* weakSelf = self; |
[self.collectionView performBatchUpdates:^{ |
[weakSelf updateCollectionViewInternal]; |
} |
@@ -731,8 +728,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
sectionForSectionIdentifier:SectionIdentifierSyncAccounts]; |
NSInteger itemsCount = |
[self.collectionViewModel numberOfItemsInSection:section]; |
- NSMutableArray* accountsToReconfigure = |
- [[[NSMutableArray alloc] init] autorelease]; |
+ NSMutableArray* accountsToReconfigure = [[NSMutableArray alloc] init]; |
for (NSInteger item = 0; item < itemsCount; ++item) { |
NSIndexPath* indexPath = [self.collectionViewModel |
indexPathForItemType:ItemTypeAccount |
@@ -763,8 +759,7 @@ typedef NS_ENUM(NSInteger, ItemType) { |
NSInteger itemsCount = |
[self.collectionViewModel numberOfItemsInSection:section]; |
// Syncable data types cells are offset by the Sync Everything cell. |
- NSMutableArray* switchsToReconfigure = |
- [[[NSMutableArray alloc] init] autorelease]; |
+ NSMutableArray* switchsToReconfigure = [[NSMutableArray alloc] init]; |
for (NSInteger item = 1; item < itemsCount; ++item) { |
NSUInteger index = item - 1; |
NSIndexPath* indexPath = [self.collectionViewModel |