summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/ThemeService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/core/java/com/android/server/ThemeService.java')
-rw-r--r--services/core/java/com/android/server/ThemeService.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/ThemeService.java b/services/core/java/com/android/server/ThemeService.java
index 5ec0df6..9d4c182 100644
--- a/services/core/java/com/android/server/ThemeService.java
+++ b/services/core/java/com/android/server/ThemeService.java
@@ -126,6 +126,7 @@ public class ThemeService extends IThemeService.Stub {
private class ThemeWorkerHandler extends Handler {
private static final int MESSAGE_CHANGE_THEME = 1;
private static final int MESSAGE_APPLY_DEFAULT_THEME = 2;
+ private static final int MESSAGE_REBUILD_RESOURCE_CACHE = 3;
public ThemeWorkerHandler(Looper looper) {
super(looper);
@@ -141,6 +142,9 @@ public class ThemeService extends IThemeService.Stub {
case MESSAGE_APPLY_DEFAULT_THEME:
doApplyDefaultTheme();
break;
+ case MESSAGE_REBUILD_RESOURCE_CACHE:
+ doRebuildResourceCache();
+ break;
default:
Log.w(TAG, "Unknown message " + msg.what);
break;
@@ -469,6 +473,11 @@ public class ThemeService extends IThemeService.Stub {
}
}
+ private void doRebuildResourceCache() {
+ FileUtils.deleteContents(new File(ThemeUtils.RESOURCE_CACHE_DIR));
+ processInstalledThemes();
+ }
+
private void updateProvider(Map<String, String> componentMap) {
ContentValues values = new ContentValues();
@@ -1040,6 +1049,13 @@ public class ThemeService extends IThemeService.Stub {
mProcessingListeners.unregister(listener);
}
+ @Override
+ public void rebuildResourceCache() throws RemoteException {
+ mContext.enforceCallingOrSelfPermission(
+ Manifest.permission.ACCESS_THEME_MANAGER, null);
+ mHandler.sendEmptyMessage(ThemeWorkerHandler.MESSAGE_REBUILD_RESOURCE_CACHE);
+ }
+
private void purgeIconCache() {
Log.d(TAG, "Purging icon cahe of size " + mIconCacheSize);
File cacheDir = new File(ThemeUtils.SYSTEM_THEME_ICON_CACHE_DIR);