| Index: ios/chrome/browser/ui/settings/native_apps_collection_view_controller.mm
|
| diff --git a/ios/chrome/browser/ui/settings/native_apps_collection_view_controller.mm b/ios/chrome/browser/ui/settings/native_apps_collection_view_controller.mm
|
| index 2ec5fb3b81f8d997a2f67a08c783563ff86c2f18..68602f5d12ed963218e85afbbdeed9b2cd38bc6d 100644
|
| --- a/ios/chrome/browser/ui/settings/native_apps_collection_view_controller.mm
|
| +++ b/ios/chrome/browser/ui/settings/native_apps_collection_view_controller.mm
|
| @@ -7,10 +7,8 @@
|
|
|
| #import <StoreKit/StoreKit.h>
|
|
|
| -#import "base/ios/weak_nsobject.h"
|
| #include "base/logging.h"
|
| #import "base/mac/foundation_util.h"
|
| -#import "base/mac/scoped_nsobject.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/metrics/user_metrics.h"
|
| @@ -35,6 +33,10 @@
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "url/gurl.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| const NSInteger kTagShift = 1000;
|
|
|
| namespace {
|
| @@ -54,7 +56,7 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| @interface NativeAppsCollectionViewController ()<
|
| SKStoreProductViewControllerDelegate> {
|
| std::unique_ptr<image_fetcher::IOSImageDataFetcherWrapper> _imageFetcher;
|
| - base::scoped_nsobject<NSArray> _nativeAppsInSettings;
|
| + NSArray* _nativeAppsInSettings;
|
| BOOL _userDidSomething;
|
| }
|
|
|
| @@ -62,7 +64,7 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| @property(nonatomic, copy) NSArray* appsInSettings;
|
|
|
| // Delegate for App-Store-related operations.
|
| -@property(nonatomic, assign) id<StoreKitLauncher> storeKitLauncher;
|
| +@property(nonatomic, weak) id<StoreKitLauncher> storeKitLauncher;
|
|
|
| // Sets up the list of visible apps based on |nativeAppWhitelistManager|, which
|
| // serves as datasource for this controller. Apps from
|
| @@ -117,7 +119,6 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| [[InstallationNotifier sharedInstance] unregisterForNotifications:self];
|
| if (!_userDidSomething)
|
| [self recordUserAction:settings::kNativeAppsActionDidNothing];
|
| - [super dealloc];
|
| }
|
|
|
| #pragma mark - View lifecycle
|
| @@ -213,17 +214,17 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| NativeAppItem* appItem = base::mac::ObjCCastStrict<NativeAppItem>(item);
|
| if (!appItem.icon) {
|
| // Fetch the real icon.
|
| - base::WeakNSObject<NativeAppsCollectionViewController> weakSelf(self);
|
| + __weak NativeAppsCollectionViewController* weakSelf = self;
|
| id<NativeAppMetadata> metadata = [self nativeAppAtIndex:indexPath.item];
|
| [metadata fetchSmallIconWithImageFetcher:_imageFetcher.get()
|
| completionBlock:^(UIImage* image) {
|
| - base::scoped_nsobject<
|
| - NativeAppsCollectionViewController>
|
| - strongSelf([weakSelf retain]);
|
| +
|
| + NativeAppsCollectionViewController* strongSelf =
|
| + weakSelf;
|
| if (!image || !strongSelf)
|
| return;
|
| appItem.icon = image;
|
| - [strongSelf.get().collectionView
|
| + [strongSelf.collectionView
|
| reloadItemsAtIndexPaths:@[ indexPath ]];
|
| }];
|
| }
|
| @@ -232,8 +233,8 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| - (CollectionViewItem*)learnMoreItem {
|
| NSString* learnMoreText =
|
| l10n_util::GetNSString(IDS_IOS_GOOGLE_APPS_SM_SECTION_HEADER);
|
| - CollectionViewFooterItem* learnMoreItem = [[[CollectionViewFooterItem alloc]
|
| - initWithType:ItemTypeLearnMore] autorelease];
|
| + CollectionViewFooterItem* learnMoreItem =
|
| + [[CollectionViewFooterItem alloc] initWithType:ItemTypeLearnMore];
|
| learnMoreItem.text = learnMoreText;
|
| return learnMoreItem;
|
| }
|
| @@ -255,8 +256,8 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| return;
|
| NSDictionary* product =
|
| @{SKStoreProductParameterITunesItemIdentifier : appId};
|
| - base::scoped_nsobject<SKStoreProductViewController> storeViewController(
|
| - [[SKStoreProductViewController alloc] init]);
|
| + SKStoreProductViewController* storeViewController =
|
| + [[SKStoreProductViewController alloc] init];
|
| [storeViewController setDelegate:self];
|
| [storeViewController loadProductWithParameters:product completionBlock:nil];
|
| [self presentViewController:storeViewController animated:YES completion:nil];
|
| @@ -372,19 +373,18 @@ typedef NS_ENUM(NSInteger, ItemType) {
|
| } else {
|
| state = NativeAppItemInstall;
|
| }
|
| - NativeAppItem* appItem =
|
| - [[[NativeAppItem alloc] initWithType:ItemTypeApp] autorelease];
|
| + NativeAppItem* appItem = [[NativeAppItem alloc] initWithType:ItemTypeApp];
|
| appItem.name = [metadata appName];
|
| appItem.state = state;
|
| return appItem;
|
| }
|
|
|
| - (NSArray*)appsInSettings {
|
| - return _nativeAppsInSettings.get();
|
| + return _nativeAppsInSettings;
|
| }
|
|
|
| - (void)setAppsInSettings:(NSArray*)apps {
|
| - _nativeAppsInSettings.reset([apps copy]);
|
| + _nativeAppsInSettings = [apps copy];
|
| }
|
|
|
| - (NSInteger)tagForIndexPath:(NSIndexPath*)indexPath {
|
|
|