Commit 075d061f authored by Nohemi Fernandez's avatar Nohemi Fernandez Committed by Chromium LUCI CQ

[iOS][MICe] Fix visual bugs in displaying Sync error states in Settings.

- Shows Sync error state in Settings main page.
- Keeps Sync error state as header in Sync page until the error is
resolved.
- Removes duplicate Sync error state in Settings during advanced sign-in.

Bug: 1125631
Change-Id: Ib94bb8843311afd9d6603e9cb2dd5594014f1ff9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2636397Reviewed-by: default avatarJérôme Lebel <jlebel@chromium.org>
Commit-Queue: Nohemi Fernandez <fernandex@chromium.org>
Cr-Commit-Position: refs/heads/master@{#845177}
parent 77a4a303
......@@ -346,11 +346,19 @@ NSString* kGoogleServicesSyncErrorImage = @"google_services_sync_error";
}
- (BOOL)disabledBecauseOfSyncError {
SyncSetupService::SyncServiceState state =
self.syncSetupService->GetSyncServiceState();
return state != SyncSetupService::kNoSyncServiceError &&
state != SyncSetupService::kSyncServiceNeedsPassphrase &&
state != SyncSetupService::kSyncServiceNeedsTrustedVaultKey;
switch (self.syncSetupService->GetSyncServiceState()) {
case SyncSetupService::kSyncServiceUnrecoverableError:
case SyncSetupService::kSyncServiceSignInNeedsUpdate:
case SyncSetupService::kSyncSettingsNotConfirmed:
case SyncSetupService::kSyncServiceCouldNotConnect:
case SyncSetupService::kSyncServiceServiceUnavailable:
return YES;
case SyncSetupService::kNoSyncServiceError:
case SyncSetupService::kSyncServiceNeedsPassphrase:
case SyncSetupService::kSyncServiceNeedsTrustedVaultKey:
return NO;
}
NOTREACHED();
}
- (BOOL)shouldSyncDataItemEnabled {
......@@ -553,6 +561,10 @@ NSString* kGoogleServicesSyncErrorImage = @"google_services_sync_error";
// Loads the sync errors section.
- (void)loadSyncErrorsSection {
// The |self.consumer.tableViewModel| will be reset prior to this method.
// Ignore any previous value the |self.syncErrorItem| may have contained.
self.syncErrorItem = nil;
[self.consumer.tableViewModel
addSectionWithIdentifier:SyncErrorsSectionIdentifier];
[self updateSyncErrorsSection:NO];
......
......@@ -158,7 +158,7 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) {
} else if (syncSetupService->IsFirstSetupComplete()) {
SyncSetupService::SyncServiceState errorState =
syncSetupService->GetSyncServiceState();
if (syncSetupService->IsSyncEnabled() || IsTransientSyncError(errorState)) {
if (syncSetupService->IsSyncEnabled() && IsTransientSyncError(errorState)) {
return kSyncEnabled;
} else {
return kSyncEnabledWithError;
......@@ -1525,9 +1525,6 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) {
if (_googleSyncDetailItem) {
[self updateGoogleSyncDetailItem:_googleSyncDetailItem];
[self reconfigureCellsForItems:@[ _googleSyncDetailItem ]];
} else {
[self.tableViewModel addItem:[self googleSyncDetailItem]
toSectionWithIdentifier:SettingsSectionIdentifierAccount];
}
} else if (_googleSyncDetailItem) {
[self.tableViewModel removeItemWithType:SettingsItemTypeGoogleSync
......
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