|
|
@@ -6,18 +6,25 @@ import 'package:keyboard/utils/common_expand.dart';
|
|
|
import '../resource/assets.gen.dart';
|
|
|
|
|
|
class HeartFillAnimation extends StatefulWidget {
|
|
|
+
|
|
|
const HeartFillAnimation({
|
|
|
super.key,
|
|
|
-
|
|
|
required this.fillProgress,
|
|
|
this.width = 250.0,
|
|
|
+ this.onControllerCreated,
|
|
|
});
|
|
|
|
|
|
final double fillProgress;
|
|
|
final double width;
|
|
|
|
|
|
+
|
|
|
@override
|
|
|
State createState() => _HeartFillAnimationState();
|
|
|
+ final void Function(HeartFillController controller)? onControllerCreated;
|
|
|
+}
|
|
|
+class HeartFillController {
|
|
|
+ late void Function() start;
|
|
|
+ late void Function() stop;
|
|
|
}
|
|
|
|
|
|
class _HeartFillAnimationState extends State<HeartFillAnimation>
|
|
|
@@ -31,6 +38,13 @@ class _HeartFillAnimationState extends State<HeartFillAnimation>
|
|
|
vsync: this,
|
|
|
duration: const Duration(milliseconds: 1000),
|
|
|
)..repeat();
|
|
|
+
|
|
|
+ if (widget.onControllerCreated != null) {
|
|
|
+ final controller = HeartFillController();
|
|
|
+ controller.start = () => _waveController.repeat();
|
|
|
+ controller.stop = () => _waveController.stop();
|
|
|
+ widget.onControllerCreated!(controller);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@override
|