Skip to content
Snippets Groups Projects
Commit ba911a25 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Ie1686719,Ie6af7751 into oc-dev

* changes:
  Fixed a bug where the media notification image was wrong
  Improved the gradient drawing of the media notification
parents 67b62f2d b49a070d
No related merge requests found
......@@ -34,7 +34,7 @@ import android.graphics.drawable.Drawable;
* A utility class to colorize bitmaps with a color gradient and a special blending mode
*/
public class ImageGradientColorizer {
public Bitmap colorize(Drawable drawable, int backgroundColor) {
public Bitmap colorize(Drawable drawable, int backgroundColor, boolean isRtl) {
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
int size = Math.min(width, height);
......@@ -70,8 +70,6 @@ public class ImageGradientColorizer {
0, 0, 0, 1, 0,
});
drawable.setColorFilter(new ColorMatrixColorFilter(m));
drawable.draw(canvas);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
LinearGradient linearGradient = new LinearGradient(0, 0, size, 0,
new int[] {0, Color.argb(0.5f, 1, 1, 1), Color.BLACK},
......@@ -81,16 +79,27 @@ public class ImageGradientColorizer {
Canvas fadeInCanvas = new Canvas(fadeIn);
drawable.clearColorFilter();
drawable.draw(fadeInCanvas);
if (isRtl) {
// Let's flip the gradient
fadeInCanvas.translate(size, 0);
fadeInCanvas.scale(-1, 1);
}
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
fadeInCanvas.drawPaint(paint);
canvas.drawBitmap(fadeIn, 0, 0, null);
linearGradient = new LinearGradient(0, 0, size, 0,
new int[] {backgroundColor, Color.argb(0.5f, tr, tg, tb), 0},
Paint coloredPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
coloredPaint.setColorFilter(new ColorMatrixColorFilter(m));
coloredPaint.setAlpha((int) (0.5f * 255));
canvas.drawBitmap(fadeIn, 0, 0, coloredPaint);
linearGradient = new LinearGradient(0, 0, size, 0,
new int[] {0, Color.argb(0.5f, 1, 1, 1), Color.BLACK},
new float[] {0.0f, 0.6f, 1.0f}, Shader.TileMode.CLAMP);
paint.setShader(linearGradient);
paint.setXfermode(null);
canvas.drawPaint(paint);
fadeInCanvas.drawPaint(paint);
canvas.drawBitmap(fadeIn, 0, 0, null);
return newBitmap;
}
}
......@@ -25,6 +25,7 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.support.v4.graphics.ColorUtils;
import android.support.v7.graphics.Palette;
import android.util.LayoutDirection;
import com.android.systemui.R;
......@@ -187,7 +188,9 @@ public class MediaNotificationProcessor {
: R.color.notification_material_background_color;
backgroundColor = mContext.getColor(id);
}
Bitmap colorized = mColorizer.colorize(drawable, backgroundColor);
Bitmap colorized = mColorizer.colorize(drawable, backgroundColor,
mContext.getResources().getConfiguration().getLayoutDirection() ==
LayoutDirection.RTL);
builder.setLargeIcon(Icon.createWithBitmap(colorized));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment