diff options
author | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-02 17:18:45 +0100 |
---|---|---|
committer | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-02 17:18:45 +0100 |
commit | 06949b76490736783520d783f0ec889e58707062 (patch) | |
tree | 946b6a6d16ba1d03ee2e82dbba79e2a6b8c128e3 /src | |
parent | f81d60f9a84ebe491b9343f4dfbdf0e893100cd3 (diff) |
introduce setting to completely disable (OMEMO) encryption
Diffstat (limited to '')
6 files changed, 24 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/crypto/OmemoSetting.java b/src/main/java/de/pixart/messenger/crypto/OmemoSetting.java index 19fd6f9c0..973b44545 100644 --- a/src/main/java/de/pixart/messenger/crypto/OmemoSetting.java +++ b/src/main/java/de/pixart/messenger/crypto/OmemoSetting.java @@ -39,12 +39,17 @@ import de.pixart.messenger.ui.SettingsActivity; public class OmemoSetting { private static boolean always = false; + private static boolean never = false; private static int encryption = Message.ENCRYPTION_AXOLOTL; public static boolean isAlways() { return always; } + public static boolean isNever() { + return never; + } + public static int getEncryption() { return encryption; } @@ -54,14 +59,22 @@ public class OmemoSetting { switch (value) { case "always": always = true; + never = false; encryption = Message.ENCRYPTION_AXOLOTL; break; case "default_on": always = false; + never = false; encryption = Message.ENCRYPTION_AXOLOTL; break; + case "always_off": + always = false; + never = true; + encryption = Message.ENCRYPTION_NONE; + break; default: always = false; + never = false; encryption = Message.ENCRYPTION_NONE; break; diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java index b20976316..cc0d5525f 100644 --- a/src/main/java/de/pixart/messenger/entities/Conversation.java +++ b/src/main/java/de/pixart/messenger/entities/Conversation.java @@ -805,6 +805,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl if (OmemoSetting.isAlways()) { return suitableForOmemoByDefault(this) ? Message.ENCRYPTION_AXOLOTL : Message.ENCRYPTION_NONE; } + if (OmemoSetting.isNever()) { + return Message.ENCRYPTION_NONE; + } final int defaultEncryption; if (suitableForOmemoByDefault(this)) { defaultEncryption = OmemoSetting.getEncryption(); diff --git a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java index e57030a61..419785ecf 100644 --- a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java @@ -370,6 +370,9 @@ public class SettingsActivity extends XmppActivity implements case "default_off": omemoPreference.setSummary(R.string.pref_omemo_setting_summary_default_off); break; + case "always_off": + omemoPreference.setSummary(R.string.pref_omemo_setting_summary_always_off); + break; } } else { Log.d(Config.LOGTAG, "unable to find preference named " + OMEMO_SETTING); diff --git a/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java b/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java index fd5a5c441..cb4211b1e 100644 --- a/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java +++ b/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java @@ -106,7 +106,7 @@ public class ConversationMenuConfigurator { final int next = conversation.getNextEncryption(); boolean visible; - if (OmemoSetting.isAlways()) { + if (OmemoSetting.isAlways() || OmemoSetting.isNever()) { visible = false; } else if (conversation.getMode() == Conversation.MODE_MULTI) { if (next == Message.ENCRYPTION_NONE && !conversation.isPrivateAndNonAnonymous() && !conversation.getBooleanAttribute(Conversation.ATTRIBUTE_FORMERLY_PRIVATE_NON_ANONYMOUS, false)) { diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index b15e4cea2..fecbff8a4 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -105,12 +105,14 @@ <item>always</item> <item>default_on</item> <item>default_off</item> + <item>always_off</item> </string-array> <string-array name="omemo_setting_entries"> <item>@string/always</item> <item>@string/default_on</item> <item>@string/default_off</item> + <item>@string/always_off</item> </string-array> <string-array name="font_size_entry_values"> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index f3a5071a8..83de8be6b 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -496,6 +496,7 @@ <string name="video_high">high (1080p)</string> <string name="video_original">original (uncompressed)</string> <string name="always">Always</string> + <string name="always_off">Always off</string> <string name="battery_optimizations_enabled">Battery optimizations enabled</string> <string name="battery_optimizations_enabled_explained">Your device is doing some heavy battery optimizations on Pix-Art Messenger that might lead to delayed notifications or even message loss.\nIt is recommended to disable those.</string> <string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on Pix-Art Messenger that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string> @@ -734,6 +735,7 @@ <string name="pref_omemo_setting_summary_always">OMEMO will always be used for one-on-one and private group chats.</string> <string name="pref_omemo_setting_summary_default_on">OMEMO will be used by default for new conversations.</string> <string name="pref_omemo_setting_summary_default_off">OMEMO will have to be turned on explicitly for new conversations.</string> + <string name="pref_omemo_setting_summary_always_off">OMEMO will never be used.</string> <string name="default_on">On by default</string> <string name="default_off">Off by default</string> <string name="pref_theme_light">Light theme</string> |