Unverified Commit 7a926dcb authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Deprecate MediaQuery[Data].fromWindow (#119647)

* Deprecate MediaQuery[Data].fromWindow

* ++

* dart fix
parent 8fd5d4eb
......@@ -23,7 +23,18 @@
# * ListWheelScrollView: fix_list_wheel_scroll_view.yaml
version: 1
transforms:
# Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067.
# Changes made in https://github.com/flutter/flutter/pull/119647
- title: "Migrate to 'fromView'"
date: 2022-10-28
element:
uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
constructor: 'fromWindow'
inClass: 'MediaQueryData'
changes:
- kind: 'rename'
newName: 'fromView'
# Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067
- title: "Remove 'vsync'"
date: 2023-01-30
element:
......
......@@ -160,13 +160,16 @@ class MediaQueryData {
this.displayFeatures = const <ui.DisplayFeature>[],
});
/// Creates data for a media query based on the given window.
/// Deprecated. Use [MediaQueryData.fromView] instead.
///
/// If you use this, you should ensure that you also register for
/// notifications so that you can update your [MediaQueryData] when the
/// window's metrics change. For example, see
/// [WidgetsBindingObserver.didChangeMetrics] or
/// [dart:ui.PlatformDispatcher.onMetricsChanged].
/// This constructor was operating on a single window assumption. In
/// preparation for Flutter's upcoming multi-window support, it has been
/// deprecated.
@Deprecated(
'Use MediaQueryData.fromView instead. '
'This constructor was deprecated in preparation for the upcoming multi-window support. '
'This feature was deprecated after v3.7.0-32.0.pre.'
)
factory MediaQueryData.fromWindow(ui.FlutterView window) => MediaQueryData.fromView(window);
/// Creates data for a [MediaQuery] based on the given `view`.
......@@ -918,14 +921,21 @@ class MediaQuery extends InheritedModel<_MediaQueryAspect> {
);
}
/// Provides a [MediaQuery] which is built and updated using the latest
/// [WidgetsBinding.window] values.
/// Deprecated. Use [MediaQuery.fromView] instead.
///
/// The [MediaQuery] is wrapped in a separate widget to ensure that only it
/// and its dependents are updated when `window` changes, instead of
/// rebuilding the whole widget tree.
/// This constructor was operating on a single window assumption. In
/// preparation for Flutter's upcoming multi-window support, it has been
/// deprecated.
///
/// The [child] argument is required and must not be null.
/// Replaced by [MediaQuery.fromView], which requires specifying the
/// [FlutterView] the [MediaQuery] is constructed for. The [FlutterView] can,
/// for example, be obtained from the context via [View.of] or from
/// [PlatformDispatcher.views].
@Deprecated(
'Use MediaQuery.fromView instead. '
'This constructor was deprecated in preparation for the upcoming multi-window support. '
'This feature was deprecated after v3.7.0-32.0.pre.'
)
static Widget fromWindow({
Key? key,
required Widget child,
......@@ -953,7 +963,7 @@ class MediaQuery extends InheritedModel<_MediaQueryAspect> {
/// The injected [MediaQuery] automatically updates when any of the data used
/// to construct it changes.
///
/// The [view] and [child] argument is required and must not be null.
/// The [view] and [child] arguments are required and must not be null.
static Widget fromView({
Key? key,
required FlutterView view,
......
......@@ -2216,7 +2216,7 @@ Widget buildNavigator({
TransitionDelegate<dynamic>? transitionDelegate,
}) {
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
child: Localizations(
locale: const Locale('en', 'US'),
delegates: const <LocalizationsDelegate<dynamic>>[
......
......@@ -17,7 +17,7 @@ Widget wrapForChip({
home: Directionality(
textDirection: textDirection,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
data: MediaQueryData(textScaleFactor: textScaleFactor),
child: Material(child: child),
),
),
......
......@@ -80,7 +80,7 @@ Widget wrapForChip({
home: Directionality(
textDirection: textDirection,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
data: MediaQueryData(textScaleFactor: textScaleFactor),
child: Material(child: child),
),
),
......
......@@ -46,7 +46,7 @@ Widget wrapForChip({
home: Directionality(
textDirection: textDirection,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
data: MediaQueryData(textScaleFactor: textScaleFactor),
child: Material(child: child),
),
),
......
......@@ -90,7 +90,7 @@ class _TestAppState extends State<TestApp> {
DefaultMaterialLocalizations.delegate,
],
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(size: widget.mediaSize),
data: const MediaQueryData().copyWith(size: widget.mediaSize),
child: Directionality(
textDirection: widget.textDirection,
child: Navigator(
......
......@@ -246,7 +246,7 @@ class _TestAppState extends State<TestApp> {
DefaultMaterialLocalizations.delegate,
],
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(size: widget.mediaSize),
data: MediaQueryData.fromView(View.of(context)).copyWith(size: widget.mediaSize),
child: Directionality(
textDirection: widget.textDirection,
child: Navigator(
......@@ -401,7 +401,7 @@ void main() {
return Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Navigator(
initialRoute: '/',
onGenerateRoute: (RouteSettings settings) {
......
......@@ -19,7 +19,7 @@ Widget wrapForChip({
home: Directionality(
textDirection: textDirection,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
data: MediaQueryData(textScaleFactor: textScaleFactor),
child: Material(child: child),
),
),
......
......@@ -19,7 +19,7 @@ Widget wrapForChip({
home: Directionality(
textDirection: textDirection,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
data: MediaQueryData(textScaleFactor: textScaleFactor),
child: Material(child: child),
),
),
......
......@@ -35,7 +35,7 @@ void main() {
}
setUpAll(() {
final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(TestWidgetsFlutterBinding.instance.window);
final MediaQueryData mediaQueryData = MediaQueryData.fromView(TestWidgetsFlutterBinding.instance.window);
defaultSize = mediaQueryData.size;
});
......@@ -1205,7 +1205,7 @@ void main() {
testWidgets('menus close on view size change', (WidgetTester tester) async {
final ScrollController scrollController = ScrollController();
final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(tester.binding.window);
final MediaQueryData mediaQueryData = MediaQueryData.fromView(tester.binding.window);
Widget build(Size size) {
return MaterialApp(
......
......@@ -1219,7 +1219,7 @@ Widget buildNavigator({
TransitionDelegate<dynamic>? transitionDelegate,
}) {
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
child: Localizations(
locale: const Locale('en', 'US'),
delegates: const <LocalizationsDelegate<dynamic>>[
......@@ -1323,7 +1323,7 @@ class TestDependencies extends StatelessWidget {
return Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: child,
),
);
......
......@@ -3119,7 +3119,7 @@ class TestApp extends StatelessWidget {
DefaultMaterialLocalizations.delegate,
],
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: Directionality(
textDirection: textDirection,
child: Navigator(
......
......@@ -1658,7 +1658,7 @@ void main() {
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: 2.0),
data: const MediaQueryData(textScaleFactor: 2.0),
child: Material(
child: Center(
child: Theme(
......
......@@ -900,7 +900,7 @@ void main() {
home: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
data: MediaQueryData(textScaleFactor: textScale),
child: Material(
child: Row(
children: <Widget>[
......@@ -1082,7 +1082,7 @@ void main() {
home: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
data: MediaQueryData(textScaleFactor: textScale),
child: Material(
child: Row(
children: <Widget>[
......@@ -1870,7 +1870,7 @@ void main() {
home: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
data: MediaQueryData(textScaleFactor: textScale),
child: Material(
child: Row(
children: <Widget>[
......@@ -2080,7 +2080,7 @@ void main() {
home: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
data: MediaQueryData(textScaleFactor: textScale),
child: Material(
child: Row(
children: <Widget>[
......
......@@ -7845,7 +7845,7 @@ void main() {
MaterialApp(
home: Scaffold(
body: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: 4.0),
data: const MediaQueryData(textScaleFactor: 4.0),
child: Center(
child: TextField(
decoration: const InputDecoration(labelText: 'Label', border: UnderlineInputBorder()),
......
......@@ -476,15 +476,13 @@ void main() {
child: const Icon(Icons.add),
),
);
return MediaQuery.fromWindow(
child: MediaQuery(
data: MediaQueryData(
viewInsets: EdgeInsets.only(bottom: viewInsetsHeight),
),
child: MaterialApp(
useInheritedMediaQuery: true,
home: scaffold,
),
return MediaQuery(
data: MediaQueryData(
viewInsets: EdgeInsets.only(bottom: viewInsetsHeight),
),
child: MaterialApp(
useInheritedMediaQuery: true,
home: scaffold,
),
);
}
......
......@@ -11,7 +11,7 @@ void main() {
group('DisplayFeatureSubScreen', () {
testWidgets('without Directionality or anchor', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(390, 0, 410, 600),
......@@ -39,7 +39,7 @@ void main() {
testWidgets('with anchorPoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(390, 0, 410, 600),
......@@ -70,7 +70,7 @@ void main() {
testWidgets('with infinity anchorpoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(390, 0, 410, 600),
......@@ -101,7 +101,7 @@ void main() {
testWidgets('with horizontal hinge and anchorPoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(0, 290, 800, 310),
......@@ -131,7 +131,7 @@ void main() {
testWidgets('with multiple display features and anchorPoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(0, 290, 800, 310),
......@@ -166,7 +166,7 @@ void main() {
testWidgets('with non-splitting display features and anchorPoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
// Top notch
const DisplayFeature(
......@@ -211,7 +211,7 @@ void main() {
testWidgets('with size 0 display feature in half-opened posture and anchorPoint', (WidgetTester tester) async {
const Key childKey = Key('childKey');
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
displayFeatures: <DisplayFeature>[
const DisplayFeature(
bounds: Rect.fromLTRB(0, 300, 800, 300),
......
......@@ -3168,7 +3168,7 @@ class TestDependencies extends StatelessWidget {
return Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: child,
),
);
......
......@@ -145,11 +145,11 @@ void main() {
expect(tested, isTrue);
});
testWidgets('MediaQueryData.fromWindow is sane', (WidgetTester tester) async {
final MediaQueryData data = MediaQueryData.fromWindow(WidgetsBinding.instance.window);
testWidgets('MediaQueryData.fromView is sane', (WidgetTester tester) async {
final MediaQueryData data = MediaQueryData.fromView(tester.binding.window);
expect(data, hasOneLineDescription);
expect(data.hashCode, equals(data.copyWith().hashCode));
expect(data.size, equals(WidgetsBinding.instance.window.physicalSize / WidgetsBinding.instance.window.devicePixelRatio));
expect(data.size, equals(tester.binding.window.physicalSize / tester.binding.window.devicePixelRatio));
expect(data.accessibleNavigation, false);
expect(data.invertColors, false);
expect(data.disableAnimations, false);
......@@ -513,7 +513,7 @@ void main() {
});
testWidgets('MediaQueryData.copyWith defaults to source', (WidgetTester tester) async {
final MediaQueryData data = MediaQueryData.fromWindow(WidgetsBinding.instance.window);
final MediaQueryData data = MediaQueryData.fromView(tester.binding.window);
final MediaQueryData copied = data.copyWith();
expect(copied.size, data.size);
expect(copied.devicePixelRatio, data.devicePixelRatio);
......@@ -552,7 +552,7 @@ void main() {
),
];
final MediaQueryData data = MediaQueryData.fromWindow(WidgetsBinding.instance.window);
final MediaQueryData data = MediaQueryData.fromView(tester.binding.window);
final MediaQueryData copied = data.copyWith(
size: customSize,
devicePixelRatio: customDevicePixelRatio,
......@@ -1110,7 +1110,7 @@ void main() {
expect(insideBoldTextOverride, true);
});
testWidgets('MediaQuery.fromWindow creates a MediaQuery', (WidgetTester tester) async {
testWidgets('MediaQuery.fromView creates a MediaQuery', (WidgetTester tester) async {
MediaQuery? mediaQueryOutside;
MediaQuery? mediaQueryInside;
......@@ -1118,7 +1118,8 @@ void main() {
Builder(
builder: (BuildContext context) {
mediaQueryOutside = context.findAncestorWidgetOfExactType<MediaQuery>();
return MediaQuery.fromWindow(
return MediaQuery.fromView(
view: View.of(context),
child: Builder(
builder: (BuildContext context) {
mediaQueryInside = context.findAncestorWidgetOfExactType<MediaQuery>();
......@@ -1135,7 +1136,7 @@ void main() {
});
testWidgets('MediaQueryData.fromWindow is created using window values', (WidgetTester tester) async {
final MediaQueryData windowData = MediaQueryData.fromWindow(WidgetsBinding.instance.window);
final MediaQueryData windowData = MediaQueryData.fromWindow(tester.binding.window);
late MediaQueryData fromWindowData;
await tester.pumpWidget(
......@@ -1329,7 +1330,7 @@ void main() {
gestureSettings: GestureSettings(physicalDoubleTapSlop: 100, physicalTouchSlop: 100),
);
expect(MediaQueryData.fromWindow(tester.binding.window).gestureSettings.touchSlop, closeTo(33.33, 0.1)); // Repeating, of course
expect(MediaQueryData.fromView(tester.binding.window).gestureSettings.touchSlop, closeTo(33.33, 0.1)); // Repeating, of course
tester.binding.window.viewConfigurationTestValue = null;
});
......
......@@ -1047,7 +1047,7 @@ class PagedTestWidget extends StatelessWidget {
child: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: const PagedTestNavigator(),
),
),
......@@ -1173,7 +1173,7 @@ class TestWidget extends StatelessWidget {
child: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: Navigator(
initialRoute: 'home',
restorationScopeId: 'app',
......
......@@ -204,7 +204,7 @@ void main() {
const MaterialPage<void> page = MaterialPage<void>(child: Text('page'));
await tester.pumpWidget(
MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Directionality(
textDirection: TextDirection.ltr,
child: Navigator(
......@@ -219,7 +219,7 @@ void main() {
await tester.pumpWidget(
MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Directionality(
textDirection: TextDirection.ltr,
child: Navigator(
......@@ -2684,7 +2684,7 @@ void main() {
List<NavigatorObserver> observers = const <NavigatorObserver>[],
}) {
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
child: Localizations(
locale: const Locale('en', 'US'),
delegates: const <LocalizationsDelegate<dynamic>>[
......@@ -2782,7 +2782,7 @@ void main() {
await tester.pumpWidget(
MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Localizations(
locale: const Locale('en', 'US'),
delegates: const <LocalizationsDelegate<dynamic>>[
......@@ -2821,7 +2821,7 @@ void main() {
};
await tester.pumpWidget(
MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Localizations(
locale: const Locale('en', 'US'),
delegates: const <LocalizationsDelegate<dynamic>>[
......@@ -4271,7 +4271,7 @@ class TestDependencies extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(View.of(context)),
child: Directionality(
textDirection: TextDirection.ltr,
child: child,
......
......@@ -142,7 +142,7 @@ void main() {
// Set the starting viewportDimension to 0.0
await tester.binding.setSurfaceSize(Size.zero);
final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(tester.binding.window);
final MediaQueryData mediaQueryData = MediaQueryData.fromView(tester.binding.window);
Widget build(Size size) {
return MediaQuery(
......
......@@ -96,7 +96,7 @@ void main() {
Widget deepChild = Container();
await tester.pumpWidget(MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Column(
children: <Widget>[
StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
......
......@@ -34,7 +34,7 @@ Future<void> performTest(WidgetTester tester, bool maintainState) async {
Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Navigator(
key: navigatorKey,
onGenerateRoute: (RouteSettings settings) {
......
......@@ -301,7 +301,7 @@ void main() {
child: Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
data: MediaQueryData.fromView(tester.binding.window),
child: Material(
child: Center(
child: Slider(
......
......@@ -371,8 +371,7 @@ class TestDependencies extends StatelessWidget {
return Directionality(
textDirection: TextDirection.ltr,
child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window)
.copyWith(devicePixelRatio: devicePixelRatio),
data: const MediaQueryData().copyWith(devicePixelRatio: devicePixelRatio),
child: child,
),
);
......
......@@ -12,7 +12,10 @@ void main() {
Object object;
TickerProvider vsync;
// Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067.
// Changes made in https://github.com/flutter/flutter/pull/119647
MediaQueryData.fromWindow(View.of(context));
// Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067
AnimatedSize(vsync: vsync, duration: Duration.zero);
// Changes made in https://github.com/flutter/flutter/pull/45941 and https://github.com/flutter/flutter/pull/83843
......
......@@ -12,7 +12,10 @@ void main() {
Object object;
TickerProvider vsync;
// Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067.
// Changes made in https://github.com/flutter/flutter/pull/119647
MediaQueryData.fromView(View.of(context));
// Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067
AnimatedSize(duration: Duration.zero);
// Changes made in https://github.com/flutter/flutter/pull/45941 and https://github.com/flutter/flutter/pull/83843
......
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