summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hugh Chen <hughchen@google.com> 2020-06-15 15:56:02 +0800
committer Hugh Chen <hughchen@google.com> 2020-06-15 16:04:38 +0800
commitc06745b3d39c236fdbcb7847d7bf42c31e43dcdb (patch)
tree4d848ad1eb19d482efdf046a715030e5cedf1423
parent5463497bed15a30ce8924640b74971d935a41e8c (diff)
Fix advanced icon will incorrect on some device
Use the fixed value to locate the center of icon instead of use value of density. Because the value of density will different between the device according the resolution. Bug: 156689249 Test: build pass Change-Id: I6d3a53e68058232871dd281ec4736179090a6580
-rw-r--r--packages/SettingsLib/AdaptiveIcon/src/com/android/settingslib/widget/AdaptiveOutlineDrawable.java14
1 files changed, 4 insertions, 10 deletions
diff --git a/packages/SettingsLib/AdaptiveIcon/src/com/android/settingslib/widget/AdaptiveOutlineDrawable.java b/packages/SettingsLib/AdaptiveIcon/src/com/android/settingslib/widget/AdaptiveOutlineDrawable.java
index 3bf43dd4d1bf..3565b0e3a9ae 100644
--- a/packages/SettingsLib/AdaptiveIcon/src/com/android/settingslib/widget/AdaptiveOutlineDrawable.java
+++ b/packages/SettingsLib/AdaptiveIcon/src/com/android/settingslib/widget/AdaptiveOutlineDrawable.java
@@ -30,9 +30,7 @@ import android.graphics.Rect;
import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.DrawableWrapper;
import android.os.RemoteException;
-import android.util.DisplayMetrics;
import android.util.PathParser;
-import android.view.Display;
import android.view.IWindowManager;
import android.view.WindowManagerGlobal;
@@ -47,6 +45,9 @@ import java.lang.annotation.RetentionPolicy;
*/
public class AdaptiveOutlineDrawable extends DrawableWrapper {
+ private static final float ADVANCED_ICON_CENTER = 50f;
+ private static final float ADVANCED_ICON_RADIUS = 48f;
+
@Retention(RetentionPolicy.SOURCE)
@IntDef({TYPE_DEFAULT, TYPE_ADVANCED})
public @interface AdaptiveOutlineIconType {
@@ -61,7 +62,6 @@ public class AdaptiveOutlineDrawable extends DrawableWrapper {
private int mStrokeWidth;
private Bitmap mBitmap;
private int mType;
- private float mDensity;
public AdaptiveOutlineDrawable(Resources resources, Bitmap bitmap) {
super(new AdaptiveIconShapeDrawable(resources));
@@ -83,7 +83,6 @@ public class AdaptiveOutlineDrawable extends DrawableWrapper {
mPath = new Path(PathParser.createPathFromPathData(
resources.getString(com.android.internal.R.string.config_icon_mask)));
mStrokeWidth = resources.getDimensionPixelSize(R.dimen.adaptive_outline_stroke);
- mDensity = resources.getDisplayMetrics().density;
mOutlinePaint = new Paint();
mOutlinePaint.setColor(getColor(resources, type));
mOutlinePaint.setStyle(Paint.Style.STROKE);
@@ -137,12 +136,7 @@ public class AdaptiveOutlineDrawable extends DrawableWrapper {
if (mType == TYPE_DEFAULT) {
canvas.drawPath(mPath, mOutlinePaint);
} else {
- final float defaultDensity = getDefaultDisplayDensity(Display.DEFAULT_DISPLAY)
- / (float) DisplayMetrics.DENSITY_DEFAULT;
- final int insetPx =
- Math.round(mInsetPx / (float) (Math.floor(
- (mDensity / defaultDensity) * 100) / 100.0));
- canvas.drawCircle(2 * insetPx, 2 * insetPx, 2 * insetPx - mStrokeWidth,
+ canvas.drawCircle(ADVANCED_ICON_CENTER, ADVANCED_ICON_CENTER, ADVANCED_ICON_RADIUS,
mOutlinePaint);
}
canvas.restoreToCount(count);