Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0150b48c authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "Handle density request in LauncherActivityInfo"

parents af6f910d 30acde7e
Loading
Loading
Loading
Loading
+21 −8
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package android.content.pm;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Bitmap.Config;
@@ -37,6 +39,8 @@ import android.util.Log;
 */
public class LauncherActivityInfo {
    private static final boolean DEBUG = false;
    private static final String TAG = "LauncherActivityInfo";

    private final PackageManager mPm;
    private final UserManager mUm;

@@ -134,20 +138,29 @@ public class LauncherActivityInfo {
     * @return A badged icon for the activity.
     */
    public Drawable getBadgedIcon(int density) {
        // TODO: Handle density
        if (mUser.equals(android.os.Process.myUserHandle())) {
            return mActivityInfo.loadIcon(mPm);
        int iconRes = mActivityInfo.getIconResource();
        Resources resources = null;
        Drawable originalIcon = null;
        try {
            resources = mPm.getResourcesForApplication(mActivityInfo.applicationInfo);
            try {
                if (density != 0) {
                    originalIcon = resources.getDrawableForDensity(iconRes, density);
                }
        Drawable originalIcon = mActivityInfo.loadIcon(mPm);
        if (originalIcon == null) {
            if (DEBUG) {
                Log.w("LauncherActivityInfo", "Couldn't find icon for activity");
            } catch (Resources.NotFoundException e) {
            }
            originalIcon = mPm.getDefaultActivityIcon();
        } catch (NameNotFoundException nnfe) {
        }

        if (originalIcon == null) {
            originalIcon = mActivityInfo.loadIcon(mPm);
        }

        if (originalIcon instanceof BitmapDrawable) {
            return mUm.getBadgedDrawableForUser(
                    originalIcon, mUser);
        } else {
            Log.e(TAG, "Unable to create badged icon for " + mActivityInfo);
        }
        return originalIcon;
    }