From f7a93ef3847258157d144dfefaa5757128cc807d Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 6 Nov 2013 15:32:01 -0800 Subject: [PATCH] Fix bug #11537133 Hideycling looks broken (KOT36), missing left padding - enforce the Drawable boolean getPadding(Rect) contract for NinePatchDrawable and DrawableContainer. - as NinePatchDrawable was not enforcing it, the consequence was that the mUserPaddingLeftInitial / mUserPaddingRitghInitial were reset to "0" (even if they got the correct value before the reset). Change-Id: I1efe7fad5f89c0ca47f90189f6d89940e0e9c6ae --- graphics/java/android/graphics/drawable/DrawableContainer.java | 3 ++- graphics/java/android/graphics/drawable/NinePatchDrawable.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 60e2376df0fc3..d31f2205d2a7d 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -88,9 +88,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { @Override public boolean getPadding(Rect padding) { final Rect r = mDrawableContainerState.getConstantPadding(); - boolean result = true; + boolean result; if (r != null) { padding.set(r); + result = (r.left | r.top | r.bottom | r.right) != 0; } else { if (mCurrDrawable != null) { result = mCurrDrawable.getPadding(padding); diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java index ab34c0fd5649a..9c57a2cec25c3 100644 --- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java +++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java @@ -244,7 +244,7 @@ public class NinePatchDrawable extends Drawable { } else { padding.set(mPadding); } - return true; + return (padding.left | padding.top | padding.right | padding.bottom) != 0; } /**