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

Commit 30acde7e authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Handle density request in LauncherActivityInfo

Change-Id: I4e8dc8ef1454b3881bdb80ae118e2d0d306642f3
parent 250bb6e3
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;

@@ -126,20 +130,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;
    }