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