From 5be75795986da5229ec07ad8eec6a8cf0f7a19a3 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 7 Aug 2017 00:00:37 -0700 Subject: [PATCH] Fixing badge bounds incorrectly set when dragging icon Bug: 64427027 Change-Id: If57bdcab703b2cc30e8ca0c0fba0dd599792bd00 --- src/com/android/launcher3/dragndrop/DragView.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index b6e38bb15e..e81e2a3863 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java @@ -218,6 +218,12 @@ public class DragView extends View { Rect bounds = new Rect(0, 0, w, h); bounds.inset(blurMargin, blurMargin); + // Badge is applied after icon normalization so the bounds for badge should not + // be scaled down due to icon normalization. + Rect badgeBounds = new Rect(bounds); + mBadge = getBadge(info, appState, outObj[0]); + mBadge.setBounds(badgeBounds); + Utilities.scaleRectAboutCenter(bounds, IconNormalizer.getInstance(mLauncher).getScale(dr, null, null, null)); AdaptiveIconDrawable adaptiveIcon = (AdaptiveIconDrawable) dr; @@ -234,9 +240,6 @@ public class DragView extends View { mTranslateY = new SpringFloatValue(DragView.this, h * AdaptiveIconDrawable.getExtraInsetFraction()); - mBadge = getBadge(info, appState, outObj[0]); - mBadge.setBounds(bounds); - bounds.inset( (int) (-bounds.width() * AdaptiveIconDrawable.getExtraInsetFraction()), (int) (-bounds.height() * AdaptiveIconDrawable.getExtraInsetFraction())