Fixing adaptive icon bounds caching

Change-Id: Ifa0ed4d600fcd2c50558ea9ae6e95f3364d4949a
This commit is contained in:
Sunny Goyal
2017-04-17 16:43:05 -07:00
parent 8c6a2b2244
commit 311420ffb2

View File

@@ -74,6 +74,8 @@ public class IconNormalizer {
private final Paint mPaintMaskShapeOutline;
private final byte[] mPixels;
private final int[] mPixelsARGB;
private final Rect mAdaptiveIconBounds;
private float mAdaptiveIconScale;
// for each y, stores the position of the leftmost x and the rightmost x
@@ -99,6 +101,7 @@ public class IconNormalizer {
mLeftBorder = new float[mMaxSize];
mRightBorder = new float[mMaxSize];
mBounds = new Rect();
mAdaptiveIconBounds = new Rect();
// Needed for isShape() method
mBitmapARGB = Bitmap.createBitmap(mMaxSize, mMaxSize, Bitmap.Config.ARGB_8888);
@@ -231,7 +234,7 @@ public class IconNormalizer {
if (Utilities.isAtLeastO() && d instanceof AdaptiveIconDrawable &&
mAdaptiveIconScale != SCALE_NOT_INITIALIZED) {
if (outBounds != null) {
outBounds.set(mBounds);
outBounds.set(mAdaptiveIconBounds);
}
return mAdaptiveIconScale;
}
@@ -347,6 +350,7 @@ public class IconNormalizer {
if (Utilities.isAtLeastO() && d instanceof AdaptiveIconDrawable &&
mAdaptiveIconScale == SCALE_NOT_INITIALIZED) {
mAdaptiveIconScale = scale;
mAdaptiveIconBounds.set(mBounds);
}
return scale;
}