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"; ...@@ -346,11 +346,19 @@ NSString* kGoogleServicesSyncErrorImage = @"google_services_sync_error";
} }
- (BOOL)disabledBecauseOfSyncError { - (BOOL)disabledBecauseOfSyncError {
SyncSetupService::SyncServiceState state = switch (self.syncSetupService->GetSyncServiceState()) {
self.syncSetupService->GetSyncServiceState(); case SyncSetupService::kSyncServiceUnrecoverableError:
return state != SyncSetupService::kNoSyncServiceError && case SyncSetupService::kSyncServiceSignInNeedsUpdate:
state != SyncSetupService::kSyncServiceNeedsPassphrase && case SyncSetupService::kSyncSettingsNotConfirmed:
state != SyncSetupService::kSyncServiceNeedsTrustedVaultKey; case SyncSetupService::kSyncServiceCouldNotConnect:
case SyncSetupService::kSyncServiceServiceUnavailable:
return YES;
case SyncSetupService::kNoSyncServiceError:
case SyncSetupService::kSyncServiceNeedsPassphrase:
case SyncSetupService::kSyncServiceNeedsTrustedVaultKey:
return NO;
}
NOTREACHED();
} }
- (BOOL)shouldSyncDataItemEnabled { - (BOOL)shouldSyncDataItemEnabled {
...@@ -553,6 +561,10 @@ NSString* kGoogleServicesSyncErrorImage = @"google_services_sync_error"; ...@@ -553,6 +561,10 @@ NSString* kGoogleServicesSyncErrorImage = @"google_services_sync_error";
// Loads the sync errors section. // Loads the sync errors section.
- (void)loadSyncErrorsSection { - (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 [self.consumer.tableViewModel
addSectionWithIdentifier:SyncErrorsSectionIdentifier]; addSectionWithIdentifier:SyncErrorsSectionIdentifier];
[self updateSyncErrorsSection:NO]; [self updateSyncErrorsSection:NO];
......
...@@ -158,7 +158,7 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) { ...@@ -158,7 +158,7 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) {
} else if (syncSetupService->IsFirstSetupComplete()) { } else if (syncSetupService->IsFirstSetupComplete()) {
SyncSetupService::SyncServiceState errorState = SyncSetupService::SyncServiceState errorState =
syncSetupService->GetSyncServiceState(); syncSetupService->GetSyncServiceState();
if (syncSetupService->IsSyncEnabled() || IsTransientSyncError(errorState)) { if (syncSetupService->IsSyncEnabled() && IsTransientSyncError(errorState)) {
return kSyncEnabled; return kSyncEnabled;
} else { } else {
return kSyncEnabledWithError; return kSyncEnabledWithError;
...@@ -1525,9 +1525,6 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) { ...@@ -1525,9 +1525,6 @@ SyncState GetSyncStateFromBrowserState(ChromeBrowserState* browserState) {
if (_googleSyncDetailItem) { if (_googleSyncDetailItem) {
[self updateGoogleSyncDetailItem:_googleSyncDetailItem]; [self updateGoogleSyncDetailItem:_googleSyncDetailItem];
[self reconfigureCellsForItems:@[ _googleSyncDetailItem ]]; [self reconfigureCellsForItems:@[ _googleSyncDetailItem ]];
} else {
[self.tableViewModel addItem:[self googleSyncDetailItem]
toSectionWithIdentifier:SettingsSectionIdentifierAccount];
} }
} else if (_googleSyncDetailItem) { } else if (_googleSyncDetailItem) {
[self.tableViewModel removeItemWithType:SettingsItemTypeGoogleSync [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