From d0c1ee416f47362b5aecd12e7b557e891bec05ea Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 14 Jun 2019 19:12:56 +0200 Subject: [PATCH] Moved select theme to display tab --- .../java/eu/faircode/email/ActivitySetup.java | 55 ----------------- .../email/FragmentOptionsDisplay.java | 59 ++++++++++++++++++- .../main/res/drawable/baseline_palette_24.xml | 10 ---- .../res/layout/fragment_options_display.xml | 14 ++++- 4 files changed, 71 insertions(+), 67 deletions(-) delete mode 100644 app/src/main/res/drawable/baseline_palette_24.xml diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 7b0da67262..f6a2b015b5 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -44,7 +44,6 @@ import android.text.TextUtils; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; -import android.widget.RadioGroup; import android.widget.TextView; import androidx.annotation.RequiresApi; @@ -202,14 +201,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On } })); - menus.add(new NavMenuItem(R.drawable.baseline_palette_24, R.string.title_setup_theme, new Runnable() { - @Override - public void run() { - drawerLayout.closeDrawer(drawerContainer); - onMenuTheme(); - } - })); - menus.add(new NavMenuItem(R.drawable.baseline_person_24, R.string.menu_contacts, new Runnable() { @Override public void run() { @@ -447,52 +438,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On fragmentTransaction.commit(); } - private void onMenuTheme() { - View dview = LayoutInflater.from(this).inflate(R.layout.dialog_theme, null); - final RadioGroup rgTheme = dview.findViewById(R.id.rgTheme); - - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - String theme = prefs.getString("theme", "light"); - - switch (theme) { - case "dark": - rgTheme.check(R.id.rbThemeDark); - break; - case "black": - rgTheme.check(R.id.rbThemeBlack); - break; - case "system": - rgTheme.check(R.id.rbThemeSystem); - break; - default: - rgTheme.check(R.id.rbThemeLight); - } - - rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(RadioGroup group, int checkedId) { - switch (checkedId) { - case R.id.rbThemeLight: - prefs.edit().putString("theme", "light").apply(); - break; - case R.id.rbThemeDark: - prefs.edit().putString("theme", "dark").apply(); - break; - case R.id.rbThemeBlack: - prefs.edit().putString("theme", "black").apply(); - break; - case R.id.rbThemeSystem: - prefs.edit().putString("theme", "system").apply(); - break; - } - } - }); - - new DialogBuilderLifecycle(this, this) - .setView(dview) - .show(); - } - private void onMenuContacts() { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) getSupportFragmentManager().popBackStack("contacts", FragmentManager.POP_BACK_STACK_INCLUSIVE); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index bf55ee2a4f..da82af484f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -28,7 +28,9 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; +import android.widget.Button; import android.widget.CompoundButton; +import android.widget.RadioGroup; import android.widget.Spinner; import androidx.annotation.NonNull; @@ -37,6 +39,7 @@ import androidx.appcompat.widget.SwitchCompat; import androidx.preference.PreferenceManager; public class FragmentOptionsDisplay extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { + private Button btnTheme; private Spinner spStartup; private SwitchCompat swDate; private SwitchCompat swThreading; @@ -54,7 +57,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swActionbar; private final static String[] RESET_OPTIONS = new String[]{ - "startup", "date", "threading", "avatars", "identicons", "circular", "name_email", "subject_italic", + "theme", "startup", "date", "threading", "avatars", "identicons", "circular", "name_email", "subject_italic", "flags", "preview", "addresses", "attachments_alt", "monospaced", "autoimages", "actionbar", }; @@ -68,6 +71,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer // Get controls + btnTheme = view.findViewById(R.id.btnTheme); spStartup = view.findViewById(R.id.spStartup); swDate = view.findViewById(R.id.swDate); swThreading = view.findViewById(R.id.swThreading); @@ -90,6 +94,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + btnTheme.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onSelectTheme(); + } + }); + spStartup.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int position, long id) { @@ -245,6 +256,52 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer editor.apply(); } + private void onSelectTheme() { + View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_theme, null); + final RadioGroup rgTheme = dview.findViewById(R.id.rgTheme); + + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + String theme = prefs.getString("theme", "light"); + + switch (theme) { + case "dark": + rgTheme.check(R.id.rbThemeDark); + break; + case "black": + rgTheme.check(R.id.rbThemeBlack); + break; + case "system": + rgTheme.check(R.id.rbThemeSystem); + break; + default: + rgTheme.check(R.id.rbThemeLight); + } + + rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + switch (checkedId) { + case R.id.rbThemeLight: + prefs.edit().putString("theme", "light").apply(); + break; + case R.id.rbThemeDark: + prefs.edit().putString("theme", "dark").apply(); + break; + case R.id.rbThemeBlack: + prefs.edit().putString("theme", "black").apply(); + break; + case R.id.rbThemeSystem: + prefs.edit().putString("theme", "system").apply(); + break; + } + } + }); + + new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) + .setView(dview) + .show(); + } + private void setOptions() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); diff --git a/app/src/main/res/drawable/baseline_palette_24.xml b/app/src/main/res/drawable/baseline_palette_24.xml deleted file mode 100644 index 230f75166b..0000000000 --- a/app/src/main/res/drawable/baseline_palette_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index bdd4f0c10b..9e486a4896 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -18,16 +18,28 @@ android:layout_height="wrap_content" android:padding="12dp"> +