Fix for app not changing theme if system theme changes (#7772)

This commit is contained in:
Mayur Wadhwani 2025-05-28 08:57:52 +12:00 committed by GitHub
parent c2f7dabc8b
commit 0478bb1af9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,6 +19,7 @@ import androidx.activity.OnBackPressedCallback;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
@ -513,6 +514,11 @@ public class MainActivity extends CastEnabledActivity {
}
}
private void restartActivity() {
finish();
startActivity(new Intent(this, MainActivity.class));
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
@ -520,6 +526,11 @@ public class MainActivity extends CastEnabledActivity {
drawerToggle.onConfigurationChanged(newConfig);
}
setNavDrawerSize();
@StyleRes int requiredTheme = ThemeSwitcher.getNoTitleTheme(this);
if (requiredTheme != lastTheme) {
restartActivity();
}
}
private void setNavDrawerSize() {
@ -568,8 +579,7 @@ public class MainActivity extends CastEnabledActivity {
boolean hasBottomNavigation = bottomNavigation != null;
if (lastTheme != ThemeSwitcher.getNoTitleTheme(this)
|| hasBottomNavigation != UserPreferences.isBottomNavigationEnabled()) {
finish();
startActivity(new Intent(this, MainActivity.class));
restartActivity();
}
if (UserPreferences.getHiddenDrawerItems().contains(NavDrawerFragment.getLastNavFragment(this))) {
loadFragment(UserPreferences.getDefaultPage(), null);