summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJian Jin <jinjian@google.com>2021-07-22 17:37:03 -0700
committerJian Jin <jinjian@google.com>2021-07-26 12:39:52 -0700
commit0c12de2405c17f456507d06609941ef6ca6ee0f1 (patch)
tree5d83c3e1974d0dd1c31ac56e502a9b1c9e63f16f
parent61436bbeb221876ac7ed81160de82f51c39a02bc (diff)
downloadsetupwizard-0c12de2405c17f456507d06609941ef6ca6ee0f1.tar.gz
Fix mirrored vertical bar in split-nav in RTL
Fixes: 193742213 Test: CarSetupWizardRoboTests Change-Id: I548b1c7380bc2837d5b0952facfcf7fe6e66f94d
-rw-r--r--library/main/res/layout-land/rotary_split_nav_layout.xml1
-rw-r--r--library/main/res/layout-land/split_nav_layout.xml1
-rw-r--r--library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java23
-rw-r--r--library/main/tests/robotests/src/com/android/car/setupwizardlib/SplitNavLayoutTest.java29
4 files changed, 53 insertions, 1 deletions
diff --git a/library/main/res/layout-land/rotary_split_nav_layout.xml b/library/main/res/layout-land/rotary_split_nav_layout.xml
index f1cb29b..b69c5b2 100644
--- a/library/main/res/layout-land/rotary_split_nav_layout.xml
+++ b/library/main/res/layout-land/rotary_split_nav_layout.xml
@@ -49,6 +49,7 @@
</com.android.car.ui.FocusArea>
<LinearLayout
+ android:id="@+id/content_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
diff --git a/library/main/res/layout-land/split_nav_layout.xml b/library/main/res/layout-land/split_nav_layout.xml
index fadc6f3..16a017f 100644
--- a/library/main/res/layout-land/split_nav_layout.xml
+++ b/library/main/res/layout-land/split_nav_layout.xml
@@ -42,6 +42,7 @@
</FrameLayout>
<LinearLayout
+ android:id="@+id/content_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
diff --git a/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java b/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java
index a404516..36af464 100644
--- a/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java
+++ b/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java
@@ -284,6 +284,19 @@ class CarSetupWizardBaseLayout extends LinearLayout implements CarSetupWizardLay
if (isSplitNavLayoutUsed() && getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE) {
setOrientation(LinearLayout.HORIZONTAL);
+ // The vertical bar will not be mirrored in RTL
+ setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
+
+ View contentContainer = getContentContainer();
+ if (contentContainer != null) {
+ // The content should be mirrored in RTL
+ contentContainer.setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
+ }
+ View actionBar = findViewById(R.id.button_container);
+ if (actionBar != null) {
+ // The action bar will not be mirrored in RTL
+ actionBar.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
+ }
} else {
setOrientation(LinearLayout.VERTICAL);
}
@@ -958,4 +971,14 @@ class CarSetupWizardBaseLayout extends LinearLayout implements CarSetupWizardLay
filler.setLayoutParams(fillerParams);
}
}
+
+ private View getContentContainer() {
+ View contentContainer = findViewById(R.id.content_container);
+ if (contentContainer == null) {
+ // Try ultra-wide container
+ return findViewById(R.id.ultra_wide_content_container);
+
+ }
+ return contentContainer;
+ }
}
diff --git a/library/main/tests/robotests/src/com/android/car/setupwizardlib/SplitNavLayoutTest.java b/library/main/tests/robotests/src/com/android/car/setupwizardlib/SplitNavLayoutTest.java
index c2e8646..34f5a46 100644
--- a/library/main/tests/robotests/src/com/android/car/setupwizardlib/SplitNavLayoutTest.java
+++ b/library/main/tests/robotests/src/com/android/car/setupwizardlib/SplitNavLayoutTest.java
@@ -71,7 +71,6 @@ public class SplitNavLayoutTest extends BaseRobolectricTest {
Activity activity = Robolectric.buildActivity(CarSetupWizardLayoutTestActivity.class)
.create()
.get();
-
View contentContainer = activity.findViewById(R.id.ultra_wide_content_container);
ViewGroup.LayoutParams layoutParams = contentContainer.getLayoutParams();
assertThat(layoutParams.width).isEqualTo(PARTNER_CONTENT_WIDTH);
@@ -89,6 +88,34 @@ public class SplitNavLayoutTest extends BaseRobolectricTest {
assertThat(layoutParams.width).isEqualTo(0);
}
+ @Test
+ @Config(qualifiers = "iw-w1250dp-land")
+ public void test_layoutDirectionIsLtr_inRtrLocale() {
+ Activity activity = Robolectric.buildActivity(CarSetupWizardLayoutTestActivity.class)
+ .create()
+ .get();
+
+ View layout = activity.findViewById(R.id.car_setup_wizard_layout);
+ assertThat(layout.getLayoutDirection()).isEqualTo(View.LAYOUT_DIRECTION_LTR);
+
+ View buttonContainer = activity.findViewById(R.id.button_container);
+ assertThat(buttonContainer.getLayoutDirection()).isEqualTo(View.LAYOUT_DIRECTION_LTR);
+ }
+
+ @Test
+ @Config(qualifiers = "iw-w1760dp-land")
+ public void test_layoutDirectionIsLtrInUltraWide_isRtrLocale() {
+ Activity activity = Robolectric.buildActivity(CarSetupWizardLayoutTestActivity.class)
+ .create()
+ .get();
+
+ View layout = activity.findViewById(R.id.car_setup_wizard_layout);
+ assertThat(layout.getLayoutDirection()).isEqualTo(View.LAYOUT_DIRECTION_LTR);
+
+ View buttonContainer = activity.findViewById(R.id.button_container);
+ assertThat(buttonContainer.getLayoutDirection()).isEqualTo(View.LAYOUT_DIRECTION_LTR);
+ }
+
private List<ResourceEntry> prepareCustomContentWidth() {
ExternalResources.Resources testResources =
ExternalResources.injectExternalResources(TEST_PACKAGE_NAME);