From 075f9f5b66e5cee368750b87686f0f3156352c7f Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Tue, 13 May 2014 16:18:21 -0400 Subject: [PATCH] work around bug in LauncherAppsCompat to find restored icons Bug: 14895464 Change-Id: Iff4f1a9a2e8edf789231be7a1c20e277e18eb05c --- src/com/android/launcher3/IconCache.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 05be2141e8..4d953ff10b 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -249,11 +249,20 @@ public class IconCache { public Bitmap getIcon(Intent intent, String title, UserHandleCompat user) { synchronized (mCache) { - final LauncherActivityInfoCompat launcherActInfo = + LauncherActivityInfoCompat launcherActInfo = mLauncherApps.resolveActivity(intent, user); ComponentName component = intent.getComponent(); - if (launcherActInfo == null || component == null) { + try { + launcherActInfo.getComponentName(); + } catch (NullPointerException e) { + // launcherActInfo is invalid: b/14891460 + launcherActInfo = null; + } + + // null info means not installed, but if we have a component from the intent then + // we should still look in the cache for restored app icons. + if (launcherActInfo == null && component == null) { return getDefaultIcon(user); }