Skip to content

Commit 550f862

Browse files
[vector_graphics] Updates min SDK to 3.29 (#9820)
For the vector_graphics* packages: - Updates the min SDK version to 3.29 - Runs the autoformatter with the new format This does not update versions because pushing format changes (even in READMEs) isn't worth doing a release that drops an SDK version (which we don't normally version) Prep for #9816
1 parent 8058fc3 commit 550f862

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+21918
-8132
lines changed

packages/vector_graphics/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## NEXT
2+
3+
* Updates minimum supported SDK version to Flutter 3.29/Dart 3.7.
4+
15
## 1.1.19
26

37
* Updates minimum supported SDK version to Flutter 3.24/Dart 3.5.

packages/vector_graphics/example/lib/main.dart

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ class MyApp extends StatelessWidget {
2323
Widget build(BuildContext context) {
2424
return MaterialApp(
2525
title: 'Vector Graphics Demo',
26-
theme: ThemeData(
27-
primarySwatch: Colors.blue,
28-
),
26+
theme: ThemeData(primarySwatch: Colors.blue),
2927
home: const Scaffold(
3028
body: Center(
3129
child: VectorGraphic(
@@ -49,20 +47,24 @@ class NetworkSvgLoader extends BytesLoader {
4947

5048
@override
5149
Future<ByteData> loadBytes(BuildContext? context) async {
52-
return compute((String svgUrl) async {
53-
final http.Response request = await http.get(Uri.parse(svgUrl));
54-
final TimelineTask task = TimelineTask()..start('encodeSvg');
55-
final Uint8List compiledBytes = encodeSvg(
56-
xml: request.body,
57-
debugName: svgUrl,
58-
enableClippingOptimizer: false,
59-
enableMaskingOptimizer: false,
60-
enableOverdrawOptimizer: false,
61-
);
62-
task.finish();
63-
// sendAndExit will make sure this isn't copied.
64-
return compiledBytes.buffer.asByteData();
65-
}, url, debugLabel: 'Load Bytes');
50+
return compute(
51+
(String svgUrl) async {
52+
final http.Response request = await http.get(Uri.parse(svgUrl));
53+
final TimelineTask task = TimelineTask()..start('encodeSvg');
54+
final Uint8List compiledBytes = encodeSvg(
55+
xml: request.body,
56+
debugName: svgUrl,
57+
enableClippingOptimizer: false,
58+
enableMaskingOptimizer: false,
59+
enableOverdrawOptimizer: false,
60+
);
61+
task.finish();
62+
// sendAndExit will make sure this isn't copied.
63+
return compiledBytes.buffer.asByteData();
64+
},
65+
url,
66+
debugLabel: 'Load Bytes',
67+
);
6668
}
6769

6870
@override

packages/vector_graphics/example/lib/svg_string.dart

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,9 @@ class MyApp extends StatefulWidget {
4747
}
4848

4949
class _MyAppState extends State<MyApp> {
50-
final TextEditingController _controller =
51-
TextEditingController(text: _flutterLogoString);
50+
final TextEditingController _controller = TextEditingController(
51+
text: _flutterLogoString,
52+
);
5253
ByteData? _data;
5354
Timer? _debounce;
5455
int _svgLength = 0;
@@ -61,32 +62,38 @@ class _MyAppState extends State<MyApp> {
6162
_debounce?.cancel();
6263
}
6364
_debounce = Timer(const Duration(milliseconds: 250), () {
64-
compute((String svg) {
65-
final Uint8List compiledBytes = encodeSvg(
66-
xml: svg,
67-
debugName: '<string>',
68-
enableClippingOptimizer: false,
69-
enableMaskingOptimizer: false,
70-
enableOverdrawOptimizer: false,
71-
);
72-
return compiledBytes.buffer.asByteData();
73-
}, text, debugLabel: 'Load Bytes')
74-
.then((ByteData data) {
75-
if (!mounted) {
76-
return;
77-
}
78-
setState(() {
79-
// String is UTF-16.
80-
_svgLength = text.length * 2;
81-
_gzSvgLength = gzip.encode(utf8.encode(text)).length;
82-
_vgLength = data.lengthInBytes;
83-
_gzVgLength = gzip.encode(data.buffer.asUint8List()).length;
84-
_data = data;
85-
});
86-
}, onError: (Object error, StackTrace stack) {
87-
debugPrint(error.toString());
88-
debugPrint(stack.toString());
89-
});
65+
compute(
66+
(String svg) {
67+
final Uint8List compiledBytes = encodeSvg(
68+
xml: svg,
69+
debugName: '<string>',
70+
enableClippingOptimizer: false,
71+
enableMaskingOptimizer: false,
72+
enableOverdrawOptimizer: false,
73+
);
74+
return compiledBytes.buffer.asByteData();
75+
},
76+
text,
77+
debugLabel: 'Load Bytes',
78+
).then(
79+
(ByteData data) {
80+
if (!mounted) {
81+
return;
82+
}
83+
setState(() {
84+
// String is UTF-16.
85+
_svgLength = text.length * 2;
86+
_gzSvgLength = gzip.encode(utf8.encode(text)).length;
87+
_vgLength = data.lengthInBytes;
88+
_gzVgLength = gzip.encode(data.buffer.asUint8List()).length;
89+
_data = data;
90+
});
91+
},
92+
onError: (Object error, StackTrace stack) {
93+
debugPrint(error.toString());
94+
debugPrint(stack.toString());
95+
},
96+
);
9097
});
9198
}
9299

@@ -109,9 +116,7 @@ class _MyAppState extends State<MyApp> {
109116
Widget build(BuildContext context) {
110117
return MaterialApp(
111118
title: 'Vector Graphics Demo',
112-
theme: ThemeData(
113-
primarySwatch: Colors.blue,
114-
),
119+
theme: ThemeData(primarySwatch: Colors.blue),
115120
home: Scaffold(
116121
body: Center(
117122
child: ListView(
@@ -120,14 +125,12 @@ class _MyAppState extends State<MyApp> {
120125
if (_data == null)
121126
const Placeholder()
122127
else
123-
VectorGraphic(
124-
loader: RawBytesLoader(
125-
_data!,
126-
),
127-
),
128+
VectorGraphic(loader: RawBytesLoader(_data!)),
128129
const Divider(),
129-
Text('SVG size (compressed): $_svgLength ($_gzSvgLength). '
130-
'VG size (compressed): $_vgLength ($_gzVgLength)'),
130+
Text(
131+
'SVG size (compressed): $_svgLength ($_gzSvgLength). '
132+
'VG size (compressed): $_vgLength ($_gzVgLength)',
133+
),
131134
const Divider(),
132135
Padding(
133136
padding: const EdgeInsets.all(8.0),

packages/vector_graphics/example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: An example of the vector_graphics package
33
publish_to: 'none'
44

55
environment:
6-
sdk: ^3.6.0
6+
sdk: ^3.7.0
77

88
dependencies:
99
flutter:

packages/vector_graphics/lib/src/html_render_vector_graphics.dart

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,10 @@ class RenderWebVectorGraphic extends RenderBox {
133133
void paint(PaintingContext context, ui.Offset offset) {
134134
assert(size == pictureInfo.size);
135135
if (kDebugMode && debugSkipRaster) {
136-
context.canvas
137-
.drawRect(offset & size, Paint()..color = const Color(0xFFFF00FF));
136+
context.canvas.drawRect(
137+
offset & size,
138+
Paint()..color = const Color(0xFFFF00FF),
139+
);
138140
return;
139141
}
140142

@@ -144,33 +146,28 @@ class RenderWebVectorGraphic extends RenderBox {
144146

145147
// The HTML backend cannot correctly draw saveLayer opacity or color
146148
// filters. Nor does it support toImageSync.
147-
_transformLayer.layer = context.pushTransform(
148-
true,
149-
offset,
150-
_transform,
151-
(PaintingContext context, Offset offset) {
152-
_opacityHandle.layer = context.pushOpacity(
153-
offset,
154-
(_opacityValue * 255).round(),
155-
(PaintingContext context, Offset offset) {
156-
if (colorFilter != null) {
157-
_filterLayer.layer = context.pushColorFilter(
158-
offset,
159-
colorFilter!,
160-
(PaintingContext context, Offset offset) {
161-
context.canvas.drawPicture(pictureInfo.picture);
162-
},
163-
oldLayer: _filterLayer.layer,
164-
);
165-
} else {
166-
_filterLayer.layer = null;
149+
_transformLayer.layer = context.pushTransform(true, offset, _transform, (
150+
PaintingContext context,
151+
Offset offset,
152+
) {
153+
_opacityHandle.layer = context.pushOpacity(
154+
offset,
155+
(_opacityValue * 255).round(),
156+
(PaintingContext context, Offset offset) {
157+
if (colorFilter != null) {
158+
_filterLayer.layer = context.pushColorFilter(offset, colorFilter!, (
159+
PaintingContext context,
160+
Offset offset,
161+
) {
167162
context.canvas.drawPicture(pictureInfo.picture);
168-
}
169-
},
170-
oldLayer: _opacityHandle.layer,
171-
);
172-
},
173-
oldLayer: _transformLayer.layer,
174-
);
163+
}, oldLayer: _filterLayer.layer);
164+
} else {
165+
_filterLayer.layer = null;
166+
context.canvas.drawPicture(pictureInfo.picture);
167+
}
168+
},
169+
oldLayer: _opacityHandle.layer,
170+
);
171+
}, oldLayer: _transformLayer.layer);
175172
}
176173
}

0 commit comments

Comments
 (0)