diff options
author | Setup Wizard Team <android-setup-team-eng@google.com> | 2020-12-30 19:23:06 +0800 |
---|---|---|
committer | alexylli <alexylli@google.com> | 2020-12-31 10:59:19 +0800 |
commit | 642e096118cf976f9ac1bc6319176f7cd9b08773 (patch) | |
tree | bf41d79be58849201f989843df85c9433e3f1095 /partnerconfig | |
parent | 203c86d111a235e8f763ef52996dd508d1762940 (diff) | |
download | setupcompat-642e096118cf976f9ac1bc6319176f7cd9b08773.tar.gz |
Import updated Android SetupCompat Library 349536308
Copied from google3/third_party/java_src/android_libs/setupcompat
Test: mm
Included changes:
- 349536308 [BC][Stencil] Add partner resource for the item padding t...
- 349360486 [SetupDesign] issue fix and refactoring
- 349265027 Update language to comply with Android’s inclusive langua...
- 349006680 [BC][Stencil] Add partner resource for the item title tex...
- 348729496 Cloned from CL 348561620 by 'g4 patch' and removed using ...
- 348580285 [SUW][SetupDesign] Enable stencil config for auto text si...
- 348565251 Automated g4 rollback of changelist 348561620.
- 348561620 [BC][Stencil] Add partner resource for the icon margin to...
- 347789412 [BC][Stencil] Add partner resource for the layout margin ...
- 347721164 Adds partner config key for transition type
- 346894262 [BC][Stencil] Add partner resource for the description te...
- 345997245 [BC][Stencil] Add partner resource for the header text ma...
- 345388161 [BC][Stencil] Add partner resource for the header contain...
- 345182340 Create subtitle mixin for BC layout
- 345174090 [SetupDesign] Enable auto text size based on attr
PiperOrigin-RevId: 349536308
Change-Id: I107bbbdfc2f8720902a5e31eee524199afc10b5e
Diffstat (limited to 'partnerconfig')
3 files changed, 205 insertions, 3 deletions
diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java index f0baef3..82e353c 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfig.java @@ -124,6 +124,12 @@ public enum PartnerConfig { // Background color of layout CONFIG_LAYOUT_BACKGROUND_COLOR(PartnerConfigKey.KEY_LAYOUT_BACKGROUND_COLOR, ResourceType.COLOR), + // Margin start of the layout + CONFIG_LAYOUT_MARGIN_START(PartnerConfigKey.KEY_LAYOUT_MARGIN_START, ResourceType.DIMENSION), + + // Margin end of the layout + CONFIG_LAYOUT_MARGIN_END(PartnerConfigKey.KEY_LAYOUT_MARGIN_END, ResourceType.DIMENSION), + // Text color of the header CONFIG_HEADER_TEXT_COLOR(PartnerConfigKey.KEY_HEADER_TEXT_COLOR, ResourceType.COLOR), @@ -133,13 +139,50 @@ public enum PartnerConfig { // Font family of the header CONFIG_HEADER_FONT_FAMILY(PartnerConfigKey.KEY_HEADER_FONT_FAMILY, ResourceType.STRING), + // Margin top size of the header text + CONFIG_HEADER_TEXT_MARGIN_TOP( + PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_TOP, ResourceType.DIMENSION), + + // Margin bottom size of the header text + CONFIG_HEADER_TEXT_MARGIN_BOTTOM( + PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_BOTTOM, ResourceType.DIMENSION), + // Gravity of the header, icon and description CONFIG_LAYOUT_GRAVITY(PartnerConfigKey.KEY_LAYOUT_GRAVITY, ResourceType.STRING), + // Margin top of the icon + CONFIG_ICON_MARGIN_TOP(PartnerConfigKey.KEY_ICON_MARGIN_TOP, ResourceType.DIMENSION), + + // Size of the icon + CONFIG_ICON_SIZE(PartnerConfigKey.KEY_ICON_SIZE, ResourceType.DIMENSION), + // Background color of the header area CONFIG_HEADER_AREA_BACKGROUND_COLOR( PartnerConfigKey.KEY_HEADER_AREA_BACKGROUND_COLOR, ResourceType.COLOR), + // Margin bottom size of the header container + CONFIG_HEADER_CONTAINER_MARGIN_BOTTOM( + PartnerConfigKey.KEY_HEADER_CONTAINER_MARGIN_BOTTOM, ResourceType.DIMENSION), + + // Auto text size enabled status + CONFIG_HEADER_AUTO_SIZE_ENABLED(PartnerConfigKey.KEY_HEADER_AUTO_SIZE_ENABLED, ResourceType.BOOL), + + // Max text size of header when auto size enabled. Ignored if auto size is false. + CONFIG_HEADER_AUTO_SIZE_MAX_TEXT_SIZE( + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE, ResourceType.DIMENSION), + + // Min text size of header when auto size enabled. Ignored if auto size is false. + CONFIG_HEADER_AUTO_SIZE_MIN_TEXT_SIZE( + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE, ResourceType.DIMENSION), + + // The max lines of the max text size when auto size enabled. Ignored if auto size is false. + CONFIG_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE( + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE, ResourceType.INTEGER), + + // Extra line spacing of header when auto size enabled. Ignored if auto size is false. + CONFIG_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA( + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA, ResourceType.DIMENSION), + // Text size of the description CONFIG_DESCRIPTION_TEXT_SIZE(PartnerConfigKey.KEY_DESCRIPTION_TEXT_SIZE, ResourceType.DIMENSION), @@ -153,6 +196,14 @@ public enum PartnerConfig { // Font family of the description CONFIG_DESCRIPTION_FONT_FAMILY(PartnerConfigKey.KEY_DESCRIPTION_FONT_FAMILY, ResourceType.STRING), + // Margin top size of the description text + CONFIG_DESCRIPTION_TEXT_MARGIN_TOP( + PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_TOP, ResourceType.DIMENSION), + + // Margin bottom size of the description text + CONFIG_DESCRIPTION_TEXT_MARGIN_BOTTOM( + PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM, ResourceType.DIMENSION), + // Text size of the body content text CONFIG_CONTENT_TEXT_SIZE(PartnerConfigKey.KEY_CONTENT_TEXT_SIZE, ResourceType.DIMENSION), @@ -168,6 +219,29 @@ public enum PartnerConfig { // Gravity of the body content text CONFIG_CONTENT_LAYOUT_GRAVITY(PartnerConfigKey.KEY_CONTENT_LAYOUT_GRAVITY, ResourceType.STRING), + // The title text size of list items. + CONFIG_ITEMS_TITLE_TEXT_SIZE(PartnerConfigKey.KEY_ITEMS_TITLE_TEXT_SIZE, ResourceType.DIMENSION), + + // The summary text size of list items. + CONFIG_ITEMS_SUMMARY_TEXT_SIZE( + PartnerConfigKey.KEY_ITEMS_SUMMARY_TEXT_SIZE, ResourceType.DIMENSION), + + // The summary margin top of list items. + CONFIG_ITEMS_SUMMARY_MARGIN_TOP( + PartnerConfigKey.KEY_ITEMS_SUMMARY_MARGIN_TOP, ResourceType.DIMENSION), + + // The font family of list items. + CONFIG_ITEMS_FONT_FAMILY(PartnerConfigKey.KEY_ITEMS_FONT_FAMILY, ResourceType.STRING), + + // The padding top of list items. + CONFIG_ITEMS_PADDING_TOP(PartnerConfigKey.KEY_ITEMS_PADDING_TOP, ResourceType.DIMENSION), + + // The padding bottom of list items. + CONFIG_ITEMS_PADDING_BOTTOM(PartnerConfigKey.KEY_ITEMS_PADDING_BOTTOM, ResourceType.DIMENSION), + + // The minimum height of list items. + CONFIG_ITEMS_MIN_HEIGHT(PartnerConfigKey.KEY_ITEMS_MIN_HEIGHT, ResourceType.DIMENSION), + // The animation of loading screen used in those activities which is non of below type. CONFIG_PROGRESS_ILLUSTRATION_DEFAULT( PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DEFAULT, ResourceType.ILLUSTRATION), @@ -188,9 +262,14 @@ public enum PartnerConfig { CONFIG_PROGRESS_ILLUSTRATION_UPDATE( PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_UPDATE, ResourceType.ILLUSTRATION), + // The animation of loading screen to define how long showing on the pages. CONFIG_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS( - PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS, ResourceType.INTEGER); + PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS, ResourceType.INTEGER), + + // The transition type to decide the transition between activities or fragments. + CONFIG_TRANSITION_TYPE(PartnerConfigKey.KEY_TRANSITION_TYPE, ResourceType.INTEGER); + /** Resource type of the partner resources type. */ public enum ResourceType { INTEGER, BOOL, diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java index a29a235..9b5b592 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigHelper.java @@ -261,8 +261,8 @@ public class PartnerConfigHelper { } /** - * Returns the dimension of given {@code resourceConfig}. If the given {@code resourceConfig} not - * found, will return {@code defaultValue}. If the {@code ResourceType} of given {@code + * Returns the dimension of given {@code resourceConfig}. If the given {@code resourceConfig} is + * not found, will return {@code defaultValue}. If the {@code ResourceType} of given {@code * resourceConfig} is not dimension, will throw IllegalArgumentException. * * @param context The context of client activity @@ -344,6 +344,39 @@ public class PartnerConfigHelper { } /** + * Returns the integer of given {@code resourceConfig}. If the given {@code resourceConfig} is not + * found, will return {@code defaultValue}. If the {@code ResourceType} of given {@code + * resourceConfig} is not dimension, will throw IllegalArgumentException. + * + * @param context The context of client activity + * @param resourceConfig The {@code PartnerConfig} of target resource + * @param defaultValue The default value + */ + public int getInteger(@NonNull Context context, PartnerConfig resourceConfig, int defaultValue) { + if (resourceConfig.getResourceType() != ResourceType.INTEGER) { + throw new IllegalArgumentException("Not a integer resource"); + } + + if (partnerResourceCache.containsKey(resourceConfig)) { + return (int) partnerResourceCache.get(resourceConfig); + } + + int result = defaultValue; + try { + ResourceEntry resourceEntry = + getResourceEntryFromKey(context, resourceConfig.getResourceName()); + Resources resource = resourceEntry.getResources(); + int resId = resourceEntry.getResourceId(); + + result = resource.getInteger(resId); + partnerResourceCache.put(resourceConfig, result); + } catch (NullPointerException exception) { + // fall through + } + return result; + } + + /** * Returns the {@link ResourceEntry} of given {@code resourceConfig}, or {@code null} if the given * {@code resourceConfig} is not found. If the {@link ResourceType} of the given {@code * resourceConfig} is not illustration, IllegalArgumentException will be thrown. diff --git a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java index 840472e..d2fd1a5 100644 --- a/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java +++ b/partnerconfig/java/com/google/android/setupcompat/partnerconfig/PartnerConfigKey.java @@ -51,25 +51,47 @@ import java.lang.annotation.RetentionPolicy; PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_BG_COLOR, PartnerConfigKey.KEY_FOOTER_SECONDARY_BUTTON_TEXT_COLOR, PartnerConfigKey.KEY_LAYOUT_BACKGROUND_COLOR, + PartnerConfigKey.KEY_LAYOUT_MARGIN_START, + PartnerConfigKey.KEY_LAYOUT_MARGIN_END, PartnerConfigKey.KEY_HEADER_TEXT_SIZE, PartnerConfigKey.KEY_HEADER_TEXT_COLOR, PartnerConfigKey.KEY_HEADER_FONT_FAMILY, PartnerConfigKey.KEY_HEADER_AREA_BACKGROUND_COLOR, + PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_TOP, + PartnerConfigKey.KEY_HEADER_TEXT_MARGIN_BOTTOM, + PartnerConfigKey.KEY_HEADER_CONTAINER_MARGIN_BOTTOM, + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_ENABLED, + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE, + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE, + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE, + PartnerConfigKey.KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA, PartnerConfigKey.KEY_LAYOUT_GRAVITY, + PartnerConfigKey.KEY_ICON_MARGIN_TOP, + PartnerConfigKey.KEY_ICON_SIZE, PartnerConfigKey.KEY_DESCRIPTION_TEXT_SIZE, PartnerConfigKey.KEY_DESCRIPTION_TEXT_COLOR, PartnerConfigKey.KEY_DESCRIPTION_LINK_TEXT_COLOR, PartnerConfigKey.KEY_DESCRIPTION_FONT_FAMILY, + PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_TOP, + PartnerConfigKey.KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM, PartnerConfigKey.KEY_CONTENT_TEXT_SIZE, PartnerConfigKey.KEY_CONTENT_TEXT_COLOR, PartnerConfigKey.KEY_CONTENT_LINK_TEXT_COLOR, PartnerConfigKey.KEY_CONTENT_FONT_FAMILY, PartnerConfigKey.KEY_CONTENT_LAYOUT_GRAVITY, + PartnerConfigKey.KEY_ITEMS_TITLE_TEXT_SIZE, + PartnerConfigKey.KEY_ITEMS_SUMMARY_TEXT_SIZE, + PartnerConfigKey.KEY_ITEMS_SUMMARY_MARGIN_TOP, + PartnerConfigKey.KEY_ITEMS_FONT_FAMILY, + PartnerConfigKey.KEY_ITEMS_PADDING_TOP, + PartnerConfigKey.KEY_ITEMS_PADDING_BOTTOM, + PartnerConfigKey.KEY_ITEMS_MIN_HEIGHT, PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DEFAULT, PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_ACCOUNT, PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_CONNECTION, PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_UPDATE, PartnerConfigKey.KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS, + PartnerConfigKey.KEY_TRANSITION_TYPE, }) // TODO: can be removed and always reference PartnerConfig.getResourceName()? @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) @@ -158,6 +180,12 @@ public @interface PartnerConfigKey { // Background color of layout String KEY_LAYOUT_BACKGROUND_COLOR = "setup_design_layout_bg_color"; + // Margin start of the layout + String KEY_LAYOUT_MARGIN_START = "setup_design_layout_margin_start"; + + // Margin end of the layout + String KEY_LAYOUT_MARGIN_END = "setup_design_layout_margin_end"; + // Text size of the header String KEY_HEADER_TEXT_SIZE = "setup_design_header_text_size"; @@ -167,12 +195,44 @@ public @interface PartnerConfigKey { // Font family of the header String KEY_HEADER_FONT_FAMILY = "setup_design_header_font_family"; + // Margin top size of the header text + String KEY_HEADER_TEXT_MARGIN_TOP = "setup_design_header_text_margin_top"; + + // Margin bottom size of the header text + String KEY_HEADER_TEXT_MARGIN_BOTTOM = "setup_design_header_text_margin_bottom"; + // Gravity of the header, icon and description String KEY_LAYOUT_GRAVITY = "setup_design_layout_gravity"; + // Margin top of the icon + String KEY_ICON_MARGIN_TOP = "setup_design_icon_margin_top"; + + // Size of the icon + String KEY_ICON_SIZE = "setup_design_icon_size"; + // Background color of the header area String KEY_HEADER_AREA_BACKGROUND_COLOR = "setup_design_header_area_background_color"; + // Margin bottom size of the header container + String KEY_HEADER_CONTAINER_MARGIN_BOTTOM = "setup_design_header_container_margin_bottom"; + + // Auto text size enabled status + String KEY_HEADER_AUTO_SIZE_ENABLED = "setup_design_header_auto_size_enabled"; + + // Max text size of header when auto size enabled. Ignored if auto size is false. + String KEY_HEADER_AUTO_SIZE_MAX_TEXT_SIZE = "setup_design_header_auto_size_max_text_size"; + + // Min text size of header when auto size enabled. Ignored if auto size is false. + String KEY_HEADER_AUTO_SIZE_MIN_TEXT_SIZE = "setup_design_header_auto_size_min_text_size"; + + // The max lines of the max text size when auto size enabled. Ignored if auto size is false. + String KEY_HEADER_AUTO_SIZE_MAX_LINE_OF_MAX_SIZE = + "setup_design_header_auto_size_max_line_of_max_size"; + + // Extra line spacing of header when auto size enabled. Ignored if auto size is false. + String KEY_HEADER_AUTO_SIZE_LINE_SPACING_EXTRA = + "setup_design_header_auto_size_line_spacing_extra"; + // Text size of the description String KEY_DESCRIPTION_TEXT_SIZE = "setup_design_description_text_size"; @@ -185,6 +245,12 @@ public @interface PartnerConfigKey { // Font family of the description String KEY_DESCRIPTION_FONT_FAMILY = "setup_design_description_font_family"; + // Margin top size of the header text + String KEY_DESCRIPTION_TEXT_MARGIN_TOP = "setup_design_description_text_margin_top"; + + // Margin bottom size of the header text + String KEY_DESCRIPTION_TEXT_MARGIN_BOTTOM = "setup_design_description_text_margin_bottom"; + // Text size of the body content text String KEY_CONTENT_TEXT_SIZE = "setup_design_content_text_size"; @@ -200,6 +266,27 @@ public @interface PartnerConfigKey { // Gravity of the body content text String KEY_CONTENT_LAYOUT_GRAVITY = "setup_design_content_layout_gravity"; + // The title text size of list items. + String KEY_ITEMS_TITLE_TEXT_SIZE = "setup_design_items_title_text_size"; + + // The summary text size of list items. + String KEY_ITEMS_SUMMARY_TEXT_SIZE = "setup_design_items_summary_text_size"; + + // The summary margin top of list items. + String KEY_ITEMS_SUMMARY_MARGIN_TOP = "setup_design_items_summary_margin_top"; + + // The font family of list items. + String KEY_ITEMS_FONT_FAMILY = "setup_design_items_font_family"; + + // The padding top of list items. + String KEY_ITEMS_PADDING_TOP = "setup_design_items_padding_top"; + + // The padding bottom of list items. + String KEY_ITEMS_PADDING_BOTTOM = "setup_design_items_padding_bottom"; + + // The minimum height of list items. + String KEY_ITEMS_MIN_HEIGHT = "setup_design_items_min_height"; + // The animation of loading screen used in those activities which is non of below type. String KEY_PROGRESS_ILLUSTRATION_DEFAULT = "progress_illustration_custom_default"; @@ -218,4 +305,7 @@ public @interface PartnerConfigKey { // The minimum illustration display time, set to 0 may cause the illustration stuck String KEY_PROGRESS_ILLUSTRATION_DISPLAY_MINIMUM_MS = "progress_illustration_display_minimum_ms"; + + // The transition type between activities + String KEY_TRANSITION_TYPE = "setup_design_transition_type"; } |