Pulse: allow custom opacity for solid line renderer [1/3]
Change-Id: Iccf109954805262112fd41e33c405d7d85e781d3
diff --git a/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java b/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java
index 9577fae..3388fd8 100644
--- a/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java
+++ b/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java
@@ -29,6 +29,8 @@
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.PorterDuff.Mode;
import android.net.Uri;
import android.os.Handler;
import android.os.UserHandle;
@@ -39,6 +41,7 @@
public class SolidLineRenderer extends Renderer implements ColorAnimator.ColorAnimationListener {
private Paint mPaint;
+ private Paint mFadePaint;
private ValueAnimator[] mValueAnimators;
private float[] mFFTPoints;
private int mColor;
@@ -64,6 +67,8 @@
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setColor(mColor);
+ mFadePaint = new Paint();
+ mFadePaint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
mDbFuzzFactor = 5f;
mObserver = new CMRendererObserver(handler);
mObserver.updateSettings();
@@ -184,6 +189,7 @@
@Override
public void draw(Canvas canvas) {
canvas.drawLines(mFFTPoints, mPaint);
+ canvas.drawPaint(mFadePaint);
}
@Override
@@ -237,6 +243,9 @@
resolver.registerContentObserver(
Settings.Secure.getUriFor(Settings.Secure.PULSE_SOLID_UNITS_COUNT), false, this,
UserHandle.USER_ALL);
+ resolver.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.PULSE_SOLID_UNITS_OPACITY), false, this,
+ UserHandle.USER_ALL);
}
@Override
@@ -277,6 +286,11 @@
mFFTPoints = new float[mUnits * 4];
onSizeChanged(0, 0, 0, 0);
}
+
+ int solidUnitsColor = Settings.Secure.getIntForUser(
+ resolver, Settings.Secure.PULSE_SOLID_UNITS_OPACITY, 200,
+ UserHandle.USER_CURRENT);
+ mFadePaint.setColor(Color.argb(solidUnitsColor, 255, 255, 255));
}
}
}