summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorDClockaN <lordclockan@gmail.com>2016-08-13 21:50:22 +0200
committerdoc HD <doc.divxm@gmail.com>2017-08-05 11:01:24 +0300
commitf382be491d80943573b1c2fae705a4696a737c30 (patch)
treec25841823359e4a86d3ff21d70c26b83f10651b1
parent61e192a1b497a109cb984972970a728e110a459f (diff)
Fix up headers theming after broker from CMHEADmm6.0
Squash of changes to only this file from these 2 patches: https://github.com/AICP/vendor_cmsdk/commit/18a3869c168d1b05091a745da7c22e0d41a7ada3 https://github.com/AICP/vendor_cmsdk/commit/3b88b95dbbe91ea82eb7edebf35f7287acc6940e Change-Id: I2b35f1f352c68f2eeb8ecd8897d81c633e5724b5
-rw-r--r--src/org/cyanogenmod/themeservice/ThemeManagerService.java38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/org/cyanogenmod/themeservice/ThemeManagerService.java b/src/org/cyanogenmod/themeservice/ThemeManagerService.java
index 276bbb9..53b7dbd 100644
--- a/src/org/cyanogenmod/themeservice/ThemeManagerService.java
+++ b/src/org/cyanogenmod/themeservice/ThemeManagerService.java
@@ -99,6 +99,10 @@ public class ThemeManagerService extends Service {
private static final String CATEGORY_THEME_CHOOSER = "cyanogenmod.intent.category.APP_THEMES";
+ private static final String[] LAUNCHER_KILL_BLACKLIST = new String[] {
+ "com.android.launcher3"
+ };
+
// Defines a min and max compatible api level for themes on this system.
private static final int MIN_COMPATIBLE_VERSION = 21;
@@ -248,6 +252,7 @@ public class ThemeManagerService extends Service {
if (ThemesColumns.MODIFIES_OVERLAYS.equals(key) ||
ThemesColumns.MODIFIES_NAVIGATION_BAR.equals(key) ||
ThemesColumns.MODIFIES_STATUS_BAR.equals(key) ||
+ ThemesColumns.MODIFIES_STATUSBAR_HEADERS.equals(key) ||
ThemesColumns.MODIFIES_ICONS.equals(key)) {
String pkgName = componentMap.get(key);
if (mThemesToProcessQueue.indexOf(pkgName) > 0) {
@@ -429,6 +434,8 @@ public class ThemeManagerService extends Service {
currentThemeMap.put(ThemesColumns.MODIFIES_STATUS_BAR, config.getOverlayForStatusBar());
currentThemeMap.put(ThemesColumns.MODIFIES_NAVIGATION_BAR,
config.getOverlayForNavBar());
+ currentThemeMap.put(ThemesColumns.MODIFIES_STATUSBAR_HEADERS,
+ config.getOverlayForHeaders());
currentThemeMap.put(ThemesColumns.MODIFIES_OVERLAYS, config.getOverlayPkgName());
// Look at each component's theme (that we care about at least) and check compatibility
@@ -922,6 +929,7 @@ public class ThemeManagerService extends Service {
request.getIconsThemePackageName() != null ||
request.getStatusBarThemePackageName() != null ||
request.getNavBarThemePackageName() != null ||
+ request.getHeadersThemePackageName() != null ||
request.getPerAppOverlays().size() > 0;
}
@@ -954,6 +962,11 @@ public class ThemeManagerService extends Service {
request.getNavBarThemePackageName() : pkgName);
}
+ if (request.getHeadersThemePackageName() != null) {
+ builder.overlay(ThemeConfig.SYSTEMUI_STATUSBAR_HEADER_PKG, pkgName == null ?
+ request.getHeadersThemePackageName() : pkgName);
+ }
+
// check for any per app overlays being applied
Map<String, String> appOverlays = request.getPerAppOverlays();
for (String appPkgName : appOverlays.keySet()) {
@@ -1000,12 +1013,25 @@ public class ThemeManagerService extends Service {
!isSetupActivity(info) && !handlesThemeChanges(
info.activityInfo.applicationInfo.packageName, themeChangeInfos)) {
String pkgToStop = info.activityInfo.applicationInfo.packageName;
- Log.d(TAG, "Force stopping " + pkgToStop + " for theme change");
- try {
- am.forceStopPackage(pkgToStop);
- } catch(Exception e) {
- Log.e(TAG, "Unable to force stop package, did you forget platform signature?",
- e);
+ boolean doKillLauncher = true;
+ for (int i = 0; i < LAUNCHER_KILL_BLACKLIST.length; i++) {
+ if (TextUtils.equals(pkgToStop, LAUNCHER_KILL_BLACKLIST[i])) {
+ doKillLauncher = false;
+ break;
+ }
+ }
+ if (doKillLauncher) {
+ Log.d(TAG, "Force stopping " + pkgToStop + " for theme change");
+ try {
+ am.forceStopPackage(pkgToStop);
+ } catch (Exception e) {
+ Log.e(TAG,
+ "Unable to force stop package, did you forget platform signature?",
+ e);
+ }
+ } else {
+ Log.d(TAG, "Not force stopping blacklisted launcher " + pkgToStop
+ + " for theme change");
}
}
}