diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 6f899afda9..c6c0f2b812 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1409,7 +1409,7 @@ public class AdapterMessage extends RecyclerView.Adapter= 0 && begin < end); + args.putBoolean("inline_encrypted", begin >= 0 && begin < end); // Check for images boolean has_images = false; @@ -1518,7 +1518,7 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? View.VISIBLE : View.GONE); - boolean iencrypted = properties.getValue("iencrypted", message.id); boolean show_inline = properties.getValue("inline", message.id); - Log.i("Show inline=" + show_inline); + boolean inline_encrypted = properties.getValue("inline_encrypted", message.id); + Log.i("Show inline=" + show_inline + " encrypted=" + inline_encrypted); boolean has_inline = false; boolean is_encrypted = false; @@ -1620,7 +1620,12 @@ public class AdapterMessage extends RecyclerView.Adapter remotes = parts.getAttachments(); for (int index = 0; index < remotes.size(); index++) { EntityAttachment remote = remotes.get(index); remote.message = id; - remote.sequence = ++sequence; + remote.sequence = index + 1; remote.id = db.attachment().insertAttachment(remote); try { parts.downloadAttachment(context, index, remote); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java index bc671b0a0a..67e1893a51 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java @@ -48,12 +48,13 @@ import androidx.preference.PreferenceManager; public class FragmentOptionsPrivacy extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private SwitchCompat swDisableTracking; private SwitchCompat swDisplayHidden; + private SwitchCompat swAutoDecrypt; private SwitchCompat swNoHistory; private Spinner spBiometricsTimeout; private Button btnPin; private final static String[] RESET_OPTIONS = new String[]{ - "disable_tracking", "display_hidden", "no_history", "biometrics_timeout" + "disable_tracking", "display_hidden", "auto_decrypt", "no_history", "biometrics_timeout" }; @Override @@ -68,6 +69,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer swDisableTracking = view.findViewById(R.id.swDisableTracking); swDisplayHidden = view.findViewById(R.id.swDisplayHidden); + swAutoDecrypt = view.findViewById(R.id.swAutoDecrypt); swNoHistory = view.findViewById(R.id.swNoHistory); spBiometricsTimeout = view.findViewById(R.id.spBiometricsTimeout); btnPin = view.findViewById(R.id.btnPin); @@ -92,6 +94,13 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer } }); + swAutoDecrypt.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("auto_decrypt", checked).apply(); + } + }); + swNoHistory.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -169,6 +178,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer swDisableTracking.setChecked(prefs.getBoolean("disable_tracking", true)); swDisplayHidden.setChecked(prefs.getBoolean("display_hidden", false)); + swAutoDecrypt.setChecked(prefs.getBoolean("auto_decrypt", false)); swNoHistory.setChecked(prefs.getBoolean("no_history", false)); int biometrics_timeout = prefs.getInt("biometrics_timeout", 2); diff --git a/app/src/main/res/layout/fragment_options_privacy.xml b/app/src/main/res/layout/fragment_options_privacy.xml index 8f9fd15fd2..2f9464645f 100644 --- a/app/src/main/res/layout/fragment_options_privacy.xml +++ b/app/src/main/res/layout/fragment_options_privacy.xml @@ -59,6 +59,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swDisplayHidden" /> + + Automatically recognize and disable tracking images Display hidden message texts + Automatically decrypt messages Hide FairEmail from screen with recent apps Biometric authentication timeout PIN