From dfe4f3fe49db498ac15bdb79ab32ea12a50fa768 Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Fri, 14 Jul 2017 13:29:49 -0400 Subject: [PATCH] Round mobile icon slash and fix color Airplane mode slashed mobile signal icon should be rounded. Also it was drawing in the foreground color instead of background. That was bad. Test: visual Change-Id: Ie7137929e1b54118482b0990e3d86ccb0f620e56 Fixes: 63533582 --- .../SystemUI/src/com/android/systemui/qs/SlashDrawable.java | 7 ++++--- .../android/systemui/statusbar/phone/SignalDrawable.java | 13 +++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/SlashDrawable.java b/packages/SystemUI/src/com/android/systemui/qs/SlashDrawable.java index b8535a3f5a40..c35614893098 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/SlashDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/qs/SlashDrawable.java @@ -33,11 +33,12 @@ import android.graphics.PorterDuff.Mode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; -import android.util.Log; import android.util.FloatProperty; public class SlashDrawable extends Drawable { + public static final float CORNER_RADIUS = 1f; + private final Path mPath = new Path(); private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -141,8 +142,8 @@ public class SlashDrawable extends Drawable { Matrix m = new Matrix(); final int width = getBounds().width(); final int height = getBounds().height(); - final float radiusX = scale(1f, width); - final float radiusY = scale(1f, height); + final float radiusX = scale(CORNER_RADIUS, width); + final float radiusY = scale(CORNER_RADIUS, height); updateRect( scale(LEFT, width), scale(TOP, height), diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java index d537cda00b10..f619d812bc7b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java @@ -36,6 +36,7 @@ import android.util.LayoutDirection; import com.android.settingslib.R; import com.android.settingslib.Utils; +import com.android.systemui.qs.SlashDrawable; public class SignalDrawable extends Drawable { @@ -333,10 +334,9 @@ public class SignalDrawable extends Drawable { mForegroundPath.reset(); mFullPath.op(mCutPath, Path.Op.DIFFERENCE); } else if (mState == STATE_AIRPLANE) { - // Airplane mode is slashed, full-signal - mForegroundPath.set(mFullPath); - mFullPath.reset(); - mSlash.draw((int) height, (int) width, canvas, mForegroundPaint); + // Airplane mode is slashed, fully drawn background + mForegroundPath.reset(); + mSlash.draw((int) height, (int) width, canvas, mPaint); } else if (mState != STATE_CARRIER_CHANGE) { mForegroundPath.reset(); int sigWidth = Math.round(calcFit(mLevel / (mNumLevels - 1)) * (width - 2 * padding)); @@ -473,6 +473,7 @@ public class SignalDrawable extends Drawable { void draw(int height, int width, @NonNull Canvas canvas, Paint paint) { Matrix m = new Matrix(); + final float radius = scale(SlashDrawable.CORNER_RADIUS, width); updateRect( scale(LEFT, width), scale(TOP, height), @@ -481,7 +482,7 @@ public class SignalDrawable extends Drawable { mPath.reset(); // Draw the slash vertically - mPath.addRect(mSlashRect, Direction.CW); + mPath.addRoundRect(mSlashRect, radius, radius, Direction.CW); m.setRotate(ROTATION, width / 2, height / 2); mPath.transform(m); canvas.drawPath(mPath, paint); @@ -491,7 +492,7 @@ public class SignalDrawable extends Drawable { mPath.transform(m); m.setTranslate(mSlashRect.width(), 0); mPath.transform(m); - mPath.addRect(mSlashRect, Direction.CW); + mPath.addRoundRect(mSlashRect, radius, radius, Direction.CW); m.setRotate(ROTATION, width / 2, height / 2); mPath.transform(m); canvas.clipOutPath(mPath); -- 2.11.0