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

Commit 3c3aab14 authored by Sumedh Sen's avatar Sumedh Sen Committed by Automerger Merge Worker
Browse files

Resize large app icons before adding them in a parcel am: df3af7fd

parents 43ca9b0c df3af7fd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -596,7 +596,7 @@ public class PackageInstallerActivity extends AlertActivity {
                CharSequence label = mPm.getApplicationLabel(mPkgInfo.applicationInfo);
                if (mLocalLOGV) Log.i(TAG, "creating snippet for " + label);
                mAppSnippet = new PackageUtil.AppSnippet(label,
                        mPm.getApplicationIcon(mPkgInfo.applicationInfo));
                        mPm.getApplicationIcon(mPkgInfo.applicationInfo), getBaseContext());
            } break;

            case ContentResolver.SCHEME_FILE: {
@@ -634,7 +634,7 @@ public class PackageInstallerActivity extends AlertActivity {
        mPkgInfo = generateStubPackageInfo(info.getAppPackageName());
        mAppSnippet = new PackageUtil.AppSnippet(info.getAppLabel(),
                info.getAppIcon() != null ? new BitmapDrawable(getResources(), info.getAppIcon())
                        : getPackageManager().getDefaultActivityIcon());
                        : getPackageManager().getDefaultActivityIcon(), getBaseContext());
        return true;
    }

+14 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
package com.android.packageinstaller;

import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
@@ -123,15 +124,20 @@ public class PackageUtil {
    static final class AppSnippet implements Parcelable {
        @NonNull public CharSequence label;
        @Nullable public Drawable icon;
        public AppSnippet(@NonNull CharSequence label, @Nullable Drawable icon) {
        public int iconSize;

        public AppSnippet(@NonNull CharSequence label, @Nullable Drawable icon, Context context) {
            this.label = label;
            this.icon = icon;
            final ActivityManager am = context.getSystemService(ActivityManager.class);
            this.iconSize = am.getLauncherLargeIconSize();
        }

        private AppSnippet(Parcel in) {
            label = in.readString();
            Bitmap bmp = in.readParcelable(getClass().getClassLoader(), Bitmap.class);
            icon = new BitmapDrawable(Resources.getSystem(), bmp);
            iconSize = in.readInt();
        }

        @Override
@@ -149,6 +155,7 @@ public class PackageUtil {
            dest.writeString(label.toString());
            Bitmap bmp = getBitmapFromDrawable(icon);
            dest.writeParcelable(bmp, 0);
            dest.writeInt(iconSize);
        }

        private Bitmap getBitmapFromDrawable(Drawable drawable) {
@@ -162,6 +169,11 @@ public class PackageUtil {
            // bitmap held within
            drawable.draw(canvas);

            // Scale it down if the icon is too large
            if ((bmp.getWidth() > iconSize * 2) || (bmp.getHeight() > iconSize * 2)) {
                bmp = Bitmap.createScaledBitmap(bmp, iconSize, iconSize, true);
            }

            return bmp;
        }

@@ -218,7 +230,7 @@ public class PackageUtil {
        } catch (OutOfMemoryError e) {
            Log.i(LOG_TAG, "Could not load app icon", e);
        }
        return new PackageUtil.AppSnippet(label, icon);
        return new PackageUtil.AppSnippet(label, icon, pContext);
    }

    /**