Skip to content

Commit 90a58a5

Browse files
authored
[visibility_detector] Adapt to upcoming changes in Flutter (#480)
1 parent eb38a4d commit 90a58a5

25 files changed

+102
-112
lines changed

.github/workflows/build.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ jobs:
4949
- name: flutter test
5050
run: flutter test
5151

52-
- name: flutter format
53-
run: flutter format --dry-run --set-exit-if-changed .
52+
- name: dart format
53+
run: dart format -o none --set-exit-if-changed .
5454
# Only test formatting on one version of Flutter.
5555
if: ${{ matrix.version == 'stable' }}
5656

packages/scrollable_positioned_list/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 0.3.8+1
2+
* Migrate tests off deprecated APIs.
3+
* Bump min Flutter version to 3.1.0.
4+
15
# 0.3.8
26
* Add ScrollOffsetController to allow pixel-based changes in offset.
37
* Bump min sdk version to 2.15.0

packages/scrollable_positioned_list/example/test/scrollable_positioned_list_example_test.dart

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@
33
// found in the LICENSE file.
44

55
import 'package:flutter/material.dart';
6-
import 'package:flutter/rendering.dart';
76
import 'package:flutter_test/flutter_test.dart';
87
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
98

109
import 'package:scrollable_positioned_list_example/main.dart';
1110

1211
void main() {
1312
setUp(() {
14-
WidgetsBinding.instance.renderView.configuration = TestViewConfiguration(
15-
size: const Size(800, 900), window: RendererBinding.instance.window);
13+
WidgetsBinding.instance.renderView.configuration =
14+
TestViewConfiguration.fromView(
15+
size: const Size(800, 900),
16+
view: WidgetsBinding.instance.platformDispatcher.views.single,
17+
);
1618
});
1719

1820
testWidgets('Start at 0', (WidgetTester tester) async {

packages/scrollable_positioned_list/pubspec.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
name: scrollable_positioned_list
2-
version: 0.3.8
2+
version: 0.3.8+1
33
description: >
44
A list with helper methods to programmatically scroll to an item.
55
homepage: https://github.com/google/flutter.widgets/tree/master/packages/scrollable_positioned_list
66

77
environment:
88
sdk: '>=2.15.0 <4.0.0'
9-
flutter: '>=2.12.0'
9+
flutter: '>=3.1.0'
1010

1111
dependencies:
1212
flutter:

packages/scrollable_positioned_list/test/horizontal_scrollable_positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ void main() {
2222
EdgeInsets? padding,
2323
int initialScrollIndex = 0,
2424
}) async {
25-
tester.binding.window.devicePixelRatioTestValue = 1.0;
26-
tester.binding.window.physicalSizeTestValue =
27-
const Size(screenWidth, screenHeight);
25+
tester.view.devicePixelRatio = 1.0;
26+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
2827

2928
await tester.pumpWidget(
3029
MaterialApp(

packages/scrollable_positioned_list/test/positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ void main() {
2424
double anchor = 0,
2525
int itemCount = defaultItemCount,
2626
}) async {
27-
tester.binding.window.devicePixelRatioTestValue = 1.0;
28-
tester.binding.window.physicalSizeTestValue =
29-
const Size(screenWidth, screenHeight);
27+
tester.view.devicePixelRatio = 1.0;
28+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
3029

3130
await tester.pumpWidget(
3231
MaterialApp(

packages/scrollable_positioned_list/test/reversed_positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ void main() {
2323
double anchor = 0,
2424
int itemCount = defaultItemCount,
2525
}) async {
26-
tester.binding.window.devicePixelRatioTestValue = 1.0;
27-
tester.binding.window.physicalSizeTestValue =
28-
const Size(screenWidth, screenHeight);
26+
tester.view.devicePixelRatio = 1.0;
27+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
2928

3029
await tester.pumpWidget(
3130
MaterialApp(

packages/scrollable_positioned_list/test/reversed_scrollable_positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ void main() {
2121
EdgeInsets? padding,
2222
int initialIndex = 0,
2323
}) async {
24-
tester.binding.window.devicePixelRatioTestValue = 1.0;
25-
tester.binding.window.physicalSizeTestValue =
26-
const Size(screenWidth, screenHeight);
24+
tester.view.devicePixelRatio = 1.0;
25+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
2726

2827
await tester.pumpWidget(
2928
MaterialApp(

packages/scrollable_positioned_list/test/scroll_offset_controller_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ void main() {
3737
double? minCacheExtent,
3838
bool variableHeight = false,
3939
}) async {
40-
tester.binding.window.devicePixelRatioTestValue = 1.0;
41-
tester.binding.window.physicalSizeTestValue =
42-
const Size(screenWidth, screenHeight);
40+
tester.view.devicePixelRatio = 1.0;
41+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
4342

4443
await tester.pumpWidget(
4544
MaterialApp(

packages/scrollable_positioned_list/test/scroll_offset_listener_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@ void main() {
3636
double? minCacheExtent,
3737
bool variableHeight = false,
3838
}) async {
39-
tester.binding.window.devicePixelRatioTestValue = 1.0;
40-
tester.binding.window.physicalSizeTestValue =
41-
const Size(screenWidth, screenHeight);
39+
tester.view.devicePixelRatio = 1.0;
40+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
4241

4342
await tester.pumpWidget(
4443
MaterialApp(

packages/scrollable_positioned_list/test/scrollable_positioned_list_test.dart

+30-45
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ void main() {
3737
double? minCacheExtent,
3838
bool variableHeight = false,
3939
}) async {
40-
tester.binding.window.devicePixelRatioTestValue = 1.0;
41-
tester.binding.window.physicalSizeTestValue =
42-
const Size(screenWidth, screenHeight);
40+
tester.view.devicePixelRatio = 1.0;
41+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
4342

4443
await tester.pumpWidget(
4544
MaterialApp(
@@ -102,9 +101,8 @@ void main() {
102101
testWidgets('List positioned with 0 at top - use default values',
103102
(WidgetTester tester) async {
104103
final itemPositionsListener = ItemPositionsListener.create();
105-
tester.binding.window.devicePixelRatioTestValue = 1.0;
106-
tester.binding.window.physicalSizeTestValue =
107-
const Size(screenWidth, screenHeight);
104+
tester.view.devicePixelRatio = 1.0;
105+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
108106

109107
await tester.pumpWidget(
110108
MaterialApp(
@@ -1539,9 +1537,8 @@ void main() {
15391537
final itemPositionsListener = ItemPositionsListener.create();
15401538
final itemScrollController = ItemScrollController();
15411539

1542-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1543-
tester.binding.window.physicalSizeTestValue =
1544-
const Size(screenWidth, screenHeight);
1540+
tester.view.devicePixelRatio = 1.0;
1541+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
15451542

15461543
await tester.pumpWidget(
15471544
MaterialApp(
@@ -1596,9 +1593,8 @@ void main() {
15961593
final itemPositionsListener = ItemPositionsListener.create();
15971594
final itemScrollController = ItemScrollController();
15981595

1599-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1600-
tester.binding.window.physicalSizeTestValue =
1601-
const Size(screenWidth, screenHeight);
1596+
tester.view.devicePixelRatio = 1.0;
1597+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
16021598

16031599
await tester.pumpWidget(
16041600
MaterialApp(
@@ -1657,9 +1653,8 @@ void main() {
16571653
final itemPositionsListener = ItemPositionsListener.create();
16581654
final itemScrollController = ItemScrollController();
16591655

1660-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1661-
tester.binding.window.physicalSizeTestValue =
1662-
const Size(screenWidth, screenHeight);
1656+
tester.view.devicePixelRatio = 1.0;
1657+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
16631658

16641659
await tester.pumpWidget(
16651660
MaterialApp(
@@ -1727,9 +1722,8 @@ void main() {
17271722

17281723
testWidgets('Jump to 100 then set itemCount to 0',
17291724
(WidgetTester tester) async {
1730-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1731-
tester.binding.window.physicalSizeTestValue =
1732-
const Size(screenWidth, screenHeight);
1725+
tester.view.devicePixelRatio = 1.0;
1726+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
17331727

17341728
final itemScrollController = ItemScrollController();
17351729
final itemPositionsListener = ItemPositionsListener.create();
@@ -1774,9 +1768,8 @@ void main() {
17741768

17751769
testWidgets('List positioned with 100 at top then set itemCount to 100',
17761770
(WidgetTester tester) async {
1777-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1778-
tester.binding.window.physicalSizeTestValue =
1779-
const Size(screenWidth, screenHeight);
1771+
tester.view.devicePixelRatio = 1.0;
1772+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
17801773

17811774
final itemCount = ValueNotifier<int>(defaultItemCount);
17821775

@@ -1814,9 +1807,8 @@ void main() {
18141807

18151808
testWidgets('List positioned with 499 at bottom then set itemCount to 100',
18161809
(WidgetTester tester) async {
1817-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1818-
tester.binding.window.physicalSizeTestValue =
1819-
const Size(screenWidth, screenHeight);
1810+
tester.view.devicePixelRatio = 1.0;
1811+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
18201812

18211813
final itemCount = ValueNotifier<int>(defaultItemCount);
18221814

@@ -1932,9 +1924,8 @@ void main() {
19321924
});
19331925

19341926
testWidgets('Rebuild with scroll controller', (WidgetTester tester) async {
1935-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1936-
tester.binding.window.physicalSizeTestValue =
1937-
const Size(screenWidth, screenHeight);
1927+
tester.view.devicePixelRatio = 1.0;
1928+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
19381929
final key = ValueNotifier<Key>(ValueKey('key'));
19391930
final itemScrollController = ItemScrollController();
19401931

@@ -1975,9 +1966,8 @@ void main() {
19751966

19761967
testWidgets('Double rebuild with scroll controller',
19771968
(WidgetTester tester) async {
1978-
tester.binding.window.devicePixelRatioTestValue = 1.0;
1979-
tester.binding.window.physicalSizeTestValue =
1980-
const Size(screenWidth, screenHeight);
1969+
tester.view.devicePixelRatio = 1.0;
1970+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
19811971
final outerKey = ValueNotifier<Key>(ValueKey('outerKey'));
19821972
final innerKey = GlobalKey();
19831973
final listKey = ValueNotifier<Key>(ValueKey(null));
@@ -2025,9 +2015,8 @@ void main() {
20252015
});
20262016

20272017
testWidgets('Key change with scroll controller', (WidgetTester tester) async {
2028-
tester.binding.window.devicePixelRatioTestValue = 1.0;
2029-
tester.binding.window.physicalSizeTestValue =
2030-
const Size(screenWidth, screenHeight);
2018+
tester.view.devicePixelRatio = 1.0;
2019+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
20312020
final key = ValueNotifier<Key>(ValueKey('key'));
20322021
final itemScrollController = ItemScrollController();
20332022

@@ -2059,9 +2048,8 @@ void main() {
20592048
});
20602049

20612050
testWidgets('Scroll after rebuild', (WidgetTester tester) async {
2062-
tester.binding.window.devicePixelRatioTestValue = 1.0;
2063-
tester.binding.window.physicalSizeTestValue =
2064-
const Size(screenWidth, screenHeight);
2051+
tester.view.devicePixelRatio = 1.0;
2052+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
20652053
final key = ValueNotifier<Key>(ValueKey('key'));
20662054
final itemScrollController = ItemScrollController();
20672055

@@ -2102,9 +2090,8 @@ void main() {
21022090

21032091
testWidgets('Scroll after rebuild when resusing state',
21042092
(WidgetTester tester) async {
2105-
tester.binding.window.devicePixelRatioTestValue = 1.0;
2106-
tester.binding.window.physicalSizeTestValue =
2107-
const Size(screenWidth, screenHeight);
2093+
tester.view.devicePixelRatio = 1.0;
2094+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
21082095
final containerKey = ValueNotifier<Key>(ValueKey('key'));
21092096
final scrollKey = GlobalKey();
21102097
final itemScrollController = ItemScrollController();
@@ -2147,9 +2134,8 @@ void main() {
21472134

21482135
testWidgets('Scroll after changing scroll controller',
21492136
(WidgetTester tester) async {
2150-
tester.binding.window.devicePixelRatioTestValue = 1.0;
2151-
tester.binding.window.physicalSizeTestValue =
2152-
const Size(screenWidth, screenHeight);
2137+
tester.view.devicePixelRatio = 1.0;
2138+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
21532139

21542140
final itemScrollController0 = ItemScrollController();
21552141
final itemScrollController1 = ItemScrollController();
@@ -2194,9 +2180,8 @@ void main() {
21942180

21952181
testWidgets('Scroll after swapping scroll controllers',
21962182
(WidgetTester tester) async {
2197-
tester.binding.window.devicePixelRatioTestValue = 1.0;
2198-
tester.binding.window.physicalSizeTestValue =
2199-
const Size(screenWidth, screenHeight);
2183+
tester.view.devicePixelRatio = 1.0;
2184+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
22002185

22012186
final itemScrollController0 = ItemScrollController();
22022187
final itemScrollController1 = ItemScrollController();

packages/scrollable_positioned_list/test/separated_positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@ void main() {
2525
double anchor = 0,
2626
int itemCount = defaultItemCount,
2727
}) async {
28-
tester.binding.window.devicePixelRatioTestValue = 1.0;
29-
tester.binding.window.physicalSizeTestValue =
30-
const Size(screenWidth, screenHeight);
28+
tester.view.devicePixelRatio = 1.0;
29+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
3130

3231
await tester.pumpWidget(
3332
MaterialApp(

packages/scrollable_positioned_list/test/separated_scrollable_positioned_list_test.dart

+8-12
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ void main() {
3333
bool addRepaintBoundaries = true,
3434
bool addAutomaticKeepAlives = true,
3535
}) async {
36-
tester.binding.window.devicePixelRatioTestValue = 1.0;
37-
tester.binding.window.physicalSizeTestValue =
38-
const Size(screenWidth, screenHeight);
36+
tester.view.devicePixelRatio = 1.0;
37+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
3938

4039
await tester.pumpWidget(
4140
MaterialApp(
@@ -100,9 +99,8 @@ void main() {
10099
testWidgets('List positioned with 0 at top - use default values',
101100
(WidgetTester tester) async {
102101
final itemPositionsListener = ItemPositionsListener.create();
103-
tester.binding.window.devicePixelRatioTestValue = 1.0;
104-
tester.binding.window.physicalSizeTestValue =
105-
const Size(screenWidth, screenHeight);
102+
tester.view.devicePixelRatio = 1.0;
103+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
106104

107105
await tester.pumpWidget(
108106
MaterialApp(
@@ -484,9 +482,8 @@ void main() {
484482

485483
testWidgets('Empty list then update to single item list',
486484
(WidgetTester tester) async {
487-
tester.binding.window.devicePixelRatioTestValue = 1.0;
488-
tester.binding.window.physicalSizeTestValue =
489-
const Size(screenWidth, screenHeight);
485+
tester.view.devicePixelRatio = 1.0;
486+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
490487

491488
final itemScrollController = ItemScrollController();
492489
final itemPositionsListener = ItemPositionsListener.create();
@@ -528,9 +525,8 @@ void main() {
528525

529526
testWidgets('ItemPositions: Empty list then update to 10 items list',
530527
(WidgetTester tester) async {
531-
tester.binding.window.devicePixelRatioTestValue = 1.0;
532-
tester.binding.window.physicalSizeTestValue =
533-
const Size(screenWidth, screenHeight);
528+
tester.view.devicePixelRatio = 1.0;
529+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
534530

535531
final itemScrollController = ItemScrollController();
536532
final itemPositionsListener = ItemPositionsListener.create();

packages/scrollable_positioned_list/test/seperated_horizontal_scrollable_positioned_list_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ void main() {
2424
EdgeInsets? padding,
2525
int initialScrollIndex = 0,
2626
}) async {
27-
tester.binding.window.devicePixelRatioTestValue = 1.0;
28-
tester.binding.window.physicalSizeTestValue =
29-
const Size(screenWidth, screenHeight);
27+
tester.view.devicePixelRatio = 1.0;
28+
tester.view.physicalSize = const Size(screenWidth, screenHeight);
3029

3130
await tester.pumpWidget(
3231
MaterialApp(

0 commit comments

Comments
 (0)