OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/suggestions/suggestions_view_controller.h" | 5 #import "ios/chrome/browser/ui/suggestions/suggestions_view_controller.h" |
6 | 6 |
7 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom
e.h" | 7 #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrom
e.h" |
8 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" | 8 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" |
9 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" | 9 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" |
| 10 #import "ios/chrome/browser/ui/suggestions/suggestions_collection_updater.h" |
10 #import "ios/chrome/browser/ui/suggestions/suggestions_commands.h" | 11 #import "ios/chrome/browser/ui/suggestions/suggestions_commands.h" |
11 #import "ios/chrome/browser/ui/suggestions/suggestions_item_actions.h" | 12 #import "ios/chrome/browser/ui/suggestions/suggestions_item_actions.h" |
12 | 13 |
13 #if !defined(__has_feature) || !__has_feature(objc_arc) | 14 #if !defined(__has_feature) || !__has_feature(objc_arc) |
14 #error "This file requires ARC support." | 15 #error "This file requires ARC support." |
15 #endif | 16 #endif |
16 | 17 |
17 @interface SuggestionsViewController ()<SuggestionsItemActions> | 18 @interface SuggestionsViewController ()<SuggestionsItemActions> |
18 | 19 |
| 20 @property(nonatomic, strong) SuggestionsCollectionUpdater* collectionUpdater; |
| 21 |
19 @end | 22 @end |
20 | 23 |
21 @implementation SuggestionsViewController | 24 @implementation SuggestionsViewController |
22 | 25 |
23 @synthesize suggestionCommandHandler = _suggestionCommandHandler; | 26 @synthesize suggestionCommandHandler = _suggestionCommandHandler; |
| 27 @synthesize collectionUpdater = _collectionUpdater; |
24 | 28 |
25 #pragma mark - UIViewController | 29 #pragma mark - UIViewController |
26 | 30 |
27 - (void)viewDidLoad { | 31 - (void)viewDidLoad { |
28 [super viewDidLoad]; | 32 [super viewDidLoad]; |
29 | 33 |
| 34 _collectionUpdater = [[SuggestionsCollectionUpdater alloc] |
| 35 initWithCollectionViewController:self]; |
| 36 |
30 self.collectionView.delegate = self; | 37 self.collectionView.delegate = self; |
31 self.styler.cellStyle = MDCCollectionViewCellStyleCard; | 38 self.styler.cellStyle = MDCCollectionViewCellStyleCard; |
32 } | 39 } |
33 | 40 |
34 #pragma mark - MDCCollectionViewStylingDelegate | 41 #pragma mark - MDCCollectionViewStylingDelegate |
35 | 42 |
36 - (CGFloat)collectionView:(UICollectionView*)collectionView | 43 - (CGFloat)collectionView:(UICollectionView*)collectionView |
37 cellHeightAtIndexPath:(NSIndexPath*)indexPath { | 44 cellHeightAtIndexPath:(NSIndexPath*)indexPath { |
38 CollectionViewItem* item = | 45 CollectionViewItem* item = |
39 [self.collectionViewModel itemAtIndexPath:indexPath]; | 46 [self.collectionViewModel itemAtIndexPath:indexPath]; |
40 UIEdgeInsets inset = [self collectionView:collectionView | 47 UIEdgeInsets inset = [self collectionView:collectionView |
41 layout:collectionView.collectionViewLayout | 48 layout:collectionView.collectionViewLayout |
42 insetForSectionAtIndex:indexPath.section]; | 49 insetForSectionAtIndex:indexPath.section]; |
43 | 50 |
44 return [MDCCollectionViewCell | 51 return [MDCCollectionViewCell |
45 cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds) - | 52 cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds) - |
46 inset.left - inset.right | 53 inset.left - inset.right |
47 forItem:item]; | 54 forItem:item]; |
48 } | 55 } |
49 | 56 |
50 #pragma mark - SuggestionsItemActions | 57 #pragma mark - SuggestionsItemActions |
51 | 58 |
52 - (void)addNewItem:(id)sender { | 59 - (void)addNewItem:(id)sender { |
53 [self.suggestionCommandHandler addEmptyItem]; | 60 [self.suggestionCommandHandler addEmptyItem]; |
54 } | 61 } |
55 | 62 |
| 63 #pragma mark - SuggestionsCollectionUpdater forwarding |
| 64 |
| 65 - (void)addTextItem:(NSString*)title |
| 66 subtitle:(NSString*)subtitle |
| 67 toSection:(NSInteger)inputSection { |
| 68 [self.collectionUpdater addTextItem:title |
| 69 subtitle:subtitle |
| 70 toSection:inputSection]; |
| 71 } |
| 72 |
56 @end | 73 @end |
OLD | NEW |