diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-01-11 14:20:20 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-01-11 14:20:57 -0800 |
commit | f745b925b4ab9ce037a31fc41277c638df4964db (patch) | |
tree | 91a3e905cb79d2493e6976a1a9c65c6f93cad606 /src | |
parent | 3e9be43b6ea75c8b82b57aa58508a0c3e8e1d721 (diff) | |
download | android_packages_apps_Trebuchet-f745b925b4ab9ce037a31fc41277c638df4964db.tar.gz android_packages_apps_Trebuchet-f745b925b4ab9ce037a31fc41277c638df4964db.tar.bz2 android_packages_apps_Trebuchet-f745b925b4ab9ce037a31fc41277c638df4964db.zip |
Loading proper app icon if the associated activity is null
Bug: 34123342
Change-Id: Ibb80c6e442beea34c612fb4ce5246260714820e2
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/ShortcutInfo.java | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/com/android/launcher3/ShortcutInfo.java b/src/com/android/launcher3/ShortcutInfo.java index 8c83dff2b..ccdbfbae9 100644 --- a/src/com/android/launcher3/ShortcutInfo.java +++ b/src/com/android/launcher3/ShortcutInfo.java @@ -17,6 +17,7 @@ package com.android.launcher3; import android.annotation.TargetApi; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -29,6 +30,7 @@ import android.text.TextUtils; import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.graphics.LauncherIcons; +import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.shortcuts.DeepShortcutManager; import com.android.launcher3.shortcuts.ShortcutInfoCompat; import com.android.launcher3.util.ContentWriter; @@ -250,15 +252,25 @@ public class ShortcutInfo extends ItemInfoWithIcon { protected Bitmap getBadgedIcon(Bitmap unbadgedBitmap, ShortcutInfoCompat shortcutInfo, IconCache cache, Context context) { unbadgedBitmap = LauncherIcons.addShadowToIcon(unbadgedBitmap, context); - // Get the app info for the source activity. - AppInfo appInfo = new AppInfo(); - appInfo.user = user; - appInfo.componentName = shortcutInfo.getActivity(); - appInfo.intent = new Intent(Intent.ACTION_MAIN) - .addCategory(Intent.CATEGORY_LAUNCHER) - .setComponent(shortcutInfo.getActivity()); - cache.getTitleAndIcon(appInfo, false); - return LauncherIcons.badgeWithBitmap(unbadgedBitmap, appInfo.iconBitmap, context); + + final Bitmap badgeBitmap; + ComponentName cn = shortcutInfo.getActivity(); + if (cn != null) { + // Get the app info for the source activity. + AppInfo appInfo = new AppInfo(); + appInfo.user = user; + appInfo.componentName = cn; + appInfo.intent = new Intent(Intent.ACTION_MAIN) + .addCategory(Intent.CATEGORY_LAUNCHER) + .setComponent(cn); + cache.getTitleAndIcon(appInfo, false); + badgeBitmap = appInfo.iconBitmap; + } else { + PackageItemInfo pkgInfo = new PackageItemInfo(shortcutInfo.getPackage()); + cache.getTitleAndIconForApp(pkgInfo, false); + badgeBitmap = pkgInfo.iconBitmap; + } + return LauncherIcons.badgeWithBitmap(unbadgedBitmap, badgeBitmap, context); } /** Returns the ShortcutInfo id associated with the deep shortcut. */ |