fix theme updates on main activity

This commit is contained in:
dkanada 2021-06-05 18:48:31 +09:00
commit 4a4d703973
2 changed files with 22 additions and 1 deletions

View file

@ -129,7 +129,6 @@ public class SettingsActivity extends AbsBaseActivity {
requireActivity().setTheme(PreferenceUtil.getInstance(getContext()).getTheme().style);
new DynamicShortcutManager(requireContext()).updateDynamicShortcuts();
ThemeStore.markChanged(requireContext());
requireActivity().recreate();
break;
case PreferenceUtil.NOW_PLAYING_SCREEN:

View file

@ -6,6 +6,7 @@ import android.view.View;
import androidx.annotation.ColorInt;
import com.dkanada.gramophone.util.NavigationUtil;
import com.kabouzeid.appthemehelper.ATH;
import com.kabouzeid.appthemehelper.ThemeStore;
import com.kabouzeid.appthemehelper.common.ATHToolbarActivity;
@ -16,6 +17,8 @@ import com.dkanada.gramophone.util.PreferenceUtil;
import com.dkanada.gramophone.util.Util;
public abstract class AbsThemeActivity extends ATHToolbarActivity {
private int currentTheme;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -28,6 +31,25 @@ public abstract class AbsThemeActivity extends ATHToolbarActivity {
}
}
@Override
protected void onResume() {
super.onResume();
// for some reason the recreate method has issues here
if (PreferenceUtil.getInstance(this).getTheme().style != currentTheme) {
NavigationUtil.startMain(this);
overridePendingTransition(0, android.R.anim.fade_out);
finish();
}
}
@Override
public void setTheme(int resId) {
currentTheme = resId;
super.setTheme(resId);
}
protected void setDrawUnderStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Util.setAllowDrawUnderStatusBar(getWindow());