diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/ThemeManagerService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/ThemeManagerService.java index c78f187..24a7e26 100644 --- a/cm/lib/main/java/org/cyanogenmod/platform/internal/ThemeManagerService.java +++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/ThemeManagerService.java @@ -245,19 +245,18 @@ public class ThemeManagerService extends SystemService { mContext.registerReceiver(mUserChangeReceiver, filter); mPM = mContext.getPackageManager(); - - if (!isThemeApiUpToDate()) { - Log.d(TAG, "The system has been upgraded to a theme new api, " + - "checking if currently set theme is compatible"); - removeObsoleteThemeOverlayIfExists(); - updateThemeApi(); - } } @Override public void onBootPhase(int phase) { super.onBootPhase(phase); if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) { + if (!isThemeApiUpToDate()) { + Log.d(TAG, "The system has been upgraded to a theme new api, " + + "checking if currently set theme is compatible"); + removeObsoleteThemeOverlayIfExists(); + updateThemeApi(); + } registerAppsFailureReceiver(); processInstalledThemes(); } @@ -304,6 +303,11 @@ public class ThemeManagerService extends SystemService { String pkgName = entry.getValue(); String defaultPkg = defaults.get(component); + if (defaultPkg == null) { + Log.d(TAG, "Default package is null, skipping " + component); + continue; + } + // Check that the default overlay theme is not currently set if (defaultPkg.equals(pkgName)) { Log.d(TAG, "Current overlay theme is same as default. " +