From a7b64e8eefec1a200701443622debf1032291bdd Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Mon, 13 Oct 2014 16:47:57 -0700 Subject: Avoid saveLayer in RippleDrawable if the background won't draw BUG: 17952941 Change-Id: Ic2640f847e2ed43fc5117d43230513ee7696d9e7 --- graphics/java/android/graphics/drawable/RippleDrawable.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'graphics') diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index f14ccd4..aee75a0 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -719,10 +719,12 @@ public class RippleDrawable extends LayerDrawable { final ChildDrawable[] array = mLayerState.mChildren; final int count = mLayerState.mNum; - // We don't need a layer if we don't expect to draw any ripples, we have - // an explicit mask, or if the non-mask content is all opaque. + // We don't need a layer if we don't expect to draw any ripples or + // a background, we have an explicit mask, or if the non-mask content + // is all opaque. boolean needsLayer = false; - if ((mExitingRipplesCount > 0 || mBackground != null) && mMask == null) { + if ((mExitingRipplesCount > 0 || (mBackground != null && mBackground.shouldDraw())) + && mMask == null) { for (int i = 0; i < count; i++) { if (array[i].mId != R.id.mask && array[i].mDrawable.getOpacity() != PixelFormat.OPAQUE) { -- cgit v1.1