diff options
author | Danesh Mondegarian <daneshm90@gmail.com> | 2014-01-22 23:37:51 -0800 |
---|---|---|
committer | Danesh Mondegarian <daneshm90@gmail.com> | 2014-01-29 02:13:59 -0800 |
commit | 89970649602163ba8cb5c01c4c77534f45b66121 (patch) | |
tree | 0bbc707eac05c52e67d47a967407cfb3e9d18518 /src/com/android/launcher3/IconCache.java | |
parent | e86f3cb065b3901133b7fa05a9e847456f9d0939 (diff) | |
download | android_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.java | 27 |
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(); } /** |