Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNPUTmice/Conversations.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2022-10-01 12:26:52 +0300
committerDaniel Gultsch <daniel@gultsch.de>2022-10-01 12:26:52 +0300
commitd435c1f2aef1454141d4f5099224b5a03d579dba (patch)
treeb4c1d1ee511a6308a0394145a18d4ed672ddfaa6
parent5735bca517a798a1ef6ffa87dc5882b69888cbdd (diff)
let omemoOnly config overwrite OmemoSetting
-rw-r--r--src/main/java/eu/siacs/conversations/Config.java7
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/OmemoSetting.java10
-rw-r--r--src/main/java/eu/siacs/conversations/ui/SettingsActivity.java39
-rw-r--r--src/main/res/xml/preferences.xml3
4 files changed, 39 insertions, 20 deletions
diff --git a/src/main/java/eu/siacs/conversations/Config.java b/src/main/java/eu/siacs/conversations/Config.java
index a3eacc9db..47226eb6e 100644
--- a/src/main/java/eu/siacs/conversations/Config.java
+++ b/src/main/java/eu/siacs/conversations/Config.java
@@ -15,10 +15,9 @@ import eu.siacs.conversations.xmpp.chatstate.ChatState;
public final class Config {
private static final int UNENCRYPTED = 1;
private static final int OPENPGP = 2;
- private static final int OTR = 4;
private static final int OMEMO = 8;
- private static final int ENCRYPTION_MASK = UNENCRYPTED | OPENPGP | OTR | OMEMO;
+ private static final int ENCRYPTION_MASK = UNENCRYPTED | OPENPGP | OMEMO;
public static boolean supportUnencrypted() {
return (ENCRYPTION_MASK & UNENCRYPTED) != 0;
@@ -32,6 +31,10 @@ public final class Config {
return (ENCRYPTION_MASK & OMEMO) != 0;
}
+ public static boolean omemoOnly() {
+ return !multipleEncryptionChoices() && supportOmemo();
+ }
+
public static boolean multipleEncryptionChoices() {
return (ENCRYPTION_MASK & (ENCRYPTION_MASK - 1)) != 0;
}
diff --git a/src/main/java/eu/siacs/conversations/crypto/OmemoSetting.java b/src/main/java/eu/siacs/conversations/crypto/OmemoSetting.java
index 5326ecae0..a531c39f3 100644
--- a/src/main/java/eu/siacs/conversations/crypto/OmemoSetting.java
+++ b/src/main/java/eu/siacs/conversations/crypto/OmemoSetting.java
@@ -34,6 +34,9 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
+import com.google.common.base.Strings;
+
+import eu.siacs.conversations.Config;
import eu.siacs.conversations.R;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.ui.SettingsActivity;
@@ -52,8 +55,13 @@ public class OmemoSetting {
}
public static void load(final Context context, final SharedPreferences sharedPreferences) {
+ if (Config.omemoOnly()) {
+ always = true;
+ encryption = Message.ENCRYPTION_AXOLOTL;
+ return;
+ }
final String value = sharedPreferences.getString(SettingsActivity.OMEMO_SETTING, context.getResources().getString(R.string.omemo_setting_default));
- switch (value) {
+ switch (Strings.nullToEmpty(value)) {
case "always":
always = true;
encryption = Message.ENCRYPTION_AXOLOTL;
diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
index 21d2b956c..5e21e0b26 100644
--- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
@@ -298,26 +298,33 @@ public class SettingsActivity extends XmppActivity implements OnSharedPreference
deleteOmemoPreference.setOnPreferenceClickListener(
preference -> deleteOmemoIdentities());
}
+ if (Config.omemoOnly()) {
+ final PreferenceCategory privacyCategory =
+ (PreferenceCategory) mSettingsFragment.findPreference("privacy");
+ final Preference omemoPreference =mSettingsFragment.findPreference(OMEMO_SETTING);
+ if (omemoPreference != null) {
+ privacyCategory.removePreference(omemoPreference);
+ }
+ }
}
private void changeOmemoSettingSummary() {
- ListPreference omemoPreference =
+ final 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);
+ if (omemoPreference == null) {
+ return;
+ }
+ final 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;
}
}
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
index 91b07210c..b46155836 100644
--- a/src/main/res/xml/preferences.xml
+++ b/src/main/res/xml/preferences.xml
@@ -15,7 +15,8 @@
android:targetPackage="com.huawei.systemmanager" />
</PreferenceScreen>
</PreferenceCategory>
- <PreferenceCategory android:title="@string/pref_privacy">
+ <PreferenceCategory android:title="@string/pref_privacy"
+ android:key="privacy">
<CheckBoxPreference
android:defaultValue="@bool/confirm_messages"
android:key="confirm_messages"