pedido_sync.dart 894 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'dart:async';
  2. import 'package:flutter/material.dart';
  3. import '../../viewmodels/viewmodels.dart';
  4. class PedidoSync {
  5. static final PedidoSync _instance = PedidoSync._internal();
  6. Timer? _syncTimer;
  7. factory PedidoSync() {
  8. return _instance;
  9. }
  10. PedidoSync._internal();
  11. void startSync(PedidoViewModel pedidoViewModel) {
  12. if (_syncTimer != null && _syncTimer!.isActive) return;
  13. _syncTimer = Timer.periodic(Duration(seconds: 5), (timer) async {
  14. bool hasMoreToSync = await pedidoViewModel.sincronizarPedidos();
  15. // if (!hasMoreToSync) {
  16. // timer.cancel();
  17. // _syncTimer = null;
  18. // print('Sincronización completa, no hay más pedidos por sincronizar.');
  19. // }
  20. });
  21. }
  22. void stopSync() {
  23. _syncTimer?.cancel();
  24. _syncTimer = null;
  25. }
  26. bool isSyncing() {
  27. return _syncTimer != null && _syncTimer!.isActive;
  28. }
  29. }