Sync setting disabled if no account.
Bug: 19361223
Change-Id: Id5e8d34920f5bf3bffb6d6d287557e85d7b72c79
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index c8060da..e4b3883 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -61,7 +61,7 @@
<!-- Option summary when cloud sync feature is disabled [CHAR LIMIT=65] -->
<string name="cloud_sync_summary_disabled">Sync your personal dictionary across devices</string>
<!-- Option title for starting the sync cycle now. [CHAR LIMIT=33]-->
- <string name="sync_now_title">Sync Now</string>
+ <string name="sync_now_title">Sync now</string>
<!-- Option title for letting user delete data from Google servers. [CHAR LIMIT=33] -->
<string name="clear_sync_data_title">Delete Keyboard Cloud data</string>
<!-- Option summary for letting user delete data from Google servers. [CHAR LIMIT=65] -->
@@ -73,12 +73,16 @@
<!-- Option to cancel the deletion of user data from cloud [CHAR LIMIT=20] -->
<string name="cloud_sync_cancel">Cancel</string>
<!-- Option to agree to terms and conditions for enabling cloud sync feature. -->
- <string name="cloud_sync_opt_in_text">Your personal dictionary will be synced & backed up to
- Google servers. The statistical information of word frequency may be collected to help
+ <string name="cloud_sync_opt_in_text">Your personal dictionary will be synced and backed up to
+ Google servers. The statistical information of word frequency may be collected to help
improve our products. The collection and usage of all the information will be compliant with
<a href="https://www.google.com/policies/privacy">Google\'s Privacy Policy</a>.
</string>
-
+ <!-- Text to tell the user to add a Google account to the device to enable the cloud sync feature. [CHAR LIMIT=65]-->
+ <string name="add_account_to_enable_sync">
+ Please add a Google account to this device to enable this feature
+ </string>
+
<!-- Option name for including other IMEs in the language switch list [CHAR LIMIT=30] -->
<string name="include_other_imes_in_language_switch_list">Switch to other input methods</string>
<!-- Option summary for including other IMEs in the language switch list [CHAR LIMIT=65] -->
diff --git a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
index b734d8b..9a8a7b9 100644
--- a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
@@ -204,10 +204,33 @@
* is currently selected.
*/
private void refreshAccountAndDependentPreferences(@Nullable final String currentAccount) {
+ // TODO(cvnguyen): Write tests.
if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) {
return;
}
+ final String[] accountsForLogin =
+ LoginAccountUtils.getAccountsForLogin(getActivity());
+
+ if (accountsForLogin.length > 0) {
+ enableSyncPreferences();
+ mAccountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(final Preference preference) {
+ if (accountsForLogin.length > 0) {
+ // TODO: Add addition of account.
+ createAccountPicker(accountsForLogin, currentAccount,
+ new AccountChangedListener(null)).show();
+ }
+ return true;
+ }
+ });
+ } else {
+ mAccountSwitcher.setEnabled(false);
+ disableSyncPreferences();
+ mEnableSyncPreference.setSummary(getString(R.string.add_account_to_enable_sync));
+ }
+
if (currentAccount == null) {
// No account is currently selected; switch enable sync preference off.
mAccountSwitcher.setSummary(getString(R.string.no_accounts_selected));
@@ -216,20 +239,6 @@
// Set the currently selected account as the summary text.
mAccountSwitcher.setSummary(getString(R.string.account_selected, currentAccount));
}
-
- mAccountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(final Preference preference) {
- final String[] accountsForLogin =
- LoginAccountUtils.getAccountsForLogin(getActivity());
- if (accountsForLogin.length > 0) {
- // TODO: Add addition of account.
- createAccountPicker(accountsForLogin, currentAccount,
- new AccountChangedListener(null)).show();
- }
- return true;
- }
- });
}
@Nullable