Skip to content

Commit 7a926dc

Browse files
authored
Deprecate MediaQuery[Data].fromWindow (#119647)
* Deprecate MediaQuery[Data].fromWindow * ++ * dart fix
1 parent 8fd5d4e commit 7a926dc

29 files changed

+101
-76
lines changed

packages/flutter/lib/fix_data/fix_widgets/fix_widgets.yaml

+12-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,18 @@
2323
# * ListWheelScrollView: fix_list_wheel_scroll_view.yaml
2424
version: 1
2525
transforms:
26-
# Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067.
26+
# Changes made in https://github.com/flutter/flutter/pull/119647
27+
- title: "Migrate to 'fromView'"
28+
date: 2022-10-28
29+
element:
30+
uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
31+
constructor: 'fromWindow'
32+
inClass: 'MediaQueryData'
33+
changes:
34+
- kind: 'rename'
35+
newName: 'fromView'
36+
37+
# Changes made in https://github.com/flutter/flutter/pull/119186 and https://github.com/flutter/flutter/pull/81067
2738
- title: "Remove 'vsync'"
2839
date: 2023-01-30
2940
element:

packages/flutter/lib/src/widgets/media_query.dart

+23-13
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,16 @@ class MediaQueryData {
160160
this.displayFeatures = const <ui.DisplayFeature>[],
161161
});
162162

163-
/// Creates data for a media query based on the given window.
163+
/// Deprecated. Use [MediaQueryData.fromView] instead.
164164
///
165-
/// If you use this, you should ensure that you also register for
166-
/// notifications so that you can update your [MediaQueryData] when the
167-
/// window's metrics change. For example, see
168-
/// [WidgetsBindingObserver.didChangeMetrics] or
169-
/// [dart:ui.PlatformDispatcher.onMetricsChanged].
165+
/// This constructor was operating on a single window assumption. In
166+
/// preparation for Flutter's upcoming multi-window support, it has been
167+
/// deprecated.
168+
@Deprecated(
169+
'Use MediaQueryData.fromView instead. '
170+
'This constructor was deprecated in preparation for the upcoming multi-window support. '
171+
'This feature was deprecated after v3.7.0-32.0.pre.'
172+
)
170173
factory MediaQueryData.fromWindow(ui.FlutterView window) => MediaQueryData.fromView(window);
171174

172175
/// Creates data for a [MediaQuery] based on the given `view`.
@@ -918,14 +921,21 @@ class MediaQuery extends InheritedModel<_MediaQueryAspect> {
918921
);
919922
}
920923

921-
/// Provides a [MediaQuery] which is built and updated using the latest
922-
/// [WidgetsBinding.window] values.
924+
/// Deprecated. Use [MediaQuery.fromView] instead.
923925
///
924-
/// The [MediaQuery] is wrapped in a separate widget to ensure that only it
925-
/// and its dependents are updated when `window` changes, instead of
926-
/// rebuilding the whole widget tree.
926+
/// This constructor was operating on a single window assumption. In
927+
/// preparation for Flutter's upcoming multi-window support, it has been
928+
/// deprecated.
927929
///
928-
/// The [child] argument is required and must not be null.
930+
/// Replaced by [MediaQuery.fromView], which requires specifying the
931+
/// [FlutterView] the [MediaQuery] is constructed for. The [FlutterView] can,
932+
/// for example, be obtained from the context via [View.of] or from
933+
/// [PlatformDispatcher.views].
934+
@Deprecated(
935+
'Use MediaQuery.fromView instead. '
936+
'This constructor was deprecated in preparation for the upcoming multi-window support. '
937+
'This feature was deprecated after v3.7.0-32.0.pre.'
938+
)
929939
static Widget fromWindow({
930940
Key? key,
931941
required Widget child,
@@ -953,7 +963,7 @@ class MediaQuery extends InheritedModel<_MediaQueryAspect> {
953963
/// The injected [MediaQuery] automatically updates when any of the data used
954964
/// to construct it changes.
955965
///
956-
/// The [view] and [child] argument is required and must not be null.
966+
/// The [view] and [child] arguments are required and must not be null.
957967
static Widget fromView({
958968
Key? key,
959969
required FlutterView view,

packages/flutter/test/cupertino/route_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -2216,7 +2216,7 @@ Widget buildNavigator({
22162216
TransitionDelegate<dynamic>? transitionDelegate,
22172217
}) {
22182218
return MediaQuery(
2219-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
2219+
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
22202220
child: Localizations(
22212221
locale: const Locale('en', 'US'),
22222222
delegates: const <LocalizationsDelegate<dynamic>>[

packages/flutter/test/material/action_chip_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Widget wrapForChip({
1717
home: Directionality(
1818
textDirection: textDirection,
1919
child: MediaQuery(
20-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
20+
data: MediaQueryData(textScaleFactor: textScaleFactor),
2121
child: Material(child: child),
2222
),
2323
),

packages/flutter/test/material/chip_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Widget wrapForChip({
8080
home: Directionality(
8181
textDirection: textDirection,
8282
child: MediaQuery(
83-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
83+
data: MediaQueryData(textScaleFactor: textScaleFactor),
8484
child: Material(child: child),
8585
),
8686
),

packages/flutter/test/material/choice_chip_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Widget wrapForChip({
4646
home: Directionality(
4747
textDirection: textDirection,
4848
child: MediaQuery(
49-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
49+
data: MediaQueryData(textScaleFactor: textScaleFactor),
5050
child: Material(child: child),
5151
),
5252
),

packages/flutter/test/material/dropdown_form_field_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class _TestAppState extends State<TestApp> {
9090
DefaultMaterialLocalizations.delegate,
9191
],
9292
child: MediaQuery(
93-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(size: widget.mediaSize),
93+
data: const MediaQueryData().copyWith(size: widget.mediaSize),
9494
child: Directionality(
9595
textDirection: widget.textDirection,
9696
child: Navigator(

packages/flutter/test/material/dropdown_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ class _TestAppState extends State<TestApp> {
246246
DefaultMaterialLocalizations.delegate,
247247
],
248248
child: MediaQuery(
249-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(size: widget.mediaSize),
249+
data: MediaQueryData.fromView(View.of(context)).copyWith(size: widget.mediaSize),
250250
child: Directionality(
251251
textDirection: widget.textDirection,
252252
child: Navigator(
@@ -401,7 +401,7 @@ void main() {
401401
return Directionality(
402402
textDirection: TextDirection.ltr,
403403
child: MediaQuery(
404-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
404+
data: MediaQueryData.fromView(tester.binding.window),
405405
child: Navigator(
406406
initialRoute: '/',
407407
onGenerateRoute: (RouteSettings settings) {

packages/flutter/test/material/filter_chip_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Widget wrapForChip({
1919
home: Directionality(
2020
textDirection: textDirection,
2121
child: MediaQuery(
22-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
22+
data: MediaQueryData(textScaleFactor: textScaleFactor),
2323
child: Material(child: child),
2424
),
2525
),

packages/flutter/test/material/input_chip_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Widget wrapForChip({
1919
home: Directionality(
2020
textDirection: textDirection,
2121
child: MediaQuery(
22-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScaleFactor),
22+
data: MediaQueryData(textScaleFactor: textScaleFactor),
2323
child: Material(child: child),
2424
),
2525
),

packages/flutter/test/material/menu_anchor_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void main() {
3535
}
3636

3737
setUpAll(() {
38-
final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(TestWidgetsFlutterBinding.instance.window);
38+
final MediaQueryData mediaQueryData = MediaQueryData.fromView(TestWidgetsFlutterBinding.instance.window);
3939
defaultSize = mediaQueryData.size;
4040
});
4141

@@ -1205,7 +1205,7 @@ void main() {
12051205

12061206
testWidgets('menus close on view size change', (WidgetTester tester) async {
12071207
final ScrollController scrollController = ScrollController();
1208-
final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(tester.binding.window);
1208+
final MediaQueryData mediaQueryData = MediaQueryData.fromView(tester.binding.window);
12091209

12101210
Widget build(Size size) {
12111211
return MaterialApp(

packages/flutter/test/material/page_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1219,7 +1219,7 @@ Widget buildNavigator({
12191219
TransitionDelegate<dynamic>? transitionDelegate,
12201220
}) {
12211221
return MediaQuery(
1222-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
1222+
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
12231223
child: Localizations(
12241224
locale: const Locale('en', 'US'),
12251225
delegates: const <LocalizationsDelegate<dynamic>>[
@@ -1323,7 +1323,7 @@ class TestDependencies extends StatelessWidget {
13231323
return Directionality(
13241324
textDirection: TextDirection.ltr,
13251325
child: MediaQuery(
1326-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
1326+
data: MediaQueryData.fromView(View.of(context)),
13271327
child: child,
13281328
),
13291329
);

packages/flutter/test/material/popup_menu_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -3119,7 +3119,7 @@ class TestApp extends StatelessWidget {
31193119
DefaultMaterialLocalizations.delegate,
31203120
],
31213121
child: MediaQuery(
3122-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
3122+
data: MediaQueryData.fromView(View.of(context)),
31233123
child: Directionality(
31243124
textDirection: textDirection,
31253125
child: Navigator(

packages/flutter/test/material/range_slider_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1658,7 +1658,7 @@ void main() {
16581658
child: StatefulBuilder(
16591659
builder: (BuildContext context, StateSetter setState) {
16601660
return MediaQuery(
1661-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: 2.0),
1661+
data: const MediaQueryData(textScaleFactor: 2.0),
16621662
child: Material(
16631663
child: Center(
16641664
child: Theme(

packages/flutter/test/material/slider_theme_test.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ void main() {
900900
home: Directionality(
901901
textDirection: TextDirection.ltr,
902902
child: MediaQuery(
903-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
903+
data: MediaQueryData(textScaleFactor: textScale),
904904
child: Material(
905905
child: Row(
906906
children: <Widget>[
@@ -1082,7 +1082,7 @@ void main() {
10821082
home: Directionality(
10831083
textDirection: TextDirection.ltr,
10841084
child: MediaQuery(
1085-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
1085+
data: MediaQueryData(textScaleFactor: textScale),
10861086
child: Material(
10871087
child: Row(
10881088
children: <Widget>[
@@ -1870,7 +1870,7 @@ void main() {
18701870
home: Directionality(
18711871
textDirection: TextDirection.ltr,
18721872
child: MediaQuery(
1873-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
1873+
data: MediaQueryData(textScaleFactor: textScale),
18741874
child: Material(
18751875
child: Row(
18761876
children: <Widget>[
@@ -2080,7 +2080,7 @@ void main() {
20802080
home: Directionality(
20812081
textDirection: TextDirection.ltr,
20822082
child: MediaQuery(
2083-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: textScale),
2083+
data: MediaQueryData(textScaleFactor: textScale),
20842084
child: Material(
20852085
child: Row(
20862086
children: <Widget>[

packages/flutter/test/material/text_field_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7845,7 +7845,7 @@ void main() {
78457845
MaterialApp(
78467846
home: Scaffold(
78477847
body: MediaQuery(
7848-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(textScaleFactor: 4.0),
7848+
data: const MediaQueryData(textScaleFactor: 4.0),
78497849
child: Center(
78507850
child: TextField(
78517851
decoration: const InputDecoration(labelText: 'Label', border: UnderlineInputBorder()),

packages/flutter/test/material/tooltip_test.dart

+7-9
Original file line numberDiff line numberDiff line change
@@ -476,15 +476,13 @@ void main() {
476476
child: const Icon(Icons.add),
477477
),
478478
);
479-
return MediaQuery.fromWindow(
480-
child: MediaQuery(
481-
data: MediaQueryData(
482-
viewInsets: EdgeInsets.only(bottom: viewInsetsHeight),
483-
),
484-
child: MaterialApp(
485-
useInheritedMediaQuery: true,
486-
home: scaffold,
487-
),
479+
return MediaQuery(
480+
data: MediaQueryData(
481+
viewInsets: EdgeInsets.only(bottom: viewInsetsHeight),
482+
),
483+
child: MaterialApp(
484+
useInheritedMediaQuery: true,
485+
home: scaffold,
488486
),
489487
);
490488
}

packages/flutter/test/widgets/display_feature_sub_screen_test.dart

+7-7
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ void main() {
1111
group('DisplayFeatureSubScreen', () {
1212
testWidgets('without Directionality or anchor', (WidgetTester tester) async {
1313
const Key childKey = Key('childKey');
14-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
14+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
1515
displayFeatures: <DisplayFeature>[
1616
const DisplayFeature(
1717
bounds: Rect.fromLTRB(390, 0, 410, 600),
@@ -39,7 +39,7 @@ void main() {
3939

4040
testWidgets('with anchorPoint', (WidgetTester tester) async {
4141
const Key childKey = Key('childKey');
42-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
42+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
4343
displayFeatures: <DisplayFeature>[
4444
const DisplayFeature(
4545
bounds: Rect.fromLTRB(390, 0, 410, 600),
@@ -70,7 +70,7 @@ void main() {
7070

7171
testWidgets('with infinity anchorpoint', (WidgetTester tester) async {
7272
const Key childKey = Key('childKey');
73-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
73+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
7474
displayFeatures: <DisplayFeature>[
7575
const DisplayFeature(
7676
bounds: Rect.fromLTRB(390, 0, 410, 600),
@@ -101,7 +101,7 @@ void main() {
101101

102102
testWidgets('with horizontal hinge and anchorPoint', (WidgetTester tester) async {
103103
const Key childKey = Key('childKey');
104-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
104+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
105105
displayFeatures: <DisplayFeature>[
106106
const DisplayFeature(
107107
bounds: Rect.fromLTRB(0, 290, 800, 310),
@@ -131,7 +131,7 @@ void main() {
131131

132132
testWidgets('with multiple display features and anchorPoint', (WidgetTester tester) async {
133133
const Key childKey = Key('childKey');
134-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
134+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
135135
displayFeatures: <DisplayFeature>[
136136
const DisplayFeature(
137137
bounds: Rect.fromLTRB(0, 290, 800, 310),
@@ -166,7 +166,7 @@ void main() {
166166

167167
testWidgets('with non-splitting display features and anchorPoint', (WidgetTester tester) async {
168168
const Key childKey = Key('childKey');
169-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
169+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
170170
displayFeatures: <DisplayFeature>[
171171
// Top notch
172172
const DisplayFeature(
@@ -211,7 +211,7 @@ void main() {
211211

212212
testWidgets('with size 0 display feature in half-opened posture and anchorPoint', (WidgetTester tester) async {
213213
const Key childKey = Key('childKey');
214-
final MediaQueryData mediaQuery = MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith(
214+
final MediaQueryData mediaQuery = MediaQueryData.fromView(WidgetsBinding.instance.window).copyWith(
215215
displayFeatures: <DisplayFeature>[
216216
const DisplayFeature(
217217
bounds: Rect.fromLTRB(0, 300, 800, 300),

packages/flutter/test/widgets/heroes_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -3168,7 +3168,7 @@ class TestDependencies extends StatelessWidget {
31683168
return Directionality(
31693169
textDirection: TextDirection.ltr,
31703170
child: MediaQuery(
3171-
data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
3171+
data: MediaQueryData.fromView(View.of(context)),
31723172
child: child,
31733173
),
31743174
);

0 commit comments

Comments
 (0)