Compare commits
1 Commits
v0.8.0-nul
...
fix_github
Author | SHA1 | Date | |
---|---|---|---|
a6152cc14e |
33
.github/workflows/publish-on-pub.yaml
vendored
@ -1,8 +1,8 @@
|
|||||||
name: Publish package to pub.dev
|
name: Publish package to pub.dev
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
# tags:
|
||||||
- v*
|
# - v*
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -14,18 +14,19 @@ jobs:
|
|||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
- run: flutter pub run tool/publish/comment_dependency_overrides.dart
|
- run: flutter pub run tool/publish/comment_dependency_overrides.dart
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
|
- run: echo ${GITHUB_REF}
|
||||||
- run: flutter pub run tool/publish/check_version.dart ${GITHUB_REF}
|
- run: flutter pub run tool/publish/check_version.dart ${GITHUB_REF}
|
||||||
- name: Setup credentials
|
# - name: Setup credentials
|
||||||
run: |
|
# run: |
|
||||||
mkdir -p $FLUTTER_HOME/.pub-cache
|
# mkdir -p $FLUTTER_HOME/.pub-cache
|
||||||
cat <<EOF > $FLUTTER_HOME/.pub-cache/credentials.json
|
# cat <<EOF > $FLUTTER_HOME/.pub-cache/credentials.json
|
||||||
{
|
# {
|
||||||
"accessToken":"${{ secrets.OAUTH_ACCESS_TOKEN }}",
|
# "accessToken":"${{ secrets.OAUTH_ACCESS_TOKEN }}",
|
||||||
"refreshToken":"${{ secrets.OAUTH_REFRESH_TOKEN }}",
|
# "refreshToken":"${{ secrets.OAUTH_REFRESH_TOKEN }}",
|
||||||
"tokenEndpoint":"https://accounts.google.com/o/oauth2/token",
|
# "tokenEndpoint":"https://accounts.google.com/o/oauth2/token",
|
||||||
"scopes": [ "openid", "https://www.googleapis.com/auth/userinfo.email" ],
|
# "scopes": [ "openid", "https://www.googleapis.com/auth/userinfo.email" ],
|
||||||
"expiration": 1580681402856
|
# "expiration": 1580681402856
|
||||||
}
|
# }
|
||||||
EOF
|
# EOF
|
||||||
- name: Publish package
|
# - name: Publish package
|
||||||
run: flutter pub publish --force
|
# run: flutter pub publish --force
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
## [0.8.0]
|
|
||||||
- Migrate to null safety
|
|
||||||
- Fix some rendering bugs
|
|
||||||
|
|
||||||
## [0.7.1]
|
## [0.7.1]
|
||||||
- Fix a crash for some lottie file with empty paths.
|
- Fix a crash for some lottie file with empty paths.
|
||||||
|
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
|
||||||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
|
||||||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
@ -86,7 +86,7 @@ class _MyAppState extends State<MyApp> with TickerProviderStateMixin {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 30),
|
const SizedBox(height: 30),
|
||||||
ElevatedButton(
|
RaisedButton(
|
||||||
child: Text('Loop between frames'),
|
child: Text('Loop between frames'),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// Loop between 2 specifics frames
|
// Loop between 2 specifics frames
|
||||||
|
@ -87,15 +87,15 @@ class _LottieDetailsState extends State<_LottieDetails>
|
|||||||
title: Text('Composition duration'),
|
title: Text('Composition duration'),
|
||||||
trailing: Text(widget.composition.durationFrames.toStringAsFixed(1)),
|
trailing: Text(widget.composition.durationFrames.toStringAsFixed(1)),
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
RaisedButton(
|
||||||
child: Text('touchDownEnd - touchUpCancel'),
|
child: Text('touchDownEnd - touchUpCancel'),
|
||||||
onPressed: () => _playBetween('touchDownEnd', 'touchUpCancel'),
|
onPressed: () => _playBetween('touchDownEnd', 'touchUpCancel'),
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
RaisedButton(
|
||||||
child: Text('touchDownStart - touchDownEnd'),
|
child: Text('touchDownStart - touchDownEnd'),
|
||||||
onPressed: () => _playBetween('touchDownStart', 'touchDownEnd'),
|
onPressed: () => _playBetween('touchDownStart', 'touchDownEnd'),
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
RaisedButton(
|
||||||
child: Text('touchDownEnd - touchUpEnd'),
|
child: Text('touchDownEnd - touchUpEnd'),
|
||||||
onPressed: () => _playBetween('touchDownEnd', 'touchUpEnd'),
|
onPressed: () => _playBetween('touchDownEnd', 'touchUpEnd'),
|
||||||
),
|
),
|
||||||
|
@ -28,7 +28,7 @@ class _MyAppState extends State<MyApp> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
ElevatedButton(
|
RaisedButton(
|
||||||
child: Text('Export all frames'),
|
child: Text('Export all frames'),
|
||||||
onPressed: _export,
|
onPressed: _export,
|
||||||
),
|
),
|
||||||
|
@ -21,36 +21,34 @@ class App extends StatelessWidget {
|
|||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Lottie Flutter'),
|
title: Text('Lottie Flutter'),
|
||||||
),
|
),
|
||||||
body: Scrollbar(
|
body: GridView.builder(
|
||||||
child: GridView.builder(
|
itemCount: files.length,
|
||||||
itemCount: files.length,
|
gridDelegate:
|
||||||
gridDelegate:
|
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4),
|
||||||
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4),
|
itemBuilder: (context, index) {
|
||||||
itemBuilder: (context, index) {
|
var assetName = files[index];
|
||||||
var assetName = files[index];
|
return GestureDetector(
|
||||||
return GestureDetector(
|
child: _Item(
|
||||||
child: _Item(
|
child: Lottie.asset(
|
||||||
child: Lottie.asset(
|
assetName,
|
||||||
assetName,
|
frameBuilder: (context, child, composition) {
|
||||||
frameBuilder: (context, child, composition) {
|
return AnimatedOpacity(
|
||||||
return AnimatedOpacity(
|
child: child,
|
||||||
child: child,
|
opacity: composition == null ? 0 : 1,
|
||||||
opacity: composition == null ? 0 : 1,
|
duration: const Duration(seconds: 1),
|
||||||
duration: const Duration(seconds: 1),
|
curve: Curves.easeOut,
|
||||||
curve: Curves.easeOut,
|
);
|
||||||
);
|
},
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
onTap: () {
|
),
|
||||||
Navigator.push(
|
onTap: () {
|
||||||
context,
|
Navigator.push(
|
||||||
MaterialPageRoute<void>(
|
context,
|
||||||
builder: (context) => Detail(assetName)));
|
MaterialPageRoute<void>(
|
||||||
},
|
builder: (context) => Detail(assetName)));
|
||||||
);
|
},
|
||||||
},
|
);
|
||||||
),
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
|
||||||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
|
||||||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
@ -1,28 +1,27 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- FlutterMacOS (1.22.4)
|
- FlutterMacOS (1.0.0)
|
||||||
- path_provider (0.0.1)
|
- path_provider (0.0.1)
|
||||||
- path_provider_macos (0.0.1):
|
- path_provider_macos (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
|
- FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64-profile`)
|
||||||
- path_provider (from `Flutter/ephemeral/.symlinks/plugins/path_provider/macos`)
|
- path_provider (from `Flutter/ephemeral/.symlinks/plugins/path_provider/macos`)
|
||||||
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
|
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
|
||||||
|
|
||||||
SPEC REPOS:
|
|
||||||
trunk:
|
|
||||||
- FlutterMacOS
|
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
|
FlutterMacOS:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64-profile
|
||||||
path_provider:
|
path_provider:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/path_provider/macos
|
||||||
path_provider_macos:
|
path_provider_macos:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
FlutterMacOS: ac210ef71944b3f04789076d70d4c72c7ec0c619
|
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
|
||||||
path_provider: e0848572d1d38b9a7dd099e79cf83f5b7e2cde9f
|
path_provider: e0848572d1d38b9a7dd099e79cf83f5b7e2cde9f
|
||||||
path_provider_macos: a0a3fd666cb7cd0448e936fb4abad4052961002b
|
path_provider_macos: a0a3fd666cb7cd0448e936fb4abad4052961002b
|
||||||
|
|
||||||
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
|
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
|
||||||
|
|
||||||
COCOAPODS: 1.10.1
|
COCOAPODS: 1.10.0
|
||||||
|
@ -26,6 +26,10 @@
|
|||||||
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
||||||
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
||||||
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
||||||
|
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; };
|
||||||
|
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
|
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
|
||||||
|
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
F03CC91740A974D36C2A6384 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BC6FF5FCD90624533CC60DB /* Pods_Runner.framework */; };
|
F03CC91740A974D36C2A6384 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BC6FF5FCD90624533CC60DB /* Pods_Runner.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@ -46,6 +50,8 @@
|
|||||||
dstPath = "";
|
dstPath = "";
|
||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
|
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */,
|
||||||
|
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */,
|
||||||
);
|
);
|
||||||
name = "Bundle Framework";
|
name = "Bundle Framework";
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@ -67,12 +73,14 @@
|
|||||||
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
|
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
|
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
|
||||||
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
|
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; };
|
||||||
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
||||||
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
||||||
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
||||||
5B4C0E87024EC2686CA05E23 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
5B4C0E87024EC2686CA05E23 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
|
D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@ -80,6 +88,8 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
|
||||||
|
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
|
||||||
F03CC91740A974D36C2A6384 /* Pods_Runner.framework in Frameworks */,
|
F03CC91740A974D36C2A6384 /* Pods_Runner.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@ -135,6 +145,8 @@
|
|||||||
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
|
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
|
||||||
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
|
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
|
||||||
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
|
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
|
||||||
|
D73912EF22F37F9E000D13A0 /* App.framework */,
|
||||||
|
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */,
|
||||||
);
|
);
|
||||||
path = Flutter;
|
path = Flutter;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -269,7 +281,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
|
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n";
|
||||||
};
|
};
|
||||||
33CC111E2044C6BF0003C045 /* ShellScript */ = {
|
33CC111E2044C6BF0003C045 /* ShellScript */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
@ -129,14 +129,14 @@ packages:
|
|||||||
name: logging
|
name: logging
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "1.0.0-nullsafety.0"
|
||||||
lottie:
|
lottie:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: ".."
|
path: ".."
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "0.8.0-nullsafety.2"
|
version: "0.8.0-nullsafety.0"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -298,4 +298,4 @@ packages:
|
|||||||
version: "0.1.2"
|
version: "0.1.2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.12.0-29.10.beta <3.0.0"
|
dart: ">=2.12.0-29.10.beta <3.0.0"
|
||||||
flutter: ">=1.24.0-10.2.pre"
|
flutter: ">=1.24.0-10.2.pre <2.0.0"
|
||||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 884 B |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
@ -241,10 +241,11 @@ abstract class BaseStrokeContent
|
|||||||
var bounds = _path.getBounds();
|
var bounds = _path.getBounds();
|
||||||
|
|
||||||
var width = _widthAnimation.value;
|
var width = _widthAnimation.value;
|
||||||
bounds = Rect.fromLTRB(bounds.left - width / 2.0, bounds.top - width / 2.0,
|
bounds = Rect.fromLTWH(bounds.left - width / 2.0, bounds.top - width / 2.0,
|
||||||
bounds.right + width / 2.0, bounds.bottom + width / 2.0);
|
bounds.right + width / 2.0, bounds.bottom + width / 2.0);
|
||||||
// Add padding to account for rounding errors.
|
// Add padding to account for rounding errors.
|
||||||
bounds = bounds.inflate(1);
|
bounds = Rect.fromLTWH(
|
||||||
|
bounds.left - 1, bounds.top - 1, bounds.right + 1, bounds.bottom + 1);
|
||||||
L.endSection('StrokeContent#getBounds');
|
L.endSection('StrokeContent#getBounds');
|
||||||
return bounds;
|
return bounds;
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,8 @@ class FillContent implements DrawingContent, KeyPathElementContent {
|
|||||||
}
|
}
|
||||||
var outBounds = _path.getBounds();
|
var outBounds = _path.getBounds();
|
||||||
// Add padding to account for rounding errors.
|
// Add padding to account for rounding errors.
|
||||||
outBounds = outBounds.inflate(1);
|
outBounds = Rect.fromLTWH(outBounds.left - 1, outBounds.top - 1,
|
||||||
|
outBounds.right + 1, outBounds.bottom + 1);
|
||||||
return outBounds;
|
return outBounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,8 @@ class GradientFillContent implements DrawingContent, KeyPathElementContent {
|
|||||||
|
|
||||||
var outBounds = _path.getBounds();
|
var outBounds = _path.getBounds();
|
||||||
// Add padding to account for rounding errors.
|
// Add padding to account for rounding errors.
|
||||||
return outBounds.inflate(1);
|
return Rect.fromLTWH(outBounds.left - 1, outBounds.top - 1,
|
||||||
|
outBounds.right + 1, outBounds.bottom + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Gradient _getLinearGradient() {
|
Gradient _getLinearGradient() {
|
||||||
|
@ -381,11 +381,14 @@ class _LottieBuilderState extends State<LottieBuilder> {
|
|||||||
void _load() {
|
void _load() {
|
||||||
var provider = widget.lottie;
|
var provider = widget.lottie;
|
||||||
_loadingFuture = widget.lottie.load().then((composition) {
|
_loadingFuture = widget.lottie.load().then((composition) {
|
||||||
|
print('Loaded');
|
||||||
if (mounted && widget.onLoaded != null && widget.lottie == provider) {
|
if (mounted && widget.onLoaded != null && widget.lottie == provider) {
|
||||||
widget.onLoaded!(composition);
|
widget.onLoaded!(composition);
|
||||||
}
|
}
|
||||||
|
|
||||||
return composition;
|
return composition;
|
||||||
|
}, onError: (Object e, StackTrace t) {
|
||||||
|
print('Load error $e $t');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ abstract class BaseLayer implements DrawingContent, KeyPathElement {
|
|||||||
static BaseLayer? forModel(Layer layerModel, LottieDrawable drawable,
|
static BaseLayer? forModel(Layer layerModel, LottieDrawable drawable,
|
||||||
LottieComposition composition) {
|
LottieComposition composition) {
|
||||||
switch (layerModel.layerType) {
|
switch (layerModel.layerType) {
|
||||||
case LayerType.shape:
|
case LayerType.shap:
|
||||||
return ShapeLayer(drawable, layerModel);
|
return ShapeLayer(drawable, layerModel);
|
||||||
case LayerType.preComp:
|
case LayerType.preComp:
|
||||||
return CompositionLayer(drawable, layerModel,
|
return CompositionLayer(drawable, layerModel,
|
||||||
@ -197,11 +197,11 @@ abstract class BaseLayer implements DrawingContent, KeyPathElement {
|
|||||||
var bounds = getBounds(_matrix, applyParents: false);
|
var bounds = getBounds(_matrix, applyParents: false);
|
||||||
|
|
||||||
// Uncomment this to draw matte outlines.
|
// Uncomment this to draw matte outlines.
|
||||||
/*var paint = Paint()
|
/* Paint paint = new LPaint();
|
||||||
..color = Color(0xFF00FF00)
|
paint.setColor(Color.RED);
|
||||||
..style = PaintingStyle.stroke
|
paint.setStyle(Paint.Style.STROKE);
|
||||||
..strokeWidth = 3;
|
paint.setStrokeWidth(3);
|
||||||
canvas.drawRect(bounds, paint);*/
|
canvas.drawRect(rect, paint); */
|
||||||
|
|
||||||
bounds = _intersectBoundsWithMatte(bounds, parentMatrix);
|
bounds = _intersectBoundsWithMatte(bounds, parentMatrix);
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import '../animatable/animatable_transform.dart';
|
|||||||
import '../content/content_model.dart';
|
import '../content/content_model.dart';
|
||||||
import '../content/mask.dart';
|
import '../content/mask.dart';
|
||||||
|
|
||||||
enum LayerType { preComp, solid, image, nullLayer, shape, text, unknown }
|
enum LayerType { preComp, solid, image, nullLayer, shap, text, unknown }
|
||||||
|
|
||||||
enum MatteType { none, add, invert, unknown }
|
enum MatteType { none, add, invert, unknown }
|
||||||
|
|
||||||
|
24
pubspec.lock
@ -49,7 +49,7 @@ packages:
|
|||||||
name: build
|
name: build
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.2"
|
version: "1.6.1"
|
||||||
build_config:
|
build_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -63,28 +63,28 @@ packages:
|
|||||||
name: build_daemon
|
name: build_daemon
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.7"
|
version: "2.1.6"
|
||||||
build_resolvers:
|
build_resolvers:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build_resolvers
|
name: build_resolvers
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.3"
|
version: "1.5.2"
|
||||||
build_runner:
|
build_runner:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: build_runner
|
name: build_runner
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.1"
|
version: "1.11.0"
|
||||||
build_runner_core:
|
build_runner_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build_runner_core
|
name: build_runner_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.7"
|
version: "6.1.6"
|
||||||
built_collection:
|
built_collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -248,7 +248,7 @@ packages:
|
|||||||
name: js
|
name: js
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.3"
|
version: "0.6.2"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -262,7 +262,7 @@ packages:
|
|||||||
name: logging
|
name: logging
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "1.0.0-nullsafety.0"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -283,14 +283,14 @@ packages:
|
|||||||
name: mime
|
name: mime
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "0.9.7"
|
||||||
mockito:
|
mockito:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: mockito
|
name: mockito
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.0-nullsafety.7"
|
version: "5.0.0-nullsafety.5"
|
||||||
node_interop:
|
node_interop:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -325,7 +325,7 @@ packages:
|
|||||||
name: pedantic
|
name: pedantic
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.0"
|
version: "1.9.2"
|
||||||
pool:
|
pool:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -367,7 +367,7 @@ packages:
|
|||||||
name: shelf_web_socket
|
name: shelf_web_socket
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.4"
|
version: "0.2.3"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
@ -470,6 +470,6 @@ packages:
|
|||||||
name: yaml
|
name: yaml
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0-nullsafety.0"
|
version: "2.2.1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.12.0-0.0 <3.0.0"
|
dart: ">=2.12.0-0.0 <3.0.0"
|
||||||
|
20
pubspec.yaml
@ -1,6 +1,6 @@
|
|||||||
name: lottie
|
name: lottie
|
||||||
description: Render After Effects animations natively on Flutter. This package is a pure Dart implementation of a Lottie player.
|
description: Render After Effects animations natively on Flutter. This package is a pure Dart implementation of a Lottie player.
|
||||||
version: 0.8.0-nullsafety.2
|
version: 0.8.0-nullsafety.0
|
||||||
homepage: https://github.com/xvrh/lottie-flutter
|
homepage: https://github.com/xvrh/lottie-flutter
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
@ -8,15 +8,15 @@ environment:
|
|||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
archive: ^3.0.0-nullsafety.0
|
archive: ^3.0.0-nullsafety.0
|
||||||
characters: ^1.1.0-nullsafety.5
|
characters: ^1.0.0-nullsafety.0
|
||||||
charcode: ^1.2.0-nullsafety.3
|
charcode: ^1.2.0-nullsafety.0
|
||||||
collection: ^1.15.0-nullsafety.5
|
collection: ^1.15.0-nullsafety.0
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
logging: ^1.0.0
|
logging: ^1.0.0-nullsafety.0
|
||||||
meta: ^1.3.0-nullsafety.6
|
meta: ^1.3.0-nullsafety.0
|
||||||
path: ^1.8.0-nullsafety.3
|
path: ^1.8.0-nullsafety.0
|
||||||
vector_math: ^2.1.0-nullsafety.5
|
vector_math: ^2.0.0-nullsafety.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
analyzer:
|
analyzer:
|
||||||
@ -24,5 +24,5 @@ dev_dependencies:
|
|||||||
dart_style:
|
dart_style:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
mockito: ^5.0.0-nullsafety.7
|
mockito: ^5.0.0-nullsafety.1
|
||||||
yaml: ^3.0.0-nullsafety.0
|
yaml:
|
||||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
@ -1,13 +1,10 @@
|
|||||||
// Mocks generated by Mockito 5.0.0-nullsafety.7 from annotations
|
|
||||||
// in lottie/test/lottie_test.dart.
|
|
||||||
// Do not manually edit this file.
|
|
||||||
|
|
||||||
import 'dart:async' as _i4;
|
import 'dart:async' as _i4;
|
||||||
import 'dart:typed_data' as _i2;
|
import 'dart:typed_data' as _i2;
|
||||||
import 'package:flutter/src/services/asset_bundle.dart' as _i3;
|
import 'package:flutter/src/services/asset_bundle.dart' as _i3;
|
||||||
import 'package:mockito/mockito.dart' as _i1;
|
import 'package:mockito/mockito.dart' as _i1;
|
||||||
|
|
||||||
// ignore_for_file: comment_references
|
// ignore_for_file: comment_references
|
||||||
|
|
||||||
// ignore_for_file: unnecessary_parenthesis
|
// ignore_for_file: unnecessary_parenthesis
|
||||||
|
|
||||||
class _FakeByteData extends _i1.Fake implements _i2.ByteData {}
|
class _FakeByteData extends _i1.Fake implements _i2.ByteData {}
|
||||||
@ -22,23 +19,22 @@ class MockAssetBundle extends _i1.Mock implements _i3.AssetBundle {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
_i4.Future<_i2.ByteData> load(String? key) => (super.noSuchMethod(
|
_i4.Future<_i2.ByteData> load(String? key) => (super.noSuchMethod(
|
||||||
Invocation.method(#load, [key]),
|
Invocation.method(#load, [key]), Future.value(_FakeByteData()))
|
||||||
returnValue: Future.value(_FakeByteData())) as _i4.Future<_i2.ByteData>);
|
as _i4.Future<_i2.ByteData>);
|
||||||
@override
|
@override
|
||||||
_i4.Future<String> loadString(String? key, {bool? cache = true}) => (super
|
_i4.Future<String> loadString(String? key, {bool? cache = true}) =>
|
||||||
.noSuchMethod(Invocation.method(#loadString, [key], {#cache: cache}),
|
(super.noSuchMethod(
|
||||||
returnValue: Future.value('')) as _i4.Future<String>);
|
Invocation.method(#loadString, [key], {#cache: cache}),
|
||||||
|
Future.value('')) as _i4.Future<String>);
|
||||||
@override
|
@override
|
||||||
_i4.Future<T> loadStructuredData<T>(
|
_i4.Future<T> loadStructuredData<T>(
|
||||||
String? key, _i4.Future<T> Function(String)? parser) =>
|
String? key, _i4.Future<T> Function(String)? parser) =>
|
||||||
(super.noSuchMethod(Invocation.method(#loadStructuredData, [key, parser]),
|
(super.noSuchMethod(Invocation.method(#loadStructuredData, [key, parser]),
|
||||||
returnValue: Future.value(null)) as _i4.Future<T>);
|
Future.value(null)) as _i4.Future<T>);
|
||||||
@override
|
@override
|
||||||
void evict(String? key) =>
|
void evict(String? key) =>
|
||||||
super.noSuchMethod(Invocation.method(#evict, [key]),
|
super.noSuchMethod(Invocation.method(#evict, [key]));
|
||||||
returnValueForMissingStub: null);
|
|
||||||
@override
|
@override
|
||||||
String toString() =>
|
String toString() =>
|
||||||
(super.noSuchMethod(Invocation.method(#toString, []), returnValue: '')
|
(super.noSuchMethod(Invocation.method(#toString, []), '') as String);
|
||||||
as String);
|
|
||||||
}
|
}
|
||||||
|