Jelajahi Sumber

Merge remote-tracking branch 'origin/v1.0.2' into v1.0.2

hezihao 6 bulan lalu
induk
melakukan
f6c782feb5

+ 3 - 0
lib/module/keyboard/keyboard_controller.dart

@@ -21,6 +21,7 @@ import '../../data/consts/event_report.dart';
 import '../../plugins/keyboard_android_platform.dart';
 import '../../utils/default_keyboard_helper.dart';
 import '../../utils/keyboard_tutorial_util.dart';
+import '../../widget/heart_fill_view.dart';
 import '../intimacy_analyse/intimacy_analyse_page.dart';
 import '../intimacy_scale/intimacy_scale_page.dart';
 import '../keyboard_guide/keyboard_guide_page.dart';
@@ -35,6 +36,8 @@ class KeyBoardController extends BaseController {
 
   final AccountRepository accountRepository;
 
+  late HeartFillController heartController;
+
   KeyboardHomeInfoResponse? get homeInfo => keyboardRepository.homeInfo.value;
 
   MemberInfo? get memberInfo => accountRepository.memberStatusInfo.value;

+ 7 - 1
lib/module/keyboard/keyboard_view.dart

@@ -382,7 +382,12 @@ class KeyBoardView extends BaseView<KeyBoardController> {
                     AppLifecycleWidget(
                       onAppLifecycleCallback: (isForeground) {
                         if (isForeground) {
-                        } else {}
+                          print("qqq App is in foreground");
+                          controller.heartController.start();
+                        } else {
+                          print("qqq App is in background");
+                          controller.heartController.stop();
+                        }
                       },
                       child: HeartFillAnimation(
                         fillProgress:
@@ -390,6 +395,7 @@ class KeyBoardView extends BaseView<KeyBoardController> {
                                 ? controller.homeInfo!.intimacy! / 100
                                 : 0,
                         width: 88.w,
+                        onControllerCreated: (ctrl) => controller.heartController = ctrl,
                       ),
                     ),
 

+ 15 - 1
lib/widget/heart_fill_view.dart

@@ -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