diff options
author | Setup Wizard Team <android-setup-team-eng@google.com> | 2021-08-10 10:13:57 +0800 |
---|---|---|
committer | Cn Chen <cnchen@google.com> | 2021-08-10 03:47:05 +0000 |
commit | a6efc56184a3f108c8b923d4ac9366580442b44f (patch) | |
tree | 9dcd5139023ec9d301dcb68414cecd6275c9ca3f | |
parent | 7f687c3aca56d3b947fcecfd28e39f825171cf61 (diff) | |
download | setupdesign-a6efc56184a3f108c8b923d4ac9366580442b44f.tar.gz |
Import updated Android Setupdesign Library 389778265
Copied from google3/third_party/java_src/android_libs/setupdesign
Test: mm
Included changes:
- 389778265 Make progressbar margin support partner config.
- 388652668 Refine progress bar
- 385913553 Fixes continuous build failure for Kids module.
- 385055264 Automated g4 rollback of changelist 384888657.
- 384888657 [Notification] Using windowSplashScreenBackground to set ...
- 382468429 Refactoring test case
Bug: 191221238
PiperOrigin-RevId: 389778265
Change-Id: Ie3ff1cb11fa51f0a96916ead344f767b02bf269f
7 files changed, 78 insertions, 4 deletions
diff --git a/main/res/layout/sud_glif_header.xml b/main/res/layout/sud_glif_header.xml index 50feeb2..1bbde55 100644 --- a/main/res/layout/sud_glif_header.xml +++ b/main/res/layout/sud_glif_header.xml @@ -73,8 +73,6 @@ android:layout_height="wrap_content" android:layout_marginLeft="?attr/sudMarginStart" android:layout_marginRight="?attr/sudMarginStart" - android:layout_marginBottom="@dimen/sud_progress_bar_margin_vertical" - android:layout_marginTop="@dimen/sud_progress_bar_margin_vertical" android:visibility="gone" android:indeterminate="true" /> diff --git a/main/res/values-v31/styles.xml b/main/res/values-v31/styles.xml index e1240e4..61523c3 100644 --- a/main/res/values-v31/styles.xml +++ b/main/res/values-v31/styles.xml @@ -117,4 +117,14 @@ <item name="dialogCornerRadius">@dimen/sud_glif_device_default_dialog_corner_radius</item> </style> + <style name="SudThemeGlif" parent="SudBaseThemeGlif"> + <item name="sucSystemNavBarBackgroundColor">?android:attr/navigationBarColor</item> + <item name="android:windowSplashScreenBackground">?android:attr/colorBackground</item> + </style> + + <style name="SudThemeGlif.Light" parent="SudBaseThemeGlif.Light"> + <item name="sucSystemNavBarBackgroundColor">?android:attr/navigationBarColor</item> + <item name="android:windowSplashScreenBackground">?android:attr/colorBackground</item> + </style> + </resources> diff --git a/main/res/values/dimens.xml b/main/res/values/dimens.xml index 64970c8..718604e 100644 --- a/main/res/values/dimens.xml +++ b/main/res/values/dimens.xml @@ -181,6 +181,8 @@ <!-- Progress bar --> <!-- The margin to compensate for the padding built-in to the widget itself --> <dimen name="sud_progress_bar_margin_vertical">-7dp</dimen> + <dimen name="sud_progress_bar_margin_top">-7dp</dimen> + <dimen name="sud_progress_bar_margin_bottom">-7dp</dimen> <dimen name="sud_glif_progress_bar_margin_vertical">7dp</dimen> <dimen name="sud_glif_progress_bar_padding">40dp</dimen> diff --git a/main/src/com/google/android/setupdesign/GlifLayout.java b/main/src/com/google/android/setupdesign/GlifLayout.java index 829e3d7..ee62bee 100644 --- a/main/src/com/google/android/setupdesign/GlifLayout.java +++ b/main/src/com/google/android/setupdesign/GlifLayout.java @@ -177,6 +177,7 @@ public class GlifLayout extends PartnerCustomizationLayout { getMixin(IconMixin.class).tryApplyPartnerCustomizationStyle(); getMixin(HeaderMixin.class).tryApplyPartnerCustomizationStyle(); getMixin(DescriptionMixin.class).tryApplyPartnerCustomizationStyle(); + getMixin(ProgressBarMixin.class).tryApplyPartnerCustomizationStyle(); tryApplyPartnerCustomizationStyleToShortDescription(); } diff --git a/main/src/com/google/android/setupdesign/template/ProgressBarMixin.java b/main/src/com/google/android/setupdesign/template/ProgressBarMixin.java index da1b997..ac5ac69 100644 --- a/main/src/com/google/android/setupdesign/template/ProgressBarMixin.java +++ b/main/src/com/google/android/setupdesign/template/ProgressBarMixin.java @@ -16,12 +16,14 @@ package com.google.android.setupdesign.template; +import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Build; import android.os.Build.VERSION_CODES; import android.util.AttributeSet; import android.view.View; +import android.view.ViewGroup; import android.view.ViewStub; import android.widget.ProgressBar; import androidx.annotation.AttrRes; @@ -30,6 +32,8 @@ import androidx.annotation.Nullable; import com.google.android.setupcompat.internal.TemplateLayout; import com.google.android.setupcompat.template.Mixin; import com.google.android.setupdesign.R; +import com.google.android.setupdesign.util.HeaderAreaStyler; +import com.google.android.setupdesign.util.PartnerStyleHelper; /** A {@link Mixin} for showing a progress bar. */ public class ProgressBarMixin implements Mixin { @@ -178,4 +182,34 @@ public class ProgressBarMixin implements Mixin { public ColorStateList getColor() { return color; } + + /** + * Tries to apply the partner customizations to the progress bar. Use the default values if + * partner config isn't enable. + */ + public void tryApplyPartnerCustomizationStyle() { + ProgressBar progressBar = peekProgressBar(); + if (!useBottomProgressBar || progressBar == null) { + return; + } + + boolean partnerHeavyThemeLayout = PartnerStyleHelper.isPartnerHeavyThemeLayout(templateLayout); + + if (partnerHeavyThemeLayout) { + HeaderAreaStyler.applyPartnerCustomizationProgressBarStyle(progressBar); + } else { + Context context = progressBar.getContext(); + final ViewGroup.LayoutParams lp = progressBar.getLayoutParams(); + + if (lp instanceof ViewGroup.MarginLayoutParams) { + int marginTop = + (int) context.getResources().getDimension(R.dimen.sud_progress_bar_margin_top); + int marginBottom = + (int) context.getResources().getDimension(R.dimen.sud_progress_bar_margin_bottom); + + final ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) lp; + mlp.setMargins(mlp.leftMargin, marginTop, mlp.rightMargin, marginBottom); + } + } + } } diff --git a/main/src/com/google/android/setupdesign/util/DynamicColorPalette.java b/main/src/com/google/android/setupdesign/util/DynamicColorPalette.java index 2db8c75..654f927 100644 --- a/main/src/com/google/android/setupdesign/util/DynamicColorPalette.java +++ b/main/src/com/google/android/setupdesign/util/DynamicColorPalette.java @@ -19,7 +19,6 @@ package com.google.android.setupdesign.util; import android.content.Context; import androidx.annotation.ColorInt; import androidx.annotation.IntDef; -import androidx.annotation.VisibleForTesting; import com.google.android.setupdesign.R; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -27,7 +26,7 @@ import java.lang.annotation.RetentionPolicy; /** The class to get dynamic colors. */ public final class DynamicColorPalette { - @VisibleForTesting static int colorRes = 0; + private static int colorRes = 0; private DynamicColorPalette() {} diff --git a/main/src/com/google/android/setupdesign/util/HeaderAreaStyler.java b/main/src/com/google/android/setupdesign/util/HeaderAreaStyler.java index 1b3daac..d83c8d4 100644 --- a/main/src/com/google/android/setupdesign/util/HeaderAreaStyler.java +++ b/main/src/com/google/android/setupdesign/util/HeaderAreaStyler.java @@ -30,12 +30,14 @@ import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ImageView.ScaleType; +import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import com.google.android.setupcompat.partnerconfig.PartnerConfig; import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper; +import com.google.android.setupdesign.R; import com.google.android.setupdesign.util.TextViewPartnerStyler.TextPartnerConfigs; /** @@ -179,6 +181,34 @@ public final class HeaderAreaStyler { } } + public static void applyPartnerCustomizationProgressBarStyle(@Nullable ProgressBar progressBar) { + if (progressBar == null) { + return; + } + Context context = progressBar.getContext(); + final ViewGroup.LayoutParams lp = progressBar.getLayoutParams(); + + if (lp instanceof ViewGroup.MarginLayoutParams) { + int marginTop = + (int) + PartnerConfigHelper.get(context) + .getDimension( + context, + PartnerConfig.CONFIG_PROGRESS_BAR_MARGIN_TOP, + context.getResources().getDimension(R.dimen.sud_progress_bar_margin_top)); + int marginBottom = + (int) + PartnerConfigHelper.get(context) + .getDimension( + context, + PartnerConfig.CONFIG_PROGRESS_BAR_MARGIN_BOTTOM, + context.getResources().getDimension(R.dimen.sud_progress_bar_margin_bottom)); + + final ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) lp; + mlp.setMargins(mlp.leftMargin, marginTop, mlp.rightMargin, marginBottom); + } + } + /** * Applies the partner heavy style of header icon to the given {@code iconImage}. The theme should * check partner heavy theme first, and then the partner icon size would be applied. |