Commit a2d1d7ae authored by Ewann's avatar Ewann Committed by Chromium LUCI CQ

[iOS] Deletes SettingsMultilineDetailCell

This CL deletes SettingsMultilineDetailCell and replaces its occurrences
with SettingsImageDetailTextCell.

Bug: 1153313
Change-Id: I11f8940b7899adc1df43c41e809be731df21f400
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2612945
Commit-Queue: Ewann Pellé <ewannpv@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#840590}
parent 6504b345
...@@ -22,8 +22,6 @@ source_set("cells") { ...@@ -22,8 +22,6 @@ source_set("cells") {
"settings_image_detail_text_cell.mm", "settings_image_detail_text_cell.mm",
"settings_image_detail_text_item.h", "settings_image_detail_text_item.h",
"settings_image_detail_text_item.mm", "settings_image_detail_text_item.mm",
"settings_multiline_detail_item.h",
"settings_multiline_detail_item.mm",
"settings_switch_cell.h", "settings_switch_cell.h",
"settings_switch_cell.mm", "settings_switch_cell.mm",
"settings_switch_item.h", "settings_switch_item.h",
...@@ -87,7 +85,6 @@ source_set("unit_tests") { ...@@ -87,7 +85,6 @@ source_set("unit_tests") {
"search_engine_item_unittest.mm", "search_engine_item_unittest.mm",
"settings_check_item_unittest.mm", "settings_check_item_unittest.mm",
"settings_image_detail_text_item_unittest.mm", "settings_image_detail_text_item_unittest.mm",
"settings_multiline_detail_item_unittest.mm",
"version_item_unittest.mm", "version_item_unittest.mm",
] ]
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
[super configureCell:cell withStyler:styler]; [super configureCell:cell withStyler:styler];
cell.textLabel.text = self.text; cell.textLabel.text = self.text;
cell.detailTextLabel.text = self.detailText; cell.detailTextLabel.text = self.detailText;
DCHECK(self.image);
cell.image = self.image; cell.image = self.image;
if (self.detailTextColor) { if (self.detailTextColor) {
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_CELLS_SETTINGS_MULTILINE_DETAIL_ITEM_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_CELLS_SETTINGS_MULTILINE_DETAIL_ITEM_H_
#import <UIKit/UIKit.h>
#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h"
// SettingsMultilineDetailItem is a model class that uses
// SettingsMultilineDetailCell.
@interface SettingsMultilineDetailItem : TableViewItem
// The main text string.
@property(nonatomic, copy) NSString* text;
// The detail text string.
@property(nonatomic, copy) NSString* detailText;
@end
// SettingsMultilineDetailCell implements an TableViewCell
// subclass containing two text labels: a "main" label and a "detail" label.
// The two labels are laid out on top of each other and can span on multiple
// lines. This is to be used with a SettingsMultilineDetailItem.
@interface SettingsMultilineDetailCell : TableViewCell
// UILabels corresponding to |text| and |detailText| from the item.
@property(nonatomic, readonly, strong) UILabel* textLabel;
@property(nonatomic, readonly, strong) UILabel* detailTextLabel;
@end
#endif // IOS_CHROME_BROWSER_UI_SETTINGS_CELLS_SETTINGS_MULTILINE_DETAIL_ITEM_H_
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/settings/cells/settings_multiline_detail_item.h"
#import "ios/chrome/browser/ui/settings/cells/settings_cells_constants.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h"
#import "ios/chrome/browser/ui/util/uikit_ui_util.h"
#import "ios/chrome/common/ui/colors/UIColor+cr_semantic_colors.h"
#import "ios/chrome/common/ui/util/constraints_ui_util.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation SettingsMultilineDetailItem
@synthesize text = _text;
@synthesize detailText = _detailText;
- (instancetype)initWithType:(NSInteger)type {
self = [super initWithType:type];
if (self) {
self.cellClass = [SettingsMultilineDetailCell class];
}
return self;
}
#pragma mark CollectionViewItem
- (void)configureCell:(SettingsMultilineDetailCell*)cell
withStyler:(ChromeTableViewStyler*)styler {
[super configureCell:cell withStyler:styler];
cell.textLabel.text = self.text;
cell.detailTextLabel.text = self.detailText;
}
@end
@implementation SettingsMultilineDetailCell
@synthesize textLabel = _textLabel;
@synthesize detailTextLabel = _detailTextLabel;
- (instancetype)initWithStyle:(UITableViewCellStyle)style
reuseIdentifier:(NSString*)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.isAccessibilityElement = YES;
UIView* contentView = self.contentView;
_textLabel = [[UILabel alloc] init];
_textLabel.translatesAutoresizingMaskIntoConstraints = NO;
_textLabel.numberOfLines = 0;
_textLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
_textLabel.adjustsFontForContentSizeCategory = YES;
_textLabel.textColor = UIColor.cr_labelColor;
[contentView addSubview:_textLabel];
_detailTextLabel = [[UILabel alloc] init];
_detailTextLabel.translatesAutoresizingMaskIntoConstraints = NO;
_detailTextLabel.numberOfLines = 0;
_detailTextLabel.font =
[UIFont preferredFontForTextStyle:kTableViewSublabelFontStyle];
_detailTextLabel.adjustsFontForContentSizeCategory = YES;
_detailTextLabel.textColor = UIColor.cr_secondaryLabelColor;
[contentView addSubview:_detailTextLabel];
// Set up the constraints.
[NSLayoutConstraint activateConstraints:@[
[_textLabel.topAnchor
constraintEqualToAnchor:contentView.topAnchor
constant:kTableViewLargeVerticalSpacing],
[_textLabel.leadingAnchor
constraintEqualToAnchor:contentView.leadingAnchor
constant:kTableViewHorizontalSpacing],
[_textLabel.trailingAnchor
constraintLessThanOrEqualToAnchor:contentView.trailingAnchor
constant:-kTableViewHorizontalSpacing],
[_textLabel.bottomAnchor
constraintEqualToAnchor:_detailTextLabel.topAnchor],
[_detailTextLabel.leadingAnchor
constraintEqualToAnchor:_textLabel.leadingAnchor],
[_detailTextLabel.trailingAnchor
constraintLessThanOrEqualToAnchor:contentView.trailingAnchor
constant:-kTableViewHorizontalSpacing],
[_detailTextLabel.bottomAnchor
constraintEqualToAnchor:contentView.bottomAnchor
constant:-kTableViewLargeVerticalSpacing],
]];
}
return self;
}
- (void)layoutSubviews {
// Make sure that the multiline labels' width isn't changed when the accessory
// is set.
self.detailTextLabel.preferredMaxLayoutWidth =
self.bounds.size.width -
(kTableViewAccessoryWidth + 2 * kTableViewHorizontalSpacing);
self.textLabel.preferredMaxLayoutWidth =
self.bounds.size.width -
(kTableViewAccessoryWidth + 2 * kTableViewHorizontalSpacing);
[super layoutSubviews];
}
#pragma mark Accessibility
- (NSString*)accessibilityLabel {
return [NSString stringWithFormat:@"%@, %@", self.textLabel.text,
self.detailTextLabel.text];
}
@end
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/settings/cells/settings_multiline_detail_item.h"
#import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h"
#include "testing/gtest/include/gtest/gtest.h"
#import "testing/gtest_mac.h"
#include "testing/platform_test.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace {
using SettingsMultilineDetailItemTest = PlatformTest;
// Tests that the text and detail text are honoured after a call to
// |configureCell:|.
TEST_F(SettingsMultilineDetailItemTest, ConfigureCell) {
SettingsMultilineDetailItem* item =
[[SettingsMultilineDetailItem alloc] initWithType:0];
NSString* text = @"Test Text";
NSString* detailText = @"Test Detail Text that can span multiple lines. For "
@"example, this line probably fits on three or four "
@"lines.";
item.text = text;
item.detailText = detailText;
id cell = [[[item cellClass] alloc] init];
ASSERT_TRUE([cell isMemberOfClass:[SettingsMultilineDetailCell class]]);
SettingsMultilineDetailCell* multilineDetailCell =
static_cast<SettingsMultilineDetailCell*>(cell);
EXPECT_FALSE(multilineDetailCell.textLabel.text);
EXPECT_FALSE(multilineDetailCell.detailTextLabel.text);
[item configureCell:cell withStyler:[[ChromeTableViewStyler alloc] init]];
EXPECT_NSEQ(text, multilineDetailCell.textLabel.text);
EXPECT_NSEQ(detailText, multilineDetailCell.detailTextLabel.text);
}
// Tests that the text label of an SettingsMultilineDetailCell only has one
// line but the detail text label spans multiple lines.
TEST_F(SettingsMultilineDetailItemTest, MultipleLines) {
SettingsMultilineDetailCell* cell =
[[SettingsMultilineDetailCell alloc] init];
EXPECT_EQ(0, cell.textLabel.numberOfLines);
EXPECT_EQ(0, cell.detailTextLabel.numberOfLines);
}
} // namespace
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include "base/check.h" #include "base/check.h"
#import "base/mac/foundation_util.h" #import "base/mac/foundation_util.h"
#include "base/strings/sys_string_conversions.h" #include "base/strings/sys_string_conversions.h"
#import "ios/chrome/browser/ui/settings/cells/settings_multiline_detail_item.h" #import "ios/chrome/browser/ui/settings/cells/settings_image_detail_text_item.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
#import "ios/chrome/browser/ui/table_view/table_view_model.h" #import "ios/chrome/browser/ui/table_view/table_view_model.h"
#import "ios/chrome/browser/ui/table_view/table_view_utils.h" #import "ios/chrome/browser/ui/table_view/table_view_utils.h"
...@@ -48,8 +48,8 @@ typedef NS_ENUM(NSInteger, ItemType) { ...@@ -48,8 +48,8 @@ typedef NS_ENUM(NSInteger, ItemType) {
NSString* _toEmail; NSString* _toEmail;
BOOL _isSignedIn; BOOL _isSignedIn;
ShouldClearData _shouldClearData; ShouldClearData _shouldClearData;
SettingsMultilineDetailItem* _importDataItem; SettingsImageDetailTextItem* _importDataItem;
SettingsMultilineDetailItem* _keepDataSeparateItem; SettingsImageDetailTextItem* _keepDataSeparateItem;
} }
#pragma mark - Initialization #pragma mark - Initialization
...@@ -129,8 +129,8 @@ typedef NS_ENUM(NSInteger, ItemType) { ...@@ -129,8 +129,8 @@ typedef NS_ENUM(NSInteger, ItemType) {
return item; return item;
} }
- (SettingsMultilineDetailItem*)importDataItem { - (SettingsImageDetailTextItem*)importDataItem {
SettingsMultilineDetailItem* item = [[SettingsMultilineDetailItem alloc] SettingsImageDetailTextItem* item = [[SettingsImageDetailTextItem alloc]
initWithType:ItemTypeOptionImportData]; initWithType:ItemTypeOptionImportData];
item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_TITLE); item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_IMPORT_TITLE);
item.detailText = item.detailText =
...@@ -142,8 +142,8 @@ typedef NS_ENUM(NSInteger, ItemType) { ...@@ -142,8 +142,8 @@ typedef NS_ENUM(NSInteger, ItemType) {
return item; return item;
} }
- (SettingsMultilineDetailItem*)keepDataSeparateItem { - (SettingsImageDetailTextItem*)keepDataSeparateItem {
SettingsMultilineDetailItem* item = [[SettingsMultilineDetailItem alloc] SettingsImageDetailTextItem* item = [[SettingsImageDetailTextItem alloc]
initWithType:ItemTypeOptionKeepDataSeparate]; initWithType:ItemTypeOptionKeepDataSeparate];
item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_TITLE); item.text = l10n_util::GetNSString(IDS_IOS_OPTIONS_IMPORT_DATA_KEEP_TITLE);
if (_isSignedIn) { if (_isSignedIn) {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "base/mac/foundation_util.h" #include "base/mac/foundation_util.h"
#include "base/strings/sys_string_conversions.h" #include "base/strings/sys_string_conversions.h"
#import "ios/chrome/browser/ui/settings/cells/settings_multiline_detail_item.h" #import "ios/chrome/browser/ui/settings/cells/settings_image_detail_text_item.h"
#import "ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h"
#import "ios/chrome/browser/ui/table_view/table_view_model.h" #import "ios/chrome/browser/ui/table_view/table_view_model.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
...@@ -70,7 +70,7 @@ TEST_F(ImportDataTableViewControllerTest, TestModelSignedIn) { ...@@ -70,7 +70,7 @@ TEST_F(ImportDataTableViewControllerTest, TestModelSignedIn) {
CheckController(); CheckController();
ASSERT_EQ(2, NumberOfSections()); ASSERT_EQ(2, NumberOfSections());
EXPECT_EQ(1, NumberOfItemsInSection(0)); EXPECT_EQ(1, NumberOfItemsInSection(0));
SettingsMultilineDetailItem* item = GetTableViewItem(0, 0); SettingsImageDetailTextItem* item = GetTableViewItem(0, 0);
EXPECT_NSEQ( EXPECT_NSEQ(
l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER, l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER,
base::SysNSStringToUTF16(@"fromEmail@gmail.com")), base::SysNSStringToUTF16(@"fromEmail@gmail.com")),
...@@ -96,7 +96,7 @@ TEST_F(ImportDataTableViewControllerTest, TestModelSignedOut) { ...@@ -96,7 +96,7 @@ TEST_F(ImportDataTableViewControllerTest, TestModelSignedOut) {
CheckController(); CheckController();
ASSERT_EQ(2, NumberOfSections()); ASSERT_EQ(2, NumberOfSections());
EXPECT_EQ(1, NumberOfItemsInSection(0)); EXPECT_EQ(1, NumberOfItemsInSection(0));
SettingsMultilineDetailItem* item = GetTableViewItem(0, 0); SettingsImageDetailTextItem* item = GetTableViewItem(0, 0);
EXPECT_NSEQ( EXPECT_NSEQ(
l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER, l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER,
base::SysNSStringToUTF16(@"fromEmail@gmail.com")), base::SysNSStringToUTF16(@"fromEmail@gmail.com")),
...@@ -124,12 +124,12 @@ TEST_F(ImportDataTableViewControllerTest, TestUniqueBoxChecked) { ...@@ -124,12 +124,12 @@ TEST_F(ImportDataTableViewControllerTest, TestUniqueBoxChecked) {
NSIndexPath* importIndexPath = [NSIndexPath indexPathForItem:0 inSection:1]; NSIndexPath* importIndexPath = [NSIndexPath indexPathForItem:0 inSection:1];
NSIndexPath* keepSeparateIndexPath = [NSIndexPath indexPathForItem:1 NSIndexPath* keepSeparateIndexPath = [NSIndexPath indexPathForItem:1
inSection:1]; inSection:1];
SettingsMultilineDetailItem* importItem = SettingsImageDetailTextItem* importItem =
base::mac::ObjCCastStrict<SettingsMultilineDetailItem>( base::mac::ObjCCastStrict<SettingsImageDetailTextItem>(
[import_data_controller.tableViewModel [import_data_controller.tableViewModel
itemAtIndexPath:importIndexPath]); itemAtIndexPath:importIndexPath]);
SettingsMultilineDetailItem* keepSeparateItem = SettingsImageDetailTextItem* keepSeparateItem =
base::mac::ObjCCastStrict<SettingsMultilineDetailItem>( base::mac::ObjCCastStrict<SettingsImageDetailTextItem>(
[import_data_controller.tableViewModel [import_data_controller.tableViewModel
itemAtIndexPath:keepSeparateIndexPath]); itemAtIndexPath:keepSeparateIndexPath]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment