OSDN Git Service

Fix bug #11537133 Hideycling looks broken (KOT36), missing left padding
authorFabrice Di Meglio <fdimeglio@google.com>
Wed, 6 Nov 2013 23:32:01 +0000 (15:32 -0800)
committerFabrice Di Meglio <fdimeglio@google.com>
Wed, 6 Nov 2013 23:32:01 +0000 (15:32 -0800)
- 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
graphics/java/android/graphics/drawable/NinePatchDrawable.java

index 60e2376..d31f220 100644 (file)
@@ -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);
index ab34c0f..9c57a2c 100644 (file)
@@ -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;
     }
 
     /**