From 308ed7266ca88faa67a2b3f205f65ae9b099bdb6 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 12 Mar 2018 11:35:57 -0700 Subject: [PATCH] Passing the TaskDescription to the IconLoader Bug: 74445840 Test: Verified corresponding launcher change Change-Id: I82a7d595aa0c128b50a699d7ac2ba688dc3cec9f --- .../shared/recents/model/IconLoader.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java index 3bc1d9a0588c5..14767f1c63bfc 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java @@ -103,12 +103,13 @@ public abstract class IconLoader { int userId = taskKey.userId; Bitmap tdIcon = desc.getInMemoryIcon(); if (tdIcon != null) { - return createDrawableFromBitmap(tdIcon, userId); + return createDrawableFromBitmap(tdIcon, userId, desc); } if (desc.getIconResource() != 0) { // TODO: Use task context here try { - return createBadgedDrawable(mContext.getDrawable(desc.getIconResource()), userId); + return createBadgedDrawable( + mContext.getDrawable(desc.getIconResource()), userId, desc); } catch (Resources.NotFoundException e) { Log.e(TAG, "Could not find icon drawable from resource", e); } @@ -117,13 +118,13 @@ public abstract class IconLoader { tdIcon = ActivityManager.TaskDescription.loadTaskDescriptionIcon( desc.getIconFilename(), userId); if (tdIcon != null) { - return createDrawableFromBitmap(tdIcon, userId); + return createDrawableFromBitmap(tdIcon, userId, desc); } // Load the icon from the activity info and cache it ActivityInfo activityInfo = getAndUpdateActivityInfo(taskKey); if (activityInfo != null) { - Drawable icon = getBadgedActivityIcon(activityInfo, userId); + Drawable icon = getBadgedActivityIcon(activityInfo, userId, desc); if (icon != null) { return icon; } @@ -135,16 +136,20 @@ public abstract class IconLoader { public abstract Drawable getDefaultIcon(int userId); - protected Drawable createDrawableFromBitmap(Bitmap icon, int userId) { - return createBadgedDrawable(new BitmapDrawable(mContext.getResources(), icon), userId); + protected Drawable createDrawableFromBitmap(Bitmap icon, int userId, + ActivityManager.TaskDescription desc) { + return createBadgedDrawable( + new BitmapDrawable(mContext.getResources(), icon), userId, desc); } - protected abstract Drawable createBadgedDrawable(Drawable icon, int userId); + protected abstract Drawable createBadgedDrawable(Drawable icon, int userId, + ActivityManager.TaskDescription desc); /** * @return the activity icon for the ActivityInfo for a user, badging if necessary. */ - protected abstract Drawable getBadgedActivityIcon(ActivityInfo info, int userId); + protected abstract Drawable getBadgedActivityIcon(ActivityInfo info, int userId, + ActivityManager.TaskDescription desc); public static class DefaultIconLoader extends IconLoader { @@ -168,7 +173,8 @@ public abstract class IconLoader { } @Override - protected Drawable createBadgedDrawable(Drawable icon, int userId) { + protected Drawable createBadgedDrawable(Drawable icon, int userId, + ActivityManager.TaskDescription desc) { if (userId != UserHandle.myUserId()) { icon = mContext.getPackageManager().getUserBadgedIcon(icon, new UserHandle(userId)); } @@ -176,7 +182,8 @@ public abstract class IconLoader { } @Override - protected Drawable getBadgedActivityIcon(ActivityInfo info, int userId) { + protected Drawable getBadgedActivityIcon(ActivityInfo info, int userId, + ActivityManager.TaskDescription desc) { return mDrawableFactory.getBadgedIcon(info, info.applicationInfo, userId); } }