From 5ac835ce0faf050d29406908510bf561b1545167 Mon Sep 17 00:00:00 2001 From: "luca0N\\!" Date: Wed, 17 Mar 2021 18:19:17 -0300 Subject: [PATCH] Added OnPreferenceChangeListener --- .../pluck/settings/SettingsActivity.java | 5 ++- .../pluck/settings/SettingsFragment.java | 33 ++++++++++++++----- .../luca0n/joguitos/pluck/util/UiUtil.java | 1 - app/src/main/res/values/pref_keys.xml | 4 +++ 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsActivity.java b/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsActivity.java index 34e362d..2bd7d67 100644 --- a/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsActivity.java +++ b/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsActivity.java @@ -30,16 +30,19 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import com.luca0n.joguitos.pluck.util.UiUtil; + public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + UiUtil.setTheme(this); super.onCreate(savedInstanceState); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) actionBar.setDisplayHomeAsUpEnabled(true); - getFragmentManager() + getSupportFragmentManager() .beginTransaction() .replace(android.R.id.content, new SettingsFragment()) .commit(); diff --git a/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsFragment.java b/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsFragment.java index 6c23564..ec15150 100644 --- a/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsFragment.java +++ b/app/src/main/java/com/luca0n/joguitos/pluck/settings/SettingsFragment.java @@ -24,15 +24,32 @@ Contact us at . package com.luca0n.joguitos.pluck.settings; import android.os.Bundle; -import android.preference.PreferenceFragment; +import androidx.preference.PreferenceFragmentCompat; import androidx.annotation.Nullable; -import com.luca0n.joguitos.pluck.R; +import androidx.preference.ListPreference; +import androidx.preference.Preference; -public class SettingsFragment extends PreferenceFragment { - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.preferences); - } +import com.luca0n.joguitos.pluck.R; +import com.luca0n.joguitos.pluck.util.UiUtil; + +public class SettingsFragment extends PreferenceFragmentCompat { + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey){ + addPreferencesFromResource(R.xml.preferences); + // Listen for theme preference changes + ListPreference preferenceTheme = (ListPreference) findPreference(getString(R.string.pref_ui_theme)); + preferenceTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener(){ + @Override + public boolean onPreferenceChange(Preference preference, Object newValue){ + getActivity().recreate(); + return true; + } + }); + } } diff --git a/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java b/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java index 7bca056..0634336 100644 --- a/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java +++ b/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java @@ -38,7 +38,6 @@ public class UiUtil { public static void setTheme(Context context){ SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); - String light = context.getString(R.string.pref_ui_theme_entryValues_light), dark = context.getString(R.string.pref_ui_theme_entryValues_dark), themeKey = context.getString(R.string.pref_ui_theme), diff --git a/app/src/main/res/values/pref_keys.xml b/app/src/main/res/values/pref_keys.xml index c7bb272..3e6969e 100644 --- a/app/src/main/res/values/pref_keys.xml +++ b/app/src/main/res/values/pref_keys.xml @@ -28,4 +28,8 @@ Contact us at . pref_network_tor pref_network_server https://opentdb.com/api.php + pref_ui_theme + pref_ui_theme_entryValues_light + pref_ui_theme_entryValues_dark + pref_ui_theme_entryValues_light