From b9820ac6433273f2cf59996dd7cfbf80e6f731fc Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 24 Apr 2020 02:33:05 -0400 Subject: [PATCH] android: Apply correct theme at boot. --- .../citra/citra_emu/ui/main/MainActivity.java | 5 ++-- .../org/citra/citra_emu/utils/ThemeUtil.java | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java index 5621ee3ad..ceece701f 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java @@ -41,6 +41,8 @@ public final class MainActivity extends AppCompatActivity implements MainView { @Override protected void onCreate(Bundle savedInstanceState) { + ThemeUtil.applyTheme(); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); @@ -57,9 +59,6 @@ public final class MainActivity extends AppCompatActivity implements MainView { mPlatformGamesFragment = new PlatformGamesFragment(); getSupportFragmentManager().beginTransaction().add(mFrameLayoutId, mPlatformGamesFragment) .commit(); - - // Apply current theme setting - ThemeUtil.applyTheme(); } } else { mPlatformGamesFragment = (PlatformGamesFragment) getSupportFragmentManager().getFragment(savedInstanceState, "mPlatformGamesFragment"); diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java index 1c0f3aa6d..bb76a08e8 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/ThemeUtil.java @@ -12,18 +12,16 @@ public class ThemeUtil { public static void applyTheme() { Settings settings = new Settings(); - settings.loadSettings(null); - applyTheme(settings); + + try { + settings.loadSettings(null); + applyTheme(settings); + } catch (Exception e) { + applyTheme(0); + } } - public static void applyTheme(Settings settings) { - Setting design = settings.getSection(Settings.SECTION_PREMIUM).getSetting((SettingsFile.KEY_DESIGN)); - if (design == null) { - AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); - return; - } - - int designValue = Integer.parseInt(design.getValueAsString()); + private static void applyTheme(int designValue) { switch (designValue) { case 0: AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); @@ -39,4 +37,13 @@ public class ThemeUtil { } } + public static void applyTheme(Settings settings) { + Setting design = settings.getSection(Settings.SECTION_PREMIUM).getSetting((SettingsFile.KEY_DESIGN)); + if (design == null) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + return; + } + + applyTheme(Integer.parseInt(design.getValueAsString())); + } }