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
This commit is contained in:
parent
cd62078b7c
commit
78bc2e0c90
|
@ -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>
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue