diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java
index 0ae0c62a5..842059da5 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java
@@ -503,10 +503,12 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
);
}
- private void initializeSyncCheckBox(CheckBoxPreference syncCheckBox, final Account account,
+ private void initializeSyncCheckBox(final CheckBoxPreference syncCheckBox,
+ final Account account,
final String authority) {
boolean syncEnabled = ContentResolver.getSyncAutomatically(account, authority);
syncCheckBox.setChecked(syncEnabled);
+ setSummary(syncCheckBox, authority, syncEnabled);
syncCheckBox.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
@@ -520,10 +522,33 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
// cancel any ongoing/pending syncs
ContentResolver.cancelSync(account, authority);
}
+ setSummary(syncCheckBox, authority, syncEnabled);
return true;
}
});
}
+
+ private void setSummary(CheckBoxPreference syncCheckBox, String authority,
+ boolean checked) {
+ switch (authority) {
+ case Constants.PROVIDER_AUTHORITY: {
+ if (checked) {
+ syncCheckBox.setSummary(R.string.label_sync_settings_keyserver_summary_on);
+ } else {
+ syncCheckBox.setSummary(R.string.label_sync_settings_keyserver_summary_off);
+ }
+ break;
+ }
+ case ContactsContract.AUTHORITY: {
+ if (checked) {
+ syncCheckBox.setSummary(R.string.label_sync_settings_contacts_summary_on);
+ } else {
+ syncCheckBox.setSummary(R.string.label_sync_settings_contacts_summary_off);
+ }
+ break;
+ }
+ }
+ }
}
protected boolean isValidFragment(String fragmentName) {
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index ba5be593f..2d9b22852 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -177,9 +177,13 @@
"Search keys on keybase.io"
"Automatically update keys"
- "Updates keys older than a week, from the preferred keyserver"
+ "Keys older than a week are updated from the preferred keyserver"
+ "Keys not automatically updated"
"Sync Contacts with Keys"
- "Associates contacts with imported keys, based on email, completely offline"
+ "Keys linked to contacts with matching emails, happens completely offline"
+ "New keys will not be linked to contacts"
+
+ "Automatically update keys"
"Enable Tor"
@@ -1358,7 +1362,6 @@
"Password"
- "Update Keys from Cloud"
"Sync From Cloud requires Orbot"
"Tap to start orbot"
"Start Orbot"
diff --git a/OpenKeychain/src/main/res/xml/sync_preferences.xml b/OpenKeychain/src/main/res/xml/sync_preferences.xml
index d4ea81591..e870be9ec 100644
--- a/OpenKeychain/src/main/res/xml/sync_preferences.xml
+++ b/OpenKeychain/src/main/res/xml/sync_preferences.xml
@@ -2,11 +2,9 @@
+ android:title="@string/label_sync_settings_keyserver_title"/>
+ android:title="@string/label_sync_settings_contacts_title" />