diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java
index 148911fa07..61c51f0a89 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptions.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java
@@ -26,6 +26,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
@@ -47,7 +48,8 @@ import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
-public class FragmentOptions extends FragmentBase {
+public class FragmentOptions extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener {
+ private boolean advanced;
private ViewPager pager;
private PagerAdapter adapter;
@@ -73,6 +75,14 @@ public class FragmentOptions extends FragmentBase {
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ String tab = getActivity().getIntent().getStringExtra("tab");
+ if (!TextUtils.isEmpty(tab))
+ prefs.edit().putBoolean("setup_advanced", true).apply();
+
+ advanced = prefs.getBoolean("setup_advanced", false);
+
View view = inflater.inflate(R.layout.fragment_options, container, false);
pager = view.findViewById(R.id.pager);
@@ -139,6 +149,29 @@ public class FragmentOptions extends FragmentBase {
getActivity().getIntent().removeExtra("tab");
}
+ @Override
+ public void onResume() {
+ super.onResume();
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+ prefs.registerOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ public void onPause() {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+ prefs.unregisterOnSharedPreferenceChangeListener(this);
+ super.onPause();
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
+ if ("setup_advanced".equals(key)) {
+ advanced = prefs.getBoolean(key, false);
+ Log.i("Show advanced=" + advanced);
+ adapter.notifyDataSetChanged();
+ }
+ }
+
@Override
protected void finish() {
onExit();
@@ -222,7 +255,7 @@ public class FragmentOptions extends FragmentBase {
@Override
public int getCount() {
- return 10;
+ return (advanced ? 10 : 1);
}
@Override
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index ca3fa66fbc..9f8f7d5d1a 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -108,7 +108,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
"selected_folders", "move_1_confirmed", "move_n_confirmed",
"last_search_senders", "last_search_recipients", "last_search_subject", "last_search_keywords", "last_search_message", "last_search",
"identities_asked", "cc_bcc", "inline_image_hint", "compose_reference", "send_dialog",
- "setup_reminder", "setup_advanced"
+ "setup_reminder"
};
@Override
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 2e0f0a3251..a02ea86c4f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -39,6 +39,8 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@@ -82,6 +84,7 @@ public class FragmentSetup extends FragmentBase {
private Button btnDataSaver;
+ private CheckBox cbAdvanced;
private Button btnInbox;
private Group grpWelcome;
@@ -128,6 +131,7 @@ public class FragmentSetup extends FragmentBase {
btnDataSaver = view.findViewById(R.id.btnDataSaver);
+ cbAdvanced = view.findViewById(R.id.cbAdvanced);
btnInbox = view.findViewById(R.id.btnInbox);
grpWelcome = view.findViewById(R.id.grpWelcome);
@@ -277,6 +281,13 @@ public class FragmentSetup extends FragmentBase {
btnDataSaver.setEnabled(settings.resolveActivity(pm) != null);
}
+ cbAdvanced.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ prefs.edit().putBoolean("setup_advanced", isChecked).apply();
+ }
+ });
+
btnInbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -303,6 +314,8 @@ public class FragmentSetup extends FragmentBase {
tvDozeDone.setCompoundDrawables(null, null, null, null);
btnDoze.setEnabled(false);
+ boolean setup_advanced = prefs.getBoolean("setup_advanced", false);
+ cbAdvanced.setChecked(setup_advanced);
btnInbox.setEnabled(false);
boolean welcome = prefs.getBoolean("welcome", true);
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index fe1a1c41ad..d3042b9e26 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -559,6 +559,15 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/five" />
+
+