diff options
author | Setup Wizard Team <android-setup-team-eng@google.com> | 2021-05-20 09:29:28 +0800 |
---|---|---|
committer | Nicole Huang <nicolehuang@google.com> | 2021-05-21 03:34:42 +0000 |
commit | 1e5fe000bc39ab96b17707e8aa066a2cfb360714 (patch) | |
tree | 232791de807ae753f7b5a8b3ca3d0cc53ee177ff /main | |
parent | 55c0d53a5db43d763c2b133002fb6d0971f4013b (diff) | |
download | setupdesign-1e5fe000bc39ab96b17707e8aa066a2cfb360714.tar.gz |
Import updated Android Setupdesign Library 374773193
Copied from google3/third_party/java_src/android_libs/setupdesign
Test: mm
Bug: 188721222
Included changes:
- 374773193 [ColorExtraction] Adjust fallback colors for color resour...
- 374372964 Refactoring
- 374191048 Remove deprecated class
- 373747782 Fix hyperlink doesn't apply dynamic color
- 373731771 [SetupDesign] Fix the crash of SwitchBar and remove the i...
- 373539695 [GlifLoadingLayout] Gets actural min height of footer bar...
PiperOrigin-RevId: 374773193
Change-Id: I465cc1e59ee81e7174c337b8d5b58039e46eb067
Diffstat (limited to 'main')
-rw-r--r-- | main/res/values-night/colors.xml | 18 | ||||
-rw-r--r-- | main/res/values-v31/styles.xml | 2 | ||||
-rw-r--r-- | main/res/values/colors.xml | 58 | ||||
-rw-r--r-- | main/res/values/dimens.xml | 14 | ||||
-rw-r--r-- | main/src/com/google/android/setupdesign/util/BuildCompatUtils.java | 69 | ||||
-rw-r--r-- | main/src/com/google/android/setupdesign/util/PartnerStyleHelper.java | 38 | ||||
-rw-r--r-- | main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java | 3 | ||||
-rw-r--r-- | main/src/com/google/android/setupdesign/util/ThemeHelper.java | 27 |
8 files changed, 98 insertions, 131 deletions
diff --git a/main/res/values-night/colors.xml b/main/res/values-night/colors.xml index 74a583e..b9a0975 100644 --- a/main/res/values-night/colors.xml +++ b/main/res/values-night/colors.xml @@ -17,23 +17,13 @@ <resources> - <color name="sud_system_primary_text">@color/primary_text_color_device_default_dark</color> - - <color name="sud_system_secondary_text">@color/secondary_text_color_device_default_dark</color> - - <color name="sud_system_tertiary_text_inactive">@color/tertiary_text_inactive_color_device_default_dark</color> - - <color name="sud_system_error_warning">@color/error_color_device_default_dark</color> - + <color name="sud_system_primary_text">@color/sud_primary_default_text_dark</color> + <color name="sud_system_secondary_text">@color/sud_secondary_default_text_dark</color> + <color name="sud_system_tertiary_text_inactive">@color/sud_inactive_default_dark</color> + <color name="sud_system_error_warning">@color/sud_error_warning_default_dark</color> <color name="sud_system_success_done">@color/success_color_device_default_dark</color> - <color name="sud_system_fallback_accent">@color/fallback_color_device_default_dark</color> - <color name="sud_system_background_surface">@color/background_surface_color_device_default_dark</color> - - <color name="sud_system_accent_icon_text_button">@color/accent_icon_text_color_device_default_dark</color> - - <color name="sud_system_dividing_line">@color/dividing_line_color_device_default_dark</color> <color name="sud_portal_pending_progress">@color/sud_portal_pending_progress_dark</color> </resources>
\ No newline at end of file diff --git a/main/res/values-v31/styles.xml b/main/res/values-v31/styles.xml index deaea16..b754be1 100644 --- a/main/res/values-v31/styles.xml +++ b/main/res/values-v31/styles.xml @@ -71,4 +71,4 @@ <item name="sucFullDynamicColor">true</item> </style> -</resources>
\ No newline at end of file +</resources> diff --git a/main/res/values/colors.xml b/main/res/values/colors.xml index 4ce7602..d658e9b 100644 --- a/main/res/values/colors.xml +++ b/main/res/values/colors.xml @@ -18,7 +18,6 @@ <resources> <!-- General colors --> - <color name="sud_color_accent_dark">#ff448aff</color> <color name="sud_color_accent_light">#ff3367d6</color> <color name="sud_color_background_dark">#ff303030</color> @@ -35,7 +34,6 @@ <color name="sud_flat_button_highlight">#1f000000</color> <!-- Navigation bar colors --> - <color name="sud_navbar_bg_dark">#ff21272b</color> <color name="sud_navbar_bg_light">#ffe4e7e9</color> @@ -103,10 +101,6 @@ <color name="sud_system_neutral2_700">#464646</color> - <color name="error_color_device_default_dark">#ec928e</color> - - <color name="error_color_device_default_light">#E22518</color> - <color name="success_color_device_default_dark">#5BB974</color> <color name="success_color_device_default_light">#1E8E3E</color> @@ -119,55 +113,31 @@ <color name="sud_portal_pending_progress_dark">#b06000</color> - <color name="primary_text_color_device_default_dark">#EDF2EB</color> - - <color name="primary_text_color_device_default_light">#181C14</color> - - <color name="secondary_text_color_device_default_dark">#C4C9BC</color> - - <color name="secondary_text_color_device_default_light">#43483F</color> - - <color name="tertiary_text_inactive_color_device_default_dark">#8D9287</color> - - <color name="tertiary_text_inactive_color_device_default_light">#72776C</color> - - <color name="background_surface_color_device_default_dark">#1B1D19</color> + <color name="sud_primary_default_text_dark">#FFFFFF</color> - <color name="background_surface_color_device_default_light">#F1F1EB</color> + <color name="sud_primary_default_text_light">#202124</color> - <color name="accent_icon_text_color_device_default_dark">#9FD67C</color> + <color name="sud_secondary_default_text_dark">#9AA0A6</color> - <color name="accent_icon_text_color_device_default_light">#3A691E</color> + <color name="sud_secondary_default_text_light">#5F6368</color> - <color name="button_surface_color_device_default">#BAF396</color> + <color name="sud_inactive_default_dark">#5F6368</color> - <color name="button_text_color_device_default">#1B1D19</color> + <color name="sud_inactive_default_light">#DADCE0</color> - <color name="dividing_line_color_device_default_dark">#43483F</color> + <color name="sud_error_warning_default_dark">#EE675C</color> - <color name="dividing_line_color_device_default_light">#A7ACA0</color> - - - <color name="sud_system_primary_text">@color/primary_text_color_device_default_light</color> - - <color name="sud_system_secondary_text">@color/secondary_text_color_device_default_light</color> - - <color name="sud_system_tertiary_text_inactive">@color/tertiary_text_inactive_color_device_default_light</color> - - <color name="sud_system_error_warning">@color/error_color_device_default_light</color> + <color name="sud_system_primary_text">@color/sud_primary_default_text_light</color> + <color name="sud_system_secondary_text">@color/sud_secondary_default_text_light</color> + <color name="sud_system_tertiary_text_inactive">@color/sud_inactive_default_light</color> + <color name="sud_system_error_warning">@color/sud_color_error_text_light</color> <color name="sud_system_success_done">@color/success_color_device_default_light</color> - <color name="sud_system_fallback_accent">@color/fallback_color_device_default_light</color> - <color name="sud_system_background_surface">@color/background_surface_color_device_default_light</color> - - <color name="sud_system_accent_icon_text_button">@color/accent_icon_text_color_device_default_light</color> - - <color name="sud_system_button_surface">@color/button_surface_color_device_default</color> + <color name="sud_portal_pending_progress">@color/sud_portal_pending_progress_light</color> - <color name="sud_system_button_text">@color/button_text_color_device_default</color> + <color name="sud_switch_track_off">#FF757575</color> + <color name="sud_switch_thumb_off">#BFFFFFFF</color> - <color name="sud_system_dividing_line">@color/dividing_line_color_device_default_light</color> - <color name="sud_portal_pending_progress">@color/sud_portal_pending_progress_light</color> </resources> diff --git a/main/res/values/dimens.xml b/main/res/values/dimens.xml index 5bdf41f..b309981 100644 --- a/main/res/values/dimens.xml +++ b/main/res/values/dimens.xml @@ -198,4 +198,18 @@ <!-- ExpandableSwithItem --> <dimen name="sud_expand_arrow_drawable_padding">4dp</dimen> + <!-- SwitchBar --> + <!-- Minimum width of switch --> + <dimen name="sud_switch_min_width">52dp</dimen> + <!-- Margin of switch thumb --> + <dimen name="sud_switch_thumb_margin">4dp</dimen> + <!-- Size of switch thumb --> + <dimen name="sud_switch_thumb_size">20dp</dimen> + <!-- Width of switch track --> + <dimen name="sud_switch_track_width">52dp</dimen> + <!-- Height of switch track --> + <dimen name="sud_switch_track_height">28dp</dimen> + <!-- Radius of switch track --> + <dimen name="sud_switch_track_radius">35dp</dimen> + </resources> diff --git a/main/src/com/google/android/setupdesign/util/BuildCompatUtils.java b/main/src/com/google/android/setupdesign/util/BuildCompatUtils.java deleted file mode 100644 index 524b9a2..0000000 --- a/main/src/com/google/android/setupdesign/util/BuildCompatUtils.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.setupdesign.util; - -import android.os.Build; - -/** - * An util class to check whether the current OS version is higher or equal to sdk version of - * device. - * - * @deprecated Uses {@link com.google.android.setupcompat.util.BuildCompatUtils} instead. - */ -@Deprecated -public final class BuildCompatUtils { - - /** - * Implementation of BuildCompat.isAtLeast*() suitable for use in Setup - * - * <p>BuildCompat.isAtLeast*() can be changed by Android Release team, and once that is changed it - * may take weeks for that to propagate to stable/prerelease/experimental SDKs in Google3. Also it - * can be different in all these channels. This can cause random issues, especially with sidecars - * (i.e., the code running on R may not know that it runs on R). - * - * <p>This still should try using BuildCompat.isAtLeastR() as source of truth, but also checking - * for VERSION_SDK_INT and VERSION.CODENAME in case when BuildCompat implementation returned - * false. Note that both checks should be >= and not = to make sure that when Android version - * increases (i.e., from R to S), this does not stop working. - * - * <p>Supported configurations: - * - * <ul> - * <li>For current Android release: while new API is not finalized yet (CODENAME = "S", SDK_INT - * = 30|31) - * <li>For current Android release: when new API is finalized (CODENAME = "REL", SDK_INT = 31) - * <li>For next Android release (CODENAME = "T", SDK_INT = 30+) - * </ul> - * - * <p>Note that Build.VERSION_CODES.S cannot be used here until final SDK is available in all - * Google3 channels, because it is equal to Build.VERSION_CODES.CUR_DEVELOPMENT before API - * finalization. - * - * @return Whether the current OS version is higher or equal to S. - */ - public static boolean isAtLeastS() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { - return false; - } - return (Build.VERSION.CODENAME.equals("REL") && Build.VERSION.SDK_INT >= 31) - || (Build.VERSION.CODENAME.length() == 1 - && Build.VERSION.CODENAME.charAt(0) >= 'S' - && Build.VERSION.CODENAME.charAt(0) <= 'Z'); - } - - private BuildCompatUtils() {} -} diff --git a/main/src/com/google/android/setupdesign/util/PartnerStyleHelper.java b/main/src/com/google/android/setupdesign/util/PartnerStyleHelper.java index d6eade8..d99f724 100644 --- a/main/src/com/google/android/setupdesign/util/PartnerStyleHelper.java +++ b/main/src/com/google/android/setupdesign/util/PartnerStyleHelper.java @@ -156,6 +156,44 @@ public final class PartnerStyleHelper { return shouldApplyPartnerResource(context) && usePartnerHeavyTheme; } + /** + * Returns if the current layout/activity applies dynamic color configurations or not. + * + * @param view A view would be used to get the activity and context. + */ + public static boolean useDynamicColor(View view) { + if (view == null) { + return false; + } + return getDynamicColorAttributeFromTheme(view.getContext()); + } + + static boolean getDynamicColorAttributeFromTheme(Context context) { + try { + Activity activity = PartnerCustomizationLayout.lookupActivityFromContext(context); + TemplateLayout layout = findLayoutFromActivity(activity); + if (layout instanceof GlifLayout) { + return ((GlifLayout) layout).shouldApplyDynamicColor(); + } + } catch (IllegalArgumentException | ClassCastException ex) { + // fall through + } + + // try best to get dynamic color settings from attr + TypedArray a = context.obtainStyledAttributes(new int[] {R.attr.sucFullDynamicColor}); + boolean useDynamicColorTheme = + a.hasValue( + com.google + .android + .setupcompat + .R + .styleable + .SucPartnerCustomizationLayout_sucFullDynamicColor); + a.recycle(); + + return useDynamicColorTheme; + } + private static TemplateLayout findLayoutFromActivity(Activity activity) { if (activity == null) { return null; diff --git a/main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java b/main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java index 03a1684..7b4acea 100644 --- a/main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java +++ b/main/src/com/google/android/setupdesign/util/TextViewPartnerStyler.java @@ -52,7 +52,8 @@ final class TextViewPartnerStyler { if (textPartnerConfigs.getTextLinkedColorConfig() != null && PartnerConfigHelper.get(context) - .isPartnerConfigAvailable(textPartnerConfigs.getTextLinkedColorConfig())) { + .isPartnerConfigAvailable(textPartnerConfigs.getTextLinkedColorConfig()) + && !PartnerStyleHelper.useDynamicColor(textView)) { int linkTextColor = PartnerConfigHelper.get(context) .getColor(context, textPartnerConfigs.getTextLinkedColorConfig()); diff --git a/main/src/com/google/android/setupdesign/util/ThemeHelper.java b/main/src/com/google/android/setupdesign/util/ThemeHelper.java index 32c8e5e..91e6e07 100644 --- a/main/src/com/google/android/setupdesign/util/ThemeHelper.java +++ b/main/src/com/google/android/setupdesign/util/ThemeHelper.java @@ -24,6 +24,7 @@ import android.util.Log; import androidx.annotation.StyleRes; import com.google.android.setupcompat.PartnerCustomizationLayout; import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper; +import com.google.android.setupcompat.util.BuildCompatUtils; import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.R; import java.util.Objects; @@ -218,6 +219,23 @@ public final class ThemeHelper { : "SudFullDynamicColorThemeGlifV3_Light")); } + if(Log.isLoggable(TAG, Log.DEBUG)) { + Log.d( + TAG, + "Gets the dynamic accentColor: [Light] " + + colorIntToHex(context, R.color.sud_dynamic_color_accent_glif_v3_light) + + ", " + + (BuildCompatUtils.isAtLeastS() + ? colorIntToHex(context, android.R.color.system_accent1_600) + : "n/a") + + ", [Dark] " + + colorIntToHex(context, R.color.sud_dynamic_color_accent_glif_v3_dark) + + ", " + + (BuildCompatUtils.isAtLeastS() + ? colorIntToHex(context, android.R.color.system_accent1_200) + : "n/a")); + } + return resId; } @@ -241,8 +259,9 @@ public final class ThemeHelper { return false; } - if (getDynamicColorTheme(context) != 0) { - activity.setTheme(getDynamicColorTheme(context)); + @StyleRes int resId = getDynamicColorTheme(context); + if (resId != 0) { + activity.setTheme(resId); } else { Log.w(TAG, "Error occurred on getting dynamic color theme."); return false; @@ -251,5 +270,9 @@ public final class ThemeHelper { return true; } + private static String colorIntToHex(Context context, int colorInt) { + return String.format("#%06X", (0xFFFFFF & context.getResources().getColor(colorInt))); + } + private ThemeHelper() {} } |