diff options
Diffstat (limited to 'src/com/android/launcher3/Utilities.java')
-rw-r--r-- | src/com/android/launcher3/Utilities.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 735cbebb7..54d050ff5 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -60,6 +60,8 @@ import android.util.TypedValue; import android.view.View; import android.widget.Toast; +import com.android.launcher3.compat.UserHandleCompat; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -195,6 +197,28 @@ public final class Utilities { } /** + * Returns a bitmap suitable for the all apps view. The icon is badged for {@param user} + */ + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static Bitmap createBadgedIconBitmap( + Drawable icon, UserHandleCompat user, Context context) { + Bitmap bitmap = createIconBitmap(icon, context); + if (Utilities.ATLEAST_LOLLIPOP && user != null + && !UserHandleCompat.myUserHandle().equals(user)) { + BitmapDrawable drawable = new BitmapDrawable(context.getResources(), bitmap); + Drawable badged = context.getPackageManager().getUserBadgedIcon( + drawable, user.getUser()); + if (badged instanceof BitmapDrawable) { + return ((BitmapDrawable) badged).getBitmap(); + } else { + return createIconBitmap(badged, context); + } + } else { + return bitmap; + } + } + + /** * Returns a bitmap suitable for the all apps view. */ public static Bitmap createIconBitmap(Drawable icon, Context context) { |