diff options
| author | Winson Chung <winsonc@google.com> | 2014-11-18 19:58:54 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-11-18 19:58:56 +0000 |
| commit | f95a9fe5372c5f8f80b578ad98d66e92a7cc8608 (patch) | |
| tree | 4e944a43c6c74dce03d468d73e011e70b20496ec | |
| parent | 0925db87150300a679090a41f6eec26aad5c75e5 (diff) | |
| parent | 66e86f97747cae9d2ae306a35d9a324c5b3cef68 (diff) | |
| download | frameworks_base-f95a9fe5372c5f8f80b578ad98d66e92a7cc8608.zip frameworks_base-f95a9fe5372c5f8f80b578ad98d66e92a7cc8608.tar.gz frameworks_base-f95a9fe5372c5f8f80b578ad98d66e92a7cc8608.tar.bz2 | |
Merge "Fixing high cpu usage due to case not falling through to wait logic. (Bug 18390735)" into lmp-mr1-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java index 67a36b9..ba2903a 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java @@ -170,66 +170,66 @@ class TaskResourceLoader implements Runnable { } else { RecentsConfiguration config = RecentsConfiguration.getInstance(); SystemServicesProxy ssp = mSystemServicesProxy; - // If we've stopped the loader, then fall thorugh to the above logic to wait on + // If we've stopped the loader, then fall through to the above logic to wait on // the load thread - if (ssp == null) continue; - - // Load the next item from the queue - final Task t = mLoadQueue.nextTask(); - if (t != null) { - Drawable cachedIcon = mApplicationIconCache.get(t.key); - Bitmap cachedThumbnail = mThumbnailCache.get(t.key); - - // Load the application icon if it is stale or we haven't cached one yet - if (cachedIcon == null) { - cachedIcon = getTaskDescriptionIcon(t.key, t.icon, t.iconFilename, ssp, - mContext.getResources()); - + if (ssp != null) { + // Load the next item from the queue + final Task t = mLoadQueue.nextTask(); + if (t != null) { + Drawable cachedIcon = mApplicationIconCache.get(t.key); + Bitmap cachedThumbnail = mThumbnailCache.get(t.key); + + // Load the application icon if it is stale or we haven't cached one yet if (cachedIcon == null) { - ActivityInfo info = ssp.getActivityInfo(t.key.baseIntent.getComponent(), - t.key.userId); - if (info != null) { - if (DEBUG) Log.d(TAG, "Loading icon: " + t.key); - cachedIcon = ssp.getActivityIcon(info, t.key.userId); + cachedIcon = getTaskDescriptionIcon(t.key, t.icon, t.iconFilename, ssp, + mContext.getResources()); + + if (cachedIcon == null) { + ActivityInfo info = ssp.getActivityInfo( + t.key.baseIntent.getComponent(), t.key.userId); + if (info != null) { + if (DEBUG) Log.d(TAG, "Loading icon: " + t.key); + cachedIcon = ssp.getActivityIcon(info, t.key.userId); + } } - } - if (cachedIcon == null) { - cachedIcon = mDefaultApplicationIcon; - } + if (cachedIcon == null) { + cachedIcon = mDefaultApplicationIcon; + } - // At this point, even if we can't load the icon, we will set the default - // icon. - mApplicationIconCache.put(t.key, cachedIcon); - } - // Load the thumbnail if it is stale or we haven't cached one yet - if (cachedThumbnail == null) { - if (config.svelteLevel < RecentsConfiguration.SVELTE_DISABLE_LOADING) { - if (DEBUG) Log.d(TAG, "Loading thumbnail: " + t.key); - cachedThumbnail = ssp.getTaskThumbnail(t.key.id); + // At this point, even if we can't load the icon, we will set the + // default icon. + mApplicationIconCache.put(t.key, cachedIcon); } + // Load the thumbnail if it is stale or we haven't cached one yet if (cachedThumbnail == null) { - cachedThumbnail = mDefaultThumbnail; + if (config.svelteLevel < RecentsConfiguration.SVELTE_DISABLE_LOADING) { + if (DEBUG) Log.d(TAG, "Loading thumbnail: " + t.key); + cachedThumbnail = ssp.getTaskThumbnail(t.key.id); + } + if (cachedThumbnail == null) { + cachedThumbnail = mDefaultThumbnail; + } + // When svelte, we trim the memory to just the visible thumbnails when + // leaving, so don't thrash the cache as the user scrolls (just load + // them from scratch each time) + if (config.svelteLevel < RecentsConfiguration.SVELTE_LIMIT_CACHE) { + mThumbnailCache.put(t.key, cachedThumbnail); + } } - // When svelte, we trim the memory to just the visible thumbnails when - // leaving, so don't thrash the cache as the user scrolls (just load them - // from scratch each time) - if (config.svelteLevel < RecentsConfiguration.SVELTE_LIMIT_CACHE) { - mThumbnailCache.put(t.key, cachedThumbnail); + if (!mCancelled) { + // Notify that the task data has changed + final Drawable newIcon = cachedIcon; + final Bitmap newThumbnail = cachedThumbnail == mDefaultThumbnail + ? null : cachedThumbnail; + mMainThreadHandler.post(new Runnable() { + @Override + public void run() { + t.notifyTaskDataLoaded(newThumbnail, newIcon); + } + }); } } - if (!mCancelled) { - // Notify that the task data has changed - final Drawable newIcon = cachedIcon; - final Bitmap newThumbnail = cachedThumbnail == mDefaultThumbnail - ? null : cachedThumbnail; - mMainThreadHandler.post(new Runnable() { - @Override - public void run() { - t.notifyTaskDataLoaded(newThumbnail, newIcon); - } - }); - } } // If there are no other items in the list, then just wait until something is added |
