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_collection_updater.h" | 5 #import "ios/chrome/browser/ui/suggestions/suggestions_collection_updater.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/mac/foundation_util.h" | 8 #include "base/mac/foundation_util.h" |
9 #import "ios/chrome/browser/ui/collection_view/collection_view_controller.h" | 9 #import "ios/chrome/browser/ui/collection_view/collection_view_controller.h" |
10 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" | 10 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" |
11 #import "ios/chrome/browser/ui/suggestions/suggestions_article_item.h" | 11 #import "ios/chrome/browser/ui/suggestions/suggestions_article_item.h" |
12 #import "ios/chrome/browser/ui/suggestions/suggestions_expandable_item.h" | 12 #import "ios/chrome/browser/ui/suggestions/suggestions_expandable_item.h" |
13 #import "ios/chrome/browser/ui/suggestions/suggestions_favicon_item.h" | |
lpromero
2017/01/18 09:34:38
Should it be SuggestionsFaviconsItem?
gambard
2017/01/18 12:37:57
In all class names favicon is used. So I followed
| |
13 #import "ios/chrome/browser/ui/suggestions/suggestions_item.h" | 14 #import "ios/chrome/browser/ui/suggestions/suggestions_item.h" |
14 #import "ios/chrome/browser/ui/suggestions/suggestions_stack_item.h" | 15 #import "ios/chrome/browser/ui/suggestions/suggestions_stack_item.h" |
15 #import "ios/chrome/browser/ui/suggestions/suggestions_view_controller.h" | 16 #import "ios/chrome/browser/ui/suggestions/suggestions_view_controller.h" |
16 | 17 |
17 #if !defined(__has_feature) || !__has_feature(objc_arc) | 18 #if !defined(__has_feature) || !__has_feature(objc_arc) |
18 #error "This file requires ARC support." | 19 #error "This file requires ARC support." |
19 #endif | 20 #endif |
20 | 21 |
21 @implementation SuggestionsCollectionUpdater | 22 @implementation SuggestionsCollectionUpdater |
22 | 23 |
23 @synthesize collectionViewController = _collectionViewController; | 24 @synthesize collectionViewController = _collectionViewController; |
24 | 25 |
25 #pragma mark - Properties | 26 #pragma mark - Properties |
26 | 27 |
27 - (void)setCollectionViewController: | 28 - (void)setCollectionViewController: |
28 (SuggestionsViewController*)collectionViewController { | 29 (SuggestionsViewController*)collectionViewController { |
29 _collectionViewController = collectionViewController; | 30 _collectionViewController = collectionViewController; |
30 [collectionViewController loadModel]; | 31 [collectionViewController loadModel]; |
31 CollectionViewModel* model = collectionViewController.collectionViewModel; | 32 CollectionViewModel* model = collectionViewController.collectionViewModel; |
32 NSInteger sectionIdentifier = kSectionIdentifierEnumZero; | 33 NSInteger sectionIdentifier = kSectionIdentifierEnumZero; |
34 | |
35 // Stack Item. | |
33 [model addSectionWithIdentifier:sectionIdentifier]; | 36 [model addSectionWithIdentifier:sectionIdentifier]; |
34 [model addItem:[[SuggestionsStackItem alloc] initWithType:ItemTypeStack | 37 [model addItem:[[SuggestionsStackItem alloc] initWithType:ItemTypeStack |
35 title:@"The title" | 38 title:@"The title" |
36 subtitle:@"The subtitle"] | 39 subtitle:@"The subtitle"] |
37 toSectionWithIdentifier:sectionIdentifier++]; | 40 toSectionWithIdentifier:sectionIdentifier++]; |
lpromero
2017/01/18 09:34:38
I am not a fan of using incrementing sectionIdenti
gambard
2017/01/18 12:37:57
I know, but once again, this is for demo :)
The co
| |
38 | 41 |
42 // Favicon Item. | |
43 [model addSectionWithIdentifier:sectionIdentifier]; | |
44 SuggestionsFaviconItem* faviconItem = | |
45 [[SuggestionsFaviconItem alloc] initWithType:ItemTypeFavicon]; | |
46 for (NSInteger i = 0; i < 6; i++) { | |
47 [faviconItem addFavicon:[UIImage imageNamed:@"bookmark_gray_star"] | |
48 withTitle:@"Super website! Incredible!"]; | |
49 } | |
50 faviconItem.delegate = _collectionViewController; | |
51 [model addItem:faviconItem toSectionWithIdentifier:sectionIdentifier++]; | |
52 | |
39 for (NSInteger i = 0; i < 3; i++) { | 53 for (NSInteger i = 0; i < 3; i++) { |
40 [model addSectionWithIdentifier:sectionIdentifier]; | 54 [model addSectionWithIdentifier:sectionIdentifier]; |
55 | |
56 // Standard Item. | |
41 [model addItem:[[SuggestionsItem alloc] initWithType:ItemTypeText | 57 [model addItem:[[SuggestionsItem alloc] initWithType:ItemTypeText |
42 title:@"The title" | 58 title:@"The title" |
43 subtitle:@"The subtitle"] | 59 subtitle:@"The subtitle"] |
44 toSectionWithIdentifier:sectionIdentifier]; | 60 toSectionWithIdentifier:sectionIdentifier]; |
61 | |
62 // Article Item. | |
45 [model addItem:[[SuggestionsArticleItem alloc] | 63 [model addItem:[[SuggestionsArticleItem alloc] |
46 initWithType:ItemTypeArticle | 64 initWithType:ItemTypeArticle |
47 title:@"Title of an Article" | 65 title:@"Title of an Article" |
48 subtitle:@"This is the subtitle of an article, can " | 66 subtitle:@"This is the subtitle of an article, can " |
49 @"spawn on multiple lines" | 67 @"spawn on multiple lines" |
50 image:[UIImage | 68 image:[UIImage |
51 imageNamed:@"distillation_success"]] | 69 imageNamed:@"distillation_success"]] |
52 toSectionWithIdentifier:sectionIdentifier]; | 70 toSectionWithIdentifier:sectionIdentifier]; |
71 | |
72 // Expandable Item. | |
53 SuggestionsExpandableItem* expandableItem = | 73 SuggestionsExpandableItem* expandableItem = |
54 [[SuggestionsExpandableItem alloc] | 74 [[SuggestionsExpandableItem alloc] |
55 initWithType:ItemTypeExpand | 75 initWithType:ItemTypeExpand |
56 title:@"Title of an Expandable Article" | 76 title:@"Title of an Expandable Article" |
57 subtitle:@"This Article can be expanded to display " | 77 subtitle:@"This Article can be expanded to display " |
58 @"additional information or interaction " | 78 @"additional information or interaction " |
59 @"options" | 79 @"options" |
60 image:[UIImage imageNamed:@"distillation_fail"] | 80 image:[UIImage imageNamed:@"distillation_fail"] |
61 detailText:@"Details shown only when the article is " | 81 detailText:@"Details shown only when the article is " |
62 @"expanded. It can be displayed on " | 82 @"expanded. It can be displayed on " |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
97 [_collectionViewController.collectionView performBatchUpdates:^{ | 117 [_collectionViewController.collectionView performBatchUpdates:^{ |
98 [_collectionViewController.collectionView | 118 [_collectionViewController.collectionView |
99 insertItemsAtIndexPaths:@[ [NSIndexPath | 119 insertItemsAtIndexPaths:@[ [NSIndexPath |
100 indexPathForRow:numberOfItemsInSection | 120 indexPathForRow:numberOfItemsInSection |
101 inSection:sectionIndex] ]]; | 121 inSection:sectionIndex] ]]; |
102 } | 122 } |
103 completion:nil]; | 123 completion:nil]; |
104 } | 124 } |
105 | 125 |
106 - (BOOL)shouldUseCustomStyleForSection:(NSInteger)section { | 126 - (BOOL)shouldUseCustomStyleForSection:(NSInteger)section { |
107 return section == 0; | 127 return section == 0 || section == 1; |
lpromero
2017/01/18 09:34:38
Here you should translate to sectionIdentifier and
gambard
2017/01/18 12:37:57
Same as the other comment.
This will be rewritten
| |
108 } | 128 } |
109 | 129 |
110 @end | 130 @end |
OLD | NEW |