Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(899)

Side by Side Diff: ios/chrome/browser/ui/settings/import_data_collection_view_controller.mm

Issue 2814813003: [ObjC ARC] Converts ios/chrome/browser/ui/settings:settings_arc_transition to ARC. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/browser/ui/settings/import_data_collection_view_controller.h " 5 #import "ios/chrome/browser/ui/settings/import_data_collection_view_controller.h "
6 6
7 #import "base/ios/weak_nsobject.h"
8 #include "base/logging.h" 7 #include "base/logging.h"
9 #import "base/mac/foundation_util.h" 8 #import "base/mac/foundation_util.h"
10 #import "base/mac/scoped_nsobject.h"
11 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
12 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom e.h" 10 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom e.h"
13 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item .h" 11 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item .h"
14 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" 12 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h"
15 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" 13 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
16 #import "ios/chrome/browser/ui/settings/cells/card_multiline_item.h" 14 #import "ios/chrome/browser/ui/settings/cells/card_multiline_item.h"
17 #import "ios/chrome/browser/ui/settings/cells/import_data_multiline_detail_cell. h" 15 #import "ios/chrome/browser/ui/settings/cells/import_data_multiline_detail_cell. h"
18 #include "ios/chrome/grit/ios_chromium_strings.h" 16 #include "ios/chrome/grit/ios_chromium_strings.h"
19 #include "ios/chrome/grit/ios_strings.h" 17 #include "ios/chrome/grit/ios_strings.h"
20 #import "ios/third_party/material_components_ios/src/components/CollectionCells/ src/MaterialCollectionCells.h" 18 #import "ios/third_party/material_components_ios/src/components/CollectionCells/ src/MaterialCollectionCells.h"
21 #import "ios/third_party/material_components_ios/src/components/Collections/src/ MaterialCollections.h" 19 #import "ios/third_party/material_components_ios/src/components/Collections/src/ MaterialCollections.h"
22 #include "ui/base/l10n/l10n_util_mac.h" 20 #include "ui/base/l10n/l10n_util_mac.h"
23 21
22 #if !defined(__has_feature) || !__has_feature(objc_arc)
23 #error "This file requires ARC support."
24 #endif
25
24 // The accessibility identifier of the Import Data cell. 26 // The accessibility identifier of the Import Data cell.
25 NSString* const kImportDataImportCellId = @"kImportDataImportCellId"; 27 NSString* const kImportDataImportCellId = @"kImportDataImportCellId";
26 // The accessibility identifier of the Keep Data Separate cell. 28 // The accessibility identifier of the Keep Data Separate cell.
27 NSString* const kImportDataKeepSeparateCellId = 29 NSString* const kImportDataKeepSeparateCellId =
28 @"kImportDataKeepSeparateCellId"; 30 @"kImportDataKeepSeparateCellId";
29 31
30 namespace { 32 namespace {
31 33
32 typedef NS_ENUM(NSInteger, SectionIdentifier) { 34 typedef NS_ENUM(NSInteger, SectionIdentifier) {
33 SectionIdentifierDisclaimer = kSectionIdentifierEnumZero, 35 SectionIdentifierDisclaimer = kSectionIdentifierEnumZero,
34 SectionIdentifierOptions, 36 SectionIdentifierOptions,
35 }; 37 };
36 38
37 typedef NS_ENUM(NSInteger, ItemType) { 39 typedef NS_ENUM(NSInteger, ItemType) {
38 ItemTypeFooter = kItemTypeEnumZero, 40 ItemTypeFooter = kItemTypeEnumZero,
39 ItemTypeOptionImportData, 41 ItemTypeOptionImportData,
40 ItemTypeOptionKeepDataSeparate, 42 ItemTypeOptionKeepDataSeparate,
41 }; 43 };
42 44
43 } // namespace 45 } // namespace
44 46
45 @implementation ImportDataCollectionViewController { 47 @implementation ImportDataCollectionViewController {
46 base::WeakNSProtocol<id<ImportDataControllerDelegate>> _delegate; 48 __weak id<ImportDataControllerDelegate> _delegate;
47 base::scoped_nsobject<NSString> _fromEmail; 49 NSString* _fromEmail;
48 base::scoped_nsobject<NSString> _toEmail; 50 NSString* _toEmail;
49 BOOL _isSignedIn; 51 BOOL _isSignedIn;
50 ShouldClearData _shouldClearData; 52 ShouldClearData _shouldClearData;
51 base::scoped_nsobject<CollectionViewDetailItem> _importDataItem; 53 CollectionViewDetailItem* _importDataItem;
52 base::scoped_nsobject<CollectionViewDetailItem> _keepDataSeparateItem; 54 CollectionViewDetailItem* _keepDataSeparateItem;
53 } 55 }
54 56
55 #pragma mark Initialization 57 #pragma mark Initialization
56 58
57 - (instancetype)initWithDelegate:(id<ImportDataControllerDelegate>)delegate 59 - (instancetype)initWithDelegate:(id<ImportDataControllerDelegate>)delegate
58 fromEmail:(NSString*)fromEmail 60 fromEmail:(NSString*)fromEmail
59 toEmail:(NSString*)toEmail 61 toEmail:(NSString*)toEmail
60 isSignedIn:(BOOL)isSignedIn { 62 isSignedIn:(BOOL)isSignedIn {
61 DCHECK(fromEmail); 63 DCHECK(fromEmail);
62 DCHECK(toEmail); 64 DCHECK(toEmail);
63 self = [super initWithStyle:CollectionViewControllerStyleAppBar]; 65 self = [super initWithStyle:CollectionViewControllerStyleAppBar];
64 if (self) { 66 if (self) {
65 _delegate.reset(delegate); 67 _delegate = delegate;
66 _fromEmail.reset([fromEmail copy]); 68 _fromEmail = [fromEmail copy];
67 _toEmail.reset([toEmail copy]); 69 _toEmail = [toEmail copy];
68 _isSignedIn = isSignedIn; 70 _isSignedIn = isSignedIn;
69 _shouldClearData = isSignedIn ? SHOULD_CLEAR_DATA_CLEAR_DATA 71 _shouldClearData = isSignedIn ? SHOULD_CLEAR_DATA_CLEAR_DATA
70 : SHOULD_CLEAR_DATA_MERGE_DATA; 72 : SHOULD_CLEAR_DATA_MERGE_DATA;
71 self.title = 73 self.title =
72 isSignedIn 74 isSignedIn
73 ? l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SWITCH) 75 ? l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SWITCH)
74 : l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN); 76 : l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN);
75 [self setShouldHideDoneButton:YES]; 77 [self setShouldHideDoneButton:YES];
76 self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 78 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
77 initWithTitle:l10n_util::GetNSString( 79 initWithTitle:l10n_util::GetNSString(
78 IDS_IOS_OPTIONS_IMPORT_DATA_CONTINUE_BUTTON) 80 IDS_IOS_OPTIONS_IMPORT_DATA_CONTINUE_BUTTON)
79 style:UIBarButtonItemStyleDone 81 style:UIBarButtonItemStyleDone
80 target:self 82 target:self
81 action:@selector(didTapContinue)] autorelease]; 83 action:@selector(didTapContinue)];
82 [self loadModel]; 84 [self loadModel];
83 } 85 }
84 return self; 86 return self;
85 } 87 }
86 88
87 #pragma mark SettingsRootCollectionViewController 89 #pragma mark SettingsRootCollectionViewController
88 90
89 - (void)loadModel { 91 - (void)loadModel {
90 [super loadModel]; 92 [super loadModel];
91 CollectionViewModel* model = self.collectionViewModel; 93 CollectionViewModel* model = self.collectionViewModel;
92 94
93 [model addSectionWithIdentifier:SectionIdentifierDisclaimer]; 95 [model addSectionWithIdentifier:SectionIdentifierDisclaimer];
94 [model addItem:[self descriptionItem] 96 [model addItem:[self descriptionItem]
95 toSectionWithIdentifier:SectionIdentifierDisclaimer]; 97 toSectionWithIdentifier:SectionIdentifierDisclaimer];
96 98
97 [model addSectionWithIdentifier:SectionIdentifierOptions]; 99 [model addSectionWithIdentifier:SectionIdentifierOptions];
98 _importDataItem.reset([[self importDataItem] retain]); 100 _importDataItem = [self importDataItem];
99 _keepDataSeparateItem.reset([[self keepDataSeparateItem] retain]); 101 _keepDataSeparateItem = [self keepDataSeparateItem];
100 if (_isSignedIn) { 102 if (_isSignedIn) {
101 [model addItem:_keepDataSeparateItem 103 [model addItem:_keepDataSeparateItem
102 toSectionWithIdentifier:SectionIdentifierOptions]; 104 toSectionWithIdentifier:SectionIdentifierOptions];
103 [model addItem:_importDataItem 105 [model addItem:_importDataItem
104 toSectionWithIdentifier:SectionIdentifierOptions]; 106 toSectionWithIdentifier:SectionIdentifierOptions];
105 } else { 107 } else {
106 [model addItem:_importDataItem 108 [model addItem:_importDataItem
107 toSectionWithIdentifier:SectionIdentifierOptions]; 109 toSectionWithIdentifier:SectionIdentifierOptions];
108 [model addItem:_keepDataSeparateItem 110 [model addItem:_keepDataSeparateItem
109 toSectionWithIdentifier:SectionIdentifierOptions]; 111 toSectionWithIdentifier:SectionIdentifierOptions];
110 } 112 }
111 } 113 }
112 114
113 #pragma mark Items 115 #pragma mark Items
114 116
115 - (CollectionViewItem*)descriptionItem { 117 - (CollectionViewItem*)descriptionItem {
116 CardMultilineItem* item = 118 CardMultilineItem* item =
117 [[[CardMultilineItem alloc] initWithType:ItemTypeFooter] autorelease]; 119 [[CardMultilineItem alloc] initWithType:ItemTypeFooter];
118 item.text = l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER, 120 item.text = l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER,
119 base::SysNSStringToUTF16(_fromEmail)); 121 base::SysNSStringToUTF16(_fromEmail));
120 return item; 122 return item;
121 } 123 }
122 124
123 - (CollectionViewDetailItem*)importDataItem { 125 - (CollectionViewDetailItem*)importDataItem {
124 CollectionViewDetailItem* item = [[[CollectionViewDetailItem alloc] 126 CollectionViewDetailItem* item =
125 initWithType:ItemTypeOptionImportData] autorelease]; 127 [[CollectionViewDetailItem alloc] initWithType:ItemTypeOptionImportData];
126 item.cellClass = [ImportDataMultilineDetailCell class]; 128 item.cellClass = [ImportDataMultilineDetailCell class];
127 item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_TITLE); 129 item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_TITLE);
128 item.detailText = 130 item.detailText =
129 l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_SUBTITLE, 131 l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_SUBTITLE,
130 base::SysNSStringToUTF16(_toEmail)); 132 base::SysNSStringToUTF16(_toEmail));
131 item.accessoryType = _isSignedIn ? MDCCollectionViewCellAccessoryNone 133 item.accessoryType = _isSignedIn ? MDCCollectionViewCellAccessoryNone
132 : MDCCollectionViewCellAccessoryCheckmark; 134 : MDCCollectionViewCellAccessoryCheckmark;
133 item.accessibilityIdentifier = kImportDataImportCellId; 135 item.accessibilityIdentifier = kImportDataImportCellId;
134 return item; 136 return item;
135 } 137 }
136 138
137 - (CollectionViewDetailItem*)keepDataSeparateItem { 139 - (CollectionViewDetailItem*)keepDataSeparateItem {
138 CollectionViewDetailItem* item = [[[CollectionViewDetailItem alloc] 140 CollectionViewDetailItem* item = [[CollectionViewDetailItem alloc]
139 initWithType:ItemTypeOptionKeepDataSeparate] autorelease]; 141 initWithType:ItemTypeOptionKeepDataSeparate];
140 item.cellClass = [ImportDataMultilineDetailCell class]; 142 item.cellClass = [ImportDataMultilineDetailCell class];
141 item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_TITLE); 143 item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_TITLE);
142 if (_isSignedIn) { 144 if (_isSignedIn) {
143 item.detailText = l10n_util::GetNSStringF( 145 item.detailText = l10n_util::GetNSStringF(
144 IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_SUBTITLE_SWITCH, 146 IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_SUBTITLE_SWITCH,
145 base::SysNSStringToUTF16(_fromEmail)); 147 base::SysNSStringToUTF16(_fromEmail));
146 } else { 148 } else {
147 item.detailText = l10n_util::GetNSString( 149 item.detailText = l10n_util::GetNSString(
148 IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_SUBTITLE_SIGNIN); 150 IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_SUBTITLE_SIGNIN);
149 } 151 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 : SHOULD_CLEAR_DATA_CLEAR_DATA; 184 : SHOULD_CLEAR_DATA_CLEAR_DATA;
183 [self updateUI]; 185 [self updateUI];
184 } 186 }
185 } 187 }
186 188
187 #pragma mark Private methods 189 #pragma mark Private methods
188 190
189 // Updates the UI based on the value of |_shouldClearData|. 191 // Updates the UI based on the value of |_shouldClearData|.
190 - (void)updateUI { 192 - (void)updateUI {
191 BOOL importDataSelected = _shouldClearData == SHOULD_CLEAR_DATA_MERGE_DATA; 193 BOOL importDataSelected = _shouldClearData == SHOULD_CLEAR_DATA_MERGE_DATA;
192 _importDataItem.get().accessoryType = 194 _importDataItem.accessoryType = importDataSelected
193 importDataSelected ? MDCCollectionViewCellAccessoryCheckmark 195 ? MDCCollectionViewCellAccessoryCheckmark
194 : MDCCollectionViewCellAccessoryNone; 196 : MDCCollectionViewCellAccessoryNone;
195 _keepDataSeparateItem.get().accessoryType = 197 _keepDataSeparateItem.accessoryType =
196 importDataSelected ? MDCCollectionViewCellAccessoryNone 198 importDataSelected ? MDCCollectionViewCellAccessoryNone
197 : MDCCollectionViewCellAccessoryCheckmark; 199 : MDCCollectionViewCellAccessoryCheckmark;
198 [self reconfigureCellsForItems:@[ _importDataItem, _keepDataSeparateItem ] 200 [self reconfigureCellsForItems:@[ _importDataItem, _keepDataSeparateItem ]
199 inSectionWithIdentifier:SectionIdentifierOptions]; 201 inSectionWithIdentifier:SectionIdentifierOptions];
200 } 202 }
201 203
202 - (void)didTapContinue { 204 - (void)didTapContinue {
203 [_delegate didChooseClearDataPolicy:self shouldClearData:_shouldClearData]; 205 [_delegate didChooseClearDataPolicy:self shouldClearData:_shouldClearData];
204 } 206 }
205 207
206 @end 208 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698