diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java
index dc10eef320..2e24dd3134 100644
--- a/app/src/main/java/eu/faircode/email/ActivitySetup.java
+++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java
@@ -44,7 +44,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup);
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportFragmentManager().addOnBackStackChangedListener(this);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java
new file mode 100644
index 0000000000..8cbaae5c77
--- /dev/null
+++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java
@@ -0,0 +1,71 @@
+package eu.faircode.email;
+
+/*
+ This file is part of FairEmail.
+
+ FairEmail is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ NetGuard is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with NetGuard. If not, see .
+
+ Copyright 2018 by Marcel Bokhorst (M66B)
+*/
+
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+public class FragmentOptions extends FragmentEx {
+ private CheckBox cbStoreSent;
+ private CheckBox cbDebug;
+
+ @Override
+ @Nullable
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ setSubtitle(R.string.title_advanced);
+
+ View view = inflater.inflate(R.layout.fragment_options, container, false);
+
+ // Get controls
+ cbStoreSent = view.findViewById(R.id.cbStoreSent);
+ cbDebug = view.findViewById(R.id.cbDebug);
+
+ // Wire controls
+
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ cbStoreSent.setChecked(prefs.getBoolean("store_sent", false));
+ cbStoreSent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("store_sent", checked).apply();
+ }
+ });
+
+ cbDebug.setChecked(prefs.getBoolean("debug", false));
+ cbDebug.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("debug", checked).apply();
+ }
+ });
+
+ return view;
+ }
+}
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index f14c1386dd..9ca9119672 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -56,7 +56,8 @@ public class FragmentSetup extends FragmentEx {
private TextView tvPermissionsDone;
private CheckBox cbDarkTheme;
- private CheckBox cbDebug;
+
+ private Button btnOptions;
private static final String[] permissions = new String[]{
Manifest.permission.READ_CONTACTS
@@ -82,7 +83,7 @@ public class FragmentSetup extends FragmentEx {
tvPermissionsDone = view.findViewById(R.id.tvPermissionsDone);
cbDarkTheme = view.findViewById(R.id.cbDarkTheme);
- cbDebug = view.findViewById(R.id.cbDebug);
+ btnOptions = view.findViewById(R.id.btnOptions);
// Wire controls
@@ -129,11 +130,12 @@ public class FragmentSetup extends FragmentEx {
}
});
- cbDebug.setChecked(prefs.getBoolean("debug", false));
- cbDebug.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ btnOptions.setOnClickListener(new View.OnClickListener() {
@Override
- public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
- prefs.edit().putBoolean("debug", checked).apply();
+ public void onClick(View view) {
+ FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
+ fragmentTransaction.commit();
}
});
diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
index 10a9e3ae27..d7ab32bec7 100644
--- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
@@ -28,6 +28,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
+import android.content.SharedPreferences;
import android.media.RingtoneManager;
import android.net.ConnectivityManager;
import android.net.Network;
@@ -965,10 +966,12 @@ public class ServiceSynchronize extends LifecycleService {
message.ui_seen = true;
db.message().updateMessage(message);
- if (sent != null) {
- Log.i(Helper.TAG, "Appending sent msgid=" + message.msgid);
- EntityOperation.queue(db, message, EntityOperation.ADD); // Could already exist
- }
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ if (prefs.getBoolean("store_sent", false))
+ if (sent != null) {
+ Log.i(Helper.TAG, "Appending sent msgid=" + message.msgid);
+ EntityOperation.queue(db, message, EntityOperation.ADD); // Could already exist
+ }
db.setTransactionSuccessful();
} finally {
diff --git a/app/src/main/res/layout/fragment_options.xml b/app/src/main/res/layout/fragment_options.xml
new file mode 100644
index 0000000000..d67fc58965
--- /dev/null
+++ b/app/src/main/res/layout/fragment_options.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index 0e3ede57d3..9fc247bd9a 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -147,14 +147,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPermissionsDone" />
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 466e0ec7fe..cee82c8aa7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -60,7 +60,10 @@
To do
Done
Dark theme
- Debug
+
+ Advanced options
+ Store sent message
+ Debug
Your name
Your email address