mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 01:16:49 +00:00
Tweak locking in launcher so mLock isn't held while the slow stuff happens.
Bug 2652948 Change-Id: I9d386395278830ead5deda17b8b09e0dcfeff989
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -73,6 +73,7 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
private boolean mBeforeFirstLoad = true; // only access this from main thread
|
||||
private WeakReference<Callbacks> mCallbacks;
|
||||
|
||||
private final Object mAllAppsListLock = new Object();
|
||||
private AllAppsList mAllAppsList;
|
||||
private IconCache mIconCache;
|
||||
|
||||
@@ -306,7 +307,7 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
ArrayList<ApplicationInfo> removed = null;
|
||||
ArrayList<ApplicationInfo> modified = null;
|
||||
|
||||
synchronized (mLock) {
|
||||
synchronized (mAllAppsListLock) {
|
||||
if (mBeforeFirstLoad) {
|
||||
// If we haven't even loaded yet, don't bother, since we'll just pick
|
||||
// up the changes.
|
||||
@@ -1047,7 +1048,7 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
int i=0;
|
||||
int batchSize = -1;
|
||||
while (i < N && !mStopped) {
|
||||
synchronized (mLock) {
|
||||
synchronized (mAllAppsListLock) {
|
||||
if (i == 0) {
|
||||
// This needs to happen inside the same lock block as when we
|
||||
// prepare the first batch for bindAllApplications. Otherwise
|
||||
|
||||
Reference in New Issue
Block a user