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" /> + +