[flutter_releases] Revert "Reland "Add shadowColor and surfaceTintColor to Dialog and Di… (#109170) (#109225)

Co-authored-by: Xilai Zhang <xilaizhang@google.com>
diff --git a/dev/tools/gen_defaults/lib/dialog_template.dart b/dev/tools/gen_defaults/lib/dialog_template.dart
index 9fad9b7..6fe1174 100644
--- a/dev/tools/gen_defaults/lib/dialog_template.dart
+++ b/dev/tools/gen_defaults/lib/dialog_template.dart
@@ -27,11 +27,9 @@
   @override
   Color? get iconColor => _colors.secondary;
 
+  // TODO(darrenaustin): overlay should be handled by Material widget: https://github.com/flutter/flutter/issues/9160
   @override
-  Color? get backgroundColor => ${componentColor("md.comp.dialog.container")};
-
-  @override
-  Color? get surfaceTintColor => ${componentColor("md.comp.dialog.container.surface-tint-layer")};
+  Color? get backgroundColor => ElevationOverlay.colorWithOverlay(${componentColor("md.comp.dialog.container")}, _colors.primary, ${elevation("md.comp.dialog.container")});
 
   @override
   TextStyle? get titleTextStyle => ${textStyle("md.comp.dialog.headline")};
diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart
index 21dd152..a85dd27 100644
--- a/packages/flutter/lib/src/material/dialog.dart
+++ b/packages/flutter/lib/src/material/dialog.dart
@@ -11,6 +11,7 @@
 import 'colors.dart';
 import 'debug.dart';
 import 'dialog_theme.dart';
+import 'elevation_overlay.dart';
 import 'ink_well.dart';
 import 'material.dart';
 import 'material_localizations.dart';
@@ -45,8 +46,6 @@
     super.key,
     this.backgroundColor,
     this.elevation,
-    this.shadowColor,
-    this.surfaceTintColor,
     this.insetAnimationDuration = const Duration(milliseconds: 100),
     this.insetAnimationCurve = Curves.decelerate,
     this.insetPadding = _defaultInsetPadding,
@@ -54,8 +53,7 @@
     this.shape,
     this.alignment,
     this.child,
-  }) : assert(clipBehavior != null),
-       assert(elevation == null || elevation >= 0.0);
+  }) : assert(clipBehavior != null);
 
   /// {@template flutter.material.dialog.backgroundColor}
   /// The background color of the surface of this [Dialog].
@@ -69,53 +67,12 @@
   /// {@template flutter.material.dialog.elevation}
   /// The z-coordinate of this [Dialog].
   ///
-  /// Controls how far above the parent the dialog will appear. Elevation is
-  /// represented by a drop shadow if [shadowColor] is non null,
-  /// and a surface tint overlay on the background color if [surfaceTintColor] is
-  /// non null.
-  ///
-  /// If null then [DialogTheme.elevation] is used, and if that is null then
-  /// the elevation will match the Material Design specification for Dialogs.
-  ///
-  /// See also:
-  ///   * [Material.elevation], which describes how [elevation] effects the
-  ///     drop shadow or surface tint overlay.
-  ///   * [shadowColor], color of the drop shadow used to indicate the elevation.
-  ///   * [surfaceTintColor], color of an overlay on top of the background
-  ///     color used to indicate the elevation.
-  ///   * <https://m3.material.io/components/dialogs/overview>, the Material
-  ///     Design specification for dialogs.
+  /// If null then [DialogTheme.elevation] is used, and if that's null then the
+  /// dialog's elevation is 24.0.
   /// {@endtemplate}
+  /// {@macro flutter.material.material.elevation}
   final double? elevation;
 
-  /// {@template flutter.material.dialog.shadowColor}
-  /// The color to paint the [elevation] shadow under the dialog's [Material].
-  ///
-  /// If null then no drop shadow will be painted.
-  ///
-  /// See also:
-  ///   * [Material.shadowColor], which describes how the drop shadow is painted.
-  ///   * [elevation], effects how the drop shadow is painted.
-  ///   * [surfaceTintColor], if non-null will also provide a surface tint
-  ///     overlay on the background color to indicate elevation.
-  /// {@endtemplate}
-  final Color? shadowColor;
-
-  /// {@template flutter.material.dialog.surfaceTintColor}
-  /// The color used as a surface tint overlay on the dialog's background color,
-  /// which reflects the dialog's [elevation].
-  ///
-  /// If null then no surface tint will be applied.
-  ///
-  /// See also:
-  ///   * [Material.surfaceTintColor], which describes how the surface tint will
-  ///     be applied to the background color of the dialog.
-  ///   * [elevation], effects the opacity of the surface tint.
-  ///   * [shadowColor], if non-null will also provide a drop shadow to
-  ///     indicate elevation.
-  /// {@endtemplate}
-  final Color? surfaceTintColor;
-
   /// {@template flutter.material.dialog.insetAnimationDuration}
   /// The duration of the animation to show when the system keyboard intrudes
   /// into the space that the dialog is placed in.
@@ -198,8 +155,6 @@
             child: Material(
               color: backgroundColor ?? dialogTheme.backgroundColor ?? Theme.of(context).dialogBackgroundColor,
               elevation: elevation ?? dialogTheme.elevation ?? defaults.elevation!,
-              shadowColor: shadowColor ?? dialogTheme.shadowColor ?? defaults.shadowColor,
-              surfaceTintColor: surfaceTintColor ?? dialogTheme.surfaceTintColor ?? defaults.surfaceTintColor,
               shape: shape ?? dialogTheme.shape ?? defaults.shape!,
               type: MaterialType.card,
               clipBehavior: clipBehavior,
@@ -325,8 +280,6 @@
     this.buttonPadding,
     this.backgroundColor,
     this.elevation,
-    this.shadowColor,
-    this.surfaceTintColor,
     this.semanticLabel,
     this.insetPadding = _defaultInsetPadding,
     this.clipBehavior = Clip.none,
@@ -525,14 +478,9 @@
   final Color? backgroundColor;
 
   /// {@macro flutter.material.dialog.elevation}
+  /// {@macro flutter.material.material.elevation}
   final double? elevation;
 
-  /// {@macro flutter.material.dialog.shadowColor}
-  final Color? shadowColor;
-
-  /// {@macro flutter.material.dialog.surfaceTintColor}
-  final Color? surfaceTintColor;
-
   /// The semantic label of the dialog used by accessibility frameworks to
   /// announce screen transitions when the dialog is opened and closed.
   ///
@@ -747,8 +695,6 @@
     return Dialog(
       backgroundColor: backgroundColor,
       elevation: elevation,
-      shadowColor: shadowColor,
-      surfaceTintColor: surfaceTintColor,
       insetPadding: insetPadding,
       clipBehavior: clipBehavior,
       shape: shape,
@@ -914,8 +860,6 @@
     this.contentPadding = const EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0),
     this.backgroundColor,
     this.elevation,
-    this.shadowColor,
-    this.surfaceTintColor,
     this.semanticLabel,
     this.insetPadding = _defaultInsetPadding,
     this.clipBehavior = Clip.none,
@@ -971,14 +915,9 @@
   final Color? backgroundColor;
 
   /// {@macro flutter.material.dialog.elevation}
+  /// {@macro flutter.material.material.elevation}
   final double? elevation;
 
-  /// {@macro flutter.material.dialog.shadowColor}
-  final Color? shadowColor;
-
-  /// {@macro flutter.material.dialog.surfaceTintColor}
-  final Color? surfaceTintColor;
-
   /// The semantic label of the dialog used by accessibility frameworks to
   /// announce screen transitions when the dialog is opened and closed.
   ///
@@ -1092,8 +1031,6 @@
     return Dialog(
       backgroundColor: backgroundColor,
       elevation: elevation,
-      shadowColor: shadowColor,
-      surfaceTintColor: surfaceTintColor,
       insetPadding: insetPadding,
       clipBehavior: clipBehavior,
       shape: shape,
@@ -1360,9 +1297,6 @@
   Color? get backgroundColor => Theme.of(context).dialogBackgroundColor;
 
   @override
-  Color? get shadowColor => Theme.of(context).shadowColor;
-
-  @override
   TextStyle? get titleTextStyle => _textTheme.headline6;
 
   @override
@@ -1396,11 +1330,9 @@
   @override
   Color? get iconColor => _colors.secondary;
 
+  // TODO(darrenaustin): overlay should be handled by Material widget: https://github.com/flutter/flutter/issues/9160
   @override
-  Color? get backgroundColor => _colors.surface;
-
-  @override
-  Color? get surfaceTintColor => _colors.surfaceTint;
+  Color? get backgroundColor => ElevationOverlay.colorWithOverlay(_colors.surface, _colors.primary, 6.0);
 
   @override
   TextStyle? get titleTextStyle => _textTheme.headlineSmall;
diff --git a/packages/flutter/lib/src/material/dialog_theme.dart b/packages/flutter/lib/src/material/dialog_theme.dart
index a53afee..b3c7cd3 100644
--- a/packages/flutter/lib/src/material/dialog_theme.dart
+++ b/packages/flutter/lib/src/material/dialog_theme.dart
@@ -30,8 +30,6 @@
   const DialogTheme({
     this.backgroundColor,
     this.elevation,
-    this.shadowColor,
-    this.surfaceTintColor,
     this.shape,
     this.alignment,
     this.iconColor,
@@ -46,12 +44,6 @@
   /// Overrides the default value for [Dialog.elevation].
   final double? elevation;
 
-  /// Overrides the default value for [Dialog.shadowColor].
-  final Color? shadowColor;
-
-  /// Overrides the default value for [Dialog.surfaceTintColor].
-  final Color? surfaceTintColor;
-
   /// Overrides the default value for [Dialog.shape].
   final ShapeBorder? shape;
 
@@ -77,8 +69,6 @@
   DialogTheme copyWith({
     Color? backgroundColor,
     double? elevation,
-    Color? shadowColor,
-    Color? surfaceTintColor,
     ShapeBorder? shape,
     AlignmentGeometry? alignment,
     Color? iconColor,
@@ -89,8 +79,6 @@
     return DialogTheme(
       backgroundColor: backgroundColor ?? this.backgroundColor,
       elevation: elevation ?? this.elevation,
-      shadowColor: shadowColor ?? this.shadowColor,
-      surfaceTintColor: surfaceTintColor ?? this.surfaceTintColor,
       shape: shape ?? this.shape,
       alignment: alignment ?? this.alignment,
       iconColor: iconColor ?? this.iconColor,
@@ -115,8 +103,6 @@
     return DialogTheme(
       backgroundColor: Color.lerp(a?.backgroundColor, b?.backgroundColor, t),
       elevation: lerpDouble(a?.elevation, b?.elevation, t),
-      shadowColor: Color.lerp(a?.shadowColor, b?.shadowColor, t),
-      surfaceTintColor: Color.lerp(a?.surfaceTintColor, b?.surfaceTintColor, t),
       shape: ShapeBorder.lerp(a?.shape, b?.shape, t),
       alignment: AlignmentGeometry.lerp(a?.alignment, b?.alignment, t),
       iconColor: Color.lerp(a?.iconColor, b?.iconColor, t),
@@ -140,8 +126,6 @@
     return other is DialogTheme
         && other.backgroundColor == backgroundColor
         && other.elevation == elevation
-        && other.shadowColor == shadowColor
-        && other.surfaceTintColor == surfaceTintColor
         && other.shape == shape
         && other.alignment == alignment
         && other.iconColor == iconColor
@@ -155,8 +139,6 @@
     super.debugFillProperties(properties);
     properties.add(ColorProperty('backgroundColor', backgroundColor));
     properties.add(DoubleProperty('elevation', elevation));
-    properties.add(ColorProperty('shadowColor', shadowColor));
-    properties.add(ColorProperty('surfaceTintColor', surfaceTintColor));
     properties.add(DiagnosticsProperty<ShapeBorder>('shape', shape, defaultValue: null));
     properties.add(DiagnosticsProperty<AlignmentGeometry>('alignment', alignment, defaultValue: null));
     properties.add(ColorProperty('iconColor', iconColor));
diff --git a/packages/flutter/test/material/dialog_test.dart b/packages/flutter/test/material/dialog_test.dart
index 63bf9a2..f71677c 100644
--- a/packages/flutter/test/material/dialog_test.dart
+++ b/packages/flutter/test/material/dialog_test.dart
@@ -140,13 +140,9 @@
 
   testWidgets('Custom dialog elevation', (WidgetTester tester) async {
     const double customElevation = 12.0;
-    const Color shadowColor = Color(0xFF000001);
-    const Color surfaceTintColor = Color(0xFF000002);
     const AlertDialog dialog = AlertDialog(
       actions: <Widget>[ ],
       elevation: customElevation,
-      shadowColor: shadowColor,
-      surfaceTintColor: surfaceTintColor,
     );
     await tester.pumpWidget(_buildAppWithDialog(dialog));
 
@@ -155,8 +151,6 @@
 
     final Material materialWidget = _getMaterialFromDialog(tester);
     expect(materialWidget.elevation, customElevation);
-    expect(materialWidget.shadowColor, shadowColor);
-    expect(materialWidget.surfaceTintColor, surfaceTintColor);
   });
 
   testWidgets('Custom Title Text Style', (WidgetTester tester) async {
diff --git a/packages/flutter/test/material/dialog_theme_test.dart b/packages/flutter/test/material/dialog_theme_test.dart
index 54bdf92..5666af4 100644
--- a/packages/flutter/test/material/dialog_theme_test.dart
+++ b/packages/flutter/test/material/dialog_theme_test.dart
@@ -51,8 +51,6 @@
     const DialogTheme(
       backgroundColor: Color(0xff123456),
       elevation: 8.0,
-      shadowColor: Color(0xff000001),
-      surfaceTintColor: Color(0xff000002),
       alignment: Alignment.bottomLeft,
       iconColor: Color(0xff654321),
       titleTextStyle: TextStyle(color: Color(0xffffffff)),
@@ -65,8 +63,6 @@
     expect(description, <String>[
       'backgroundColor: Color(0xff123456)',
       'elevation: 8.0',
-      'shadowColor: Color(0xff000001)',
-      'surfaceTintColor: Color(0xff000002)',
       'alignment: Alignment.bottomLeft',
       'iconColor: Color(0xff654321)',
       'titleTextStyle: TextStyle(inherit: true, color: Color(0xffffffff))',
@@ -93,19 +89,11 @@
 
   testWidgets('Custom dialog elevation', (WidgetTester tester) async {
     const double customElevation = 12.0;
-    const Color shadowColor = Color(0xFF000001);
-    const Color surfaceTintColor = Color(0xFF000002);
     const AlertDialog dialog = AlertDialog(
       title: Text('Title'),
       actions: <Widget>[ ],
     );
-    final ThemeData theme = ThemeData(
-      dialogTheme: const DialogTheme(
-        elevation: customElevation,
-        shadowColor: shadowColor,
-        surfaceTintColor: surfaceTintColor,
-      ),
-    );
+    final ThemeData theme = ThemeData(dialogTheme: const DialogTheme(elevation: customElevation));
 
     await tester.pumpWidget(
       _appWithDialog(tester, dialog, theme: theme),
@@ -115,8 +103,6 @@
 
     final Material materialWidget = _getMaterialFromDialog(tester);
     expect(materialWidget.elevation, customElevation);
-    expect(materialWidget.shadowColor, shadowColor);
-    expect(materialWidget.surfaceTintColor, surfaceTintColor);
   });
 
   testWidgets('Custom dialog shape', (WidgetTester tester) async {