diff options
author | Maurice Lam <yukl@google.com> | 2018-01-11 18:43:23 -0800 |
---|---|---|
committer | Maurice Lam <yukl@google.com> | 2018-01-11 18:49:53 -0800 |
commit | 78bc2e0c900935ed00e111a0c4b93b50d883e2b9 (patch) | |
tree | 8c384ced17e9138c60dfd5d3ae662fa71cf1fd03 | |
parent | cd62078b7cc0eb272104769e48156e66463a95a2 (diff) | |
download | setupwizard-78bc2e0c900935ed00e111a0c4b93b50d883e2b9.tar.gz |
Implement GLIF v3 button style
Buttons are now sentence case and uses Google sans font if available.
Test: ./gradlew test
Bug: 71759812
Change-Id: Ibb42b58306163f387837600ca52e73065c2b0d9d
-rw-r--r-- | library/gingerbread/res/values/styles.xml | 18 | ||||
-rw-r--r-- | library/main/res/values/attrs.xml | 2 | ||||
-rw-r--r-- | library/main/res/values/config.xml | 3 | ||||
-rw-r--r-- | library/main/res/values/styles.xml | 4 | ||||
-rw-r--r-- | library/platform/res/values-v27/styles.xml | 18 | ||||
-rw-r--r-- | library/self.gradle | 1 | ||||
-rw-r--r-- | library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java | 17 |
7 files changed, 62 insertions, 1 deletions
diff --git a/library/gingerbread/res/values/styles.xml b/library/gingerbread/res/values/styles.xml index 60a39a0..7a01fe7 100644 --- a/library/gingerbread/res/values/styles.xml +++ b/library/gingerbread/res/values/styles.xml @@ -39,6 +39,8 @@ <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item> <item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwCardBackground">@drawable/suw_card_bg_dark</item> <item name="suwDividerInsetEnd">0dp</item> <item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item> @@ -71,6 +73,8 @@ <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item> <item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwCardBackground">@drawable/suw_card_bg_light</item> <item name="suwDividerInsetEnd">0dp</item> <item name="suwDividerInsetStart">@dimen/suw_items_icon_divider_inset</item> @@ -103,6 +107,8 @@ <item name="colorPrimary">@color/suw_color_accent_glif_dark</item> <item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item> <item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwColorPrimary">?attr/colorPrimary</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -139,6 +145,8 @@ <item name="colorPrimary">@color/suw_color_accent_glif_light</item> <item name="listPreferredItemPaddingLeft">?attr/suwMarginSides</item> <item name="listPreferredItemPaddingRight">?attr/suwMarginSides</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwColorPrimary">?attr/colorPrimary</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -157,10 +165,14 @@ <style name="SuwThemeGlifV3" parent="SuwThemeGlifV2"> <item name="colorAccent">@color/suw_color_accent_glif_v3</item> + <item name="suwButtonAllCaps">false</item> + <item name="suwButtonFontFamily">@string/suwFontSecondary</item> </style> <style name="SuwBaseThemeGlifV3.Light" parent="SuwThemeGlifV2.Light"> <item name="colorAccent">@color/suw_color_accent_glif_v3</item> + <item name="suwButtonAllCaps">false</item> + <item name="suwButtonFontFamily">@string/suwFontSecondary</item> </style> <style name="SuwThemeGlifV3.Light" parent="SuwBaseThemeGlifV3.Light" /> @@ -214,8 +226,11 @@ <item name="buttonStyle">@style/SuwGlifButton.Primary</item> <!-- Values used in styles --> + <item name="android:fontFamily" tools:targetApi="jelly_bean">?attr/suwButtonFontFamily</item> <item name="android:paddingLeft">@dimen/suw_glif_button_padding</item> <item name="android:paddingRight">@dimen/suw_glif_button_padding</item> + <item name="android:textAllCaps" tools:targetApi="ice_cream_sandwich">?attr/suwButtonAllCaps</item> + <item name="textAllCaps">?attr/suwButtonAllCaps</item> </style> <style name="SuwGlifButton.Secondary" parent="Widget.AppCompat.Button.Borderless.Colored"> @@ -227,9 +242,12 @@ <item name="buttonStyle">@style/SuwGlifButton.Secondary</item> <!-- Values used in styles --> + <item name="android:fontFamily" tools:targetApi="jelly_bean">?attr/suwButtonFontFamily</item> <item name="android:minWidth">0dp</item> <item name="android:paddingLeft">@dimen/suw_glif_button_padding</item> <item name="android:paddingRight">@dimen/suw_glif_button_padding</item> + <item name="android:textAllCaps" tools:targetApi="ice_cream_sandwich">?attr/suwButtonAllCaps</item> + <item name="textAllCaps">?attr/suwButtonAllCaps</item> <!-- Values used in themes --> <item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/suw_flat_button_highlight</item> diff --git a/library/main/res/values/attrs.xml b/library/main/res/values/attrs.xml index 93e4da6..7a7580d 100644 --- a/library/main/res/values/attrs.xml +++ b/library/main/res/values/attrs.xml @@ -40,6 +40,8 @@ </attr> <attr name="suwGlifIconStyle" format="reference" /> + <attr name="suwButtonAllCaps" format="boolean" /> + <attr name="suwButtonFontFamily" format="string|reference" /> <attr name="suwCardBackground" format="color|reference" /> <attr name="suwDividerCondition"> <enum name="either" value="0" /> diff --git a/library/main/res/values/config.xml b/library/main/res/values/config.xml index a81b177..7fe5f9f 100644 --- a/library/main/res/values/config.xml +++ b/library/main/res/values/config.xml @@ -27,4 +27,7 @@ ButtonBarLayout --> <item name="suw_original_weight" type="id" /> + <!-- Secondary font for use with headings, title, and other non-body text --> + <string name="suwFontSecondary" translatable="false">google-sans</string> + </resources> diff --git a/library/main/res/values/styles.xml b/library/main/res/values/styles.xml index 89cbb63..dbd5358 100644 --- a/library/main/res/values/styles.xml +++ b/library/main/res/values/styles.xml @@ -199,6 +199,8 @@ <item name="android:fontFamily" tools:targetApi="jelly_bean">sans-serif</item> <item name="android:layout_gravity">?attr/suwGlifHeaderGravity</item> <item name="android:padding">0dp</item> + <!-- Always lowercase instead of reading attr/suwButtonAllCaps, since this is a tertiary + button --> <item name="android:textAllCaps" tools:targetApi="ice_cream_sandwich">false</item> </style> @@ -268,7 +270,7 @@ <item name="android:layout_marginLeft">?attr/suwMarginSides</item> <item name="android:layout_marginRight">?attr/suwMarginSides</item> <item name="android:layout_marginTop">@dimen/suw_glif_header_title_margin_top</item> - <item name="android:fontFamily" tools:targetApi="jelly_bean">google-sans</item> + <item name="android:fontFamily" tools:targetApi="jelly_bean">@string/suwFontSecondary</item> <item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">gravity</item> <item name="android:textColor">?android:attr/textColorPrimary</item> </style> diff --git a/library/platform/res/values-v27/styles.xml b/library/platform/res/values-v27/styles.xml index 4704ccf..1dcb1d9 100644 --- a/library/platform/res/values-v27/styles.xml +++ b/library/platform/res/values-v27/styles.xml @@ -41,6 +41,8 @@ <item name="android:windowDisablePreview">true</item> <item name="android:windowSoftInputMode">adjustResize</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwCardBackground">@drawable/suw_card_bg</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -70,6 +72,8 @@ <item name="android:windowDisablePreview">true</item> <item name="android:windowSoftInputMode">adjustResize</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwCardBackground">@drawable/suw_card_bg</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -102,6 +106,8 @@ <item name="android:windowDisablePreview">true</item> <item name="android:windowSoftInputMode">adjustResize</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwColorPrimary">?android:attr/colorPrimary</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -135,6 +141,8 @@ <item name="android:windowDisablePreview">true</item> <item name="android:windowSoftInputMode">adjustResize</item> + <item name="suwButtonAllCaps">true</item> + <item name="suwButtonFontFamily">sans-serif</item> <item name="suwColorPrimary">?android:attr/colorPrimary</item> <item name="suwFillContentLayoutStyle">@style/SuwFillContentLayout</item> <item name="suwDividerInsetEnd">0dp</item> @@ -151,12 +159,18 @@ <style name="SuwThemeGlifV3" parent="SuwThemeGlifV2"> <item name="android:colorAccent">@color/suw_color_accent_glif_v3</item> + + <item name="suwButtonAllCaps">false</item> + <item name="suwButtonFontFamily">@string/suwFontSecondary</item> </style> <style name="SuwThemeGlifV3.Light" parent="SuwThemeGlifV2.Light"> <item name="android:colorAccent">@color/suw_color_accent_glif_v3</item> <item name="android:navigationBarColor">@color/suw_glif_v3_nav_bar_color_light</item> <item name="android:windowLightNavigationBar">true</item> + + <item name="suwButtonAllCaps">false</item> + <item name="suwButtonFontFamily">@string/suwFontSecondary</item> </style> <!-- Button styles --> @@ -168,8 +182,10 @@ <item name="android:buttonStyle">@style/SuwGlifButton.Primary</item> <!-- Values used in styles --> + <item name="android:fontFamily">?attr/suwButtonFontFamily</item> <item name="android:paddingLeft">@dimen/suw_glif_button_padding</item> <item name="android:paddingRight">@dimen/suw_glif_button_padding</item> + <item name="android:textAllCaps">?attr/suwButtonAllCaps</item> </style> <style name="SuwGlifButton.Secondary" parent="android:Widget.Material.Button.Borderless.Colored"> @@ -180,9 +196,11 @@ <item name="android:theme">@style/SuwGlifButton.Secondary</item> <!-- Values used in styles --> + <item name="android:fontFamily">?attr/suwButtonFontFamily</item> <item name="android:minWidth">0dp</item> <item name="android:paddingLeft">@dimen/suw_glif_button_padding</item> <item name="android:paddingRight">@dimen/suw_glif_button_padding</item> + <item name="android:textAllCaps">?attr/suwButtonAllCaps</item> <!-- Values used in themes --> <item name="android:colorControlHighlight">@color/suw_flat_button_highlight</item> diff --git a/library/self.gradle b/library/self.gradle index 008797a..86dea0e 100644 --- a/library/self.gradle +++ b/library/self.gradle @@ -53,6 +53,7 @@ android.sourceSets { testImplementation 'org.robolectric:robolectric:3.6.1' testImplementation 'org.robolectric:shadows-framework:3.6.1' testImplementation 'junit:junit:4.+' + testImplementation 'com.google.truth:truth:0.31' testImplementation 'org.mockito:mockito-core:1.9.5' // Workaround for https://github.com/robolectric/robolectric/issues/2566 testImplementation 'org.khronos:opengl-api:gl1.1-android-2.1_r1' diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java index ffc40da..613f2aa 100644 --- a/library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java +++ b/library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java @@ -16,16 +16,20 @@ package com.android.setupwizardlib.util; +import static com.google.common.truth.Truth.assertThat; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.app.Activity; import android.graphics.Color; +import android.graphics.Typeface; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View; +import android.widget.Button; import com.android.setupwizardlib.R; import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; @@ -56,6 +60,19 @@ public class GlifV3StyleTest { // Nav bar color is not customizable pre-L } + @Test + public void buttonWithGlifV3_shouldBeGoogleSans() { + GlifThemeActivity activity = Robolectric.setupActivity(GlifThemeActivity.class); + Button button = new Button( + activity, + Robolectric.buildAttributeSet() + .setStyleAttribute("@style/SuwGlifButton.Primary") + .build()); + assertThat(button.getTypeface()).isEqualTo(Typeface.create("google-sans", 0)); + // Button should not be all caps + assertThat(button.getTransformationMethod()).isNull(); + } + private static class GlifThemeActivity extends Activity { @Override |