Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
4520221a28 | |||
3f5422d44b | |||
61668b0509 | |||
1e9861e43f | |||
c32550cf15 | |||
9d4e66ea6b | |||
f58f3888da |
85
CHANGELOG.md
@ -1,5 +1,10 @@
|
||||
|
||||
## [2.2.0]
|
||||
## 2.3.0
|
||||
- Fixed a failed assertion (`dirty: is not true`) when calling `setState` inside `onLoaded` callback.
|
||||
- Update point text y offset
|
||||
- Makes static compositions not animate by default
|
||||
|
||||
## 2.2.0
|
||||
Apply the latest fixes from Lottie-Android:
|
||||
|
||||
- Overhaul text layout
|
||||
@ -8,7 +13,7 @@ Apply the latest fixes from Lottie-Android:
|
||||
- Allow interpolating between gradients with different opacity stops
|
||||
- Add support for gradient opacity stops
|
||||
|
||||
## [2.1.0]
|
||||
## 2.1.0
|
||||
- Improve the cache to ensure that there is not an empty frame each time we load an animation.
|
||||
The method `AssetLottie('anim.json').load()` returns a `SynchronousFuture` if it has been loaded previously.
|
||||
- Expose the `LottieCache` singleton.
|
||||
@ -22,7 +27,7 @@ void main() {
|
||||
}
|
||||
```
|
||||
|
||||
## [2.0.0]
|
||||
## 2.0.0
|
||||
- **Breaking change**: the lottie widget will be smaller if it relies on the intrinsic size of the composition.
|
||||
|
||||
Previously the lottie parser was automatically multiplying the size of the composition by `window.devicePixelRatio`.
|
||||
@ -44,19 +49,19 @@ Scaffold(
|
||||
);
|
||||
```
|
||||
|
||||
## [1.4.3]
|
||||
## 1.4.3
|
||||
- Fixed some lints with Flutter 3.3.
|
||||
|
||||
## [1.4.2]
|
||||
## 1.4.2
|
||||
- Use `FilterQuality.low` as default to draw image layers.
|
||||
|
||||
## [1.4.1]
|
||||
## 1.4.1
|
||||
- Allow `AlignmentGeometry` for `alignment`.
|
||||
|
||||
## [1.4.0]
|
||||
## 1.4.0
|
||||
- Added `filterQuality` property to control the performance vs quality trade-off to use when drawing images
|
||||
|
||||
## [1.3.0]
|
||||
## 1.3.0
|
||||
- Added support for rounded corners on shapes and rects
|
||||
- Add support for text in dynamic properties (`ValueDelegate`)
|
||||
|
||||
@ -78,13 +83,13 @@ Lottie.asset(
|
||||
- Add support for reversed polystar paths
|
||||
- Enforce order of operations to avoid rounding errors
|
||||
|
||||
## [1.2.2]
|
||||
## 1.2.2
|
||||
- Internal maintenance: fix lints for Flutter 2.10
|
||||
|
||||
## [1.2.1]
|
||||
## 1.2.1
|
||||
- Fix: Revert Cubic to `PathInterpolator.cubic`
|
||||
|
||||
## [1.2.0]
|
||||
## 1.2.0
|
||||
- Add support for gaussian blurs.
|
||||
|
||||
Example to blur some elements dynamically:
|
||||
@ -121,7 +126,7 @@ Lottie.asset(
|
||||
)
|
||||
```
|
||||
|
||||
## [1.1.0]
|
||||
## 1.1.0
|
||||
- Add `errorBuilder` callback to provide an alternative widget in case an error occurs during loading.
|
||||
```dart
|
||||
Lottie.network(
|
||||
@ -143,25 +148,25 @@ Lottie.network(
|
||||
```
|
||||
- Various bug fixes
|
||||
|
||||
## [1.0.1]
|
||||
## 1.0.1
|
||||
- Implement `RenderBox.computeDryLayout`
|
||||
|
||||
## [1.0.0]
|
||||
## 1.0.0
|
||||
- Migrate to null safety
|
||||
- Fix some rendering bugs
|
||||
- Add an image delegate to dynamically change images
|
||||
- Allow to use an imageProviderFactory with a zip file
|
||||
|
||||
## [0.7.1]
|
||||
## 0.7.1
|
||||
- Fix a crash for some lottie file with empty paths.
|
||||
|
||||
## [0.7.0+1]
|
||||
## 0.7.0+1
|
||||
- Fix Flutter Web compilation error
|
||||
|
||||
## [0.7.0]
|
||||
## 0.7.0
|
||||
- Performance improvement for complex animations.
|
||||
|
||||
## [0.6.0]
|
||||
## 0.6.0
|
||||
- Runs the animation at the frame rate specified in the json file (ie. An animation encoded with a 20 FPS will only
|
||||
be paint 20 times per seconds even though the AnimationController will invalidate the widget 60 times per seconds).
|
||||
A new property `frameRate` allows to opt-out this behavior and have the widget to repaint at the device frame rate
|
||||
@ -172,20 +177,20 @@ Lottie.network(
|
||||
- Fix a bug where we would call `markNeedPaint` when the animation was not changing. This removes unnecessary paints in
|
||||
animations with static periods.
|
||||
|
||||
## [0.5.1]
|
||||
## 0.5.1
|
||||
- Remove direct dependencies on dart:io to support Flutter Web
|
||||
|
||||
## [0.5.0]
|
||||
## 0.5.0
|
||||
- Support loading animation from network in a web app
|
||||
- Fix a couple of bugs with the web dev compiler
|
||||
|
||||
## [0.4.1]
|
||||
## 0.4.1
|
||||
- Support color value stored as RGB, not RGBA
|
||||
|
||||
## [0.4.0+1]
|
||||
## 0.4.0+1
|
||||
- Support latest version of the `characters` package
|
||||
|
||||
## [0.4.0]
|
||||
## 0.4.0
|
||||
- Disable "Merge paths" by default and provide an option to enable them.
|
||||
This is the same behavior as in Lottie-android.
|
||||
Merge paths currently don't work if the the operand shape is entirely contained within the
|
||||
@ -198,62 +203,62 @@ Lottie.asset('file.json', options: LottieOptions(enableMergePaths: true));
|
||||
```
|
||||
|
||||
|
||||
## [0.3.6]
|
||||
## 0.3.6
|
||||
- Export the `Marker` class
|
||||
|
||||
## [0.3.5]
|
||||
## 0.3.5
|
||||
- Fix a bug with a wrongly clipped rectangle.
|
||||
|
||||
## [0.3.4]
|
||||
## 0.3.4
|
||||
- Fix a bug with dashed path
|
||||
|
||||
## [0.3.3]
|
||||
## 0.3.3
|
||||
- Fix a bug with rounded rectangle shape
|
||||
|
||||
## [0.3.2]
|
||||
## 0.3.2
|
||||
- Fix a bug with "repeater" content
|
||||
|
||||
## [0.3.1]
|
||||
## 0.3.1
|
||||
- Support dashed path
|
||||
|
||||
## [0.3.0+1]
|
||||
## 0.3.0+1
|
||||
- Specify a version range for the dependency on `characters`.
|
||||
|
||||
## [0.3.0]
|
||||
## 0.3.0
|
||||
- Add `LottieDelegates` a group of options to customize the lottie animation at runtime.
|
||||
ie: Dynamically modify color, position, size, text... of every elements of the animation.
|
||||
- Correctly display Linear and Radial Gradients
|
||||
- Integrate latest changes from Lottie-android
|
||||
|
||||
## [0.2.2]
|
||||
## 0.2.2
|
||||
- Add a [repeat] parameter to specify if the automatic animation should loop.
|
||||
- Add the [animate], [reverse], [repeat] properties on `LottieBuilder`
|
||||
- Fix bug with `onLoaded` callback when the `LottieProvider` is changed
|
||||
|
||||
## [0.2.1]
|
||||
## 0.2.1
|
||||
- Fix a big bug in the path transformation code. A lot more animations look correct now.
|
||||
|
||||
## [0.2.0+1]
|
||||
## 0.2.0+1
|
||||
- Improve readme
|
||||
- (internal) Add golden tests
|
||||
|
||||
## [0.2.0]
|
||||
## 0.2.0
|
||||
- Support loading the animation and its images from a zip file
|
||||
- Breaking: `LottieComposition.fromBytes` and `fromByteData` are now asynchronous.
|
||||
|
||||
## [0.1.4]
|
||||
## 0.1.4
|
||||
- Support images in animation
|
||||
- Basic support for text in animation (work in progress)
|
||||
|
||||
## [0.1.3]
|
||||
## 0.1.3
|
||||
- Support Polystar shape
|
||||
- Reorganize examples.
|
||||
|
||||
## [0.1.2]
|
||||
## 0.1.2
|
||||
- Implement `Lottie.network`, `Lottie.file` and `Lottie.memory`
|
||||
|
||||
## [0.1.1]
|
||||
## 0.1.1
|
||||
- Fix analysis lints
|
||||
|
||||
## [0.1.0]
|
||||
## 0.1.0
|
||||
- Initial conversion of [lottie-android](https://github.com/airbnb/lottie-android) to Dart/Flutter
|
||||
|
10
README.md
@ -129,8 +129,7 @@ animation.
|
||||
The `Lottie` widget has several convenient constructors (`Lottie.asset`, `Lottie.network`, `Lottie.memory`) to load, parse and
|
||||
cache automatically the json file.
|
||||
|
||||
Sometime you may prefer to have full control over the loading of the file. Use `LottieComposition.fromByteData` to
|
||||
parse the file from a list of bytes.
|
||||
Sometime you may prefer to have full control over the loading of the file. Use `AssetLottie` (or `NetworkLottie`, `MemoryLottie`) to load a lottie composition from a json file.
|
||||
|
||||
This example shows how to load and parse a Lottie composition from a json file.
|
||||
|
||||
@ -149,12 +148,7 @@ class _MyWidgetState extends State<MyWidget> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_composition = _loadComposition();
|
||||
}
|
||||
|
||||
Future<LottieComposition> _loadComposition() async {
|
||||
var assetData = await rootBundle.load('assets/LottieLogo1.json');
|
||||
return await LottieComposition.fromByteData(assetData);
|
||||
_composition = AssetLottie('assets/LottieLogo1.json').load();
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -51,8 +51,7 @@ animation.
|
||||
The `Lottie` widget has several convenient constructors (`Lottie.asset`, `Lottie.network`, `Lottie.memory`) to load, parse and
|
||||
cache automatically the json file.
|
||||
|
||||
Sometime you may prefer to have full control over the loading of the file. Use `LottieComposition.fromByteData` to
|
||||
parse the file from a list of bytes.
|
||||
Sometime you may prefer to have full control over the loading of the file. Use `AssetLottie` (or `NetworkLottie`, `MemoryLottie`) to load a lottie composition from a json file.
|
||||
|
||||
This example shows how to load and parse a Lottie composition from a json file.
|
||||
|
||||
|
1
example/assets/Tests/BoxPosition.json
Normal file
@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:lottie/lottie.dart';
|
||||
|
||||
void main() => runApp(const MyApp());
|
||||
@ -32,12 +31,7 @@ class _MyWidgetState extends State<MyWidget> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_composition = _loadComposition();
|
||||
}
|
||||
|
||||
Future<LottieComposition> _loadComposition() async {
|
||||
var assetData = await rootBundle.load('assets/LottieLogo1.json');
|
||||
return await LottieComposition.fromByteData(assetData);
|
||||
_composition = AssetLottie('assets/LottieLogo1.json').load();
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -43,18 +43,32 @@ final files = [
|
||||
'assets/Tests/Airbnb.zip',
|
||||
'assets/Tests/Airbnb400.zip',
|
||||
'assets/Tests/Airbnb800.zip',
|
||||
'assets/Tests/AnimatedShadow.json',
|
||||
'assets/Tests/BeyondBounds.json',
|
||||
'assets/Tests/BoxPosition.json',
|
||||
'assets/Tests/CheckSwitch.json',
|
||||
'assets/Tests/DifferentPointsCount.json',
|
||||
'assets/Tests/DynamicGradient.json',
|
||||
'assets/Tests/DynamicText.json',
|
||||
'assets/Tests/EditedColor.json',
|
||||
'assets/Tests/EllipseDirection.json',
|
||||
'assets/Tests/EmbeddedFont.zip',
|
||||
'assets/Tests/EndFrame.json',
|
||||
'assets/Tests/Fill.json',
|
||||
'assets/Tests/FillBlur.json',
|
||||
'assets/Tests/Font_Text_Justification_Translate_Scale_Rotation_Test.json',
|
||||
'assets/Tests/Frame.json',
|
||||
'assets/Tests/Framerate.json',
|
||||
'assets/Tests/GradientFill.json',
|
||||
'assets/Tests/GradientFillBlur.json',
|
||||
'assets/Tests/GradientOneColor.json',
|
||||
'assets/Tests/GradientOpacityInterpolation.json',
|
||||
'assets/Tests/GradientStrokeBlur.json',
|
||||
'assets/Tests/Heart.json',
|
||||
'assets/Tests/InterpolateBetweenOpacityStops.json',
|
||||
'assets/Tests/InterpolatorLoopBack.json',
|
||||
'assets/Tests/KeyframeTypes.json',
|
||||
'assets/Tests/LargeComposition.json',
|
||||
'assets/Tests/Laugh4.json',
|
||||
'assets/Tests/LoopPlayOnce.json',
|
||||
'assets/Tests/Marker.json',
|
||||
@ -65,39 +79,66 @@ final files = [
|
||||
'assets/Tests/MatteTimeStretchLine.json',
|
||||
'assets/Tests/MatteTimeStretchScan.json',
|
||||
'assets/Tests/MiterLimit.json',
|
||||
'assets/Tests/Multiline.json',
|
||||
'assets/Tests/OpacityStops.json',
|
||||
'assets/Tests/OverlapShapeWithOpacity.json',
|
||||
'assets/Tests/Parenting.json',
|
||||
'assets/Tests/PrecompBlur.json',
|
||||
'assets/Tests/PrecompBlurDecimapPrecompSize.json',
|
||||
'assets/Tests/Precomps.json',
|
||||
'assets/Tests/RGB.json',
|
||||
'assets/Tests/RGBMarker.json',
|
||||
'assets/Tests/Rect1.json',
|
||||
'assets/Tests/Rect3.json',
|
||||
'assets/Tests/Rect4.json',
|
||||
'assets/Tests/Rect5.json',
|
||||
'assets/Tests/Rect6.json',
|
||||
'assets/Tests/Rect7.json',
|
||||
'assets/Tests/Rect8.json',
|
||||
'assets/Tests/Rect9.json',
|
||||
'assets/Tests/Remap.json',
|
||||
'assets/Tests/Repeater.json',
|
||||
'assets/Tests/ReversedStar.json',
|
||||
'assets/Tests/RoundedCorners.json',
|
||||
'assets/Tests/RoundedWithAlreadyRoundedCorners.json',
|
||||
'assets/Tests/Scale0.json',
|
||||
'assets/Tests/ShapeTypes.json',
|
||||
'assets/Tests/Shapes.json',
|
||||
'assets/Tests/Skew.json',
|
||||
'assets/Tests/SolidLayerTransform.json',
|
||||
'assets/Tests/SplitDimensions.json',
|
||||
'assets/Tests/SplitPathTransform.json',
|
||||
'assets/Tests/Squares.json',
|
||||
'assets/Tests/StarSkew.json',
|
||||
'assets/Tests/StartEndFrame.json',
|
||||
'assets/Tests/StaticShadow.json',
|
||||
'assets/Tests/Stroke.json',
|
||||
'assets/Tests/StrokeBlur.json',
|
||||
'assets/Tests/TelegramAlphaCompat.json',
|
||||
'assets/Tests/Text.json',
|
||||
'assets/Tests/TextBaseline.json',
|
||||
'assets/Tests/TextWithPsCenter.json',
|
||||
'assets/Tests/TextWithPsLeft.json',
|
||||
'assets/Tests/Text_Justification_Translate_Scale_Rotation_Text.json',
|
||||
'assets/Tests/TgsWithoutOpacity.json',
|
||||
'assets/Tests/Thumb.json',
|
||||
'assets/Tests/TimeRemapAndStartOffset.json',
|
||||
'assets/Tests/TimeStretch.json',
|
||||
'assets/Tests/TimeStretchAndStartOffset.json',
|
||||
'assets/Tests/TimeStretchMask.json',
|
||||
'assets/Tests/TimeStretchPrecomp.json',
|
||||
'assets/Tests/TimeStretchPrecomp2.json',
|
||||
'assets/Tests/TrackMattes.json',
|
||||
'assets/Tests/TransformWithoutEndValues.json',
|
||||
'assets/Tests/TrimPathWrapAround.json',
|
||||
'assets/Tests/TrimPaths.json',
|
||||
'assets/Tests/TrimPathsInsideAndOutsideGroup.json',
|
||||
'assets/Tests/WeAccept.json',
|
||||
'assets/Tests/WeAcceptInlineImage.json',
|
||||
'assets/Tests/ZipInlineImage.zip',
|
||||
'assets/Tests/adrock.json',
|
||||
'assets/Tests/adrock_converted.json',
|
||||
'assets/Tests/anim_jpg.zip',
|
||||
'assets/Tests/august_view_pulse.zip',
|
||||
'assets/Tests/bm.json',
|
||||
'assets/Tests/bm_converted.json',
|
||||
@ -105,8 +146,11 @@ final files = [
|
||||
'assets/Tests/catrim_converted.json',
|
||||
'assets/Tests/dalek.json',
|
||||
'assets/Tests/dalek_converted.json',
|
||||
'assets/Tests/exported_with_flow.json',
|
||||
'assets/Tests/hd.json',
|
||||
'assets/Tests/map.zip',
|
||||
'assets/Tests/rect2.json',
|
||||
'assets/Tests/wile.json',
|
||||
'assets/TwitterHeartButton.json',
|
||||
'assets/battery_optimizations.json',
|
||||
'assets/bluetoothscanning.json',
|
||||
@ -221,6 +265,7 @@ final files = [
|
||||
'assets/lottiefiles/la_calavera.json',
|
||||
'assets/lottiefiles/landing_page.json',
|
||||
'assets/lottiefiles/lego_loader.json',
|
||||
'assets/lottiefiles/lf20_fteywrno.json',
|
||||
'assets/lottiefiles/light.json',
|
||||
'assets/lottiefiles/lightsaber.json',
|
||||
'assets/lottiefiles/little_girl_jumping_-_loader.json',
|
||||
|
@ -5,7 +5,7 @@
|
||||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import path_provider_macos
|
||||
import path_provider_foundation
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
|
@ -1,4 +1,4 @@
|
||||
platform :osx, '10.11'
|
||||
platform :osx, '10.14'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
@ -1,22 +1,23 @@
|
||||
PODS:
|
||||
- FlutterMacOS (1.0.0)
|
||||
- path_provider_macos (0.0.1):
|
||||
- path_provider_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
|
||||
DEPENDENCIES:
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
|
||||
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos`)
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
FlutterMacOS:
|
||||
:path: Flutter/ephemeral
|
||||
path_provider_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
|
||||
path_provider_foundation:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811
|
||||
path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852
|
||||
|
||||
PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c
|
||||
PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
|
@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXAggregateTarget section */
|
||||
@ -203,7 +203,7 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0920;
|
||||
LastUpgradeCheck = 0930;
|
||||
LastUpgradeCheck = 1300;
|
||||
ORGANIZATIONNAME = "The Flutter Authors";
|
||||
TargetAttributes = {
|
||||
33CC10EC2044A3C60003C045 = {
|
||||
@ -256,6 +256,7 @@
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3399D490228B24CF009A79C7 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
@ -320,11 +321,11 @@
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
|
||||
"${BUILT_PRODUCTS_DIR}/path_provider_macos/path_provider_macos.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_macos.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
@ -405,7 +406,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
@ -488,7 +489,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
@ -535,7 +536,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1300"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -5,77 +5,88 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.5"
|
||||
version: "3.3.6"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
version: "2.10.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.16.0"
|
||||
version: "1.17.0"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.1"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.4"
|
||||
flutter:
|
||||
@ -87,14 +98,16 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_colorpicker
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "458a6ed8ea480eb16ff892aedb4b7092b2804affd7e046591fb03127e8d8ef8b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.3"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
flutter_test:
|
||||
@ -106,154 +119,167 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: golden_toolkit
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "8f74adab33154fe7b731395782797021f97d2edc52f7bfb85ff4f1b5c4a215f0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.14.0"
|
||||
version: "0.15.0"
|
||||
http:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: http
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.13.5"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_parser
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.2"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.5"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
logging:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: logging
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.1.1"
|
||||
lottie:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "2.2.0"
|
||||
version: "2.3.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.12"
|
||||
version: "0.12.13"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.5"
|
||||
version: "0.2.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
path:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.2"
|
||||
path_provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path_provider
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.11"
|
||||
version: "2.0.13"
|
||||
path_provider_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_android
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.22"
|
||||
path_provider_ios:
|
||||
version: "2.0.23"
|
||||
path_provider_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
name: path_provider_foundation
|
||||
sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.11"
|
||||
version: "2.1.2"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.7"
|
||||
path_provider_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.6"
|
||||
version: "2.1.9"
|
||||
path_provider_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
version: "2.0.6"
|
||||
path_provider_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
version: "2.1.4"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: platform
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: plugin_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
version: "2.1.4"
|
||||
pointycastle:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pointycastle
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.6.2"
|
||||
process:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: process
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.4"
|
||||
sky_engine:
|
||||
@ -265,72 +291,82 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
version: "1.9.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.11.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.2.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.12"
|
||||
version: "0.4.16"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
version: "3.1.3"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xdg_directories
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0+2"
|
||||
version: "1.0.0"
|
||||
sdks:
|
||||
dart: ">=2.18.4 <3.0.0"
|
||||
flutter: ">=3.3.0"
|
||||
|
@ -441,17 +441,22 @@ class _LottieBuilderState extends State<LottieBuilder> {
|
||||
void _load() {
|
||||
var provider = widget.lottie;
|
||||
_loadingFuture = widget.lottie.load().then((composition) {
|
||||
if (mounted && widget.lottie == provider) {
|
||||
var onWarning = widget.onWarning;
|
||||
composition.onWarning = onWarning;
|
||||
if (onWarning != null) {
|
||||
for (var warning in composition.warnings) {
|
||||
onWarning(warning);
|
||||
// LottieProvier.load() can return a Synchronous future and the onLoaded
|
||||
// callback can call setState, so we wrap it in a microtask to avoid an
|
||||
// "!_isDirty" error.
|
||||
scheduleMicrotask(() {
|
||||
if (mounted && widget.lottie == provider) {
|
||||
var onWarning = widget.onWarning;
|
||||
composition.onWarning = onWarning;
|
||||
if (onWarning != null) {
|
||||
for (var warning in composition.warnings) {
|
||||
onWarning(warning);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
widget.onLoaded?.call(composition);
|
||||
}
|
||||
widget.onLoaded?.call(composition);
|
||||
}
|
||||
});
|
||||
|
||||
return composition;
|
||||
});
|
||||
@ -472,12 +477,14 @@ class _LottieBuilderState extends State<LottieBuilder> {
|
||||
}
|
||||
|
||||
var composition = snapshot.data;
|
||||
var animate = widget.animate;
|
||||
animate ??= (composition?.durationFrames ?? 0) > 1.0;
|
||||
|
||||
Widget result = Lottie(
|
||||
composition: composition,
|
||||
controller: widget.controller,
|
||||
frameRate: widget.frameRate,
|
||||
animate: widget.animate,
|
||||
animate: animate,
|
||||
reverse: widget.reverse,
|
||||
repeat: widget.repeat,
|
||||
delegates: widget.delegates,
|
||||
|
@ -261,7 +261,9 @@ class TextLayer extends BaseLayer {
|
||||
double lineWidth) {
|
||||
var position = documentData.boxPosition;
|
||||
var size = documentData.boxSize;
|
||||
var lineOffset = lineIndex * documentData.lineHeight;
|
||||
var lineStartY =
|
||||
position == null ? 0 : documentData.lineHeight + position.dy;
|
||||
var lineOffset = lineIndex * documentData.lineHeight + lineStartY;
|
||||
var lineStart = position?.dx ?? 0.0;
|
||||
var boxWidth = size?.dx ?? 0.0;
|
||||
switch (documentData.justification) {
|
||||
|
135
pubspec.lock
@ -5,98 +5,112 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: e440ac42679dfc04bbbefb58ed225c994bc7e07fccc8a68ec7d3631a127e5da9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "50.0.0"
|
||||
version: "54.0.0"
|
||||
analyzer:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: analyzer
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2c2e3721ee9fb36de92faa060f3480c81b23e904352b087e5c64224b1a044427"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.2.0"
|
||||
version: "5.6.0"
|
||||
archive:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: archive
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.5"
|
||||
version: "3.3.6"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.4.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
version: "2.10.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.16.0"
|
||||
version: "1.17.0"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.1"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
dart_style:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: dart_style
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.4"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.4"
|
||||
flutter:
|
||||
@ -108,7 +122,8 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
flutter_test:
|
||||
@ -120,70 +135,80 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: glob
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.5"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.12"
|
||||
version: "0.12.13"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.5"
|
||||
version: "0.2.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
package_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_config
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
path:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.2"
|
||||
pointycastle:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pointycastle
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.6.2"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pub_semver
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
sky_engine:
|
||||
@ -195,70 +220,80 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
version: "1.9.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.11.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.2.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.12"
|
||||
version: "0.4.16"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
vector_math:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: watcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
yaml:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: yaml
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.1"
|
||||
sdks:
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: lottie
|
||||
description: Render After Effects animations natively on Flutter. This package is a pure Dart implementation of a Lottie player.
|
||||
version: 2.2.0
|
||||
version: 2.3.0
|
||||
repository: https://github.com/xvrh/lottie-flutter
|
||||
|
||||
environment:
|
||||
|
689
test/data/static_lottie.json
Normal file
@ -0,0 +1,689 @@
|
||||
{
|
||||
"v": "5.6.6",
|
||||
"ip": 0,
|
||||
"op": 1,
|
||||
"fr": 60,
|
||||
"w": 953,
|
||||
"h": 272,
|
||||
"layers": [
|
||||
{
|
||||
"ind": 2345,
|
||||
"nm": "surface13687",
|
||||
"ao": 0,
|
||||
"ip": 0,
|
||||
"op": 60,
|
||||
"st": 0,
|
||||
"ty": 4,
|
||||
"ks": {
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [133.33, 133.33] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 }
|
||||
},
|
||||
"shapes": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"hd": false,
|
||||
"nm": "surface13687",
|
||||
"it": [
|
||||
{
|
||||
"ty": "gr",
|
||||
"hd": false,
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[20, -0.05],
|
||||
[0.73, 0.64],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-20.01, 0.05],
|
||||
[-1.14, 0.25],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[79.56, 177.9],
|
||||
[110.31, 147.43],
|
||||
[163.43, 200.61],
|
||||
[103.41, 200.64],
|
||||
[100.84, 199.21],
|
||||
[79.55, 177.9]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"o": { "k": 100 },
|
||||
"c": { "k": [0.03, 0.35, 0.61, 1] }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [100, 100] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 },
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"hd": false,
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[49.02, 147.35],
|
||||
[79.55, 116.86],
|
||||
[110.18, 147.3],
|
||||
[110.31, 147.43],
|
||||
[79.56, 177.9]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"o": { "k": 100 },
|
||||
"c": { "k": [0.12, 0.74, 0.99, 1] }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [100, 100] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 },
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"hd": false,
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[17.48, -0.07],
|
||||
[0.15, -1.03],
|
||||
[0, 0],
|
||||
[-1.04, -0.16],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[13.93, -0.01],
|
||||
[2.05, -0.36],
|
||||
[0, 0],
|
||||
[4.49, 0.1],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-17.47, 0],
|
||||
[-1.34, 0.44],
|
||||
[0, 0],
|
||||
[0.44, 1.33],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-13.93, -0.01],
|
||||
[-2.07, -0.01],
|
||||
[0, 0],
|
||||
[-4.49, -0.18],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[249.55, 45.91],
|
||||
[316.33, 45.93],
|
||||
[316.32, 59.08],
|
||||
[263.9, 59.1],
|
||||
[263.05, 62.24],
|
||||
[263.1, 97.61],
|
||||
[266.25, 98.46],
|
||||
[311.07, 98.44],
|
||||
[311.07, 111.57],
|
||||
[269.28, 111.57],
|
||||
[263.07, 111.79],
|
||||
[262.91, 161.71],
|
||||
[249.44, 161.6],
|
||||
[249.43, 48.03],
|
||||
[249.55, 45.91]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[4.45, -0.12],
|
||||
[0, 1.84],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-4.46, -0.08],
|
||||
[-0.34, -1.83],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[332.52, 45.93],
|
||||
[346.23, 45.93],
|
||||
[346.24, 124.5],
|
||||
[346.09, 161.5],
|
||||
[332.71, 161.51],
|
||||
[332.51, 155.98],
|
||||
[332.52, 45.93]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-6.71, -0.54],
|
||||
[0.07, -4.17],
|
||||
[6.68, 0.1],
|
||||
[0, 0],
|
||||
[-4.17, -2.21],
|
||||
[-4.51, 2.61],
|
||||
[0, 0],
|
||||
[5.33, 0.73],
|
||||
[2.27, 7.45],
|
||||
[0.03, 4.26],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[4.75, 0.17],
|
||||
[-0.27, 4.24],
|
||||
[-4.82, 0.37]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[6.73, 0.16],
|
||||
[-0.19, 4.17],
|
||||
[-6.69, 0.02],
|
||||
[0, 0],
|
||||
[0.14, 4.29],
|
||||
[4.76, 2.71],
|
||||
[0, 0],
|
||||
[-4.96, 2.25],
|
||||
[-7.52, -1.15],
|
||||
[-1.51, -4.08],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-4.75, -0.25],
|
||||
[0.03, -4.25],
|
||||
[4.83, -0.08],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[466.71, 55.67],
|
||||
[480.46, 55.68],
|
||||
[480.49, 78.93],
|
||||
[500.69, 79.16],
|
||||
[500.59, 91.68],
|
||||
[480.53, 91.64],
|
||||
[480.48, 137.95],
|
||||
[485.71, 149.63],
|
||||
[500.83, 148.46],
|
||||
[500.83, 161.93],
|
||||
[484.87, 163.72],
|
||||
[467.88, 150],
|
||||
[466.69, 137.26],
|
||||
[466.66, 92.16],
|
||||
[466.32, 91.78],
|
||||
[452.05, 91.65],
|
||||
[452.16, 78.92],
|
||||
[466.66, 78.77]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-4.57, -0.16],
|
||||
[0, 0],
|
||||
[-0.41, -7.62],
|
||||
[-6.51, 0.04],
|
||||
[0, 0],
|
||||
[6.55, 0.04],
|
||||
[0, 0],
|
||||
[-3.97, -2.02],
|
||||
[-4.52, 2.71],
|
||||
[0, 0],
|
||||
[5.2, 0.6],
|
||||
[3.18, 6.19],
|
||||
[0.14, 3.58],
|
||||
[0, 0],
|
||||
[4.74, 0.02],
|
||||
[0, 0],
|
||||
[-4.67, -0.16],
|
||||
[-0.29, 7.79]
|
||||
],
|
||||
"o": [
|
||||
[4.57, 0.16],
|
||||
[0, 0],
|
||||
[0.17, 7.64],
|
||||
[6.52, -0.12],
|
||||
[0, 0],
|
||||
[-6.55, 0.25],
|
||||
[0, 0],
|
||||
[-0.01, 4.1],
|
||||
[4.87, 2.66],
|
||||
[0, 0],
|
||||
[-4.82, 2.18],
|
||||
[-6.76, -0.9],
|
||||
[-1.53, -3.24],
|
||||
[0, 0],
|
||||
[-4.75, -0.01],
|
||||
[0, 0],
|
||||
[4.67, 0.13],
|
||||
[0.5, -7.77],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[524.82, 55.62],
|
||||
[538.54, 55.73],
|
||||
[538.86, 56.07],
|
||||
[539.04, 78.99],
|
||||
[558.58, 78.93],
|
||||
[558.63, 91.57],
|
||||
[538.94, 91.63],
|
||||
[538.87, 138.74],
|
||||
[544.01, 149.71],
|
||||
[559.3, 148.29],
|
||||
[559.29, 161.84],
|
||||
[543.82, 163.83],
|
||||
[527.28, 152.93],
|
||||
[524.75, 142.52],
|
||||
[524.75, 91.69],
|
||||
[510.52, 91.69],
|
||||
[510.55, 78.89],
|
||||
[524.57, 79.01],
|
||||
[524.82, 55.63]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-9.7, -3.3],
|
||||
[-3.15, -11.24],
|
||||
[0.29, -6.48],
|
||||
[0, 0],
|
||||
[-4.83, -5.22],
|
||||
[-9.97, 3.14],
|
||||
[-3.59, 6.19],
|
||||
[-3.96, -1.82],
|
||||
[11.57, -2.22],
|
||||
[8.71, 4.7],
|
||||
[2.22, 12.3],
|
||||
[-3.55, 8.97],
|
||||
[-9.7, 4.25]
|
||||
],
|
||||
"o": [
|
||||
[9.5, -3.94],
|
||||
[11.11, 3.83],
|
||||
[2.06, 6.23],
|
||||
[0, 0],
|
||||
[0.54, 6.95],
|
||||
[6.86, 8],
|
||||
[7, -2.06],
|
||||
[3.98, 1.78],
|
||||
[-5.41, 10.32],
|
||||
[-9.5, 1.78],
|
||||
[-11.31, -5.62],
|
||||
[-1.61, -9.45],
|
||||
[3.73, -9.85],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[591.59, 79.36],
|
||||
[621.73, 78.65],
|
||||
[644.59, 103.42],
|
||||
[646.27, 122.75],
|
||||
[580.98, 122.82],
|
||||
[588.43, 142.08],
|
||||
[617.08, 149.91],
|
||||
[633.13, 136.27],
|
||||
[644.93, 141.9],
|
||||
[618.09, 162.64],
|
||||
[589.48, 159.77],
|
||||
[568.16, 130.41],
|
||||
[570.61, 101.99],
|
||||
[591.58, 79.36]
|
||||
],
|
||||
"c": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[1.61, -8.46],
|
||||
[0, 0],
|
||||
[4.05, 4],
|
||||
[9.3, -4.04]
|
||||
],
|
||||
"o": [
|
||||
[-7.99, 3.69],
|
||||
[0, 0],
|
||||
[-0.8, -5.53],
|
||||
[-7.09, -7.61],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[596.75, 91.22],
|
||||
[582.01, 111.57],
|
||||
[632.08, 111.41],
|
||||
[625.27, 96.27],
|
||||
[596.75, 91.23]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-12.7, -5.32],
|
||||
[0, 0],
|
||||
[5.63, -1.66],
|
||||
[2.18, -7.55],
|
||||
[-0.06, -5.23],
|
||||
[0.44, -6.76],
|
||||
[-0.5, -5.85],
|
||||
[4.66, -0.16],
|
||||
[0.07, 17.64],
|
||||
[0, 0],
|
||||
[-4.38, -0.11],
|
||||
[-0.73, -4.37]
|
||||
],
|
||||
"o": [
|
||||
[5.23, -12.7],
|
||||
[0, 0],
|
||||
[-5.33, -2.1],
|
||||
[-7.7, 2.29],
|
||||
[-1.5, 5.1],
|
||||
[-0.59, 6.77],
|
||||
[0.36, 5.84],
|
||||
[-4.66, 0.23],
|
||||
[-0.27, -17.63],
|
||||
[0, 0],
|
||||
[4.37, 0.12],
|
||||
[0.4, 4.38],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[675.99, 92.31],
|
||||
[709.98, 78.26],
|
||||
[709.98, 93.08],
|
||||
[693.04, 91.34],
|
||||
[677.46, 108.05],
|
||||
[676.59, 123.7],
|
||||
[676.44, 144],
|
||||
[676.62, 161.54],
|
||||
[662.63, 161.68],
|
||||
[662.52, 108.76],
|
||||
[662.62, 79.07],
|
||||
[675.75, 79.16],
|
||||
[675.99, 92.31]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-4.63, -0.52],
|
||||
[0, 0],
|
||||
[-4.16, -4.66],
|
||||
[-7.34, 2.35],
|
||||
[0.39, 10.38],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[4.43, 0.05],
|
||||
[0, 0],
|
||||
[4.12, -2.27],
|
||||
[9.44, 2.72],
|
||||
[3.05, 5.58],
|
||||
[0.21, 6.99],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[4.65, 0.2],
|
||||
[0, 0],
|
||||
[-0.05, 6.01],
|
||||
[5.36, 5.94],
|
||||
[9.8, -3.51],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[-4.44, -0.07],
|
||||
[0, 0],
|
||||
[-2.87, 3.61],
|
||||
[-8.43, 5.32],
|
||||
[-6.09, -1.84],
|
||||
[-3.62, -6.14],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[365.89, 78.91],
|
||||
[379.86, 79.15],
|
||||
[379.79, 128.31],
|
||||
[384.75, 145.54],
|
||||
[406.54, 150.22],
|
||||
[422.78, 125.95],
|
||||
[422.93, 78.91],
|
||||
[436.93, 78.94],
|
||||
[436.85, 161.48],
|
||||
[423.55, 161.43],
|
||||
[423.5, 149.68],
|
||||
[413.49, 159.21],
|
||||
[384.93, 162.51],
|
||||
[370.48, 150.83],
|
||||
[365.73, 130.45],
|
||||
[365.9, 78.91]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "ty": "fl", "o": { "k": 54 }, "c": { "k": [0, 0, 0, 1] } },
|
||||
{
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [100, 100] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 },
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "gr",
|
||||
"hd": false,
|
||||
"it": [
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[102.21, 3.07],
|
||||
[163.46, 3],
|
||||
[60.7, 105.71],
|
||||
[33.92, 132.34],
|
||||
[3.45, 101.83]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "sh",
|
||||
"ks": {
|
||||
"k": {
|
||||
"i": [
|
||||
[0, 0],
|
||||
[-1.11, 0.14],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"o": [
|
||||
[0.8, -1.05],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
],
|
||||
"v": [
|
||||
[101.64, 94.78],
|
||||
[105.01, 94.11],
|
||||
[163.41, 94.12],
|
||||
[110.18, 147.3],
|
||||
[79.55, 116.86],
|
||||
[101.64, 94.78]
|
||||
],
|
||||
"c": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ty": "fl",
|
||||
"o": { "k": 100 },
|
||||
"c": { "k": [0.27, 0.82, 0.99, 1] }
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [100, 100] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 },
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ty": "tr",
|
||||
"o": { "k": 100 },
|
||||
"r": { "k": 0 },
|
||||
"p": { "k": [0, 0] },
|
||||
"a": { "k": [0, 0] },
|
||||
"s": { "k": [100, 100] },
|
||||
"sk": { "k": 0 },
|
||||
"sa": { "k": 0 },
|
||||
"hd": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"meta": { "g": "LF SVG to Lottie" }
|
||||
}
|
BIN
test/goldens/all/Tests/boxposition.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
@ -389,6 +389,57 @@ void main() {
|
||||
expect(tester.widget<Lottie>(find.byType(Lottie)).composition, isNotNull);
|
||||
expect(loadedCall, 2);
|
||||
});
|
||||
|
||||
testWidgets('onLoaded is ', (tester) async {
|
||||
var hamburgerData =
|
||||
Future.value(bytesForFile('example/assets/HamburgerArrow.json'));
|
||||
var mockAsset = FakeAssetBundle({
|
||||
'hamburger.json': hamburgerData,
|
||||
});
|
||||
var provider = AssetLottie('hamburger.json', bundle: mockAsset);
|
||||
|
||||
await tester.pumpWidget(KeyedSubtree(
|
||||
key: UniqueKey(), child: _LottieWithSetStateInOnLoaded(provider)));
|
||||
var state1 = tester.state<__LottieWithSetStateInOnLoadedState>(
|
||||
find.byType(_LottieWithSetStateInOnLoaded));
|
||||
expect(state1.loadedCount, 1);
|
||||
await tester.pump();
|
||||
expect(state1.loadedCount, 1);
|
||||
|
||||
await tester.pumpWidget(KeyedSubtree(
|
||||
key: UniqueKey(), child: _LottieWithSetStateInOnLoaded(provider)));
|
||||
var state2 = tester.state<__LottieWithSetStateInOnLoadedState>(
|
||||
find.byType(_LottieWithSetStateInOnLoaded));
|
||||
expect(state2.loadedCount, 1);
|
||||
await tester.pump();
|
||||
expect(state2.loadedCount, 1);
|
||||
expect(state1, isNot(state2));
|
||||
});
|
||||
|
||||
testWidgets(
|
||||
'if composition is static should create Lottie with [animate] false by default',
|
||||
(tester) async {
|
||||
await tester.pumpWidget(
|
||||
LottieBuilder.memory(
|
||||
File('test/data/static_lottie.json').readAsBytesSync(),
|
||||
),
|
||||
);
|
||||
expect(tester.hasRunningAnimations, false);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'if composition is static and [animate] is true, should have animations',
|
||||
(tester) async {
|
||||
await tester.pumpWidget(
|
||||
LottieBuilder.memory(
|
||||
File('test/data/static_lottie.json').readAsBytesSync(),
|
||||
animate: true,
|
||||
),
|
||||
);
|
||||
expect(tester.hasRunningAnimations, true);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
class SynchronousFile extends Fake implements File {
|
||||
@ -416,3 +467,30 @@ class FakeAssetBundle extends Fake implements AssetBundle {
|
||||
return data[key] ?? (Future.error('Asset $key not found'));
|
||||
}
|
||||
}
|
||||
|
||||
class _LottieWithSetStateInOnLoaded extends StatefulWidget {
|
||||
final LottieProvider lottie;
|
||||
|
||||
const _LottieWithSetStateInOnLoaded(this.lottie);
|
||||
|
||||
@override
|
||||
State<_LottieWithSetStateInOnLoaded> createState() =>
|
||||
__LottieWithSetStateInOnLoadedState();
|
||||
}
|
||||
|
||||
class __LottieWithSetStateInOnLoadedState
|
||||
extends State<_LottieWithSetStateInOnLoaded> {
|
||||
var loadedCount = 0;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LottieBuilder(
|
||||
lottie: widget.lottie,
|
||||
onLoaded: (_) {
|
||||
setState(() {
|
||||
++loadedCount;
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|