From 306d20f977604172e756aae207016e8a8343b74b Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 20:19:15 +0200 Subject: Refactor theme changing to avoid code repetition --- .../keychain/ui/SettingsActivity.java | 27 ++++------------------ 1 file changed, 5 insertions(+), 22 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index b88ed97bc..2fe868b8b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -33,7 +33,6 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.v7.widget.Toolbar; import android.text.TextUtils; -import android.view.ContextThemeWrapper; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -42,6 +41,7 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.compatibility.AppCompatPreferenceActivity; import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.ui.widget.IntegerListPreference; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; @@ -60,13 +60,14 @@ public class SettingsActivity extends AppCompatPreferenceActivity { private PreferenceScreen mKeyServerPreference = null; private static Preferences sPreferences; - private String mCurrentTheme = null; + private ThemeChanger mThemeChanger; @Override protected void onCreate(Bundle savedInstanceState) { sPreferences = Preferences.getPreferences(this); - changeTheme(); + mThemeChanger = new ThemeChanger(this); + mThemeChanger.changeTheme(); super.onCreate(savedInstanceState); setupToolbar(); @@ -122,31 +123,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity { protected void onResume() { super.onResume(); - if (changeTheme()) { + if (mThemeChanger.changeTheme()) { Intent intent = getIntent(); finish(); startActivity(intent); } } - protected boolean changeTheme() { - String newTheme = sPreferences.getTheme(); - if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { - return false; - } - - int themeId = R.style.LightTheme; - if (Constants.Pref.Theme.DARK.equals(newTheme)) { - themeId = R.style.DarkTheme; - } - - ContextThemeWrapper w = new ContextThemeWrapper(this, themeId); - getTheme().setTo(w.getTheme()); - mCurrentTheme = newTheme; - - return true; - } - /** * Hack to get Toolbar in PreferenceActivity. See http://stackoverflow.com/a/26614696 */ -- cgit v1.2.3