diff --git a/README.md b/README.md index 076bc4dd7..05e1ec8e5 100644 --- a/README.md +++ b/README.md @@ -408,9 +408,9 @@ Widget build(BuildContext context) { |---------------------------------------------------------|----------------------|-----------------------|-------------------------------------------| | [flutter_svg](https://pub.dev/packages/flutter_svg) | .svg | `flutter_svg: true` | Assets.images.icons.paint.**svg()** | | [rive](https://pub.dev/packages/rive) | .riv | `rive: true` | Assets.rive.vehicles.**rive()** | -| [lottie](https://pub.dev/packages/lottie) | .json, .zip, .lottie | `lottie: true` | Assets.lottie.hamburgerArrow.**lottie()** | +| [lottie](https://pub.dev/packages/lottie) | .json, .zip, .lottie, .tgs | `lottie: true` | Assets.lottie.hamburgerArrow.**lottie()** | -**Note:** For [lottie](https://pub.dev/packages/lottie) integration with `.lottie` files, you must add a custom decoder via `decoder` parameter to select the correct .json file from a dotlottie (.lottie) archive, see [lottie's document](https://pub.dev/packages/lottie#telegram-stickers-tgs-and-dotlottie-lottie) for more information. +**Note:** For [lottie](https://pub.dev/packages/lottie) integration with `.lottie` and `.tgs` files, you must add a custom decoder via `decoder` parameter, see [lottie's document](https://pub.dev/packages/lottie#telegram-stickers-tgs-and-dotlottie-lottie) for more information. In other cases, the asset is generated as String class. diff --git a/examples/example/assets/lottie/cat.tgs b/examples/example/assets/lottie/cat.tgs new file mode 100644 index 000000000..df578ee7e Binary files /dev/null and b/examples/example/assets/lottie/cat.tgs differ diff --git a/examples/example/lib/gen/assets.gen.dart b/examples/example/lib/gen/assets.gen.dart index 57d68250b..fea51eb23 100644 --- a/examples/example/lib/gen/assets.gen.dart +++ b/examples/example/lib/gen/assets.gen.dart @@ -82,6 +82,9 @@ class $AssetsLottieGen { LottieGenImage get alarmClockLottieV440 => const LottieGenImage('assets/lottie/alarm-clock-lottie-v440.json'); + /// File path: assets/lottie/cat.tgs + LottieGenImage get cat => const LottieGenImage('assets/lottie/cat.tgs'); + /// File path: assets/lottie/geometrical-animation.json LottieGenImage get geometricalAnimation => const LottieGenImage('assets/lottie/geometrical-animation.json'); @@ -101,6 +104,7 @@ class $AssetsLottieGen { List get values => [ xuiIZ9X1Rf, alarmClockLottieV440, + cat, geometricalAnimation, hamburgerArrow, spinningCarrousel, diff --git a/examples/example/lib/main.dart b/examples/example/lib/main.dart index 9861eb2c7..efcaced0d 100644 --- a/examples/example/lib/main.dart +++ b/examples/example/lib/main.dart @@ -3,6 +3,7 @@ import 'package:example/gen/colors.gen.dart'; import 'package:example/gen/fonts.gen.dart'; import 'package:example_resources/gen/assets.gen.dart'; import 'package:flutter/material.dart'; +import 'package:lottie/lottie.dart'; void main() { print(MyAssets.images.chip4.chip4.flavors); @@ -59,6 +60,13 @@ class MyApp extends StatelessWidget { fit: BoxFit.contain, ), ), + SizedBox( + width: 200, + height: 200, + child: MyAssets.lottie.cat.lottie( + decoder: LottieComposition.decodeGZip, + ), + ), MyAssets.images.chip1.image(), Container( height: 400, diff --git a/examples/example_resources/assets/images/cat.tgs b/examples/example_resources/assets/images/cat.tgs new file mode 100644 index 000000000..df578ee7e Binary files /dev/null and b/examples/example_resources/assets/images/cat.tgs differ diff --git a/examples/example_resources/lib/gen/assets.gen.dart b/examples/example_resources/lib/gen/assets.gen.dart index a5ac96f12..7c78fc642 100644 --- a/examples/example_resources/lib/gen/assets.gen.dart +++ b/examples/example_resources/lib/gen/assets.gen.dart @@ -17,6 +17,9 @@ import 'package:vector_graphics/vector_graphics.dart' as _vg; class $AssetsImagesGen { const $AssetsImagesGen(); + /// File path: assets/images/cat.tgs + LottieGenImage get cat => const LottieGenImage('assets/images/cat.tgs'); + /// File path: assets/images/dart.svg SvgGenImage get dart => const SvgGenImage('assets/images/dart.svg'); @@ -36,7 +39,7 @@ class $AssetsImagesGen { /// List of all assets List get values => - [dart, favorite, flutter3, runningCarOnRoad, skills]; + [cat, dart, favorite, flutter3, runningCarOnRoad, skills]; } class $AssetsUnknownGen { diff --git a/packages/core/lib/generators/integrations/lottie_integration.dart b/packages/core/lib/generators/integrations/lottie_integration.dart index 98ebf957d..2a904ac3d 100644 --- a/packages/core/lib/generators/integrations/lottie_integration.dart +++ b/packages/core/lib/generators/integrations/lottie_integration.dart @@ -122,7 +122,7 @@ ${isPackage ? "\n static const String package = '$packageName';" : ''} bool get isConstConstructor => true; bool isLottieFile(AssetType asset) { - if (asset.extension == '.lottie') { + if (asset.extension == '.lottie' || asset.extension == '.tgs') { return true; } if (!_supportedMimeTypes.contains(asset.mime)) { diff --git a/packages/core/test_resources/actual_data/assets_lottie_integrations.gen.dart b/packages/core/test_resources/actual_data/assets_lottie_integrations.gen.dart index 1cef9d7f6..1c2793be6 100644 --- a/packages/core/test_resources/actual_data/assets_lottie_integrations.gen.dart +++ b/packages/core/test_resources/actual_data/assets_lottie_integrations.gen.dart @@ -17,6 +17,10 @@ class $AssetsLottieGen { LottieGenImage get xuiIZ9X1Rf => const LottieGenImage('assets/lottie/XuiIZ9X1Rf.lottie'); + /// File path: assets/lottie/cat_cat.tgs + LottieGenImage get catCat => + const LottieGenImage('assets/lottie/cat_cat.tgs'); + /// File path: assets/lottie/hamburger_arrow.json LottieGenImage get hamburgerArrow => const LottieGenImage('assets/lottie/hamburger_arrow.json'); @@ -27,7 +31,7 @@ class $AssetsLottieGen { /// List of all assets List get values => - [xuiIZ9X1Rf, hamburgerArrow, spinningCarrousel]; + [xuiIZ9X1Rf, catCat, hamburgerArrow, spinningCarrousel]; } class Assets { diff --git a/packages/core/test_resources/assets/lottie/cat_cat.tgs b/packages/core/test_resources/assets/lottie/cat_cat.tgs new file mode 100644 index 000000000..df578ee7e Binary files /dev/null and b/packages/core/test_resources/assets/lottie/cat_cat.tgs differ diff --git a/packages/core/test_resources/pubspec_assets_lottie_integrations.yaml b/packages/core/test_resources/pubspec_assets_lottie_integrations.yaml index b5efaf5fb..e5f34fcaa 100644 --- a/packages/core/test_resources/pubspec_assets_lottie_integrations.yaml +++ b/packages/core/test_resources/pubspec_assets_lottie_integrations.yaml @@ -12,3 +12,4 @@ flutter: - assets/lottie/hamburger_arrow.json - assets/lottie/spinning_carrousel.zip - assets/lottie/XuiIZ9X1Rf.lottie + - assets/lottie/cat_cat.tgs