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 Original line Diff line number Diff line
@@ -19,6 +19,8 @@ package android.content.pm;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Canvas;
import android.graphics.Bitmap.Config;
import android.graphics.Bitmap.Config;
@@ -37,6 +39,8 @@ import android.util.Log;
 */
 */
public class LauncherActivityInfo {
public class LauncherActivityInfo {
    private static final boolean DEBUG = false;
    private static final boolean DEBUG = false;
    private static final String TAG = "LauncherActivityInfo";

    private final PackageManager mPm;
    private final PackageManager mPm;
    private final UserManager mUm;
    private final UserManager mUm;


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

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

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