aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-04-13 22:34:52 +0200
committerChristian Schneppe <christian@pix-art.de>2018-04-13 22:49:42 +0200
commitdf45a1153db622511cab205395c2dc7fd33a25f5 (patch)
tree0292b864ee1f2244ea71771c482e18c3efa8e107 /src/main/java/de/pixart/messenger/ui/SettingsActivity.java
parent0f7f4bf5ed4bc8d07c333daf2c5c519dd0c7fdc9 (diff)
introduced tri state omemo setting (off by default, on by default, always)
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/SettingsActivity.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/SettingsActivity.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
index aa7407c32..48c5f46fd 100644
--- a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
@@ -33,6 +33,7 @@ import java.util.List;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
+import de.pixart.messenger.crypto.OmemoSetting;
import de.pixart.messenger.entities.Account;
import de.pixart.messenger.services.ExportLogsService;
import de.pixart.messenger.services.MemorizingTrustManager;
@@ -53,6 +54,7 @@ public class SettingsActivity extends XmppActivity implements
public static final String WARN_UNENCRYPTED_CHAT = "warn_unencrypted_chat";
public static final String THEME = "theme";
public static final String SHOW_DYNAMIC_TAGS = "show_dynamic_tags";
+ public static final String OMEMO_SETTING = "omemo";
public static final String SHOW_FOREGROUND_SERVICE = "show_foreground_service";
public static final String USE_BUNDLED_EMOJIS = "use_bundled_emoji";
public static final String USE_MULTI_ACCOUNTS = "use_multi_accounts";
@@ -102,6 +104,8 @@ public class SettingsActivity extends XmppActivity implements
isBundledEmojiChecked = ((CheckBoxPreference) BundledEmojiPreference).isChecked();
}
+ changeOmemoSettingSummary();
+
if (Config.FORCE_ORBOT) {
PreferenceCategory connectionOptions = (PreferenceCategory) mSettingsFragment.findPreference("connection_options");
PreferenceScreen expert = (PreferenceScreen) mSettingsFragment.findPreference("expert");
@@ -265,6 +269,26 @@ public class SettingsActivity extends XmppActivity implements
}
}
+ private void changeOmemoSettingSummary() {
+ ListPreference omemoPreference = (ListPreference) mSettingsFragment.findPreference(OMEMO_SETTING);
+ if (omemoPreference != null) {
+ String value = omemoPreference.getValue();
+ switch (value) {
+ case "always":
+ omemoPreference.setSummary(R.string.pref_omemo_setting_summary_always);
+ break;
+ case "default_on":
+ omemoPreference.setSummary(R.string.pref_omemo_setting_summary_default_on);
+ break;
+ case "default_off":
+ omemoPreference.setSummary(R.string.pref_omemo_setting_summary_default_off);
+ break;
+ }
+ } else {
+ Log.d(Config.LOGTAG, "unable to find preference named " + OMEMO_SETTING);
+ }
+ }
+
private boolean isCallable(final Intent i) {
return i != null && getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
}
@@ -450,7 +474,10 @@ public class SettingsActivity extends XmppActivity implements
TREAT_VIBRATE_AS_SILENT,
MANUALLY_CHANGE_PRESENCE,
BROADCAST_LAST_ACTIVITY);
- if (name.equals(SHOW_FOREGROUND_SERVICE)) {
+ if (name.equals(OMEMO_SETTING)) {
+ OmemoSetting.load(this, preferences);
+ changeOmemoSettingSummary();
+ } else if (name.equals(SHOW_FOREGROUND_SERVICE)) {
xmppConnectionService.toggleForegroundService();
} else if (resendPresence.contains(name)) {
if (xmppConnectionServiceBound) {