summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSetup Wizard Team <android-setup-team-eng@google.com>2021-08-10 10:13:57 +0800
committerCn Chen <cnchen@google.com>2021-08-10 03:47:05 +0000
commita6efc56184a3f108c8b923d4ac9366580442b44f (patch)
tree9dcd5139023ec9d301dcb68414cecd6275c9ca3f
parent7f687c3aca56d3b947fcecfd28e39f825171cf61 (diff)
downloadsetupdesign-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
-rw-r--r--main/res/layout/sud_glif_header.xml2
-rw-r--r--main/res/values-v31/styles.xml10
-rw-r--r--main/res/values/dimens.xml2
-rw-r--r--main/src/com/google/android/setupdesign/GlifLayout.java1
-rw-r--r--main/src/com/google/android/setupdesign/template/ProgressBarMixin.java34
-rw-r--r--main/src/com/google/android/setupdesign/util/DynamicColorPalette.java3
-rw-r--r--main/src/com/google/android/setupdesign/util/HeaderAreaStyler.java30
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.