Unverified Commit f3dbefd3 authored by Kate Lovett's avatar Kate Lovett Committed by GitHub

Revert "Adding physicalDepth to MediaQueryData & TestWindow (#37718)" (#37938)

This reverts commit 3a2d3081.
parent 8fe424f9
......@@ -74,7 +74,6 @@ enum Orientation {
/// widgets that reduce those properties by the same amount.
/// The [removePadding], [removeViewPadding], and [removeInsets] methods are
/// useful for this.
///
/// See also:
///
/// * [Scaffold], [SafeArea], [CupertinoTabScaffold], and
......@@ -94,7 +93,6 @@ class MediaQueryData {
this.padding = EdgeInsets.zero,
this.viewInsets = EdgeInsets.zero,
this.viewPadding = EdgeInsets.zero,
this.physicalDepth = double.maxFinite,
this.alwaysUse24HourFormat = false,
this.accessibleNavigation = false,
this.invertColors = false,
......@@ -116,7 +114,6 @@ class MediaQueryData {
padding = EdgeInsets.fromWindowPadding(window.padding, window.devicePixelRatio),
viewPadding = EdgeInsets.fromWindowPadding(window.viewPadding, window.devicePixelRatio),
viewInsets = EdgeInsets.fromWindowPadding(window.viewInsets, window.devicePixelRatio),
physicalDepth = window.physicalDepth,
accessibleNavigation = window.accessibilityFeatures.accessibleNavigation,
invertColors = window.accessibilityFeatures.invertColors,
disableAnimations = window.accessibilityFeatures.disableAnimations,
......@@ -213,19 +210,6 @@ class MediaQueryData {
/// property and how it relates to [padding] and [viewInsets].
final EdgeInsets viewPadding;
/// The physical depth is the maximum elevation that the Window allows.
///
/// Physical layers drawn at or above this elevation will have their elevation
/// clamped to this value. This can happen if the physical layer itself has
/// an elevation larger than the available depth, or if some ancestor of the
/// layer causes it to have a cumulative elevation that is larger than the
/// available depth.
///
/// The default value is [double.maxFinite], which is used for platforms that
/// do not specify a maximum elevation. This property is currently only
/// expected to be set to a non-default value on Fuchsia.
final double physicalDepth;
/// Whether to use 24-hour format when formatting time.
///
/// The behavior of this flag is different across platforms:
......@@ -275,8 +259,7 @@ class MediaQueryData {
/// * [Window.AccessibilityFeatures], where the setting originates.
final bool boldText;
/// The orientation of the media (e.g., whether the device is in landscape or
/// portrait mode).
/// The orientation of the media (e.g., whether the device is in landscape or portrait mode).
Orientation get orientation {
return size.width > size.height ? Orientation.landscape : Orientation.portrait;
}
......@@ -291,7 +274,6 @@ class MediaQueryData {
EdgeInsets padding,
EdgeInsets viewPadding,
EdgeInsets viewInsets,
double physicalDepth,
bool alwaysUse24HourFormat,
bool disableAnimations,
bool invertColors,
......@@ -306,7 +288,6 @@ class MediaQueryData {
padding: padding ?? this.padding,
viewPadding: viewPadding ?? this.viewPadding,
viewInsets: viewInsets ?? this.viewInsets,
physicalDepth: physicalDepth ?? this.physicalDepth,
alwaysUse24HourFormat: alwaysUse24HourFormat ?? this.alwaysUse24HourFormat,
invertColors: invertColors ?? this.invertColors,
disableAnimations: disableAnimations ?? this.disableAnimations,
......@@ -324,7 +305,7 @@ class MediaQueryData {
///
/// See also:
///
/// * [MediaQuery.removePadding], which uses this method to remove [padding]
/// * [new MediaQuery.removePadding], which uses this method to remove padding
/// from the ambient [MediaQuery].
/// * [SafeArea], which both removes the padding from the [MediaQuery] and
/// adds a [Padding] widget.
......@@ -373,8 +354,8 @@ class MediaQueryData {
///
/// See also:
///
/// * [MediaQuery.removeViewInsets], which uses this method to remove
/// [viewInsets] from the ambient [MediaQuery].
/// * [new MediaQuery.removeViewInsets], which uses this method to remove
/// padding from the ambient [MediaQuery].
/// * [removePadding], the same thing but for [padding].
/// * [removeViewPadding], the same thing but for [viewPadding].
MediaQueryData removeViewInsets({
......@@ -420,8 +401,8 @@ class MediaQueryData {
///
/// See also:
///
/// * [MediaQuery.removeViewPadding], which uses this method to remove
/// [viewPadding] from the ambient [MediaQuery].
/// * [new MediaQuery.removeViewPadding], which uses this method to remove
/// padding from the ambient [MediaQuery].
/// * [removePadding], the same thing but for [padding].
/// * [removeViewInsets], the same thing but for [viewInsets].
MediaQueryData removeViewPadding({
......@@ -470,7 +451,6 @@ class MediaQueryData {
&& typedOther.padding == padding
&& typedOther.viewPadding == viewPadding
&& typedOther.viewInsets == viewInsets
&& typedOther.physicalDepth == physicalDepth
&& typedOther.alwaysUse24HourFormat == alwaysUse24HourFormat
&& typedOther.disableAnimations == disableAnimations
&& typedOther.invertColors == invertColors
......@@ -488,7 +468,6 @@ class MediaQueryData {
padding,
viewPadding,
viewInsets,
physicalDepth,
alwaysUse24HourFormat,
disableAnimations,
invertColors,
......@@ -507,7 +486,6 @@ class MediaQueryData {
'padding: $padding, '
'viewPadding: $viewPadding, '
'viewInsets: $viewInsets, '
'physicalDepth: $physicalDepth, '
'alwaysUse24HourFormat: $alwaysUse24HourFormat, '
'accessibleNavigation: $accessibleNavigation, '
'disableAnimations: $disableAnimations, '
......@@ -551,8 +529,8 @@ class MediaQuery extends InheritedWidget {
assert(data != null),
super(key: key, child: child);
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery]
/// from the given context, but removes the specified padding.
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery] from
/// the given context, but removes the specified paddings.
///
/// This should be inserted into the widget tree when the [MediaQuery] padding
/// is consumed by a widget in such a way that the padding is no longer
......@@ -572,11 +550,9 @@ class MediaQuery extends InheritedWidget {
///
/// * [SafeArea], which both removes the padding from the [MediaQuery] and
/// adds a [Padding] widget.
/// * [MediaQueryData.padding], the affected property of the
/// [MediaQueryData].
/// * [removeViewInsets], the same thing but for [MediaQueryData.viewInsets].
/// * [removeViewPadding], the same thing but for
/// [MediaQueryData.viewPadding].
/// * [MediaQueryData.padding], the affected property of the [MediaQueryData].
/// * [new removeViewInsets], the same thing but for removing view insets.
/// * [new removeViewPadding], the same thing but for removing view insets.
factory MediaQuery.removePadding({
Key key,
@required BuildContext context,
......@@ -598,8 +574,8 @@ class MediaQuery extends InheritedWidget {
);
}
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery]
/// from the given context, but removes the specified view insets.
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery] from
/// the given context, but removes the specified view insets.
///
/// This should be inserted into the widget tree when the [MediaQuery] view
/// insets are consumed by a widget in such a way that the view insets are no
......@@ -617,11 +593,9 @@ class MediaQuery extends InheritedWidget {
///
/// See also:
///
/// * [MediaQueryData.viewInsets], the affected property of the
/// [MediaQueryData].
/// * [removePadding], the same thing but for [MediaQueryData.padding].
/// * [removeViewPadding], the same thing but for
/// [MediaQueryData.viewPadding].
/// * [MediaQueryData.viewInsets], the affected property of the [MediaQueryData].
/// * [new removePadding], the same thing but for removing paddings.
/// * [new removeViewPadding], the same thing but for removing view insets.
factory MediaQuery.removeViewInsets({
Key key,
@required BuildContext context,
......@@ -643,8 +617,8 @@ class MediaQuery extends InheritedWidget {
);
}
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery]
/// from the given context, but removes the specified view padding.
/// Creates a new [MediaQuery] that inherits from the ambient [MediaQuery] from
/// the given context, but removes the specified view padding.
///
/// This should be inserted into the widget tree when the [MediaQuery] view
/// padding is consumed by a widget in such a way that the view padding is no
......@@ -664,8 +638,8 @@ class MediaQuery extends InheritedWidget {
///
/// * [MediaQueryData.viewPadding], the affected property of the
/// [MediaQueryData].
/// * [removePadding], the same thing but for [MediaQueryData.padding].
/// * [removeViewInsets], the same thing but for [MediaQueryData.viewInsets].
/// * [new removePadding], the same thing but for removing paddings.
/// * [new removeViewInsets], the same thing but for removing view insets.
factory MediaQuery.removeViewPadding({
Key key,
@required BuildContext context,
......@@ -697,8 +671,8 @@ class MediaQuery extends InheritedWidget {
/// context.
///
/// You can use this function to query the size an orientation of the screen.
/// When that information changes, your widget will be scheduled to be
/// rebuilt, keeping your widget up-to-date.
/// When that information changes, your widget will be scheduled to be rebuilt,
/// keeping your widget up-to-date.
///
/// Typical usage is as follows:
///
......
......@@ -47,7 +47,6 @@ void main() {
expect(data.disableAnimations, false);
expect(data.boldText, false);
expect(data.platformBrightness, Brightness.light);
expect(data.physicalDepth, equals(WidgetsBinding.instance.window.physicalDepth));
});
testWidgets('MediaQueryData.copyWith defaults to source', (WidgetTester tester) async {
......@@ -59,7 +58,6 @@ void main() {
expect(copied.padding, data.padding);
expect(copied.viewPadding, data.viewPadding);
expect(copied.viewInsets, data.viewInsets);
expect(copied.physicalDepth, data.physicalDepth);
expect(copied.alwaysUse24HourFormat, data.alwaysUse24HourFormat);
expect(copied.accessibleNavigation, data.accessibleNavigation);
expect(copied.invertColors, data.invertColors);
......@@ -77,7 +75,6 @@ void main() {
padding: const EdgeInsets.all(9.10938),
viewPadding: const EdgeInsets.all(11.24031),
viewInsets: const EdgeInsets.all(1.67262),
physicalDepth: 120.0,
alwaysUse24HourFormat: true,
accessibleNavigation: true,
invertColors: true,
......@@ -91,7 +88,6 @@ void main() {
expect(copied.padding, const EdgeInsets.all(9.10938));
expect(copied.viewPadding, const EdgeInsets.all(11.24031));
expect(copied.viewInsets, const EdgeInsets.all(1.67262));
expect(copied.physicalDepth, 120.0);
expect(copied.alwaysUse24HourFormat, true);
expect(copied.accessibleNavigation, true);
expect(copied.invertColors, true);
......
......@@ -11,10 +11,10 @@ import 'package:meta/meta.dart';
/// for testing purposes.
///
/// Tests for certain widgets, e.g., [MaterialApp], might require faking certain
/// properties of a [Window]. [TestWindow] facilitates the faking of these
/// properties by overriding the properties of a real [Window] with desired fake
/// values. The binding used within tests, [TestWidgetsFlutterBinding], contains
/// a [TestWindow] that is used by all tests.
/// properties of a [Window]. [TestWindow] facilitates the faking of these properties
/// by overidding the properties of a real [Window] with desired fake values. The
/// binding used within tests, [TestWidgetsFlutterBinding], contains a [TestWindow]
/// that is used by all tests.
///
/// ## Sample Code
///
......@@ -42,11 +42,10 @@ import 'package:meta/meta.dart';
/// return to using the real [Window] property, [TestWindow] provides
/// methods to clear each individual test value, e.g., [clearLocaleTestValue()].
///
/// To clear all fake test values in a [TestWindow], consider using
/// [clearAllTestValues()].
/// To clear all fake test values in a [TestWindow], consider using [clearAllTestValues()].
class TestWindow implements Window {
/// Constructs a [TestWindow] that defers all behavior to the given [Window]
/// unless explicitly overridden for test purposes.
/// Constructs a [TestWindow] that defers all behavior to the given [window] unless
/// explicitly overidden for test purposes.
TestWindow({
@required Window window,
}) : _window = window;
......@@ -57,14 +56,12 @@ class TestWindow implements Window {
@override
double get devicePixelRatio => _devicePixelRatio ?? _window.devicePixelRatio;
double _devicePixelRatio;
/// Hides the real device pixel ratio and reports the given [devicePixelRatio]
/// instead.
/// Hides the real device pixel ratio and reports the given [devicePixelRatio] instead.
set devicePixelRatioTestValue(double devicePixelRatio) {
_devicePixelRatio = devicePixelRatio;
onMetricsChanged();
}
/// Deletes any existing test device pixel ratio and returns to using the real
/// device pixel ratio.
/// Deletes any existing test device pixel ratio and returns to using the real device pixel ratio.
void clearDevicePixelRatioTestValue() {
_devicePixelRatio = null;
onMetricsChanged();
......@@ -73,62 +70,43 @@ class TestWindow implements Window {
@override
Size get physicalSize => _physicalSizeTestValue ?? _window.physicalSize;
Size _physicalSizeTestValue;
/// Hides the real physical size and reports the given [physicalSizeTestValue]
/// instead.
/// Hides the real physical size and reports the given [physicalSizeTestValue] instead.
set physicalSizeTestValue (Size physicalSizeTestValue) {
_physicalSizeTestValue = physicalSizeTestValue;
onMetricsChanged();
}
/// Deletes any existing test physical size and returns to using the real
/// physical size.
/// Deletes any existing test physical size and returns to using the real physical size.
void clearPhysicalSizeTestValue() {
_physicalSizeTestValue = null;
onMetricsChanged();
}
@override
double get physicalDepth => _physicalDepthTestValue ?? _window.physicalDepth;
double _physicalDepthTestValue;
/// Hides the real physical depth and reports the given
/// [physicalDepthTestValue] instead.
set physicalDepthTestValue (double physicalDepthTestValue) {
_physicalDepthTestValue = physicalDepthTestValue;
onMetricsChanged();
}
/// Deletes any existing test physical depth and returns to using the real
/// physical depth.
void clearPhysicalDepthTestValue() {
_physicalDepthTestValue = null;
onMetricsChanged();
}
@override
WindowPadding get viewInsets => _viewInsetsTestValue ?? _window.viewInsets;
WindowPadding _viewInsetsTestValue;
/// Hides the real view insets and reports the given [viewInsetsTestValue]
/// instead.
/// Hides the real view insets and reports the given [viewInsetsTestValue] instead.
set viewInsetsTestValue(WindowPadding viewInsetsTestValue) {
_viewInsetsTestValue = viewInsetsTestValue;
onMetricsChanged();
}
/// Deletes any existing test view insets and returns to using the real view
/// insets.
/// Deletes any existing test view insets and returns to using the real view insets.
void clearViewInsetsTestValue() {
_viewInsetsTestValue = null;
onMetricsChanged();
}
@override
// TODO(dnfield): Remove this ignore once custom embedders have had time to catch up
// And make this property actually wrap _window.viewPadding.
// @override
// ignore: annotate_overrides, public_member_api_docs
WindowPadding get viewPadding => _viewPaddingTestValue ?? _window.padding;
WindowPadding _viewPaddingTestValue;
/// Hides the real view padding and reports the given [paddingTestValue]
/// instead.
/// Hides the real padding and reports the given [paddingTestValue] instead.
set viewPaddingTestValue(WindowPadding viewPaddingTestValue) {
_viewPaddingTestValue = viewPaddingTestValue;
onMetricsChanged();
}
/// Deletes any existing test view padding and returns to using the real
/// viewPadding.
/// Deletes any existing test padding and returns to using the real padding.
void clearViewPaddingTestValue() {
_viewPaddingTestValue = null;
onMetricsChanged();
......@@ -201,14 +179,12 @@ class TestWindow implements Window {
@override
double get textScaleFactor => _textScaleFactorTestValue ?? _window.textScaleFactor;
double _textScaleFactorTestValue;
/// Hides the real text scale factor and reports the given
/// [textScaleFactorTestValue] instead.
/// Hides the real text scale factor and reports the given [textScaleFactorTestValue] instead.
set textScaleFactorTestValue(double textScaleFactorTestValue) {
_textScaleFactorTestValue = textScaleFactorTestValue;
onTextScaleFactorChanged();
}
/// Deletes any existing test text scale factor and returns to using the real
/// text scale factor.
/// Deletes any existing test text scale factor and returns to using the real text scale factor.
void clearTextScaleFactorTestValue() {
_textScaleFactorTestValue = null;
onTextScaleFactorChanged();
......@@ -223,14 +199,12 @@ class TestWindow implements Window {
set onPlatformBrightnessChanged(VoidCallback callback) {
_window.onPlatformBrightnessChanged = callback;
}
/// Hides the real text scale factor and reports the given
/// [platformBrightnessTestValue] instead.
/// Hides the real text scale factor and reports the given [platformBrightnessTestValue] instead.
set platformBrightnessTestValue(Brightness platformBrightnessTestValue) {
_platformBrightnessTestValue = platformBrightnessTestValue;
onPlatformBrightnessChanged();
}
/// Deletes any existing test platform brightness and returns to using the
/// real platform brightness.
/// Deletes any existing test platform brightness and returns to using the real platform brightness.
void clearPlatformBrightnessTestValue() {
_platformBrightnessTestValue = null;
onPlatformBrightnessChanged();
......@@ -239,13 +213,11 @@ class TestWindow implements Window {
@override
bool get alwaysUse24HourFormat => _alwaysUse24HourFormatTestValue ?? _window.alwaysUse24HourFormat;
bool _alwaysUse24HourFormatTestValue;
/// Hides the real clock format and reports the given
/// [alwaysUse24HourFormatTestValue] instead.
/// Hides the real clock format and reports the given [alwaysUse24HourFormatTestValue] instead.
set alwaysUse24HourFormatTestValue(bool alwaysUse24HourFormatTestValue) {
_alwaysUse24HourFormatTestValue = alwaysUse24HourFormatTestValue;
}
/// Deletes any existing test clock format and returns to using the real clock
/// format.
/// Deletes any existing test clock format and returns to using the real clock format.
void clearAlwaysUse24HourTestValue() {
_alwaysUse24HourFormatTestValue = null;
}
......@@ -288,13 +260,11 @@ class TestWindow implements Window {
@override
String get defaultRouteName => _defaultRouteNameTestValue ?? _window.defaultRouteName;
String _defaultRouteNameTestValue;
/// Hides the real default route name and reports the given
/// [defaultRouteNameTestValue] instead.
/// Hides the real default route name and reports the given [defaultRouteNameTestValue] instead.
set defaultRouteNameTestValue(String defaultRouteNameTestValue) {
_defaultRouteNameTestValue = defaultRouteNameTestValue;
}
/// Deletes any existing test default route name and returns to using the real
/// default route name.
/// Deletes any existing test default route name and returns to using the real default route name.
void clearDefaultRouteNameTestValue() {
_defaultRouteNameTestValue = null;
}
......@@ -312,14 +282,12 @@ class TestWindow implements Window {
@override
bool get semanticsEnabled => _semanticsEnabledTestValue ?? _window.semanticsEnabled;
bool _semanticsEnabledTestValue;
/// Hides the real semantics enabled and reports the given
/// [semanticsEnabledTestValue] instead.
/// Hides the real semantics enabled and reports the given [semanticsEnabledTestValue] instead.
set semanticsEnabledTestValue(bool semanticsEnabledTestValue) {
_semanticsEnabledTestValue = semanticsEnabledTestValue;
onSemanticsEnabledChanged();
}
/// Deletes any existing test semantics enabled and returns to using the real
/// semantics enabled.
/// Deletes any existing test semantics enabled and returns to using the real semantics enabled.
void clearSemanticsEnabledTestValue() {
_semanticsEnabledTestValue = null;
onSemanticsEnabledChanged();
......@@ -342,14 +310,12 @@ class TestWindow implements Window {
@override
AccessibilityFeatures get accessibilityFeatures => _accessibilityFeaturesTestValue ?? _window.accessibilityFeatures;
AccessibilityFeatures _accessibilityFeaturesTestValue;
/// Hides the real accessibility features and reports the given
/// [accessibilityFeaturesTestValue] instead.
/// Hides the real accessibility features and reports the given [accessibilityFeaturesTestValue] instead.
set accessibilityFeaturesTestValue(AccessibilityFeatures accessibilityFeaturesTestValue) {
_accessibilityFeaturesTestValue = accessibilityFeaturesTestValue;
onAccessibilityFeaturesChanged();
}
/// Deletes any existing test accessibility features and returns to using the
/// real accessibility features.
/// Deletes any existing test accessibility features and returns to using the real accessibility features.
void clearAccessibilityFeaturesTestValue() {
_accessibilityFeaturesTestValue = null;
onAccessibilityFeaturesChanged();
......@@ -389,11 +355,10 @@ class TestWindow implements Window {
}
/// Delete any test value properties that have been set on this [TestWindow]
/// and return to reporting the real [Window] values for all [Window]
/// properties.
/// and return to reporting the real [Window] values for all [Window] properties.
///
/// If desired, clearing of properties can be done on an individual basis,
/// e.g., [clearLocaleTestValue()].
/// If desired, clearing of properties can be done on an individual basis, e.g.,
/// [clearLocaleTestValue()].
void clearAllTestValues() {
clearAccessibilityFeaturesTestValue();
clearAlwaysUse24HourTestValue();
......@@ -404,15 +369,14 @@ class TestWindow implements Window {
clearLocalesTestValue();
clearPaddingTestValue();
clearPhysicalSizeTestValue();
clearPhysicalDepthTestValue();
clearSemanticsEnabledTestValue();
clearTextScaleFactorTestValue();
clearViewInsetsTestValue();
}
/// This gives us some grace time when the dart:ui side adds something to
/// Window, and makes things easier when we do rolls to give us time to catch
/// up.
/// Window, and makes things easier when we do rolls to give us time to
/// catch up.
@override
dynamic noSuchMethod(Invocation invocation) {
return null;
......
......@@ -43,20 +43,6 @@ void main() {
);
});
testWidgets('TestWindow can fake physical depth', (WidgetTester tester) async {
verifyThatTestWindowCanFakeProperty<double>(
tester: tester,
realValue: ui.window.physicalDepth,
fakeValue: 120.0,
propertyRetriever: () {
return WidgetsBinding.instance.window.physicalDepth;
},
propertyFaker: (TestWidgetsFlutterBinding binding, double fakeValue) {
binding.window.physicalDepthTestValue = fakeValue;
},
);
});
testWidgets('TestWindow can fake view insets', (WidgetTester tester) async {
verifyThatTestWindowCanFakeProperty<WindowPadding>(
tester: tester,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment