Skip to content

Commit 396aee9

Browse files
authored
refactor: Removed the AssetImage inheritance from AssetGenImage (#229)
* refactor: change to return image.asset * fix: add to pass package arg * chore: add sample code for external package * chore: add svg file to example_resources * refactor: change position ignore-coverage line * chore: update readme * chore: add example code
1 parent dda2ba2 commit 396aee9

28 files changed

+453
-107
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ Example results of `assets/images/chip.jpg`:
179179

180180
```dart
181181
Widget build(BuildContext context) {
182-
return Image(image: Assets.images.chip);
182+
return Assets.images.chip.image();
183183
}
184184
185185
Widget build(BuildContext context) {

example/lib/gen/assets.gen.dart

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
/// FlutterGen
44
/// *****************************************************
55
6+
// coverage:ignore-file
67
// ignore_for_file: type=lint
78
// ignore_for_file: directives_ordering,unnecessary_import
89

@@ -132,19 +133,23 @@ class Assets {
132133
static const $PicturesGen pictures = $PicturesGen();
133134
}
134135

135-
class AssetGenImage extends AssetImage {
136-
const AssetGenImage(String assetName) : super(assetName);
136+
class AssetGenImage {
137+
const AssetGenImage(this._assetName);
138+
139+
final String _assetName;
137140

138141
Image image({
139142
Key? key,
143+
AssetBundle? bundle,
140144
ImageFrameBuilder? frameBuilder,
141-
ImageLoadingBuilder? loadingBuilder,
142145
ImageErrorWidgetBuilder? errorBuilder,
143146
String? semanticLabel,
144147
bool excludeFromSemantics = false,
148+
double? scale = 1.0,
145149
double? width,
146150
double? height,
147151
Color? color,
152+
Animation<double>? opacity,
148153
BlendMode? colorBlendMode,
149154
BoxFit? fit,
150155
AlignmentGeometry alignment = Alignment.center,
@@ -153,19 +158,24 @@ class AssetGenImage extends AssetImage {
153158
bool matchTextDirection = false,
154159
bool gaplessPlayback = false,
155160
bool isAntiAlias = false,
161+
String? package,
156162
FilterQuality filterQuality = FilterQuality.low,
163+
int? cacheWidth,
164+
int? cacheHeight,
157165
}) {
158-
return Image(
166+
return Image.asset(
167+
_assetName,
159168
key: key,
160-
image: this,
169+
bundle: bundle,
161170
frameBuilder: frameBuilder,
162-
loadingBuilder: loadingBuilder,
163171
errorBuilder: errorBuilder,
164172
semanticLabel: semanticLabel,
165173
excludeFromSemantics: excludeFromSemantics,
174+
scale: scale,
166175
width: width,
167176
height: height,
168177
color: color,
178+
opacity: opacity,
169179
colorBlendMode: colorBlendMode,
170180
fit: fit,
171181
alignment: alignment,
@@ -174,11 +184,14 @@ class AssetGenImage extends AssetImage {
174184
matchTextDirection: matchTextDirection,
175185
gaplessPlayback: gaplessPlayback,
176186
isAntiAlias: isAntiAlias,
187+
package: package,
177188
filterQuality: filterQuality,
189+
cacheWidth: cacheWidth,
190+
cacheHeight: cacheHeight,
178191
);
179192
}
180193

181-
String get path => assetName;
194+
String get path => _assetName;
182195
}
183196

184197
class SvgGenImage {

example/lib/gen/colors.gen.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
/// FlutterGen
44
/// *****************************************************
55
6+
// coverage:ignore-file
67
// ignore_for_file: type=lint
78
// ignore_for_file: directives_ordering,unnecessary_import
89

example/lib/gen/fonts.gen.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
/// FlutterGen
44
/// *****************************************************
55
6+
// coverage:ignore-file
67
// ignore_for_file: type=lint
78
// ignore_for_file: directives_ordering,unnecessary_import
89

example/lib/main.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:example_resources/gen/assets.gen.dart' as res;
23

34
import 'gen/assets.gen.dart';
45
import 'gen/colors.gen.dart';
@@ -37,7 +38,10 @@ void main() {
3738
fit: BoxFit.contain,
3839
),
3940
),
40-
Image(image: Assets.images.chip1),
41+
Assets.images.chip1.image(),
42+
// Use from example_resource package.
43+
res.Assets.images.flutter3.image(),
44+
res.Assets.images.dart.svg(),
4145
Assets.images.icons.kmm.svg(key: const Key("kmm_svg")),
4246
Assets.images.icons.fuchsia.svg(),
4347
Assets.images.icons.paint.svg(

example/pubspec.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ dependencies:
1919

2020
json_annotation: ^4.5.0
2121
freezed_annotation: ^2.0.3
22+
23+
example_resources:
24+
path: ../example_resources
25+
2226

2327
dev_dependencies:
2428
flutter_test:

example_resources/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# example
2+
3+
A sample project using FlutterGen.
4+
5+
## Getting Started
6+
7+
```
8+
cd ../flutter_gen
9+
melos run pub:get
10+
```
Lines changed: 23 additions & 0 deletions
Loading
23.7 KB
Loading

example_resources/lib/gen/assets.gen.dart

Lines changed: 139 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)