summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-07-29 01:06:05 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-07-29 01:06:05 +0000
commitbdb3ffe69d2afc3292fb88bf54e385b1feb2e06b (patch)
tree27a6cc8dc815ca523e73c47d08a01f414a42a3a5
parent7d42dbbac8a2e8a1065d5235ea12bf730b586bf0 (diff)
parentf99227386859e9f3aefda18d942834c0b33ae9ea (diff)
downloadsetupcompat-bdb3ffe69d2afc3292fb88bf54e385b1feb2e06b.tar.gz
Snap for 7592414 from f99227386859e9f3aefda18d942834c0b33ae9ea to sc-d2-release
Change-Id: I70e28bb5b8b790f7a20db068a46c9b6bb583ae18
-rw-r--r--main/java/com/google/android/setupcompat/template/FooterBarMixin.java50
-rw-r--r--main/java/com/google/android/setupcompat/view/ButtonBarLayout.java4
-rw-r--r--partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java8
-rw-r--r--partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java8
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";