diff --git a/library/gingerbread/res/values/styles.xml b/library/gingerbread/res/values/styles.xml index 1ea468d..7ccbfe0 100644 --- a/library/gingerbread/res/values/styles.xml +++ b/library/gingerbread/res/values/styles.xml @@ -37,6 +37,7 @@ ?attr/suwMarginSides @drawable/suw_card_bg_dark @style/SuwItemContainer.Description + @style/SuwItemTitle @color/suw_list_item_icon_color_dark @dimen/suw_layout_margin_sides @style/SuwNavBarThemeDark @@ -61,6 +62,7 @@ ?attr/suwMarginSides @drawable/suw_card_bg_light @style/SuwItemContainer.Description + @style/SuwItemTitle @color/suw_list_item_icon_color_light @dimen/suw_layout_margin_sides @style/SuwNavBarThemeLight @@ -90,6 +92,7 @@ @dimen/suw_items_glif_icon_divider_inset start @style/SuwItemContainer.Description.Glif + @style/SuwItemTitle.GlifDescription @color/suw_list_item_icon_color_dark @dimen/suw_glif_margin_sides bottom @@ -120,6 +123,7 @@ @dimen/suw_items_glif_icon_divider_inset start @style/SuwItemContainer.Description.Glif + @style/SuwItemTitle.GlifDescription @color/suw_list_item_icon_color_light @dimen/suw_glif_margin_sides bottom diff --git a/library/main/res/layout/suw_items_description.xml b/library/main/res/layout/suw_items_description.xml index 26a604b..e27d7b8 100644 --- a/library/main/res/layout/suw_items_description.xml +++ b/library/main/res/layout/suw_items_description.xml @@ -48,7 +48,7 @@ + diff --git a/library/main/res/values/styles.xml b/library/main/res/values/styles.xml index 6a9b9a8..b5a7e88 100644 --- a/library/main/res/values/styles.xml +++ b/library/main/res/values/styles.xml @@ -211,7 +211,7 @@ @dimen/suw_items_verbose_padding_vertical - diff --git a/library/platform/res/values-v23/styles.xml b/library/platform/res/values-v23/styles.xml index 59265d9..39b3578 100644 --- a/library/platform/res/values-v23/styles.xml +++ b/library/platform/res/values-v23/styles.xml @@ -42,6 +42,7 @@ @drawable/suw_card_bg @style/SuwItemContainer.Description + @style/SuwItemTitle @color/suw_list_item_icon_color_dark @dimen/suw_layout_margin_sides @style/SuwNavBarThemeDark @@ -65,6 +66,7 @@ @drawable/suw_card_bg @style/SuwItemContainer.Description + @style/SuwItemTitle @color/suw_list_item_icon_color_light @dimen/suw_layout_margin_sides @style/SuwNavBarThemeLight @@ -93,6 +95,7 @@ @dimen/suw_items_glif_icon_divider_inset start @style/SuwItemContainer.Description.Glif + @style/SuwItemTitle.GlifDescription @color/suw_list_item_icon_color_dark @dimen/suw_glif_margin_sides bottom @@ -120,6 +123,7 @@ @dimen/suw_items_glif_icon_divider_inset start @style/SuwItemContainer.Description.Glif + @style/SuwItemTitle.GlifDescription @color/suw_list_item_icon_color_light @dimen/suw_glif_margin_sides bottom diff --git a/library/test/instrumentation/src/com/android/setupwizardlib/test/ItemLayoutTest.java b/library/test/instrumentation/src/com/android/setupwizardlib/test/ItemLayoutTest.java new file mode 100644 index 0000000..85876b4 --- /dev/null +++ b/library/test/instrumentation/src/com/android/setupwizardlib/test/ItemLayoutTest.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2017 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. + */ + +package com.android.setupwizardlib.test; + +import static android.support.test.InstrumentationRegistry.getTargetContext; + +import static org.junit.Assert.assertNotNull; + +import android.content.Context; +import android.support.test.filters.SmallTest; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; +import android.widget.FrameLayout; + +import com.android.setupwizardlib.R; +import com.android.setupwizardlib.items.Item; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.ArrayList; +import java.util.List; + +/** + * Sanity test for all the item layouts to make sure they won't crash when being inflated in + * different themes. + */ +@RunWith(Parameterized.class) +@SmallTest +public class ItemLayoutTest { + + @Parameters + public static Iterable data() { + int[] themes = new int[] { + R.style.SuwThemeMaterial_Light, + R.style.SuwThemeMaterial, + R.style.SuwThemeGlif_Light, + R.style.SuwThemeGlif, + R.style.SuwThemeGlifV2_Light, + R.style.SuwThemeGlifV2 + }; + int[] layouts = new int[] { + R.layout.suw_items_default, + R.layout.suw_items_verbose, + R.layout.suw_items_description + }; + + // Test all the possible combinations of themes and layouts. + List params = new ArrayList<>(); + for (int theme : themes) { + for (int layout : layouts) { + params.add(new Object[] { theme, layout }); + } + } + return params; + } + + private final Context mContext; + private final FrameLayout mParent; + private final Item mItem; + + public ItemLayoutTest(int theme, int layout) { + mContext = new ContextThemeWrapper(getTargetContext(), theme); + mParent = new FrameLayout(mContext); + mItem = new Item(); + mItem.setLayoutResource(layout); + } + + @Test + public void testInflateLayoutHasBasicViews() { + LayoutInflater.from(mContext).inflate(mItem.getLayoutResource(), mParent, true); + mItem.onBindView(mParent); + + assertNotNull("Title should exist", mParent.findViewById(R.id.suw_items_title)); + assertNotNull("Summary should exist", mParent.findViewById(R.id.suw_items_summary)); + assertNotNull("Icon should exist", mParent.findViewById(R.id.suw_items_icon)); + } +}