Merge "leanback: fix broken VerticalGridView RTL layout"
diff --git a/leanback/src/androidTest/java/android/support/v17/leanback/widget/GridWidgetTest.java b/leanback/src/androidTest/java/android/support/v17/leanback/widget/GridWidgetTest.java
index 0ca1562..71e2e6f 100644
--- a/leanback/src/androidTest/java/android/support/v17/leanback/widget/GridWidgetTest.java
+++ b/leanback/src/androidTest/java/android/support/v17/leanback/widget/GridWidgetTest.java
@@ -2710,7 +2710,7 @@
         intent.putExtra(GridActivity.EXTRA_NUM_ITEMS, numItems);
         intent.putExtra(GridActivity.EXTRA_STAGGERED, false);
         mOrientation = BaseGridView.VERTICAL;
-        mNumRows = 1;
+        mNumRows = 2;
         initActivity(intent);
 
         mActivityTestRule.runOnUiThread(new Runnable() {
@@ -2728,6 +2728,26 @@
     }
 
     @Test
+    public void testVerticalGridRtl() throws Throwable {
+        final int numItems = 200;
+
+        Intent intent = new Intent();
+        intent.putExtra(GridActivity.EXTRA_LAYOUT_RESOURCE_ID, R.layout.vertical_grid_rtl);
+        intent.putExtra(GridActivity.EXTRA_NUM_ITEMS, numItems);
+        intent.putExtra(GridActivity.EXTRA_STAGGERED, false);
+        mOrientation = BaseGridView.VERTICAL;
+        mNumRows = 2;
+        initActivity(intent);
+
+        waitForScrollIdle(mVerifyLayout);
+
+        View item0 = mGridView.findViewHolderForAdapterPosition(0).itemView;
+        View item1 = mGridView.findViewHolderForAdapterPosition(1).itemView;
+        assertEquals(mGridView.getWidth() - mGridView.getPaddingRight(), item0.getRight());
+        assertEquals(item0.getLeft(), item1.getRight() + mGridView.getHorizontalSpacing());
+    }
+
+    @Test
     public void testRtlFocusOutStartDisabled() throws Throwable {
         final int numItems = 200;
 
diff --git a/leanback/src/androidTest/res/layout/vertical_grid_rtl.xml b/leanback/src/androidTest/res/layout/vertical_grid_rtl.xml
index b9a53e8..7f00ab1 100644
--- a/leanback/src/androidTest/res/layout/vertical_grid_rtl.xml
+++ b/leanback/src/androidTest/res/layout/vertical_grid_rtl.xml
@@ -22,8 +22,8 @@
       android:background="#00ffff"
       android:horizontalSpacing="12dip"
       android:verticalSpacing="24dip"
-      lb:numberOfColumns="1"
-      lb:columnWidth="150dip"
+      lb:numberOfColumns="2"
+      lb:columnWidth="wrap_content"
       lb:focusOutSideStart="false"
       lb:focusOutSideEnd="true"
       android:paddingBottom="12dip"
diff --git a/leanback/src/main/java/android/support/v17/leanback/widget/GridLayoutManager.java b/leanback/src/main/java/android/support/v17/leanback/widget/GridLayoutManager.java
index d360d15..ac26494 100644
--- a/leanback/src/main/java/android/support/v17/leanback/widget/GridLayoutManager.java
+++ b/leanback/src/main/java/android/support/v17/leanback/widget/GridLayoutManager.java
@@ -1251,7 +1251,7 @@
         int start = 0;
         // Iterate from left to right, which is a different index traversal
         // in RTL flow
-        if ((mFlag & PF_REVERSE_FLOW_PRIMARY) != 0) {
+        if ((mFlag & PF_REVERSE_FLOW_SECONDARY) != 0) {
             for (int i = mNumRows-1; i > rowIndex; i--) {
                 start += getRowSizeSecondary(i) + mSpacingSecondary;
             }