diff options
author | Joe Onorato <joeo@android.com> | 2010-05-04 12:12:41 -0700 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2010-05-04 14:43:16 -0700 |
commit | fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8 (patch) | |
tree | 19b5342f3278f6005e948e156166739a38335038 /src/com/android/launcher2/IconCache.java | |
parent | c15bd51dbfb476503922791b109a78216afad12e (diff) | |
download | android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.tar.gz android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.tar.bz2 android_packages_apps_Trebuchet-fad1fb5ed46473af0a6da4324e9e3fa45bd9f6e8.zip |
Tweak locking in launcher so mLock isn't held while the slow stuff happens.
Bug 2652948
Change-Id: I9d386395278830ead5deda17b8b09e0dcfeff989
Diffstat (limited to 'src/com/android/launcher2/IconCache.java')
-rw-r--r-- | src/com/android/launcher2/IconCache.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/com/android/launcher2/IconCache.java b/src/com/android/launcher2/IconCache.java index 04762e944..4bb7d08c0 100644 --- a/src/com/android/launcher2/IconCache.java +++ b/src/com/android/launcher2/IconCache.java @@ -100,24 +100,28 @@ public class IconCache { } public Bitmap getIcon(Intent intent) { - final ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, 0); - ComponentName component = intent.getComponent(); + synchronized (mCache) { + final ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, 0); + ComponentName component = intent.getComponent(); - if (resolveInfo == null || component == null) { - return mDefaultIcon; - } + if (resolveInfo == null || component == null) { + return mDefaultIcon; + } - CacheEntry entry = cacheLocked(component, resolveInfo); - return entry.icon; + CacheEntry entry = cacheLocked(component, resolveInfo); + return entry.icon; + } } public Bitmap getIcon(ComponentName component, ResolveInfo resolveInfo) { - if (resolveInfo == null || component == null) { - return null; - } + synchronized (mCache) { + if (resolveInfo == null || component == null) { + return null; + } - CacheEntry entry = cacheLocked(component, resolveInfo); - return entry.icon; + CacheEntry entry = cacheLocked(component, resolveInfo); + return entry.icon; + } } private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info) { |