From 98e500704dcd3176a9c244d9716faac038c1477c Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Wed, 12 Aug 2026 13:37:06 +0200 Subject: [PATCH 1/3] update flutter and fix deprecation --- .fvmrc | 4 +- CHANGELOG.md | 7 +++ example/pubspec.lock | 70 ++++++++++----------- example/pubspec.yaml | 2 +- lib/src/scrollable_list_focus_movement.dart | 6 +- pubspec.yaml | 2 +- 6 files changed, 49 insertions(+), 42 deletions(-) diff --git a/.fvmrc b/.fvmrc index 4de1bea..e16bb0b 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.27.2" -} \ No newline at end of file + "flutter": "3.44.9" +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 65f70c5..1c8a675 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.0.3 + +* **BREAKING**: `ScrollableListFocusMovement.requiredCacheExtent` now returns + a `ScrollCacheExtent?` instead of a `double?` to match Flutter's new + `ScrollView.scrollCacheExtent` API. Pass the result directly to + `scrollCacheExtent`. Requires Flutter >= 3.42. + ## 0.0.2 -> 27.01.2025 * Clip the [FocusHighlight] painter outside of the current render box. diff --git a/example/pubspec.lock b/example/pubspec.lock index 59f6e36..61d203d 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -21,26 +21,26 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" cupertino_icons: dependency: "direct main" description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.3" file: dependency: transitive description: @@ -79,10 +79,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.0" flutter_test: dependency: "direct dev" description: flutter @@ -102,66 +102,66 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: name: lints - sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "6.1.0" matcher: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.19" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.18.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" platform: dependency: transitive description: @@ -195,18 +195,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: @@ -242,18 +242,18 @@ packages: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.11" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: @@ -271,5 +271,5 @@ packages: source: hosted version: "3.0.4" sdks: - dart: ">=3.6.1 <4.0.0" + dart: ">=3.10.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 5759ae8..248c4eb 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -35,7 +35,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/lib/src/scrollable_list_focus_movement.dart b/lib/src/scrollable_list_focus_movement.dart index 22372c8..977f543 100644 --- a/lib/src/scrollable_list_focus_movement.dart +++ b/lib/src/scrollable_list_focus_movement.dart @@ -4,9 +4,9 @@ part of '../tapped_accessibility.dart'; /// Make sure to use [ScrollableListFocusMovement.requiredCacheExtent] to get the correct cache extent if /// the hardware keyboard is used. class ScrollableListFocusMovement extends StatefulWidget { - static double? requiredCacheExtent(BuildContext context) { + static ScrollCacheExtent? requiredCacheExtent(BuildContext context) { if (HardwareKeyboardUsage.isEnabled(context)) { - return double.maxFinite; + return const ScrollCacheExtent.pixels(double.maxFinite); } return null; } @@ -71,7 +71,7 @@ class _ScrollableListFocusMovementState final viewport = RenderAbstractViewport.maybeOf(viewportRenderObject); if (viewport is RenderViewport) { - final cacheExtent = viewport.cacheExtent; + final cacheExtent = viewport.scrollCacheExtent; final requiredExtent = ScrollableListFocusMovement.requiredCacheExtent(context); diff --git a/pubspec.yaml b/pubspec.yaml index 950ac56..f743139 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 tapped_lints: git: url: https://github.com/tappeddev/tapped_lints.git From 8ad83157f582cb561bfe1fbafa0ec92ee9e8b683 Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Wed, 12 Aug 2026 13:40:01 +0200 Subject: [PATCH 2/3] update flutter and fix deprecation --- analysis_options.yaml | 2 +- lib/src/accessible_arrow_key_scrollable.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index 8a149a2..4184332 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1 +1 @@ -include: package:tapped_lints/flutter-3.10.yaml +include: package:tapped_lints/flutter-3.29.yaml diff --git a/lib/src/accessible_arrow_key_scrollable.dart b/lib/src/accessible_arrow_key_scrollable.dart index edce26f..24aa1b2 100644 --- a/lib/src/accessible_arrow_key_scrollable.dart +++ b/lib/src/accessible_arrow_key_scrollable.dart @@ -35,7 +35,7 @@ class AccessibleArrowKeyScrollable extends StatelessWidget { scrollController.animateTo( correctedOffset, - duration: Duration(milliseconds: 300), + duration: const Duration(milliseconds: 300), curve: Curves.ease, ); } From 47e36161c77db130bd8c7c3883b66e0a9e5e625b Mon Sep 17 00:00:00 2001 From: Stefan Schaller Date: Wed, 12 Aug 2026 13:43:21 +0200 Subject: [PATCH 3/3] fix pipeline --- .github/workflows/check.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index a482e60..3d59734 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -24,8 +24,10 @@ jobs: with: flutter-version: ${{ env.FLUTTER_VERSION }} channel: ${{ env.FLUTTER_CHANNEL }} + - name: Pub get + run: flutter pub get - name: Analyze app - run: flutter pub get && flutter analyze + run: flutter analyze format: timeout-minutes: 5 @@ -38,5 +40,7 @@ jobs: with: flutter-version: ${{ env.FLUTTER_VERSION }} channel: ${{ env.FLUTTER_CHANNEL }} + - name: Pub get + run: flutter pub get - name: Check formatting run: find . -name "*.dart" ! -name "*.g.dart" ! -name "*.freezed.dart" ! -path '*/generated/*' ! -path '*/gen/*' | xargs dart format --set-exit-if-changed