summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/IconCache.java
diff options
context:
space:
mode:
authorDanesh Mondegarian <daneshm90@gmail.com>2014-01-22 23:37:51 -0800
committerDanesh Mondegarian <daneshm90@gmail.com>2014-01-29 02:13:59 -0800
commit89970649602163ba8cb5c01c4c77534f45b66121 (patch)
tree0bbc707eac05c52e67d47a967407cfb3e9d18518 /src/com/android/launcher3/IconCache.java
parente86f3cb065b3901133b7fa05a9e847456f9d0939 (diff)
downloadandroid_packages_apps_Trebuchet-89970649602163ba8cb5c01c4c77534f45b66121.tar.gz
android_packages_apps_Trebuchet-89970649602163ba8cb5c01c4c77534f45b66121.tar.bz2
android_packages_apps_Trebuchet-89970649602163ba8cb5c01c4c77534f45b66121.zip
Trebuchet : Icon pack support
Icons courtesy of Asher Simonds Change-Id: If64811a5506022135ce772ab749a871dab00fc36
Diffstat (limited to 'src/com/android/launcher3/IconCache.java')
-rw-r--r--src/com/android/launcher3/IconCache.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index 543b8ee2d..b4bb5b9c3 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -27,11 +27,14 @@ import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
+import com.android.launcher3.settings.SettingsProvider;
+
/**
* Cache of application icons. Icons can be made from any thread.
*/
@@ -40,6 +43,7 @@ public class IconCache {
private static final String TAG = "Launcher.IconCache";
private static final int INITIAL_ICON_CACHE_CAPACITY = 50;
+ private IconPackHelper mIconPackHelper;
private static class CacheEntry {
public Bitmap icon;
@@ -63,6 +67,9 @@ public class IconCache {
// need to set mIconDpi before getting default icon
mDefaultIcon = makeDefaultIcon();
+
+ mIconPackHelper = new IconPackHelper(context);
+ loadIconPack();
}
public Drawable getFullResDefaultActivityIcon() {
@@ -110,7 +117,14 @@ public class IconCache {
resources = null;
}
if (resources != null) {
- int iconId = info.getIconResource();
+ int iconId = 0;
+ if (mIconPackHelper != null && mIconPackHelper.isIconPackLoaded()) {
+ iconId = mIconPackHelper.getResourceIdForActivityIcon(info);
+ if (iconId != 0) {
+ return getFullResIcon(mIconPackHelper.getIconPackResources(), iconId);
+ }
+ }
+ iconId = info.getIconResource();
if (iconId != 0) {
return getFullResIcon(resources, iconId);
}
@@ -130,6 +144,16 @@ public class IconCache {
return b;
}
+ private void loadIconPack() {
+ mIconPackHelper.unloadIconPack();
+ String iconPack = SettingsProvider.getStringCustomDefault(mContext,
+ SettingsProvider.SETTINGS_UI_GENERAL_ICONS_ICON_PACK, "");
+ if (!TextUtils.isEmpty(iconPack) && !mIconPackHelper.loadIconPack(iconPack)) {
+ SettingsProvider.putString(mContext,
+ SettingsProvider.SETTINGS_UI_GENERAL_ICONS_ICON_PACK, "");
+ }
+ }
+
/**
* Remove any records for the supplied ComponentName.
*/
@@ -146,6 +170,7 @@ public class IconCache {
synchronized (mCache) {
mCache.clear();
}
+ loadIconPack();
}
/**