summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Lam <yukl@google.com>2018-01-11 18:43:23 -0800
committerMaurice Lam <yukl@google.com>2018-01-11 18:49:53 -0800
commit78bc2e0c900935ed00e111a0c4b93b50d883e2b9 (patch)
tree8c384ced17e9138c60dfd5d3ae662fa71cf1fd03
parentcd62078b7cc0eb272104769e48156e66463a95a2 (diff)
downloadsetupwizard-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.xml18
-rw-r--r--library/main/res/values/attrs.xml2
-rw-r--r--library/main/res/values/config.xml3
-rw-r--r--library/main/res/values/styles.xml4
-rw-r--r--library/platform/res/values-v27/styles.xml18
-rw-r--r--library/self.gradle1
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/util/GlifV3StyleTest.java17
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