diff options
Diffstat (limited to 'src/com/android/launcher3/IconCache.java')
-rw-r--r-- | src/com/android/launcher3/IconCache.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 05be2141e..4d953ff10 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); } |