| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #if defined(BROWSER_SYNC) | 5 #if defined(BROWSER_SYNC) |
| 6 | 6 |
| 7 #include "chrome/browser/sync/sync_status_ui_helper.h" | 7 #include "chrome/browser/sync/sync_status_ui_helper.h" |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| 11 #include "chrome/browser/sync/auth_error_state.h" | 11 #include "chrome/browser/sync/auth_error_state.h" |
| 12 #include "chrome/browser/sync/profile_sync_service.h" | 12 #include "chrome/browser/sync/profile_sync_service.h" |
| 13 #include "grit/chromium_strings.h" | 13 #include "grit/chromium_strings.h" |
| 14 #include "grit/generated_resources.h" | 14 #include "grit/generated_resources.h" |
| 15 | 15 |
| 16 // Given an authentication state, this helper function returns the appropriate | 16 // Given an authentication state, this helper function returns the appropriate |
| 17 // status message and, if necessary, the text that should appear in the | 17 // status message and, if necessary, the text that should appear in the |
| 18 // re-login link. | 18 // re-login link. |
| 19 static void GetLabelsForAuthError(AuthErrorState auth_error, | 19 static void GetLabelsForAuthError(AuthErrorState auth_error, |
| 20 ProfileSyncService* service, std::wstring* status_label, | 20 ProfileSyncService* service, string16* status_label, |
| 21 std::wstring* link_label) { | 21 string16* link_label) { |
| 22 if (link_label) | 22 if (link_label) |
| 23 link_label->assign(l10n_util::GetString(IDS_SYNC_RELOGIN_LINK_LABEL)); | 23 link_label->assign(l10n_util::GetStringUTF16(IDS_SYNC_RELOGIN_LINK_LABEL)); |
| 24 if (auth_error == AUTH_ERROR_INVALID_GAIA_CREDENTIALS) { | 24 if (auth_error == AUTH_ERROR_INVALID_GAIA_CREDENTIALS) { |
| 25 // If the user name is empty then the first login failed, otherwise the | 25 // If the user name is empty then the first login failed, otherwise the |
| 26 // credentials are out-of-date. | 26 // credentials are out-of-date. |
| 27 if (service->GetAuthenticatedUsername().empty()) | 27 if (service->GetAuthenticatedUsername().empty()) |
| 28 status_label->assign( | 28 status_label->assign( |
| 29 l10n_util::GetString(IDS_SYNC_INVALID_USER_CREDENTIALS)); | 29 l10n_util::GetStringUTF16(IDS_SYNC_INVALID_USER_CREDENTIALS)); |
| 30 else | 30 else |
| 31 status_label->assign( | 31 status_label->assign( |
| 32 l10n_util::GetString(IDS_SYNC_LOGIN_INFO_OUT_OF_DATE)); | 32 l10n_util::GetStringUTF16(IDS_SYNC_LOGIN_INFO_OUT_OF_DATE)); |
| 33 } else if (auth_error == AUTH_ERROR_CONNECTION_FAILED) { | 33 } else if (auth_error == AUTH_ERROR_CONNECTION_FAILED) { |
| 34 // Note that there is little the user can do if the server is not | 34 // Note that there is little the user can do if the server is not |
| 35 // reachable. Since attempting to re-connect is done automatically by | 35 // reachable. Since attempting to re-connect is done automatically by |
| 36 // the Syncer, we do not show the (re)login link. | 36 // the Syncer, we do not show the (re)login link. |
| 37 status_label->assign( | 37 status_label->assign( |
| 38 l10n_util::GetStringF(IDS_SYNC_SERVER_IS_UNREACHABLE, | 38 l10n_util::GetStringFUTF16(IDS_SYNC_SERVER_IS_UNREACHABLE, |
| 39 l10n_util::GetString(IDS_PRODUCT_NAME))); | 39 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| 40 if (link_label) | 40 if (link_label) |
| 41 link_label->clear(); | 41 link_label->clear(); |
| 42 } else { | 42 } else { |
| 43 status_label->assign(l10n_util::GetString(IDS_SYNC_ERROR_SIGNING_IN)); | 43 status_label->assign(l10n_util::GetStringUTF16(IDS_SYNC_ERROR_SIGNING_IN)); |
| 44 } | 44 } |
| 45 } | 45 } |
| 46 | 46 |
| 47 // Returns the message that should be displayed when the user is authenticated | 47 // Returns the message that should be displayed when the user is authenticated |
| 48 // and can connect to the sync server. If the user hasn't yet authenticated, an | 48 // and can connect to the sync server. If the user hasn't yet authenticated, an |
| 49 // empty string is returned. | 49 // empty string is returned. |
| 50 static std::wstring GetSyncedStateStatusLabel(ProfileSyncService* service) { | 50 static string16 GetSyncedStateStatusLabel(ProfileSyncService* service) { |
| 51 std::wstring label; | 51 string16 label; |
| 52 std::wstring user_name(UTF16ToWide(service->GetAuthenticatedUsername())); | 52 string16 user_name(service->GetAuthenticatedUsername()); |
| 53 if (user_name.empty()) | 53 if (user_name.empty()) |
| 54 return label; | 54 return label; |
| 55 | 55 |
| 56 return l10n_util::GetStringF(IDS_SYNC_ACCOUNT_SYNCED_TO_USER_WITH_TIME, | 56 return l10n_util::GetStringFUTF16( |
| 57 user_name, service->GetLastSyncedTimeString()); | 57 IDS_SYNC_ACCOUNT_SYNCED_TO_USER_WITH_TIME, |
| 58 user_name, |
| 59 WideToUTF16(service->GetLastSyncedTimeString())); |
| 58 } | 60 } |
| 59 | 61 |
| 60 // static | 62 // static |
| 61 SyncStatusUIHelper::MessageType SyncStatusUIHelper::GetLabels( | 63 SyncStatusUIHelper::MessageType SyncStatusUIHelper::GetLabels( |
| 62 ProfileSyncService* service, std::wstring* status_label, | 64 ProfileSyncService* service, string16* status_label, |
| 63 std::wstring* link_label) { | 65 string16* link_label) { |
| 64 MessageType result_type(SYNCED); | 66 MessageType result_type(SYNCED); |
| 65 | 67 |
| 66 if (!service) { | 68 if (!service) { |
| 67 return PRE_SYNCED; | 69 return PRE_SYNCED; |
| 68 } | 70 } |
| 69 | 71 |
| 70 if (service->HasSyncSetupCompleted()) { | 72 if (service->HasSyncSetupCompleted()) { |
| 71 ProfileSyncService::Status status(service->QueryDetailedSyncStatus()); | 73 ProfileSyncService::Status status(service->QueryDetailedSyncStatus()); |
| 72 AuthErrorState auth_error(service->GetAuthErrorState()); | 74 AuthErrorState auth_error(service->GetAuthErrorState()); |
| 73 | 75 |
| 74 // Either show auth error information with a link to re-login, auth in prog, | 76 // Either show auth error information with a link to re-login, auth in prog, |
| 75 // or note that everything is OK with the last synced time. | 77 // or note that everything is OK with the last synced time. |
| 76 if (status.authenticated) { | 78 if (status.authenticated) { |
| 77 // Everything is peachy. | 79 // Everything is peachy. |
| 78 status_label->assign(GetSyncedStateStatusLabel(service)); | 80 status_label->assign(GetSyncedStateStatusLabel(service)); |
| 79 DCHECK_EQ(auth_error, AUTH_ERROR_NONE); | 81 DCHECK_EQ(auth_error, AUTH_ERROR_NONE); |
| 80 } else if (service->UIShouldDepictAuthInProgress()) { | 82 } else if (service->UIShouldDepictAuthInProgress()) { |
| 81 status_label->assign(l10n_util::GetString(IDS_SYNC_AUTHENTICATING_LABEL)); | 83 status_label->assign( |
| 84 l10n_util::GetStringUTF16(IDS_SYNC_AUTHENTICATING_LABEL)); |
| 82 result_type = PRE_SYNCED; | 85 result_type = PRE_SYNCED; |
| 83 } else if (auth_error != AUTH_ERROR_NONE) { | 86 } else if (auth_error != AUTH_ERROR_NONE) { |
| 84 GetLabelsForAuthError(auth_error, service, status_label, link_label); | 87 GetLabelsForAuthError(auth_error, service, status_label, link_label); |
| 85 result_type = SYNC_ERROR; | 88 result_type = SYNC_ERROR; |
| 86 } | 89 } |
| 87 } else { | 90 } else { |
| 88 // Either show auth error information with a link to re-login, auth in prog, | 91 // Either show auth error information with a link to re-login, auth in prog, |
| 89 // or provide a link to continue with setup. | 92 // or provide a link to continue with setup. |
| 90 result_type = PRE_SYNCED; | 93 result_type = PRE_SYNCED; |
| 91 if (service->SetupInProgress()) { | 94 if (service->SetupInProgress()) { |
| 92 ProfileSyncService::Status status(service->QueryDetailedSyncStatus()); | 95 ProfileSyncService::Status status(service->QueryDetailedSyncStatus()); |
| 93 AuthErrorState auth_error(service->GetAuthErrorState()); | 96 AuthErrorState auth_error(service->GetAuthErrorState()); |
| 94 status_label->assign( | 97 status_label->assign( |
| 95 l10n_util::GetString(IDS_SYNC_NTP_SETUP_IN_PROGRESS)); | 98 l10n_util::GetStringUTF16(IDS_SYNC_NTP_SETUP_IN_PROGRESS)); |
| 96 if (service->UIShouldDepictAuthInProgress()) { | 99 if (service->UIShouldDepictAuthInProgress()) { |
| 97 status_label->assign( | 100 status_label->assign( |
| 98 l10n_util::GetString(IDS_SYNC_AUTHENTICATING_LABEL)); | 101 l10n_util::GetStringUTF16(IDS_SYNC_AUTHENTICATING_LABEL)); |
| 99 } else if (auth_error != AUTH_ERROR_NONE) { | 102 } else if (auth_error != AUTH_ERROR_NONE) { |
| 100 status_label->clear(); | 103 status_label->clear(); |
| 101 GetLabelsForAuthError(auth_error, service, status_label, NULL); | 104 GetLabelsForAuthError(auth_error, service, status_label, NULL); |
| 102 result_type = SYNC_ERROR; | 105 result_type = SYNC_ERROR; |
| 103 } else if (!status.authenticated) { | 106 } else if (!status.authenticated) { |
| 104 status_label->assign( | 107 status_label->assign( |
| 105 l10n_util::GetString(IDS_SYNC_ACCOUNT_DETAILS_NOT_ENTERED)); | 108 l10n_util::GetStringUTF16(IDS_SYNC_ACCOUNT_DETAILS_NOT_ENTERED)); |
| 106 } | 109 } |
| 107 } else if (service->unrecoverable_error_detected()) { | 110 } else if (service->unrecoverable_error_detected()) { |
| 108 result_type = SYNC_ERROR; | 111 result_type = SYNC_ERROR; |
| 109 status_label->assign(l10n_util::GetString(IDS_SYNC_SETUP_ERROR)); | 112 status_label->assign(l10n_util::GetStringUTF16(IDS_SYNC_SETUP_ERROR)); |
| 110 } else { | 113 } else { |
| 111 status_label->assign(l10n_util::GetString(IDS_SYNC_NOT_SET_UP_INFO)); | 114 status_label->assign(l10n_util::GetStringUTF16(IDS_SYNC_NOT_SET_UP_INFO)); |
| 112 } | 115 } |
| 113 } | 116 } |
| 114 return result_type; | 117 return result_type; |
| 115 } | 118 } |
| 116 | 119 |
| 117 #endif // defined(BROWSER_SYNC) | 120 #endif // defined(BROWSER_SYNC) |
| OLD | NEW |