store_goods_countdown_manager.dart 947 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  2. import 'package:injectable/injectable.dart';
  3. import '../../../utils/count_down_timer.dart';
  4. /// 商店商品倒计时管理器
  5. @lazySingleton
  6. class StoreGoodsCountdownManager {
  7. /// 当前时间
  8. Rx<Duration> currentDuration = Duration.zero.obs;
  9. late CountdownTimer _timer;
  10. StoreGoodsCountdownManager() {
  11. _timer =
  12. CountdownTimer(
  13. initialDuration: Duration(minutes: 30),
  14. autoRestart: false,
  15. )
  16. ..onTick = (duration) {
  17. // 倒计时更新
  18. currentDuration.value = duration;
  19. }
  20. ..onCompleted = () {
  21. // 倒计时完成,重新开始
  22. _timer.reset();
  23. _timer.start();
  24. };
  25. startCountdown();
  26. }
  27. /// 开始倒计时
  28. void startCountdown() {
  29. _timer.start();
  30. }
  31. /// 暂停倒计时
  32. void pauseCountdown() {
  33. _timer.pause();
  34. }
  35. }