Loading proper app icon if the associated activity is null

Bug: 34123342
Change-Id: Ibb80c6e442beea34c612fb4ce5246260714820e2
This commit is contained in:
Sunny Goyal 2017-01-11 14:20:20 -08:00
parent 3e9be43b6e
commit f745b925b4
1 changed files with 21 additions and 9 deletions

View File

@ -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. */