summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/pm/PackageManagerService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/pm/PackageManagerService.java')
-rw-r--r--services/java/com/android/server/pm/PackageManagerService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 1667ddea7f6..b7dd94da3f6 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -5178,6 +5178,17 @@ public class PackageManagerService extends IPackageManager.Stub {
pkg.applicationInfo.themedIcon = id;
}
+ // Clear out any icon in the cache so it can be recomopsed if needed
+ final boolean isBootScan = (scanMode & SCAN_BOOTING) != 0;
+ if (!isBootScan) {
+ String[] iconPaths =
+ IconPackHelper.IconCustomizer.getCachedIconPaths(pkg.packageName);
+ for(String iconPath : iconPaths) {
+ File file = new File(ThemeUtils.SYSTEM_THEME_ICON_CACHE_DIR, iconPath);
+ file.delete();
+ }
+ }
+
// Add the new setting to mPackages
mPackages.put(pkg.applicationInfo.packageName, pkg);
// Make sure we don't accidentally delete its data.
@@ -5495,7 +5506,6 @@ public class PackageManagerService extends IPackageManager.Stub {
pkgSetting.setTimeStamp(scanFileTime);
- final boolean isBootScan = (scanMode & SCAN_BOOTING) != 0;
// Generate resources & idmaps if pkg is NOT a theme
// We must compile resources here because during the initial boot process we may get
// here before a default theme has had a chance to compile its resources