diff --git a/packages/vector_graphics/CHANGELOG.md b/packages/vector_graphics/CHANGELOG.md index 4d13b0fe794f..8ec455436130 100644 --- a/packages/vector_graphics/CHANGELOG.md +++ b/packages/vector_graphics/CHANGELOG.md @@ -1,6 +1,7 @@ -## NEXT +## 1.2.3 * Updates minimum supported SDK version to Flutter 3.38/Dart 3.10. +* Fixes a crash when a `semanticsLabel` is provided without an ambient `Directionality` (flutter/flutter#175532). ## 1.2.2 diff --git a/packages/vector_graphics/lib/src/vector_graphics.dart b/packages/vector_graphics/lib/src/vector_graphics.dart index f49283226896..1f5148b0c514 100644 --- a/packages/vector_graphics/lib/src/vector_graphics.dart +++ b/packages/vector_graphics/lib/src/vector_graphics.dart @@ -538,6 +538,7 @@ class _VectorGraphicWidgetState extends State { container: widget.semanticsLabel != null, image: true, label: widget.semanticsLabel ?? '', + textDirection: Directionality.maybeOf(context) ?? TextDirection.ltr, child: child, ); } diff --git a/packages/vector_graphics/pubspec.yaml b/packages/vector_graphics/pubspec.yaml index 8a21c4e2186a..492ac630e7fa 100644 --- a/packages/vector_graphics/pubspec.yaml +++ b/packages/vector_graphics/pubspec.yaml @@ -2,7 +2,7 @@ name: vector_graphics description: A vector graphics rendering package for Flutter using a binary encoding. repository: https://github.com/flutter/packages/tree/main/packages/vector_graphics issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+vector_graphics%22 -version: 1.2.2 +version: 1.2.3 environment: sdk: ^3.10.0 diff --git a/packages/vector_graphics/test/vector_graphics_test.dart b/packages/vector_graphics/test/vector_graphics_test.dart index 155134589312..87f2d7b5031c 100644 --- a/packages/vector_graphics/test/vector_graphics_test.dart +++ b/packages/vector_graphics/test/vector_graphics_test.dart @@ -415,6 +415,23 @@ void main() { ); }); + testWidgets('Semantic label works without an ambient Directionality (flutter/flutter#175532)', ( + WidgetTester tester, + ) async { + final testBundle = TestAssetBundle(); + + await tester.pumpWidget( + DefaultAssetBundle( + bundle: testBundle, + child: const VectorGraphic(loader: AssetBytesLoader('foo.svg'), semanticsLabel: 'Foo'), + ), + ); + await tester.pumpAndSettle(); + + expect(tester.takeException(), isNull); + expect(find.bySemanticsLabel('Foo'), findsOneWidget); + }); + testWidgets('Default placeholder builder', (WidgetTester tester) async { final testBundle = TestAssetBundle();