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

Commit d02a29a5 authored by Hyunyoung Song's avatar Hyunyoung Song
Browse files

Shadows should not be clipped on AdaptiveIconDrawable

b/36702964

Change-Id: Ic7363196aa493b4aa6a2dffa9c3e8f3399b1b3f3
parent 128b7e59
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -184,6 +184,17 @@ public class LauncherIcons {
                    bitmapDrawable.setTargetDensity(context.getResources().getDisplayMetrics());
                }
            }

            Class iconClass = null;
            if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO()) {
                try {
                    iconClass = Class.forName("android.graphics.drawable.AdaptiveIconDrawable");
                } catch (Exception e) {
                }
            }
            if (iconClass != null && iconClass.isAssignableFrom(icon.getClass())) {
                scale *= ShadowGenerator.getScaleForBounds(new RectF(0, 0, 0, 0));
            }
            int sourceWidth = icon.getIntrinsicWidth();
            int sourceHeight = icon.getIntrinsicHeight();
            if (sourceWidth > 0 && sourceHeight > 0) {
@@ -217,16 +228,9 @@ public class LauncherIcons {
            icon.setBounds(sOldBounds);
            canvas.setBitmap(null);

            if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO()) {
                try {
                    Class clazz = Class.forName("android.graphics.drawable.AdaptiveIconDrawable");
                    if (clazz.isAssignableFrom(icon.getClass())) {
            if (iconClass != null && iconClass.isAssignableFrom(icon.getClass())) {
                bitmap = ShadowGenerator.getInstance(context).recreateIcon(bitmap);
            }
                } catch (Exception e) {
                    // do nothing
                }
            }
            return bitmap;
        }
    }