From 54b610f32bf52cee7f7fee3e8407ff593a0ab318 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 25 May 2017 16:11:52 -0400 Subject: Fix RTL for SignalDrawable Test: visual Change-Id: I685125dff96829159d78983ad4b7c7f91d095c5c Fixes: 38487767 --- .../com/android/systemui/statusbar/phone/SignalDrawable.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 a9eb20ba3a57..8cd87910f945 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java @@ -30,6 +30,7 @@ import android.graphics.Path.Op; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Handler; +import android.util.LayoutDirection; import android.util.Log; import com.android.settingslib.R; @@ -192,6 +193,13 @@ public class SignalDrawable extends Drawable { @Override public void draw(@NonNull Canvas canvas) { + boolean isRtl = getLayoutDirection() == LayoutDirection.RTL; + if (isRtl) { + canvas.save(); + // Mirror the drawable + canvas.translate(canvas.getWidth(), 0); + canvas.scale(-1.0f, 1.0f); + } mFullPath.reset(); mFullPath.setFillType(FillType.WINDING); float width = getBounds().width(); @@ -250,6 +258,9 @@ public class SignalDrawable extends Drawable { } canvas.drawPath(mXPath, mForegroundPaint); } + if (isRtl) { + canvas.restore(); + } } private void drawDot(Path fullPath, Path foregroundPath, float x, float y, float dotSize, -- cgit v1.2.3-59-g8ed1b