aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authord34d <clark@cyngn.com>2016-03-11 14:30:19 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-03-21 09:16:33 -0700
commitb05ce12eab0ef67cc8099e954f575f6ee6570544 (patch)
tree64906499cb51726c4ef0c2e9cc678d47a6bf0716
parent948e399b5db7b761fb58ccdc3142758871f05be9 (diff)
downloadvendor_cmsdk-b05ce12eab0ef67cc8099e954f575f6ee6570544.zip
vendor_cmsdk-b05ce12eab0ef67cc8099e954f575f6ee6570544.tar.gz
vendor_cmsdk-b05ce12eab0ef67cc8099e954f575f6ee6570544.tar.bz2
Themes: Check theme api level in onBootPhase
This check should be done once the system has reached the PHASE_ACTIVITY_MANAGER_READY otherwise we can end up getting a boot failure within the ThemeManagerService Change-Id: If3e9c8885d8718224cf7d8fed0c0fb82ebe0fcab TICKET: CYNGNOS-2230
-rw-r--r--cm/lib/main/java/org/cyanogenmod/platform/internal/ThemeManagerService.java18
1 files changed, 11 insertions, 7 deletions
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. " +