work around bug in LauncherAppsCompat to find restored icons
Bug: 14895464
Change-Id: Iff4f1a9a2e8edf789231be7a1c20e277e18eb05c
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index 05be214..4d953ff 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -249,11 +249,20 @@
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);
}