diff options
author | Setup Wizard Team <android-setup-team-eng@google.com> | 2021-07-28 14:31:10 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-07-28 14:31:10 +0000 |
commit | 053221fd4d643ce9eb8c7df895e733847d2fb0b4 (patch) | |
tree | 27a6cc8dc815ca523e73c47d08a01f414a42a3a5 | |
parent | 8ca33b372e7f5a80ab98723eaf9d1ee2a9baa53c (diff) | |
parent | 158bb4fc485a7e7aa9c45fe0446c68ca4a9d2675 (diff) | |
download | setupcompat-053221fd4d643ce9eb8c7df895e733847d2fb0b4.tar.gz |
Import updated Android SetupCompat Library 387281979 am: f992273868 am: 158bb4fc48
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/setupcompat/+/15401620
Change-Id: I2e831994b0031368a3c4c7578d8659d3294852a4
4 files changed, 58 insertions, 12 deletions
diff --git a/main/java/com/google/android/setupcompat/template/FooterBarMixin.java b/main/java/com/google/android/setupcompat/template/FooterBarMixin.java index a4c8df6..54f35c2 100644 --- a/main/java/com/google/android/setupcompat/template/FooterBarMixin.java +++ b/main/java/com/google/android/setupcompat/template/FooterBarMixin.java @@ -84,6 +84,8 @@ public class FooterBarMixin implements Mixin { private int footerBarPaddingTop; private int footerBarPaddingBottom; + @VisibleForTesting int footerBarPaddingStart; + @VisibleForTesting int footerBarPaddingEnd; @VisibleForTesting int defaultPadding; @ColorInt private final int footerBarPrimaryBackgroundColor; @ColorInt private final int footerBarSecondaryBackgroundColor; @@ -190,6 +192,10 @@ public class FooterBarMixin implements Mixin { footerBarPaddingBottom = a.getDimensionPixelSize( R.styleable.SucFooterBarMixin_sucFooterBarPaddingBottom, defaultPadding); + footerBarPaddingStart = + a.getDimensionPixelSize(R.styleable.SucFooterBarMixin_sucFooterBarPaddingStart, 0); + footerBarPaddingEnd = + a.getDimensionPixelSize(R.styleable.SucFooterBarMixin_sucFooterBarPaddingEnd, 0); footerBarPrimaryBackgroundColor = a.getColor(R.styleable.SucFooterBarMixin_sucFooterBarPrimaryFooterBackground, 0); footerBarSecondaryBackgroundColor = @@ -267,9 +273,9 @@ public class FooterBarMixin implements Mixin { } updateFooterBarPadding( buttonContainer, - buttonContainer.getPaddingLeft(), + footerBarPaddingStart, footerBarPaddingTop, - buttonContainer.getPaddingRight(), + footerBarPaddingEnd, footerBarPaddingBottom); if (isFooterButtonAlignedEnd(buttonContainer.getContext())) { buttonContainer.setGravity(Gravity.END); @@ -299,19 +305,39 @@ public class FooterBarMixin implements Mixin { buttonContainer.setBackgroundColor(color); } - footerBarPaddingTop = - (int) - PartnerConfigHelper.get(context) - .getDimension(context, PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_TOP); - footerBarPaddingBottom = - (int) - PartnerConfigHelper.get(context) - .getDimension(context, PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_BOTTOM); + if (PartnerConfigHelper.get(context) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_TOP)) { + footerBarPaddingTop = + (int) + PartnerConfigHelper.get(context) + .getDimension(context, PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_TOP); + } + if (PartnerConfigHelper.get(context) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_BOTTOM)) { + footerBarPaddingBottom = + (int) + PartnerConfigHelper.get(context) + .getDimension(context, PartnerConfig.CONFIG_FOOTER_BUTTON_PADDING_BOTTOM); + } + if (PartnerConfigHelper.get(context) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_FOOTER_BAR_PADDING_START)) { + footerBarPaddingStart = + (int) + PartnerConfigHelper.get(context) + .getDimension(context, PartnerConfig.CONFIG_FOOTER_BAR_PADDING_START); + } + if (PartnerConfigHelper.get(context) + .isPartnerConfigAvailable(PartnerConfig.CONFIG_FOOTER_BAR_PADDING_END)) { + footerBarPaddingEnd = + (int) + PartnerConfigHelper.get(context) + .getDimension(context, PartnerConfig.CONFIG_FOOTER_BAR_PADDING_END); + } updateFooterBarPadding( buttonContainer, - buttonContainer.getPaddingLeft(), + footerBarPaddingStart, footerBarPaddingTop, - buttonContainer.getPaddingRight(), + footerBarPaddingEnd, footerBarPaddingBottom); if (PartnerConfigHelper.get(context) diff --git a/main/java/com/google/android/setupcompat/view/ButtonBarLayout.java b/main/java/com/google/android/setupcompat/view/ButtonBarLayout.java index da1ab34..ef1954e 100644 --- a/main/java/com/google/android/setupcompat/view/ButtonBarLayout.java +++ b/main/java/com/google/android/setupcompat/view/ButtonBarLayout.java @@ -18,6 +18,7 @@ package com.google.android.setupcompat.view; import android.content.Context; import android.util.AttributeSet; +import android.view.Gravity; import android.view.View; import android.widget.LinearLayout; import com.google.android.setupcompat.R; @@ -86,6 +87,7 @@ public class ButtonBarLayout extends LinearLayout { if (stacked) { child.setTag(R.id.suc_customization_original_weight, childParams.weight); childParams.weight = 0; + childParams.leftMargin = 0; } else { Float weight = (Float) child.getTag(R.id.suc_customization_original_weight); if (weight != null) { @@ -103,6 +105,8 @@ public class ButtonBarLayout extends LinearLayout { } if (stacked) { + // When stacked, the buttons need to be kept in the center of the button bar. + setHorizontalGravity(Gravity.CENTER); // HACK: In the default button bar style, the left and right paddings are not // balanced to compensate for different alignment for borderless (left) button and // the raised (right) button. When it's stacked, we want the buttons to be centered, diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java index 305db70..fbbca4d 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java @@ -40,6 +40,14 @@ public enum PartnerConfig { // The min height of the footer buttons CONFIG_FOOTER_BAR_MIN_HEIGHT(PartnerConfigKey.KEY_FOOTER_BAR_MIN_HEIGHT, ResourceType.DIMENSION), + // The padding start of the footer bar + CONFIG_FOOTER_BAR_PADDING_START( + PartnerConfigKey.KEY_FOOTER_BAR_PADDING_START, ResourceType.DIMENSION), + + // The padding end of the footer bar + CONFIG_FOOTER_BAR_PADDING_END( + PartnerConfigKey.KEY_FOOTER_BAR_PADDING_END, ResourceType.DIMENSION), + // The same as "windowLightNavigationBar". If set true, the navigation bar icons will be drawn // such that it is compatible with a light navigation bar background. CONFIG_LIGHT_NAVIGATION_BAR(PartnerConfigKey.KEY_LIGHT_NAVIGATION_BAR, ResourceType.BOOL), diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java index 211a271..8cb8e69 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java @@ -31,6 +31,8 @@ import java.lang.annotation.RetentionPolicy; PartnerConfigKey.KEY_NAVIGATION_BAR_DIVIDER_COLOR, PartnerConfigKey.KEY_FOOTER_BAR_BG_COLOR, PartnerConfigKey.KEY_FOOTER_BAR_MIN_HEIGHT, + PartnerConfigKey.KEY_FOOTER_BAR_PADDING_START, + PartnerConfigKey.KEY_FOOTER_BAR_PADDING_END, PartnerConfigKey.KEY_FOOTER_BUTTON_FONT_FAMILY, PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_ADD_ANOTHER, PartnerConfigKey.KEY_FOOTER_BUTTON_ICON_CANCEL, @@ -158,6 +160,12 @@ public @interface PartnerConfigKey { // The min height of the footer bar String KEY_FOOTER_BAR_MIN_HEIGHT = "setup_compat_footer_bar_min_height"; + // The padding start of the footer bar + String KEY_FOOTER_BAR_PADDING_START = "setup_compat_footer_bar_padding_start"; + + // The padding end of the footer bar + String KEY_FOOTER_BAR_PADDING_END = "setup_compat_footer_bar_padding_end"; + // The font face used in footer buttons. This must be a string reference to a font that is // available in the system. Font references (@font or @xml) are not allowed. String KEY_FOOTER_BUTTON_FONT_FAMILY = "setup_compat_footer_button_font_family"; |