Commit 8d3e32be authored by Jérôme Lebel's avatar Jérôme Lebel Committed by Commit Bot

[iOS] Removing SyncSettingsTableViewController

SyncSettingsTableViewController class is only use with pre-unity UI.
Unified consent feature flag is now always true.

Bug: 1778868
Change-Id: Ifec7b9c6b10833899c62351fd3972f4b376e1afe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1781441Reviewed-by: default avatarRohit Rao <rohitrao@chromium.org>
Commit-Queue: Jérôme Lebel <jlebel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#699757}
parent e60e9300
...@@ -195,9 +195,6 @@ locale. The strings in this file are specific to iOS. ...@@ -195,9 +195,6 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_TITLE" desc="Title for the cell to open 'Data from Chromium sync' web page where the user can control all their data data from sync."> <message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_TITLE" desc="Title for the cell to open 'Data from Chromium sync' web page where the user can control all their data data from sync.">
Data from Chromium sync Data from Chromium sync
</message> </message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO" desc="Message explaining that signing out of a managed account will clear all the Chromium data.[Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only].">
You are signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>. This will delete your Chromium data from this device, but your data will remain in your Google account.
</message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO_UNITY" desc="Message explaining that signing out of a managed account will clear all the Chromium data.[Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only]."> <message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO_UNITY" desc="Message explaining that signing out of a managed account will clear all the Chromium data.[Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only].">
Because you're signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>, your Chromium data will be deleted from this device. Your data will remain in your Google Account. Because you're signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>, your Chromium data will be deleted from this device. Your data will remain in your Google Account.
</message> </message>
...@@ -222,9 +219,6 @@ locale. The strings in this file are specific to iOS. ...@@ -222,9 +219,6 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_OPEN_TABS_SYNC_IS_OFF_MOBILE" desc="Short paragraph(s) encouraging the user to enable sync on device [Length: 300em, may be line wrapped to multiple lines at run time.]"> <message name="IDS_IOS_OPEN_TABS_SYNC_IS_OFF_MOBILE" desc="Short paragraph(s) encouraging the user to enable sync on device [Length: 300em, may be line wrapped to multiple lines at run time.]">
Tabs that you've opened in Chromium on your other devices will appear here. Tabs that you've opened in Chromium on your other devices will appear here.
</message> </message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SIGNOUT" desc="Title of the button to sign out of Chromium [iOS only] [60em]">
Sign out of Chromium
</message>
<message name="IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN" desc="The title of the Import Data settings screen when signing in. [30em]"> <message name="IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN" desc="The title of the Import Data settings screen when signing in. [30em]">
Sign in to Chromium Sign in to Chromium
</message> </message>
......
...@@ -195,9 +195,6 @@ locale. The strings in this file are specific to iOS. ...@@ -195,9 +195,6 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_TITLE" desc="Title for the cell to open 'Data from Chrome sync' web page where the user can control all their data data from sync."> <message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_TITLE" desc="Title for the cell to open 'Data from Chrome sync' web page where the user can control all their data data from sync.">
Data from Chrome sync Data from Chrome sync
</message> </message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO" desc="Message explaining that signing out of a managed account will clear all the Chrome data.[Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only].">
You are signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>. This will delete your Chrome data from this device, but your data will remain in your Google account.
</message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO_UNITY" desc="Message explaining that signing out of a managed account will clear all the Chrome data. [Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only]."> <message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_INFO_UNITY" desc="Message explaining that signing out of a managed account will clear all the Chrome data. [Length: 200em, may be line wrapped to multiple lines at run time.] [iOS only].">
Because you're signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>, your Chrome data will be deleted from this device. Your data will remain in your Google Account. Because you're signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN">$1<ex>google.com</ex></ph>, your Chrome data will be deleted from this device. Your data will remain in your Google Account.
</message> </message>
...@@ -222,9 +219,6 @@ locale. The strings in this file are specific to iOS. ...@@ -222,9 +219,6 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_OPEN_TABS_SYNC_IS_OFF_MOBILE" desc="Short paragraph(s) encouraging the user to enable sync on device [Length: 300em, may be line wrapped to multiple lines at run time.]"> <message name="IDS_IOS_OPEN_TABS_SYNC_IS_OFF_MOBILE" desc="Short paragraph(s) encouraging the user to enable sync on device [Length: 300em, may be line wrapped to multiple lines at run time.]">
Tabs that you've opened in Chrome on your other devices will appear here. Tabs that you've opened in Chrome on your other devices will appear here.
</message> </message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SIGNOUT" desc="Title of the button to sign out of Chrome [iOS only] [60em]">
Sign out of Chrome
</message>
<message name="IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN" desc="The title of the Import Data settings screen when signing in. [30em]"> <message name="IDS_IOS_OPTIONS_IMPORT_DATA_TITLE_SIGNIN" desc="The title of the Import Data settings screen when signing in. [30em]">
Sign in to Chrome Sign in to Chrome
</message> </message>
......
...@@ -866,15 +866,9 @@ locale. The strings in this file are specific to iOS. ...@@ -866,15 +866,9 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_DESCRIPTION" desc="Subtitle for the cell to open 'Data from Chromium sync' web page where the user can control all their data data from sync."> <message name="IDS_IOS_MANAGE_SYNC_DATA_FROM_CHROME_SYNC_DESCRIPTION" desc="Subtitle for the cell to open 'Data from Chromium sync' web page where the user can control all their data data from sync.">
Manage synced data on Google Dashboard Manage synced data on Google Dashboard
</message> </message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_ACCEPT" desc="Label on the button to proceed with signout and clear all Chrome data.[Length: 30em].">
Accept and sign out
</message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_ACCEPT_UNITY" desc="Label on the button to proceed with signout and clear all Chrome data.[Length: 30em]."> <message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_ACCEPT_UNITY" desc="Label on the button to proceed with signout and clear all Chrome data.[Length: 30em].">
Clear Clear
</message> </message>
<message name="IDS_IOS_MANAGED_DISCONNECT_DIALOG_TITLE" desc="Title of the dialog shown when signing out of a managed account.[Length: 50em] [iOS only].">
Sign out of managed account
</message>
<message name="IDS_IOS_MANAGED_SIGNIN_ACCEPT_BUTTON" desc="The title of the Accept button of the Sign in to a managed account dialog. [40em]"> <message name="IDS_IOS_MANAGED_SIGNIN_ACCEPT_BUTTON" desc="The title of the Accept button of the Sign in to a managed account dialog. [40em]">
Accept and sign in Accept and sign in
</message> </message>
...@@ -1022,21 +1016,9 @@ locale. The strings in this file are specific to iOS. ...@@ -1022,21 +1016,9 @@ locale. The strings in this file are specific to iOS.
<message name="IDS_IOS_OPTIONS_ACCOUNTS_DESCRIPTION" desc="Text informing the user of the accounts they are signed in to Chrome with [iOS only] [150em]"> <message name="IDS_IOS_OPTIONS_ACCOUNTS_DESCRIPTION" desc="Text informing the user of the accounts they are signed in to Chrome with [iOS only] [150em]">
Signed In to Google as Signed In to Google as
</message> </message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_GOOGLE_DESCRIPTION" desc="Text of the Google Activity Controls button on the accounts settings screen [Length: 150em]">
Control how Google uses your browsing history to personalize Search, ads, and other Google services
</message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_GOOGLE_TITLE" desc="Title of the Google Activity Controls button on the accounts settings screen [Length: 50em]">
Google Activity Controls
</message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SYNC_ERROR" desc="Text informing the user that sync isn't working properly [iOS only] [60em]">
Sync isn't working. Tap to fix.
</message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SYNC_IS_OFF" desc="Text informing the user that sync is off [iOS only] [60em]"> <message name="IDS_IOS_OPTIONS_ACCOUNTS_SYNC_IS_OFF" desc="Text informing the user that sync is off [iOS only] [60em]">
Off Off
</message> </message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SYNC_TITLE" desc="Title of the Sync button on the accounts settings screen [iOS only] [30em]">
Sync
</message>
<message name="IDS_IOS_OPTIONS_ACCOUNTS_SIGN_OUT_TURN_OFF_SYNC" desc="Title of the button to sign out and turn off sync. [iOS only]"> <message name="IDS_IOS_OPTIONS_ACCOUNTS_SIGN_OUT_TURN_OFF_SYNC" desc="Title of the button to sign out and turn off sync. [iOS only]">
Sign out and turn off sync Sign out and turn off sync
</message> </message>
...@@ -1660,9 +1642,6 @@ Handoff must also be enabled in the General section of Settings, and your device ...@@ -1660,9 +1642,6 @@ Handoff must also be enabled in the General section of Settings, and your device
<message name="IDS_IOS_SYNC_CONFIRM_PASSPHRASE_LABEL" desc="The text for the confirm-passphrase field. [Length: 20em] [iOS only]"> <message name="IDS_IOS_SYNC_CONFIRM_PASSPHRASE_LABEL" desc="The text for the confirm-passphrase field. [Length: 20em] [iOS only]">
Confirm passphrase Confirm passphrase
</message> </message>
<message name="IDS_IOS_SYNC_DATA_TYPES_TITLE" desc="The title for the section of the data types to sync to">
Data Types
</message>
<message name="IDS_IOS_SYNC_DECRYPT_BUTTON" desc="The title for the decrypt button on the encryption password screen [Length: 10em] [iOS only]"> <message name="IDS_IOS_SYNC_DECRYPT_BUTTON" desc="The title for the decrypt button on the encryption password screen [Length: 10em] [iOS only]">
Submit Submit
</message> </message>
...@@ -1732,12 +1711,6 @@ Your data was encrypted with your sync passphrase on <ph name="TIME">$2<ex>Sept ...@@ -1732,12 +1711,6 @@ Your data was encrypted with your sync passphrase on <ph name="TIME">$2<ex>Sept
<message name="IDS_IOS_SYNC_PASSPHRASE_RECOVER" desc="Message about how to recover from a lost passphrase. [Length:100em, may be multiple lines] [iOS only]"> <message name="IDS_IOS_SYNC_PASSPHRASE_RECOVER" desc="Message about how to recover from a lost passphrase. [Length:100em, may be multiple lines] [iOS only]">
If you forget your passphrase or want to change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>reset sync<ph name="END_LINK">END_LINK</ph> If you forget your passphrase or want to change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>reset sync<ph name="END_LINK">END_LINK</ph>
</message> </message>
<message name="IDS_IOS_SYNC_RESET_GOOGLE_DASHBOARD_NO_LINK" desc="Message about how to reset sync via Google Dashboard without any link. [Length: 50em] [iOS only]">
Manage Synced Data…
</message>
<message name="IDS_IOS_SYNC_SETTING_TITLE" desc="The title for the Sync control for sync [iOS only]">
Sync
</message>
<message name="IDS_IOS_SYNC_SETTINGS_NOT_CONFIRMED" desc="The error message to display when sign-in was interrupted and the user didn't review the sync settings."> <message name="IDS_IOS_SYNC_SETTINGS_NOT_CONFIRMED" desc="The error message to display when sign-in was interrupted and the user didn't review the sync settings.">
Initial sync setup was not finished. Sync is off. Initial sync setup was not finished. Sync is off.
</message> </message>
...@@ -1759,9 +1732,6 @@ Your data was encrypted with your sync passphrase on <ph name="TIME">$2<ex>Sept ...@@ -1759,9 +1732,6 @@ Your data was encrypted with your sync passphrase on <ph name="TIME">$2<ex>Sept
<message name="IDS_IOS_SYNC_STATUS_UNRECOVERABLE_ERROR" desc="Message shown throughout the sync settings screens when there is an unrecoverable error. [Length: 80em, can be multiple lines] [iOS only]"> <message name="IDS_IOS_SYNC_STATUS_UNRECOVERABLE_ERROR" desc="Message shown throughout the sync settings screens when there is an unrecoverable error. [Length: 80em, can be multiple lines] [iOS only]">
Sync has stopped working. Sync has stopped working.
</message> </message>
<message name="IDS_IOS_SYNC_TO_TITLE" desc="The title for the section of the accounts available for sync">
Sync to
</message>
<message name="IDS_IOS_SYNC_UPDATE_CREDENTIALS" desc="Title displayed when the signed in user needs to update its credentials. [Length: 20em] [iOS only]"> <message name="IDS_IOS_SYNC_UPDATE_CREDENTIALS" desc="Title displayed when the signed in user needs to update its credentials. [Length: 20em] [iOS only]">
Update Update
</message> </message>
......
...@@ -7,8 +7,6 @@ import("//build/config/chrome_build.gni") ...@@ -7,8 +7,6 @@ import("//build/config/chrome_build.gni")
source_set("cells") { source_set("cells") {
configs += [ "//build/config/compiler:enable_arc" ] configs += [ "//build/config/compiler:enable_arc" ]
sources = [ sources = [
"account_control_item.h",
"account_control_item.mm",
"signin_promo_view.h", "signin_promo_view.h",
"signin_promo_view.mm", "signin_promo_view.mm",
"signin_promo_view_configurator.h", "signin_promo_view_configurator.h",
...@@ -44,7 +42,6 @@ source_set("unit_tests") { ...@@ -44,7 +42,6 @@ source_set("unit_tests") {
configs += [ "//build/config/compiler:enable_arc" ] configs += [ "//build/config/compiler:enable_arc" ]
testonly = true testonly = true
sources = [ sources = [
"account_control_item_unittest.mm",
"signin_promo_view_unittest.mm", "signin_promo_view_unittest.mm",
"table_view_account_item_unittest.mm", "table_view_account_item_unittest.mm",
] ]
......
// Copyright 2018 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_AUTHENTICATION_CELLS_ACCOUNT_CONTROL_ITEM_H_
#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_CELLS_ACCOUNT_CONTROL_ITEM_H_
#import <UIKit/UIKit.h>
#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h"
// Item for account collection view and sign-in confirmation view.
@interface AccountControlItem : TableViewItem
// If this image should be tinted to match the text color (e.g. in dark mode),
// the provided image should have rendering mode
// UIImageRenderingModeAlwaysTemplate.
@property(nonatomic, strong) UIImage* image;
@property(nonatomic, copy) NSString* text;
@property(nonatomic, copy) NSString* detailText;
@property(nonatomic, assign) BOOL shouldDisplayError;
@end
// Cell for account settings view with a leading imageView, title text label,
// and detail text label. The imageView is top-leading aligned.
@interface AccountControlCell : TableViewCell
@property(nonatomic, readonly, strong) UIImageView* imageView;
@property(nonatomic, readonly, strong) UILabel* textLabel;
@property(nonatomic, readonly, strong) UILabel* detailTextLabel;
@end
#endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_CELLS_ACCOUNT_CONTROL_ITEM_H_
// Copyright 2018 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/authentication/cells/account_control_item.h"
#include "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/colors/UIColor+cr_semantic_colors.h"
#import "ios/chrome/common/colors/semantic_color_names.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation AccountControlItem
- (instancetype)initWithType:(NSInteger)type {
self = [super initWithType:type];
if (self) {
self.cellClass = [AccountControlCell class];
self.accessibilityTraits |= UIAccessibilityTraitButton;
}
return self;
}
#pragma mark - TableViewItem
- (void)configureCell:(AccountControlCell*)cell
withStyler:(ChromeTableViewStyler*)styler {
[super configureCell:cell withStyler:styler];
cell.imageView.image = self.image;
cell.imageView.tintColor = UIColor.cr_labelColor;
cell.textLabel.text = self.text;
cell.textLabel.textColor = UIColor.cr_labelColor;
cell.detailTextLabel.text = self.detailText;
cell.detailTextLabel.textColor = self.shouldDisplayError
? [UIColor colorNamed:kRedColor]
: UIColor.cr_secondaryLabelColor;
}
#pragma mark - Helper methods
- (NSAttributedString*)attributedStringForText:(NSString*)text
font:(UIFont*)font
color:(UIColor*)color {
NSMutableParagraphStyle* paragraphStyle =
[[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineHeightMultiple = 1.15;
return [[NSAttributedString alloc]
initWithString:text
attributes:@{
NSParagraphStyleAttributeName : paragraphStyle,
NSFontAttributeName : font,
NSForegroundColorAttributeName : color
}];
}
@end
@interface AccountControlCell () {
// Constraint used to set padding between image and text when image exists.
NSLayoutConstraint* _textLeadingAnchorConstraint;
}
@end
@implementation AccountControlCell
@synthesize imageView = _imageView;
@synthesize textLabel = _textLabel;
@synthesize detailTextLabel = _detailTextLabel;
- (instancetype)initWithStyle:(UITableViewCellStyle)style
reuseIdentifier:(NSString*)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.isAccessibilityElement = YES;
[self addSubviews];
[self setViewConstraints];
}
return self;
}
// Create and add subviews.
- (void)addSubviews {
UIView* contentView = self.contentView;
contentView.clipsToBounds = YES;
_imageView = [[UIImageView alloc] init];
_imageView.translatesAutoresizingMaskIntoConstraints = NO;
[_imageView
setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh + 1
forAxis:UILayoutConstraintAxisHorizontal];
[contentView addSubview:_imageView];
_textLabel = [[UILabel alloc] init];
_textLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
_textLabel.adjustsFontForContentSizeCategory = YES;
_textLabel.translatesAutoresizingMaskIntoConstraints = NO;
[contentView addSubview:_textLabel];
_detailTextLabel = [[UILabel alloc] init];
_detailTextLabel.font =
[UIFont preferredFontForTextStyle:kTableViewSublabelFontStyle];
_detailTextLabel.adjustsFontForContentSizeCategory = YES;
_detailTextLabel.translatesAutoresizingMaskIntoConstraints = NO;
_detailTextLabel.numberOfLines = 0;
[contentView addSubview:_detailTextLabel];
}
// Set constraints on subviews.
- (void)setViewConstraints {
UIView* contentView = self.contentView;
_textLeadingAnchorConstraint = [_textLabel.leadingAnchor
constraintEqualToAnchor:_imageView.trailingAnchor];
[NSLayoutConstraint activateConstraints:@[
// Set leading anchors.
[_imageView.leadingAnchor
constraintEqualToAnchor:contentView.leadingAnchor
constant:kTableViewHorizontalSpacing],
[_detailTextLabel.leadingAnchor
constraintEqualToAnchor:_textLabel.leadingAnchor],
_textLeadingAnchorConstraint,
// Set vertical anchors.
[_textLabel.topAnchor
constraintEqualToAnchor:contentView.topAnchor
constant:kTableViewLargeVerticalSpacing],
[_textLabel.bottomAnchor
constraintEqualToAnchor:_detailTextLabel.topAnchor
constant:-kTableViewVerticalSpacing],
[_imageView.centerYAnchor constraintEqualToAnchor:_textLabel.centerYAnchor],
[_detailTextLabel.bottomAnchor
constraintEqualToAnchor:contentView.bottomAnchor
constant:-kTableViewLargeVerticalSpacing],
// Set trailing anchors.
[_textLabel.trailingAnchor
constraintLessThanOrEqualToAnchor:contentView.trailingAnchor
constant:-kTableViewHorizontalSpacing],
[_detailTextLabel.trailingAnchor
constraintLessThanOrEqualToAnchor:contentView.trailingAnchor
constant:-kTableViewHorizontalSpacing],
]];
}
#pragma mark - UIView
- (void)layoutSubviews {
[super layoutSubviews];
// Adjust the text label preferredMaxLayoutWidth when the parent's width
// changes, for instance on screen rotation.
if (_imageView.image) {
_textLeadingAnchorConstraint.constant = kTableViewHorizontalSpacing;
} else {
_textLeadingAnchorConstraint.constant = 0;
}
}
#pragma mark - UITableViewCell
- (void)prepareForReuse {
[super prepareForReuse];
self.imageView.image = nil;
self.textLabel.text = nil;
self.detailTextLabel.text = nil;
self.detailTextLabel.textColor = UIColor.cr_secondaryLabelColor;
}
#pragma mark - NSObject(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/authentication/cells/account_control_item.h"
#include "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h"
#import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h"
#import "ios/chrome/browser/ui/util/uikit_ui_util.h"
#import "ios/chrome/common/colors/UIColor+cr_semantic_colors.h"
#import "ios/chrome/common/colors/semantic_color_names.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
using AccountControlItemTest = PlatformTest;
// Tests that the cell is properly configured with image and texts after a call
// to |configureCell:withStyler:|. All other cell decorations are default.
TEST_F(AccountControlItemTest, ConfigureCellDefault) {
AccountControlItem* item = [[AccountControlItem alloc] initWithType:0];
UIImage* image = [[UIImage alloc] init];
NSString* mainText = @"Main text";
NSString* detailText = @"Detail text";
item.image = image;
item.text = mainText;
item.detailText = detailText;
id cell = [[[item cellClass] alloc] init];
ASSERT_TRUE([cell isMemberOfClass:[AccountControlCell class]]);
AccountControlCell* accountCell = cell;
[accountCell prepareForReuse];
EXPECT_FALSE(accountCell.imageView.image);
EXPECT_FALSE(accountCell.textLabel.text);
EXPECT_FALSE(accountCell.detailTextLabel.text);
EXPECT_EQ(UITableViewCellAccessoryNone, accountCell.accessoryType);
EXPECT_NSEQ(UIColor.cr_secondaryLabelColor,
accountCell.detailTextLabel.textColor);
[item configureCell:cell withStyler:[[ChromeTableViewStyler alloc] init]];
EXPECT_NSEQ(image, accountCell.imageView.image);
EXPECT_NSEQ(mainText, accountCell.textLabel.text);
EXPECT_NSEQ(detailText, accountCell.detailTextLabel.text);
EXPECT_EQ(UITableViewCellAccessoryNone, accountCell.accessoryType);
EXPECT_NSEQ(UIColor.cr_secondaryLabelColor,
accountCell.detailTextLabel.textColor);
}
// Tests that the cell is properly configured with error and an accessory after
// a call to |configureCell:withStyler:|.
TEST_F(AccountControlItemTest, ConfigureCellWithErrorAndAccessory) {
AccountControlItem* item = [[AccountControlItem alloc] initWithType:0];
UIImage* image = [[UIImage alloc] init];
NSString* mainText = @"Main text";
NSString* detailText = @"Detail text";
item.image = image;
item.text = mainText;
item.detailText = detailText;
item.accessoryType = UITableViewCellAccessoryCheckmark;
item.shouldDisplayError = YES;
id cell = [[[item cellClass] alloc] init];
ASSERT_TRUE([cell isMemberOfClass:[AccountControlCell class]]);
AccountControlCell* accountCell = cell;
[accountCell prepareForReuse];
EXPECT_FALSE(accountCell.imageView.image);
EXPECT_FALSE(accountCell.textLabel.text);
EXPECT_FALSE(accountCell.detailTextLabel.text);
EXPECT_EQ(UITableViewCellAccessoryNone, accountCell.accessoryType);
EXPECT_NSEQ(UIColor.cr_secondaryLabelColor,
accountCell.detailTextLabel.textColor);
[item configureCell:cell withStyler:[[ChromeTableViewStyler alloc] init]];
EXPECT_NSEQ(image, accountCell.imageView.image);
EXPECT_NSEQ(mainText, accountCell.textLabel.text);
EXPECT_NSEQ(detailText, accountCell.detailTextLabel.text);
EXPECT_EQ(UITableViewCellAccessoryCheckmark, accountCell.accessoryType);
EXPECT_NSEQ([UIColor colorNamed:kRedColor],
accountCell.detailTextLabel.textColor);
}
...@@ -89,7 +89,6 @@ source_set("settings") { ...@@ -89,7 +89,6 @@ source_set("settings") {
"resources:settings_payment_methods", "resources:settings_payment_methods",
"resources:settings_privacy", "resources:settings_privacy",
"resources:settings_search_engine", "resources:settings_search_engine",
"resources:settings_sync",
"resources:settings_voice_search", "resources:settings_voice_search",
"resources:sync_and_google_services", "resources:sync_and_google_services",
"resources:sync_and_google_services_sync_error", "resources:sync_and_google_services_sync_error",
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "components/sync/driver/sync_service.h" #include "components/sync/driver/sync_service.h"
#include "components/sync/engine/sync_encryption_handler.h" #include "components/sync/engine/sync_encryption_handler.h"
#include "components/sync/protocol/proto_value_conversions.h" #include "components/sync/protocol/proto_value_conversions.h"
#include "components/unified_consent/feature.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.h" #include "ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.h"
#include "ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.h" #include "ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.h"
...@@ -19,7 +18,6 @@ ...@@ -19,7 +18,6 @@
#import "ios/chrome/browser/signin/authentication_service_factory.h" #import "ios/chrome/browser/signin/authentication_service_factory.h"
#include "ios/chrome/browser/sync/profile_sync_service_factory.h" #include "ios/chrome/browser/sync/profile_sync_service_factory.h"
#include "ios/chrome/browser/system_flags.h" #include "ios/chrome/browser/system_flags.h"
#import "ios/chrome/browser/ui/authentication/cells/account_control_item.h"
#import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui.h" #import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui.h"
#import "ios/chrome/browser/ui/authentication/signin_earlgrey_utils.h" #import "ios/chrome/browser/ui/authentication/signin_earlgrey_utils.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
...@@ -70,9 +68,6 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) { ...@@ -70,9 +68,6 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) {
[SigninEarlGreyUI signinWithIdentity:identity]; [SigninEarlGreyUI signinWithIdentity:identity];
[ChromeEarlGreyUI openSettingsMenu]; [ChromeEarlGreyUI openSettingsMenu];
[ChromeEarlGreyUI tapSettingsMenuButton:SettingsAccountButton()]; [ChromeEarlGreyUI tapSettingsMenuButton:SettingsAccountButton()];
if (!unified_consent::IsUnifiedConsentFeatureEnabled()) {
[ChromeEarlGreyUI tapAccountsMenuButton:AccountsSyncButton()];
}
// Forget |identity|, screens should be popped back to the Main Settings. // Forget |identity|, screens should be popped back to the Main Settings.
[[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; [[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
...@@ -146,52 +141,6 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) { ...@@ -146,52 +141,6 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) {
performAction:grey_tap()]; performAction:grey_tap()];
} }
// Tests that the Sync Settings screen is correctly reloaded when one of the
// secondary accounts disappears.
- (void)testSignInReloadSyncOnForgetIdentity {
if (unified_consent::IsUnifiedConsentFeatureEnabled()) {
EARL_GREY_TEST_DISABLED(
@"Sync section was moved to the Sync and Google services settings "
"screen, so it is no longer present in the account settings screen. "
"This test is now covered by GoogleServicesSettingsTestCase.");
}
ios::FakeChromeIdentityService* identity_service =
ios::FakeChromeIdentityService::GetInstanceFromChromeProvider();
ChromeIdentity* identity1 = [SigninEarlGreyUtils fakeIdentity1];
ChromeIdentity* identity2 = [SigninEarlGreyUtils fakeIdentity2];
identity_service->AddIdentity(identity2);
// Sign In |identity|, then open the Sync Settings.
[SigninEarlGreyUI signinWithIdentity:identity1];
[ChromeEarlGreyUI openSettingsMenu];
[ChromeEarlGreyUI tapSettingsMenuButton:SettingsAccountButton()];
[ChromeEarlGreyUI tapAccountsMenuButton:AccountsSyncButton()];
// Forget |identity2|, allowing the UI to synchronize before and after
// forgetting the identity.
[[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
identity_service->ForgetIdentity(identity2, nil);
[[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
// Check that both |identity1| and |identity2| aren't shown in the Sync
// Settings.
[[EarlGrey
selectElementWithMatcher:grey_allOf(
grey_accessibilityLabel(identity1.userEmail),
grey_sufficientlyVisible(), nil)]
assertWithMatcher:grey_nil()];
[[EarlGrey
selectElementWithMatcher:grey_allOf(
grey_accessibilityLabel(identity2.userEmail),
grey_sufficientlyVisible(), nil)]
assertWithMatcher:grey_nil()];
[SigninEarlGreyUtils checkSignedInWithIdentity:identity1];
[[EarlGrey selectElementWithMatcher:SettingsDoneButton()]
performAction:grey_tap()];
}
// Tests that the Account Settings screen is popped and the user signed out // Tests that the Account Settings screen is popped and the user signed out
// when the account is removed. // when the account is removed.
- (void)testSignOutOnRemoveAccount { - (void)testSignOutOnRemoveAccount {
...@@ -247,92 +196,4 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) { ...@@ -247,92 +196,4 @@ id<GREYMatcher> ButtonWithIdentity(ChromeIdentity* identity) {
performAction:grey_tap()]; performAction:grey_tap()];
} }
// Checks if the sync cell is correctly configured with the expected detail text
// label and an image.
- (void)checkSyncCellWithExpectedTextLabelCallback:
(ExpectedTextLabelCallback)callback {
NSAssert(callback, @"Need callback");
NSAssert(!unified_consent::IsUnifiedConsentFeatureEnabled(),
@"Only runs when unified consent is disabled");
ChromeIdentity* identity = [SigninEarlGreyUtils fakeIdentity1];
// Sign In |identity|, then open the Account Settings.
[SigninEarlGreyUI signinWithIdentity:identity];
[ChromeEarlGreyUI openSettingsMenu];
[ChromeEarlGreyUI tapSettingsMenuButton:SettingsAccountButton()];
NSString* expectedDetailTextLabel = callback([identity userEmail]);
// Check that account sync button displays the expected detail text label and
// an image.
GREYPerformBlock block = ^BOOL(id element, NSError* __strong* errorOrNil) {
GREYAssertTrue([element isKindOfClass:[AccountControlCell class]],
@"Should be AccountControlCell type");
AccountControlCell* cell = static_cast<AccountControlCell*>(element);
return
[cell.detailTextLabel.text isEqualToString:expectedDetailTextLabel] &&
cell.imageView.image != nil;
};
[[EarlGrey selectElementWithMatcher:AccountsSyncButton()]
performAction:[GREYActionBlock
actionWithName:@"Invoke clearStateForTest selector"
performBlock:block]];
}
// Tests the sync cell is correctly configured when having a MDM error.
- (void)testMDMError {
if (unified_consent::IsUnifiedConsentFeatureEnabled()) {
EARL_GREY_TEST_DISABLED(
@"Sync section was moved to the Sync and Google services settings "
"screen, so it is no longer present in the account settings screen. "
"This test is now covered by GoogleServicesSettingsTestCase.");
}
ios::FakeChromeIdentityService* fakeChromeIdentityService =
ios::FakeChromeIdentityService::GetInstanceFromChromeProvider();
fakeChromeIdentityService->SetFakeMDMError(true);
ExpectedTextLabelCallback callback = ^(NSString* identityEmail) {
return l10n_util::GetNSString(IDS_IOS_OPTIONS_ACCOUNTS_SYNC_ERROR);
};
[self checkSyncCellWithExpectedTextLabelCallback:callback];
}
// Tests the sync cell is correctly configured when no error.
- (void)testSyncItemWithSyncingMessage {
if (unified_consent::IsUnifiedConsentFeatureEnabled()) {
EARL_GREY_TEST_DISABLED(
@"Sync section was moved to the Sync and Google services settings "
"screen, so it is no longer present in the account settings screen. "
"This test is now covered by GoogleServicesSettingsTestCase.");
}
ExpectedTextLabelCallback callback = ^(NSString* identityEmail) {
return l10n_util::GetNSStringF(IDS_IOS_SIGN_IN_TO_CHROME_SETTING_SYNCING,
base::SysNSStringToUTF16(identityEmail));
};
[self checkSyncCellWithExpectedTextLabelCallback:callback];
}
// Tests the sync cell is correctly configured when the passphrase is required.
- (void)testSyncItemWithPassphraseRequired {
if (unified_consent::IsUnifiedConsentFeatureEnabled()) {
EARL_GREY_TEST_DISABLED(
@"Sync section was moved to the Sync and Google services settings "
"screen, so it is no longer present in the account settings screen. "
"This test is now covered by GoogleServicesSettingsTestCase.");
}
ExpectedTextLabelCallback callback = ^(NSString* identityEmail) {
ios::ChromeBrowserState* browser_state =
chrome_test_util::GetOriginalBrowserState();
syncer::ProfileSyncService* profile_sync_service =
ProfileSyncServiceFactory::GetAsProfileSyncServiceForBrowserState(
browser_state);
profile_sync_service->GetEncryptionObserverForTest()->OnPassphraseRequired(
syncer::REASON_DECRYPTION,
syncer::KeyDerivationParams::CreateForPbkdf2(),
sync_pb::EncryptedData());
return l10n_util::GetNSString(IDS_IOS_SYNC_ENCRYPTION_DESCRIPTION);
};
[self checkSyncCellWithExpectedTextLabelCallback:callback];
}
@end @end
...@@ -46,15 +46,6 @@ imageset("settings_error") { ...@@ -46,15 +46,6 @@ imageset("settings_error") {
] ]
} }
imageset("settings_sync") {
sources = [
"settings_sync.imageset/Contents.json",
"settings_sync.imageset/settings_sync.png",
"settings_sync.imageset/settings_sync@2x.png",
"settings_sync.imageset/settings_sync@3x.png",
]
}
imageset("settings_about_chrome") { imageset("settings_about_chrome") {
sources = [ sources = [
"settings_about_chrome.imageset/Contents.json", "settings_about_chrome.imageset/Contents.json",
......
{
"images": [
{
"idiom": "universal",
"scale": "1x",
"filename": "settings_sync.png"
},
{
"idiom": "universal",
"scale": "2x",
"filename": "settings_sync@2x.png"
},
{
"idiom": "universal",
"scale": "3x",
"filename": "settings_sync@3x.png"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}
...@@ -11,8 +11,6 @@ source_set("sync") { ...@@ -11,8 +11,6 @@ source_set("sync") {
"sync_encryption_passphrase_table_view_controller.mm", "sync_encryption_passphrase_table_view_controller.mm",
"sync_encryption_table_view_controller.h", "sync_encryption_table_view_controller.h",
"sync_encryption_table_view_controller.mm", "sync_encryption_table_view_controller.mm",
"sync_settings_table_view_controller.h",
"sync_settings_table_view_controller.mm",
] ]
deps = [ deps = [
"//base", "//base",
...@@ -61,7 +59,6 @@ source_set("unit_tests") { ...@@ -61,7 +59,6 @@ source_set("unit_tests") {
"sync_create_passphrase_table_view_controller_unittest.mm", "sync_create_passphrase_table_view_controller_unittest.mm",
"sync_encryption_passphrase_table_view_controller_unittest.mm", "sync_encryption_passphrase_table_view_controller_unittest.mm",
"sync_encryption_table_view_controller_unittest.mm", "sync_encryption_table_view_controller_unittest.mm",
"sync_settings_table_view_controller_unittest.mm",
] ]
deps = [ deps = [
":sync", ":sync",
......
// Copyright 2015 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_SYNC_SYNC_SETTINGS_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_SYNC_SETTINGS_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
namespace ios {
class ChromeBrowserState;
} // namespace ios
// The a11y identifier of the view controller's view.
extern NSString* const kSettingsSyncId;
// Notification when a switch account operation will start.
extern NSString* const kSwitchAccountWillStartNotification;
// Notification when a switch account operation did finish.
extern NSString* const kSwitchAccountDidFinishNotification;
@interface SyncSettingsTableViewController : SettingsRootTableViewController
// |browserState| must not be nil.
// |allowSwitchSyncAccount| indicates whether switching sync account is allowed
// on the screen.
- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
allowSwitchSyncAccount:(BOOL)allowSwitchSyncAccount
NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithTableViewStyle:(UITableViewStyle)style
appBarStyle:
(ChromeTableViewControllerStyle)appBarStyle
NS_UNAVAILABLE;
@end
@interface SyncSettingsTableViewController (UsedForTesting)
// Returns YES if a sync error cell should be displayed.
- (BOOL)shouldDisplaySyncError;
// Return YES if the Sync settings should be disabled because of a Sync error.
- (BOOL)shouldDisableSettingsOnSyncError;
// Returns YES if the encryption cell should display an error.
- (BOOL)shouldDisplayEncryptionError;
@end
#endif // IOS_CHROME_BROWSER_UI_SETTINGS_SYNC_SYNC_SETTINGS_TABLE_VIEW_CONTROLLER_H_
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#import "ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.h" #import "ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.h"
#import "ios/chrome/browser/ui/authentication/cells/account_control_item.h"
#import "ios/chrome/browser/ui/authentication/cells/signin_promo_view_configurator.h" #import "ios/chrome/browser/ui/authentication/cells/signin_promo_view_configurator.h"
#import "ios/chrome/browser/ui/authentication/cells/table_view_account_item.h" #import "ios/chrome/browser/ui/authentication/cells/table_view_account_item.h"
#import "ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.h" #import "ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.h"
...@@ -414,29 +413,6 @@ typedef NS_ENUM(NSInteger, ItemType) { ...@@ -414,29 +413,6 @@ typedef NS_ENUM(NSInteger, ItemType) {
[model addItem:accountItemCheckMark [model addItem:accountItemCheckMark
toSectionWithIdentifier:SectionIdentifierAccount]; toSectionWithIdentifier:SectionIdentifierAccount];
AccountControlItem* accountControlItem =
[[AccountControlItem alloc] initWithType:ItemTypeAccount];
accountControlItem.image = [UIImage imageNamed:@"settings_sync"];
accountControlItem.text = @"Account Sync Settings";
accountControlItem.detailText = @"Detail text";
accountControlItem.accessoryType =
UITableViewCellAccessoryDisclosureIndicator;
[model addItem:accountControlItem
toSectionWithIdentifier:SectionIdentifierAccount];
AccountControlItem* accountControlItemWithExtraLongText =
[[AccountControlItem alloc] initWithType:ItemTypeAccount];
accountControlItemWithExtraLongText.image = [[ChromeIcon infoIcon]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
accountControlItemWithExtraLongText.text =
@"Account Control Settings - long title";
accountControlItemWithExtraLongText.detailText =
@"Detail text detail text detail text detail text detail text.";
accountControlItemWithExtraLongText.accessoryType =
UITableViewCellAccessoryDisclosureIndicator;
[model addItem:accountControlItemWithExtraLongText
toSectionWithIdentifier:SectionIdentifierAccount];
// SectionIdentifierURL. // SectionIdentifierURL.
TableViewURLItem* item = TableViewURLItem* item =
[[TableViewURLItem alloc] initWithType:ItemTypeURLNoMetadata]; [[TableViewURLItem alloc] initWithType:ItemTypeURLNoMetadata];
......
...@@ -225,9 +225,6 @@ id<GREYMatcher> SettingsImportDataContinueButton(); ...@@ -225,9 +225,6 @@ id<GREYMatcher> SettingsImportDataContinueButton();
// Returns matcher for the privacy settings table view. // Returns matcher for the privacy settings table view.
id<GREYMatcher> SettingsPrivacyTableView(); id<GREYMatcher> SettingsPrivacyTableView();
// Returns matcher for the Manage Synced Data button in sync setting view.
id<GREYMatcher> SettingsSyncManageSyncedDataButton();
// Returns matcher for the menu button to sync accounts. // Returns matcher for the menu button to sync accounts.
id<GREYMatcher> AccountsSyncButton(); id<GREYMatcher> AccountsSyncButton();
......
...@@ -283,10 +283,6 @@ id<GREYMatcher> SettingsPrivacyTableView() { ...@@ -283,10 +283,6 @@ id<GREYMatcher> SettingsPrivacyTableView() {
return [ChromeMatchersAppInterface settingsPrivacyTableView]; return [ChromeMatchersAppInterface settingsPrivacyTableView];
} }
id<GREYMatcher> SettingsSyncManageSyncedDataButton() {
return [ChromeMatchersAppInterface settingsSyncManageSyncedDataButton];
}
id<GREYMatcher> AccountsSyncButton() { id<GREYMatcher> AccountsSyncButton() {
return [ChromeMatchersAppInterface accountsSyncButton]; return [ChromeMatchersAppInterface accountsSyncButton];
} }
......
...@@ -230,9 +230,6 @@ ...@@ -230,9 +230,6 @@
// Returns matcher for the privacy table view. // Returns matcher for the privacy table view.
+ (id<GREYMatcher>)settingsPrivacyTableView; + (id<GREYMatcher>)settingsPrivacyTableView;
// Returns matcher for the Manage Synced Data button in sync setting view.
+ (id<GREYMatcher>)settingsSyncManageSyncedDataButton;
// Returns matcher for the menu button to sync accounts. // Returns matcher for the menu button to sync accounts.
+ (id<GREYMatcher>)accountsSyncButton; + (id<GREYMatcher>)accountsSyncButton;
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#import "ios/chrome/browser/ui/settings/import_data_table_view_controller.h" #import "ios/chrome/browser/ui/settings/import_data_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/privacy_table_view_controller.h" #import "ios/chrome/browser/ui/settings/privacy_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/settings_table_view_controller.h" #import "ios/chrome/browser/ui/settings/settings_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/sync/sync_settings_table_view_controller.h"
#import "ios/chrome/browser/ui/static_content/static_html_view_controller.h" #import "ios/chrome/browser/ui/static_content/static_html_view_controller.h"
#import "ios/chrome/browser/ui/tab_grid/grid/grid_constants.h" #import "ios/chrome/browser/ui/tab_grid/grid/grid_constants.h"
#import "ios/chrome/browser/ui/tab_grid/tab_grid_constants.h" #import "ios/chrome/browser/ui/tab_grid/tab_grid_constants.h"
...@@ -497,10 +496,6 @@ UIView* SubviewWithAccessibilityIdentifier(NSString* accessibility_id, ...@@ -497,10 +496,6 @@ UIView* SubviewWithAccessibilityIdentifier(NSString* accessibility_id,
return grey_accessibilityID(kPrivacyTableViewId); return grey_accessibilityID(kPrivacyTableViewId);
} }
+ (id<GREYMatcher>)settingsSyncManageSyncedDataButton {
return grey_accessibilityID(kSettingsSyncId);
}
+ (id<GREYMatcher>)accountsSyncButton { + (id<GREYMatcher>)accountsSyncButton {
return grey_allOf(grey_accessibilityID(kSettingsAccountsTableViewSyncCellId), return grey_allOf(grey_accessibilityID(kSettingsAccountsTableViewSyncCellId),
grey_sufficientlyVisible(), nil); grey_sufficientlyVisible(), nil);
......
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