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

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

Issue 2817953002: CollectionViewTextItem no longer styles CollectionViewTextCell (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/accounts_collection_view_controller.h" 5 #import "ios/chrome/browser/ui/settings/accounts_collection_view_controller.h"
6 6
7 #import "base/mac/foundation_util.h" 7 #import "base/mac/foundation_util.h"
8 #include "base/metrics/user_metrics.h" 8 #include "base/metrics/user_metrics.h"
9 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 13 matching lines...) Expand all
24 #include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h" 24 #include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h"
25 #import "ios/chrome/browser/sync/sync_observer_bridge.h" 25 #import "ios/chrome/browser/sync/sync_observer_bridge.h"
26 #include "ios/chrome/browser/sync/sync_setup_service.h" 26 #include "ios/chrome/browser/sync/sync_setup_service.h"
27 #include "ios/chrome/browser/sync/sync_setup_service_factory.h" 27 #include "ios/chrome/browser/sync/sync_setup_service_factory.h"
28 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" 28 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
29 #import "ios/chrome/browser/ui/authentication/account_control_item.h" 29 #import "ios/chrome/browser/ui/authentication/account_control_item.h"
30 #import "ios/chrome/browser/ui/authentication/resized_avatar_cache.h" 30 #import "ios/chrome/browser/ui/authentication/resized_avatar_cache.h"
31 #import "ios/chrome/browser/ui/authentication/signin_interaction_controller.h" 31 #import "ios/chrome/browser/ui/authentication/signin_interaction_controller.h"
32 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom e.h" 32 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom e.h"
33 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_ite m.h" 33 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_ite m.h"
34 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_cell.h "
34 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h " 35 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h "
35 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" 36 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
36 #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h" 37 #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h"
37 #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h" 38 #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
38 #import "ios/chrome/browser/ui/commands/generic_chrome_command.h" 39 #import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
39 #include "ios/chrome/browser/ui/commands/ios_command_ids.h" 40 #include "ios/chrome/browser/ui/commands/ios_command_ids.h"
40 #import "ios/chrome/browser/ui/commands/open_url_command.h" 41 #import "ios/chrome/browser/ui/commands/open_url_command.h"
41 #import "ios/chrome/browser/ui/icons/chrome_icon.h" 42 #import "ios/chrome/browser/ui/icons/chrome_icon.h"
42 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" 43 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
43 #import "ios/chrome/browser/ui/settings/sync_settings_collection_view_controller .h" 44 #import "ios/chrome/browser/ui/settings/sync_settings_collection_view_controller .h"
44 #import "ios/chrome/browser/ui/sync/sync_util.h" 45 #import "ios/chrome/browser/ui/sync/sync_util.h"
45 #include "ios/chrome/grit/ios_chromium_strings.h" 46 #include "ios/chrome/grit/ios_chromium_strings.h"
46 #include "ios/chrome/grit/ios_strings.h" 47 #include "ios/chrome/grit/ios_strings.h"
47 #import "ios/public/provider/chrome/browser/chrome_browser_provider.h" 48 #import "ios/public/provider/chrome/browser/chrome_browser_provider.h"
48 #import "ios/public/provider/chrome/browser/images/branded_image_provider.h" 49 #import "ios/public/provider/chrome/browser/images/branded_image_provider.h"
49 #import "ios/public/provider/chrome/browser/signin/chrome_identity.h" 50 #import "ios/public/provider/chrome/browser/signin/chrome_identity.h"
50 #import "ios/public/provider/chrome/browser/signin/chrome_identity_browser_opene r.h" 51 #import "ios/public/provider/chrome/browser/signin/chrome_identity_browser_opene r.h"
51 #import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h" 52 #import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h"
53 #import "ios/third_party/material_components_ios/src/components/Palettes/src/Mat erialPalettes.h"
54 #import "ios/third_party/material_components_ios/src/components/Typography/src/M aterialTypography.h"
52 #import "net/base/mac/url_conversions.h" 55 #import "net/base/mac/url_conversions.h"
53 #include "ui/base/l10n/l10n_util_mac.h" 56 #include "ui/base/l10n/l10n_util_mac.h"
54 57
55 #if !defined(__has_feature) || !__has_feature(objc_arc) 58 #if !defined(__has_feature) || !__has_feature(objc_arc)
56 #error "This file requires ARC support." 59 #error "This file requires ARC support."
57 #endif 60 #endif
58 61
59 NSString* const kSettingsAccountsId = @"kSettingsAccountsId"; 62 NSString* const kSettingsAccountsId = @"kSettingsAccountsId";
60 NSString* const kSettingsHeaderId = @"kSettingsHeaderId"; 63 NSString* const kSettingsHeaderId = @"kSettingsHeaderId";
61 NSString* const kSettingsAccountsSignoutCellId = 64 NSString* const kSettingsAccountsSignoutCellId =
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 toSectionWithIdentifier:SectionIdentifierSignOut]; 238 toSectionWithIdentifier:SectionIdentifierSignOut];
236 } 239 }
237 240
238 #pragma mark - Model objects 241 #pragma mark - Model objects
239 242
240 - (CollectionViewItem*)header { 243 - (CollectionViewItem*)header {
241 CollectionViewTextItem* header = 244 CollectionViewTextItem* header =
242 [[CollectionViewTextItem alloc] initWithType:ItemTypeHeader]; 245 [[CollectionViewTextItem alloc] initWithType:ItemTypeHeader];
243 header.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_ACCOUNTS_DESCRIPTION); 246 header.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_ACCOUNTS_DESCRIPTION);
244 header.accessibilityIdentifier = kSettingsHeaderId; 247 header.accessibilityIdentifier = kSettingsHeaderId;
245 header.textColor = [[MDCPalette greyPalette] tint500];
246 return header; 248 return header;
247 } 249 }
248 250
249 - (CollectionViewItem*)accountItem:(ChromeIdentity*)identity { 251 - (CollectionViewItem*)accountItem:(ChromeIdentity*)identity {
250 CollectionViewAccountItem* item = 252 CollectionViewAccountItem* item =
251 [[CollectionViewAccountItem alloc] initWithType:ItemTypeAccount]; 253 [[CollectionViewAccountItem alloc] initWithType:ItemTypeAccount];
252 [self updateAccountItem:item withIdentity:identity]; 254 [self updateAccountItem:item withIdentity:identity];
253 return item; 255 return item;
254 } 256 }
255 257
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 [self showGoogleActivitySettings]; 365 [self showGoogleActivitySettings];
364 break; 366 break;
365 case ItemTypeSignOut: 367 case ItemTypeSignOut:
366 [self showDisconnect]; 368 [self showDisconnect];
367 break; 369 break;
368 default: 370 default:
369 break; 371 break;
370 } 372 }
371 } 373 }
372 374
375 #pragma mark - UICollectionViewDataSource
376
377 - (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView
378 cellForItemAtIndexPath:(nonnull NSIndexPath*)indexPath {
gambard 2017/04/14 07:04:03 Is this working? I am surprised, it is a header no
379 UICollectionViewCell* cell =
380 [super collectionView:collectionView cellForItemAtIndexPath:indexPath];
381
382 NSInteger itemType =
383 [self.collectionViewModel itemTypeForIndexPath:indexPath];
384 switch (itemType) {
385 case ItemTypeHeader: {
386 CollectionViewTextCell* textCell =
387 base::mac::ObjCCastStrict<CollectionViewTextCell>(cell);
388 textCell.textLabel.textColor = [[MDCPalette greyPalette] tint500];
389 break;
390 }
391 default:
392 break;
393 }
394 return cell;
395 }
396
373 #pragma mark - MDCCollectionViewStylingDelegate 397 #pragma mark - MDCCollectionViewStylingDelegate
374 398
375 - (CGFloat)collectionView:(UICollectionView*)collectionView 399 - (CGFloat)collectionView:(UICollectionView*)collectionView
376 cellHeightAtIndexPath:(NSIndexPath*)indexPath { 400 cellHeightAtIndexPath:(NSIndexPath*)indexPath {
377 CollectionViewItem* item = 401 CollectionViewItem* item =
378 [self.collectionViewModel itemAtIndexPath:indexPath]; 402 [self.collectionViewModel itemAtIndexPath:indexPath];
379 if (item.type == ItemTypeGoogleActivityControls || 403 if (item.type == ItemTypeGoogleActivityControls ||
380 item.type == ItemTypeSync) { 404 item.type == ItemTypeSync) {
381 return [MDCCollectionViewCell 405 return [MDCCollectionViewCell
382 cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds) 406 cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds)
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 [self.collectionViewModel indexPathForItem:item 674 [self.collectionViewModel indexPathForItem:item
651 inSectionWithIdentifier:SectionIdentifierAccounts]; 675 inSectionWithIdentifier:SectionIdentifierAccounts];
652 [self.collectionView reloadItemsAtIndexPaths:@[ indexPath ]]; 676 [self.collectionView reloadItemsAtIndexPaths:@[ indexPath ]];
653 } 677 }
654 678
655 - (void)onChromeIdentityServiceWillBeDestroyed { 679 - (void)onChromeIdentityServiceWillBeDestroyed {
656 _identityServiceObserver.reset(); 680 _identityServiceObserver.reset();
657 } 681 }
658 682
659 @end 683 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698