From ded6451e8900cf75df18345cc58e3ebc34cdb3e4 Mon Sep 17 00:00:00 2001 From: pubiqq Date: Thu, 8 May 2025 19:46:22 +0300 Subject: [PATCH] [Dialog] Add default shape styles in dialog themes --- .../dialog/res/values/themes_base.xml | 22 ++++++++++ .../android/material/theme/ThemeTest.java | 41 +++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/lib/java/com/google/android/material/dialog/res/values/themes_base.xml b/lib/java/com/google/android/material/dialog/res/values/themes_base.xml index 7549a0c1f1b..5583120cbba 100644 --- a/lib/java/com/google/android/material/dialog/res/values/themes_base.xml +++ b/lib/java/com/google/android/material/dialog/res/values/themes_base.xml @@ -394,11 +394,22 @@ @integer/m3_sys_shape_corner_full_corner_family + @dimen/m3_sys_shape_corner_value_extra_small + @dimen/m3_sys_shape_corner_value_small + @dimen/m3_sys_shape_corner_value_medium + @dimen/m3_sys_shape_corner_value_large + @dimen/m3_sys_shape_corner_value_large_increased + @dimen/m3_sys_shape_corner_value_extra_large + @dimen/m3_sys_shape_corner_value_extra_large_increased + @dimen/m3_sys_shape_corner_value_extra_extra_large @style/ShapeAppearance.Material3.Corner.ExtraSmall @style/ShapeAppearance.Material3.Corner.Small @style/ShapeAppearance.Material3.Corner.Medium @style/ShapeAppearance.Material3.Corner.Large + @style/ShapeAppearance.Material3.Corner.LargeIncreased @style/ShapeAppearance.Material3.Corner.ExtraLarge + @style/ShapeAppearance.Material3.Corner.ExtraLargeIncreased + @style/ShapeAppearance.Material3.Corner.ExtraExtraLarge @style/ShapeAppearance.Material3.SmallComponent @@ -695,11 +706,22 @@ @integer/m3_sys_shape_corner_full_corner_family + @dimen/m3_sys_shape_corner_value_extra_small + @dimen/m3_sys_shape_corner_value_small + @dimen/m3_sys_shape_corner_value_medium + @dimen/m3_sys_shape_corner_value_large + @dimen/m3_sys_shape_corner_value_large_increased + @dimen/m3_sys_shape_corner_value_extra_large + @dimen/m3_sys_shape_corner_value_extra_large_increased + @dimen/m3_sys_shape_corner_value_extra_extra_large @style/ShapeAppearance.Material3.Corner.ExtraSmall @style/ShapeAppearance.Material3.Corner.Small @style/ShapeAppearance.Material3.Corner.Medium @style/ShapeAppearance.Material3.Corner.Large + @style/ShapeAppearance.Material3.Corner.LargeIncreased @style/ShapeAppearance.Material3.Corner.ExtraLarge + @style/ShapeAppearance.Material3.Corner.ExtraLargeIncreased + @style/ShapeAppearance.Material3.Corner.ExtraExtraLarge @style/ShapeAppearance.Material3.SmallComponent diff --git a/lib/javatests/com/google/android/material/theme/ThemeTest.java b/lib/javatests/com/google/android/material/theme/ThemeTest.java index 238cd01ccd1..15d51a2f164 100644 --- a/lib/javatests/com/google/android/material/theme/ThemeTest.java +++ b/lib/javatests/com/google/android/material/theme/ThemeTest.java @@ -211,6 +211,12 @@ public class ThemeTest { .addAll(MATERIAL_NON_BRIDGE_WIDGET_STYLE_ATTRIBUTES) .build(); + private static final ImmutableList MATERIAL_BRIDGE_SHAPE_ATTRIBUTES = + ImmutableList.of( + R.attr.shapeAppearanceSmallComponent, + R.attr.shapeAppearanceMediumComponent, + R.attr.shapeAppearanceLargeComponent); + /** * These are all the attributes where the light bridge theme should match the light full theme and * the dark bridge theme should match the dark full theme. @@ -219,6 +225,7 @@ public class ThemeTest { ImmutableList.builder() .addAll(MATERIAL_BRIDGE_COLOR_ATTRIBUTES) .addAll(MATERIAL_BRIDGE_WIDGET_STYLE_ATTRIBUTES) + .addAll(MATERIAL_BRIDGE_SHAPE_ATTRIBUTES) .addAll(MATERIAL_MOTION_ATTRIBUTES) .addAll(DEPRECATED_TYPOGRAPHY_ATTRIBUTES) .build(); @@ -231,6 +238,7 @@ public class ThemeTest { ImmutableList.builder() .addAll(MATERIAL_FULL_COLOR_ATTRIBUTES) .addAll(MATERIAL_MOTION_ATTRIBUTES) + .addAll(MATERIAL_BRIDGE_SHAPE_ATTRIBUTES) .addAll(MATERIAL_COMMON_WIDGET_STYLE_ATTRIBUTES) .build(); @@ -363,6 +371,32 @@ public class ThemeTest { .addAll(DEFAULT_FRAMEWORK_TEXT_STYLE_ATTRIBUTES) .build(); + private static final ImmutableList M3_SHAPE_ATTRIBUTES = + ImmutableList.of( + R.attr.shapeCornerFamily, + R.attr.shapeCornerSizeExtraSmall, + R.attr.shapeCornerSizeSmall, + R.attr.shapeCornerSizeMedium, + R.attr.shapeCornerSizeLarge, + R.attr.shapeCornerSizeLargeIncreased, + R.attr.shapeCornerSizeExtraLarge, + R.attr.shapeCornerSizeExtraLargeIncreased, + R.attr.shapeCornerSizeExtraExtraLarge, + R.attr.shapeAppearanceCornerExtraSmall, + R.attr.shapeAppearanceCornerSmall, + R.attr.shapeAppearanceCornerMedium, + R.attr.shapeAppearanceCornerLarge, + R.attr.shapeAppearanceCornerLargeIncreased, + R.attr.shapeAppearanceCornerExtraLarge, + R.attr.shapeAppearanceCornerExtraLargeIncreased, + R.attr.shapeAppearanceCornerExtraExtraLarge); + + private static final ImmutableList M3_FULL_SHAPE_ATTRIBUTES = + ImmutableList.builder() + .addAll(MATERIAL_BRIDGE_SHAPE_ATTRIBUTES) + .addAll(M3_SHAPE_ATTRIBUTES) + .build(); + private static final ImmutableList M3_ACTIVE_MOTION_ATTRIBUTES = ImmutableList.of( R.attr.motionSpringFastSpatial, @@ -484,6 +518,7 @@ public class ThemeTest { ImmutableList.builder() .addAll(M3_FULL_COLOR_ATTRIBUTES) .addAll(M3_FULL_TYPOGRAPHY_ATTRIBUTES) + .addAll(M3_FULL_SHAPE_ATTRIBUTES) .addAll(M3_FULL_MOTION_ATTRIBUTES) .addAll(M3_COMMON_WIDGET_STYLE_ATTRIBUTES) .build(); @@ -609,6 +644,12 @@ public static ImmutableList getTestData() { R.style.Theme_Material3_Dark, R.style.Theme_Material3_Light, M3_FULL_TYPOGRAPHY_ATTRIBUTES)) + // Compare M3 Light and Dark themes - they should have the same shape styles. + .addAll( + createTestData( + R.style.Theme_Material3_Dark, + R.style.Theme_Material3_Light, + M3_FULL_SHAPE_ATTRIBUTES)) // Compare M3 Light and Dark themes - they should have the same motion styles. .addAll( createTestData(