| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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_expandable_item.h" | 5 #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_expandabl
e_item.h" |
| 6 | 6 |
| 7 #import "ios/chrome/browser/ui/uikit_ui_util.h" | 7 #import "ios/chrome/browser/ui/uikit_ui_util.h" |
| 8 #include "ui/base/l10n/l10n_util_mac.h" | 8 #include "ui/base/l10n/l10n_util_mac.h" |
| 9 | 9 |
| 10 #if !defined(__has_feature) || !__has_feature(objc_arc) | 10 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 11 #error "This file requires ARC support." | 11 #error "This file requires ARC support." |
| 12 #endif | 12 #endif |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 const CGFloat kImageSize = 80; | 15 const CGFloat kImageSize = 80; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 28 @synthesize delegate = _delegate; | 28 @synthesize delegate = _delegate; |
| 29 @synthesize expanded = _expanded; | 29 @synthesize expanded = _expanded; |
| 30 | 30 |
| 31 - (instancetype)initWithType:(NSInteger)type | 31 - (instancetype)initWithType:(NSInteger)type |
| 32 title:(NSString*)title | 32 title:(NSString*)title |
| 33 subtitle:(NSString*)subtitle | 33 subtitle:(NSString*)subtitle |
| 34 image:(UIImage*)image | 34 image:(UIImage*)image |
| 35 detailText:(NSString*)detail { | 35 detailText:(NSString*)detail { |
| 36 self = [super initWithType:type]; | 36 self = [super initWithType:type]; |
| 37 if (self) { | 37 if (self) { |
| 38 self.cellClass = [SuggestionsExpandableCell class]; | 38 self.cellClass = [ContentSuggestionsExpandableCell class]; |
| 39 _title = [title copy]; | 39 _title = [title copy]; |
| 40 _subtitle = [subtitle copy]; | 40 _subtitle = [subtitle copy]; |
| 41 _image = image; | 41 _image = image; |
| 42 _detail = [detail copy]; | 42 _detail = [detail copy]; |
| 43 } | 43 } |
| 44 return self; | 44 return self; |
| 45 } | 45 } |
| 46 | 46 |
| 47 #pragma mark - CollectionViewItem | 47 #pragma mark - CollectionViewItem |
| 48 | 48 |
| 49 - (void)configureCell:(SuggestionsExpandableCell*)cell { | 49 - (void)configureCell:(ContentSuggestionsExpandableCell*)cell { |
| 50 [super configureCell:cell]; | 50 [super configureCell:cell]; |
| 51 cell.delegate = self.delegate; | 51 cell.delegate = self.delegate; |
| 52 cell.titleLabel.text = _title; | 52 cell.titleLabel.text = _title; |
| 53 cell.subtitleLabel.text = _subtitle; | 53 cell.subtitleLabel.text = _subtitle; |
| 54 cell.imageView.image = _image; | 54 cell.imageView.image = _image; |
| 55 cell.detailLabel.text = _detail; | 55 cell.detailLabel.text = _detail; |
| 56 if (self.expanded) | 56 if (self.expanded) |
| 57 [cell expand]; | 57 [cell expand]; |
| 58 else | 58 else |
| 59 [cell collapse]; | 59 [cell collapse]; |
| 60 } | 60 } |
| 61 | 61 |
| 62 @end | 62 @end |
| 63 | 63 |
| 64 #pragma mark - SuggestionsExpandableCell | 64 #pragma mark - ContentSuggestionsExpandableCell |
| 65 | 65 |
| 66 @interface SuggestionsExpandableCell () { | 66 @interface ContentSuggestionsExpandableCell () { |
| 67 UIView* _articleContainer; | 67 UIView* _articleContainer; |
| 68 UIButton* _interactionButton; | 68 UIButton* _interactionButton; |
| 69 UIButton* _expandButton; | 69 UIButton* _expandButton; |
| 70 BOOL _expanded; | 70 BOOL _expanded; |
| 71 NSArray<NSLayoutConstraint*>* _expandedConstraints; | 71 NSArray<NSLayoutConstraint*>* _expandedConstraints; |
| 72 NSArray<NSLayoutConstraint*>* _collapsedConstraints; | 72 NSArray<NSLayoutConstraint*>* _collapsedConstraints; |
| 73 } | 73 } |
| 74 | 74 |
| 75 // Callback for the UI action showing the details. | 75 // Callback for the UI action showing the details. |
| 76 - (void)expand:(id)sender; | 76 - (void)expand:(id)sender; |
| 77 // Callback for the UI action hiding the details. | 77 // Callback for the UI action hiding the details. |
| 78 - (void)collapse:(id)sender; | 78 - (void)collapse:(id)sender; |
| 79 | 79 |
| 80 @end | 80 @end |
| 81 | 81 |
| 82 @implementation SuggestionsExpandableCell | 82 @implementation ContentSuggestionsExpandableCell |
| 83 | 83 |
| 84 @synthesize titleLabel = _titleLabel; | 84 @synthesize titleLabel = _titleLabel; |
| 85 @synthesize subtitleLabel = _subtitleLabel; | 85 @synthesize subtitleLabel = _subtitleLabel; |
| 86 @synthesize detailLabel = _detailLabel; | 86 @synthesize detailLabel = _detailLabel; |
| 87 @synthesize imageView = _imageView; | 87 @synthesize imageView = _imageView; |
| 88 @synthesize delegate = _delegate; | 88 @synthesize delegate = _delegate; |
| 89 | 89 |
| 90 - (instancetype)initWithFrame:(CGRect)frame { | 90 - (instancetype)initWithFrame:(CGRect)frame { |
| 91 self = [super initWithFrame:frame]; | 91 self = [super initWithFrame:frame]; |
| 92 if (self) { | 92 if (self) { |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 CGFloat parentWidth = CGRectGetWidth(self.contentView.bounds); | 228 CGFloat parentWidth = CGRectGetWidth(self.contentView.bounds); |
| 229 _subtitleLabel.preferredMaxLayoutWidth = parentWidth - kImageSize - 3 * 8; | 229 _subtitleLabel.preferredMaxLayoutWidth = parentWidth - kImageSize - 3 * 8; |
| 230 _detailLabel.preferredMaxLayoutWidth = parentWidth; | 230 _detailLabel.preferredMaxLayoutWidth = parentWidth; |
| 231 | 231 |
| 232 // Re-layout with the new preferred width to allow the label to adjust its | 232 // Re-layout with the new preferred width to allow the label to adjust its |
| 233 // height. | 233 // height. |
| 234 [super layoutSubviews]; | 234 [super layoutSubviews]; |
| 235 } | 235 } |
| 236 | 236 |
| 237 @end | 237 @end |
| OLD | NEW |