Fix bug #6427629 Clean up layout direction APIs
- rename getResolvedLayoutDirection() to getLayoutDirection()
Change-Id: I3afe56c0db0751952f5056c23893cb7455531d29
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d3542e3..1e6166a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -3926,7 +3926,7 @@
}
// Apply layout direction to the new Drawables if needed
- final int layoutDirection = getResolvedLayoutDirection();
+ final int layoutDirection = getLayoutDirection();
if (track != null) {
track.setLayoutDirection(layoutDirection);
}
@@ -5778,7 +5778,7 @@
@ViewDebug.IntToString(from = LAYOUT_DIRECTION_INHERIT, to = "INHERIT"),
@ViewDebug.IntToString(from = LAYOUT_DIRECTION_LOCALE, to = "LOCALE")
})
- public int getLayoutDirection() {
+ private int getRawLayoutDirection() {
return (mPrivateFlags2 & PFLAG2_LAYOUT_DIRECTION_MASK) >> PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT;
}
@@ -5795,7 +5795,7 @@
*/
@RemotableViewMethod
public void setLayoutDirection(int layoutDirection) {
- if (getLayoutDirection() != layoutDirection) {
+ if (getRawLayoutDirection() != layoutDirection) {
// Reset the current layout direction and the resolved one
mPrivateFlags2 &= ~PFLAG2_LAYOUT_DIRECTION_MASK;
resetRtlProperties();
@@ -5820,7 +5820,7 @@
@ViewDebug.IntToString(from = LAYOUT_DIRECTION_LTR, to = "RESOLVED_DIRECTION_LTR"),
@ViewDebug.IntToString(from = LAYOUT_DIRECTION_RTL, to = "RESOLVED_DIRECTION_RTL")
})
- public int getResolvedLayoutDirection() {
+ public int getLayoutDirection() {
final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion;
if (targetSdkVersion < JELLY_BEAN_MR1) {
mPrivateFlags2 |= PFLAG2_LAYOUT_DIRECTION_RESOLVED;
@@ -5842,7 +5842,7 @@
*/
@ViewDebug.ExportedProperty(category = "layout")
public boolean isLayoutRtl() {
- return (getResolvedLayoutDirection() == LAYOUT_DIRECTION_RTL);
+ return (getLayoutDirection() == LAYOUT_DIRECTION_RTL);
}
/**
@@ -9935,7 +9935,7 @@
*/
private void resolveLayoutParams() {
if (mLayoutParams != null) {
- mLayoutParams.onResolveLayoutDirection(getResolvedLayoutDirection());
+ mLayoutParams.onResolveLayoutDirection(getLayoutDirection());
}
}
@@ -11560,7 +11560,8 @@
if (hasRtlSupport()) {
// Set resolved depending on layout direction
- switch (getLayoutDirection()) {
+ switch ((mPrivateFlags2 & PFLAG2_LAYOUT_DIRECTION_MASK) >>
+ PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT) {
case LAYOUT_DIRECTION_INHERIT:
// We cannot resolve yet. LTR is by default and let the resolution happen again
// later to get the correct resolved value
@@ -11572,7 +11573,7 @@
// resolution happen again later
if (!viewGroup.canResolveLayoutDirection()) return;
- if (viewGroup.getResolvedLayoutDirection() == LAYOUT_DIRECTION_RTL) {
+ if (viewGroup.getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
mPrivateFlags2 |= PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL;
}
break;
@@ -11602,7 +11603,8 @@
* @hide
*/
public boolean canResolveLayoutDirection() {
- switch (getLayoutDirection()) {
+ switch ((mPrivateFlags2 & PFLAG2_LAYOUT_DIRECTION_MASK) >>
+ PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT) {
case LAYOUT_DIRECTION_INHERIT:
return (mParent != null) && (mParent instanceof ViewGroup);
default:
@@ -11621,6 +11623,13 @@
}
/**
+ * @hide
+ */
+ public boolean isLayoutDirectionInherited() {
+ return (getRawLayoutDirection() == LAYOUT_DIRECTION_INHERIT);
+ }
+
+ /**
* Return if padding has been resolved
*
* @hide
@@ -11659,7 +11668,7 @@
// If start / end padding are defined, they will be resolved (hence overriding) to
// left / right or right / left depending on the resolved layout direction.
// If start / end padding are not defined, use the left / right ones.
- int resolvedLayoutDirection = getResolvedLayoutDirection();
+ int resolvedLayoutDirection = getLayoutDirection();
// Set user padding to initial values ...
mUserPaddingLeft = (mUserPaddingLeftInitial == UNDEFINED_PADDING) ?
0 : mUserPaddingLeftInitial;
@@ -14101,9 +14110,9 @@
*/
public void resolveDrawables() {
if (mBackground != null) {
- mBackground.setLayoutDirection(getResolvedLayoutDirection());
+ mBackground.setLayoutDirection(getLayoutDirection());
}
- onResolveDrawables(getResolvedLayoutDirection());
+ onResolveDrawables(getLayoutDirection());
}
/**
@@ -14390,7 +14399,7 @@
padding = new Rect();
sThreadLocal.set(padding);
}
- background.setLayoutDirection(getResolvedLayoutDirection());
+ background.setLayoutDirection(getLayoutDirection());
if (background.getPadding(padding)) {
resetResolvedPadding();
switch (background.getLayoutDirection()) {
@@ -14587,7 +14596,7 @@
mUserPaddingStart = start;
mUserPaddingEnd = end;
- switch(getResolvedLayoutDirection()) {
+ switch(getLayoutDirection()) {
case LAYOUT_DIRECTION_RTL:
mUserPaddingLeftInitial = end;
mUserPaddingRightInitial = start;
@@ -14646,7 +14655,7 @@
if (!isPaddingResolved()) {
resolvePadding();
}
- return (getResolvedLayoutDirection() == LAYOUT_DIRECTION_RTL) ?
+ return (getLayoutDirection() == LAYOUT_DIRECTION_RTL) ?
mPaddingRight : mPaddingLeft;
}
@@ -14675,7 +14684,7 @@
if (!isPaddingResolved()) {
resolvePadding();
}
- return (getResolvedLayoutDirection() == LAYOUT_DIRECTION_RTL) ?
+ return (getLayoutDirection() == LAYOUT_DIRECTION_RTL) ?
mPaddingLeft : mPaddingRight;
}