Add codecov (#333)
5
.github/workflows/analyze-and-test.yaml
vendored
@ -8,15 +8,12 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
analyze_and_test:
|
analyze_and_test:
|
||||||
name: Flutter analyze
|
name: Flutter analyze
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
flutter: ['stable']
|
|
||||||
runs-on: macos-13
|
runs-on: macos-13
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: subosito/flutter-action@v2
|
- uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: ${{ matrix.flutter }}
|
channel: 'stable'
|
||||||
- run: flutter doctor
|
- run: flutter doctor
|
||||||
- run: flutter --version
|
- run: flutter --version
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
|
22
.github/workflows/coverage.yaml
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
name: Coverage
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
coverage:
|
||||||
|
name: Coverage
|
||||||
|
runs-on: macos-13
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: 'stable'
|
||||||
|
- run: flutter test --coverage
|
||||||
|
|
||||||
|
- name: Upload coverage reports to Codecov
|
||||||
|
uses: codecov/codecov-action@v4.0.1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
@ -18,7 +18,6 @@ linter:
|
|||||||
avoid_js_rounded_ints: true
|
avoid_js_rounded_ints: true
|
||||||
avoid_positional_boolean_parameters: true
|
avoid_positional_boolean_parameters: true
|
||||||
avoid_redundant_argument_values: true
|
avoid_redundant_argument_values: true
|
||||||
avoid_returning_null_for_future: true
|
|
||||||
avoid_setters_without_getters: true
|
avoid_setters_without_getters: true
|
||||||
avoid_type_to_string: true
|
avoid_type_to_string: true
|
||||||
avoid_unused_constructor_parameters: true
|
avoid_unused_constructor_parameters: true
|
||||||
|
@ -139,6 +139,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.7"
|
version: "0.6.7"
|
||||||
|
leak_tracker:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker
|
||||||
|
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "10.0.0"
|
||||||
|
leak_tracker_flutter_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_flutter_testing
|
||||||
|
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
|
leak_tracker_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_testing
|
||||||
|
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -166,34 +190,34 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.16"
|
version: "0.12.16+1"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.0"
|
version: "0.8.0"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.0"
|
version: "1.11.0"
|
||||||
path:
|
path:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.3"
|
version: "1.9.0"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -335,6 +359,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
|
vm_service:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vm_service
|
||||||
|
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "13.0.0"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -2,54 +2,54 @@ import 'dart:ui';
|
|||||||
import 'value/drop_shadow.dart';
|
import 'value/drop_shadow.dart';
|
||||||
|
|
||||||
/// Property values are the same type as the generic type of their corresponding
|
/// Property values are the same type as the generic type of their corresponding
|
||||||
/// {@link LottieValueCallback}. With this, we can use generics to maintain type safety
|
/// [LottieValueCallback]. With this, we can use generics to maintain type safety
|
||||||
/// of the callbacks.
|
/// of the callbacks.
|
||||||
///
|
///
|
||||||
/// Supported properties:
|
/// Supported properties:
|
||||||
/// Transform:
|
/// Transform:
|
||||||
/// {@link #TRANSFORM_ANCHOR_POINT}
|
/// {TRANSFORM_ANCHOR_POINT}
|
||||||
/// {@link #TRANSFORM_POSITION}
|
/// {TRANSFORM_POSITION}
|
||||||
/// {@link #TRANSFORM_OPACITY}
|
/// {TRANSFORM_OPACITY}
|
||||||
/// {@link #TRANSFORM_SCALE}
|
/// {TRANSFORM_SCALE}
|
||||||
/// {@link #TRANSFORM_ROTATION}
|
/// {TRANSFORM_ROTATION}
|
||||||
/// {@link #TRANSFORM_SKEW}
|
/// {TRANSFORM_SKEW}
|
||||||
/// {@link #TRANSFORM_SKEW_ANGLE}
|
/// {TRANSFORM_SKEW_ANGLE}
|
||||||
///
|
///
|
||||||
/// Fill:
|
/// Fill:
|
||||||
/// {@link #COLOR} (non-gradient)
|
/// {#COLOR} (non-gradient)
|
||||||
/// {@link #OPACITY}
|
/// {#OPACITY}
|
||||||
/// {@link #COLOR_FILTER}
|
/// {#COLOR_FILTER}
|
||||||
///
|
///
|
||||||
/// Stroke:
|
/// Stroke:
|
||||||
/// {@link #COLOR} (non-gradient)
|
/// {#COLOR} (non-gradient)
|
||||||
/// {@link #STROKE_WIDTH}
|
/// {#STROKE_WIDTH}
|
||||||
/// {@link #OPACITY}
|
/// {#OPACITY}
|
||||||
/// {@link #COLOR_FILTER}
|
/// {#COLOR_FILTER}
|
||||||
///
|
///
|
||||||
/// Ellipse:
|
/// Ellipse:
|
||||||
/// {@link #POSITION}
|
/// {#POSITION}
|
||||||
/// {@link #ELLIPSE_SIZE}
|
/// {#ELLIPSE_SIZE}
|
||||||
///
|
///
|
||||||
/// Polystar:
|
/// Polystar:
|
||||||
/// {@link #POLYSTAR_POINTS}
|
/// {#POLYSTAR_POINTS}
|
||||||
/// {@link #POLYSTAR_ROTATION}
|
/// {#POLYSTAR_ROTATION}
|
||||||
/// {@link #POSITION}
|
/// {#POSITION}
|
||||||
/// {@link #POLYSTAR_INNER_RADIUS} (star)
|
/// {#POLYSTAR_INNER_RADIUS} (star)
|
||||||
/// {@link #POLYSTAR_OUTER_RADIUS}
|
/// {#POLYSTAR_OUTER_RADIUS}
|
||||||
/// {@link #POLYSTAR_INNER_ROUNDEDNESS} (star)
|
/// {#POLYSTAR_INNER_ROUNDEDNESS} (star)
|
||||||
/// {@link #POLYSTAR_OUTER_ROUNDEDNESS}
|
/// {#POLYSTAR_OUTER_ROUNDEDNESS}
|
||||||
///
|
///
|
||||||
/// Repeater:
|
/// Repeater:
|
||||||
/// All transform properties
|
/// All transform properties
|
||||||
/// {@link #REPEATER_COPIES}
|
/// {#REPEATER_COPIES}
|
||||||
/// {@link #REPEATER_OFFSET}
|
/// {#REPEATER_OFFSET}
|
||||||
/// {@link #TRANSFORM_ROTATION}
|
/// {#TRANSFORM_ROTATION}
|
||||||
/// {@link #TRANSFORM_START_OPACITY}
|
/// {#TRANSFORM_START_OPACITY}
|
||||||
/// {@link #TRANSFORM_END_OPACITY}
|
/// {#TRANSFORM_END_OPACITY}
|
||||||
///
|
///
|
||||||
/// Layers:
|
/// Layers:
|
||||||
/// All transform properties
|
/// All transform properties
|
||||||
/// {@link #TIME_REMAP} (composition layers only)
|
/// {#TIME_REMAP} (composition layers only)
|
||||||
abstract class LottieProperty {
|
abstract class LottieProperty {
|
||||||
/// ColorInt **/
|
/// ColorInt **/
|
||||||
static const Color color = Color(0x00000001);
|
static const Color color = Color(0x00000001);
|
||||||
|
@ -66,7 +66,7 @@ class Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Reads and discards {@code byteCount} bytes from this source. Throws an
|
/// Reads and discards {@code byteCount} bytes from this source. Throws an
|
||||||
/// {@link java.io.EOFException} if the source is exhausted before the
|
/// [Exception] if the source is exhausted before the
|
||||||
/// requested bytes can be skipped.
|
/// requested bytes can be skipped.
|
||||||
void skip(int byteCount) {
|
void skip(int byteCount) {
|
||||||
_start += byteCount;
|
_start += byteCount;
|
||||||
|
@ -857,7 +857,7 @@ class JsonUtf8Reader extends JsonReader {
|
|||||||
|
|
||||||
/// Returns the next character in the stream that is neither whitespace nor a
|
/// Returns the next character in the stream that is neither whitespace nor a
|
||||||
/// part of a comment. When this returns, the returned character is always at
|
/// part of a comment. When this returns, the returned character is always at
|
||||||
/// {@code buffer.getByte(0)}.
|
/// {buffer.getByte(0)}.
|
||||||
int _nextNonWhitespace(bool throwOnEof) {
|
int _nextNonWhitespace(bool throwOnEof) {
|
||||||
// This code uses ugly local variables 'p' and 'l' representing the 'pos'
|
// This code uses ugly local variables 'p' and 'l' representing the 'pos'
|
||||||
// and 'limit' fields respectively. Using locals rather than fields saves
|
// and 'limit' fields respectively. Using locals rather than fields saves
|
||||||
|
@ -74,7 +74,7 @@ class AssetLottie extends LottieProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(dynamic other) {
|
bool operator ==(Object other) {
|
||||||
if (other.runtimeType != runtimeType) return false;
|
if (other.runtimeType != runtimeType) return false;
|
||||||
return other is AssetLottie &&
|
return other is AssetLottie &&
|
||||||
other.keyName == keyName &&
|
other.keyName == keyName &&
|
||||||
|
@ -50,7 +50,7 @@ class FileLottie extends LottieProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(dynamic other) {
|
bool operator ==(Object other) {
|
||||||
if (other.runtimeType != runtimeType) return false;
|
if (other.runtimeType != runtimeType) return false;
|
||||||
return other is FileLottie && io.areFilesEqual(file, other.file);
|
return other is FileLottie && io.areFilesEqual(file, other.file);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ class MemoryLottie extends LottieProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(dynamic other) {
|
bool operator ==(Object other) {
|
||||||
if (other.runtimeType != runtimeType) return false;
|
if (other.runtimeType != runtimeType) return false;
|
||||||
|
|
||||||
//TODO(xha): compare bytes content
|
//TODO(xha): compare bytes content
|
||||||
|
@ -60,7 +60,7 @@ class NetworkLottie extends LottieProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(dynamic other) {
|
bool operator ==(Object other) {
|
||||||
if (other.runtimeType != runtimeType) return false;
|
if (other.runtimeType != runtimeType) return false;
|
||||||
return other is NetworkLottie &&
|
return other is NetworkLottie &&
|
||||||
other.url == url &&
|
other.url == url &&
|
||||||
|
@ -96,7 +96,7 @@ class MiscUtils {
|
|||||||
/// it to the accumulator list.
|
/// it to the accumulator list.
|
||||||
///
|
///
|
||||||
/// Any {@link KeyPathElementContent} should call through to this as its implementation of
|
/// Any {@link KeyPathElementContent} should call through to this as its implementation of
|
||||||
/// {@link KeyPathElementContent#resolveKeyPath(KeyPath, int, List, KeyPath)}.
|
/// {KeyPathElementContent#resolveKeyPath(KeyPath, int, List, KeyPath)}.
|
||||||
static void resolveKeyPath(
|
static void resolveKeyPath(
|
||||||
KeyPath keyPath,
|
KeyPath keyPath,
|
||||||
int depth,
|
int depth,
|
||||||
|
@ -331,7 +331,7 @@ class ResolvedValueDelegate<T> {
|
|||||||
/// to multiple contents. In that case, the callbacks's value will apply to all of them.
|
/// to multiple contents. In that case, the callbacks's value will apply to all of them.
|
||||||
/// <p>
|
/// <p>
|
||||||
/// Internally, this will check if the {@link KeyPath} has already been resolved with
|
/// Internally, this will check if the {@link KeyPath} has already been resolved with
|
||||||
/// {@link #resolveKeyPath(KeyPath)} and will resolve it if it hasn't.
|
/// {#resolveKeyPath(KeyPath)} and will resolve it if it hasn't.
|
||||||
void addValueCallback(LottieDrawable drawable) {
|
void addValueCallback(LottieDrawable drawable) {
|
||||||
var invalidate = false;
|
var invalidate = false;
|
||||||
if (valueDelegate.keyPath.isEmpty) {
|
if (valueDelegate.keyPath.isEmpty) {
|
||||||
|
56
pubspec.lock
@ -147,6 +147,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.7"
|
version: "0.6.7"
|
||||||
|
leak_tracker:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker
|
||||||
|
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "10.0.0"
|
||||||
|
leak_tracker_flutter_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_flutter_testing
|
||||||
|
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
|
leak_tracker_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_testing
|
||||||
|
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -159,26 +183,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.16"
|
version: "0.12.16+1"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.0"
|
version: "0.8.0"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.0"
|
version: "1.11.0"
|
||||||
package_config:
|
package_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -191,10 +215,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.3"
|
version: "1.9.0"
|
||||||
pointycastle:
|
pointycastle:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -280,6 +304,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
|
vm_service:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vm_service
|
||||||
|
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "13.0.0"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -288,14 +320,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
web:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: web
|
|
||||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.3.0"
|
|
||||||
yaml:
|
yaml:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |