summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2013-11-13 18:54:33 -0800
committerAdam Powell <adamp@google.com>2013-11-13 19:21:50 -0800
commit48d2bcf2ce2305356c5a4f0dfbb928dc5a4c8331 (patch)
tree5885364c6955d769b43993b9d3b69ee4e0255107 /core/java/android
parent39af5a78c073d01539625a9fbbb8511747e2f048 (diff)
Reset padding flags when set programmatically or implicitly from background
Bug 11673480 Change-Id: I4f33c7ae46e937302e625bf1f3260adb25843645
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/View.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 99d5bbf747a3..06f8e8c3607a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -3541,6 +3541,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
boolean startPaddingDefined = false;
boolean endPaddingDefined = false;
+ boolean leftPaddingDefined = false;
+ boolean rightPaddingDefined = false;
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
@@ -3555,13 +3557,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
padding = a.getDimensionPixelSize(attr, -1);
mUserPaddingLeftInitial = padding;
mUserPaddingRightInitial = padding;
- mLeftPaddingDefined = true;
- mRightPaddingDefined = true;
+ leftPaddingDefined = true;
+ rightPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingLeft:
leftPadding = a.getDimensionPixelSize(attr, -1);
mUserPaddingLeftInitial = leftPadding;
- mLeftPaddingDefined = true;
+ leftPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingTop:
topPadding = a.getDimensionPixelSize(attr, -1);
@@ -3569,7 +3571,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
case com.android.internal.R.styleable.View_paddingRight:
rightPadding = a.getDimensionPixelSize(attr, -1);
mUserPaddingRightInitial = rightPadding;
- mRightPaddingDefined = true;
+ rightPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingBottom:
bottomPadding = a.getDimensionPixelSize(attr, -1);
@@ -3872,6 +3874,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
setBackground(background);
}
+ // setBackground above will record that padding is currently provided by the background.
+ // If we have padding specified via xml, record that here instead and use it.
+ mLeftPaddingDefined = leftPaddingDefined;
+ mRightPaddingDefined = rightPaddingDefined;
+
if (padding >= 0) {
leftPadding = padding;
topPadding = padding;
@@ -15361,6 +15368,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mUserPaddingRightInitial = padding.right;
internalSetPadding(padding.left, padding.top, padding.right, padding.bottom);
}
+ mLeftPaddingDefined = false;
+ mRightPaddingDefined = false;
}
// Compare the minimum sizes of the old Drawable and the new. If there isn't an old or
@@ -15457,6 +15466,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mUserPaddingLeftInitial = left;
mUserPaddingRightInitial = right;
+ mLeftPaddingDefined = true;
+ mRightPaddingDefined = true;
+
internalSetPadding(left, top, right, bottom);
}
@@ -15542,6 +15554,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mUserPaddingStart = start;
mUserPaddingEnd = end;
+ mLeftPaddingDefined = true;
+ mRightPaddingDefined = true;
switch(getLayoutDirection()) {
case LAYOUT_DIRECTION_RTL: