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

Commit a7003db7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Keep original bitmap's dimensions during processing." into 24D1-dev

parents 3c6197c7 1a6c5db1
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -555,6 +555,28 @@ public class PackageArchiver {
        return iconFile.toPath();
    }

    /**
     * An extension of {@link BitmapDrawable} which returns the bitmap pixel size as intrinsic size.
     * This allows the badging to be done based on the actual bitmap size rather than
     * the scaled bitmap size.
     */
    private static class FixedSizeBitmapDrawable extends BitmapDrawable {

        FixedSizeBitmapDrawable(@Nullable final Bitmap bitmap) {
            super(null, bitmap);
        }

        @Override
        public int getIntrinsicHeight() {
            return getBitmap().getWidth();
        }

        @Override
        public int getIntrinsicWidth() {
            return getBitmap().getWidth();
        }
    }

    /**
     * Create an <a
     * href="https://developer.android.com/develop/ui/views/launch/icon_design_adaptive">
@@ -568,6 +590,11 @@ public class PackageArchiver {
        }

        // see BaseIconFactory#createShapedIconBitmap
        if (iconDrawable instanceof BitmapDrawable) {
            var icon = ((BitmapDrawable) iconDrawable).getBitmap();
            iconDrawable = new FixedSizeBitmapDrawable(icon);
        }

        float inset = getExtraInsetFraction();
        inset = inset / (1 + 2 * inset);
        Drawable d = new AdaptiveIconDrawable(new ColorDrawable(Color.BLACK),