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