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;
     }