From a9ed31714fa2be2514d0eb86f1753127f792bc7d Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Tue, 3 Jun 2014 16:15:59 +0200 Subject: [PATCH] Better theme restarting --- .../floens/chan/ui/activity/BaseActivity.java | 12 ++++++++++++ .../chan/ui/activity/SettingsActivity.java | 18 ++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java index c173b196..534ca450 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java @@ -59,6 +59,8 @@ import org.floens.chan.utils.Utils; import java.util.List; public abstract class BaseActivity extends Activity implements PanelSlideListener, PinnedManager.PinListener { + public static boolean doRestartOnResume = false; + private final static int ACTION_OPEN_URL = 1; protected PinnedAdapter pinnedAdapter; @@ -112,6 +114,16 @@ public abstract class BaseActivity extends Activity implements PanelSlideListene ChanApplication.getPinnedManager().removePinListener(this); } + @Override + protected void onResume() { + super.onResume(); + + if (doRestartOnResume) { + doRestartOnResume = false; + recreate(); + } + } + private void initPane() { threadPane.setPanelSlideListener(this); threadPane.setParallaxDistance(200); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java index 4144c33d..f10c6c26 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java @@ -47,24 +47,18 @@ public class SettingsActivity extends Activity { doingThemeRestart = true; startActivity(intent); finish(); + doingThemeRestart = false; overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } @Override - protected void onDestroy() { - super.onDestroy(); + protected void onPause() { + super.onPause(); - if (doingThemeRestart) { - doingThemeRestart = false; - } else { - if (ThemeHelper.getInstance().getTheme() != lastTheme) { - lastTheme = ThemeHelper.getInstance().getTheme(); - - Intent intent = new Intent(this, BoardActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + if (ThemeHelper.getInstance().getTheme() != lastTheme) { + lastTheme = ThemeHelper.getInstance().getTheme(); - startActivity(intent); - } + BaseActivity.doRestartOnResume = true; } } }