Modify the default SwitchItem as non-verbose Style

For consistency the default SwitchItem should be the non-verbose, and create a new layout xml for verbose.

Bug: 79539019
Test: ./gradlew test
Change-Id: Icb617f4a317cfeeccf73f6de452115f07c6981d7
This commit is contained in:
Nicole Huang 2018-05-18 16:03:54 +08:00
parent 2c20d03bbd
commit 02da3fd71e
3 changed files with 103 additions and 8 deletions

View file

@ -17,17 +17,17 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/SuwItemContainer.Verbose"
style="@style/SuwItemContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:baselineAligned="false"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/suw_items_icon_container"
android:layout_width="@dimen/suw_items_icon_container_width"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_gravity="center_vertical"
android:gravity="start">
<ImageView
@ -41,13 +41,13 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/suw_items_verbose_padding_bottom_extra"
android:layout_marginBottom="@dimen/suw_items_padding_bottom_extra"
android:layout_weight="1"
android:orientation="vertical">
<com.android.setupwizardlib.view.RichTextView
android:id="@+id/suw_items_title"
style="@style/SuwItemTitle.Verbose"
style="@style/SuwItemTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/SuwItemContainer.Verbose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:clipToPadding="false"
android:orientation="horizontal"
tools:ignore="UnusedResources">
<!-- Ignore UnusedResources: can be used by clients -->
<FrameLayout
android:id="@+id/suw_items_icon_container"
android:layout_width="@dimen/suw_items_icon_container_width"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="start">
<ImageView
android:id="@+id/suw_items_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/suw_items_verbose_padding_bottom_extra"
android:layout_weight="1"
android:orientation="vertical">
<com.android.setupwizardlib.view.RichTextView
android:id="@+id/suw_items_title"
style="@style/SuwItemTitle.Verbose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:labelFor="@+id/suw_items_switch"
android:textAlignment="viewStart"
tools:ignore="UnusedAttribute" />
<com.android.setupwizardlib.view.RichTextView
android:id="@+id/suw_items_summary"
style="@style/SuwItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:textAlignment="viewStart"
android:visibility="gone"
tools:ignore="UnusedAttribute" />
</LinearLayout>
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/suw_items_switch"
style="@style/SuwSwitchStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical" />
</LinearLayout>

View file

@ -31,6 +31,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.widget.SwitchCompat;
@ -41,6 +42,7 @@ import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SuwLibRobolectricTestRunner.class)
@ -50,11 +52,24 @@ public class SwitchItemTest {
private SwitchCompat mSwitch;
@Test
public void testLayout() {
public void defaultLayout_baselineAligned_shouldBeFalse() {
Assume.assumeTrue(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP);
SwitchItem item = new SwitchItem();
LayoutInflater inflater = LayoutInflater.from(application);
ViewGroup layout = (ViewGroup) inflater.inflate(item.getDefaultLayoutResource(), null);
SwitchItem item = new SwitchItem();
LinearLayout layout = (LinearLayout) inflater.inflate(item.getDefaultLayoutResource(),
null);
assertThat(layout.isBaselineAligned()).isFalse();
}
@Test
public void verboseLayout_clipPadding_shouldBeFalse() {
Assume.assumeTrue(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP);
LayoutInflater inflater = LayoutInflater.from(application);
SwitchItem item = new SwitchItem(application,
Robolectric.buildAttributeSet()
.addAttribute(android.R.attr.layout, "@layout/suw_items_switch_verbose")
.build());
ViewGroup layout = (ViewGroup) inflater.inflate(item.getLayoutResource(), null);
assertThat(layout.getClipToPadding()).isFalse();
}