start method
Start sync engine
Implementation
Future<void> start() async {
if (_isRunning) return;
_isRunning = true;
// Listen to connectivity changes
_connectivitySubscription =
_connectivityService.onConnectivityChanged.listen((isOnline) {
// Emit connectivity change event
_eventController.add(SyncEvent(
type: SyncEventType.connectivityChanged,
metadata: {'isOnline': isOnline},
));
if (isOnline) {
// Reset failed operations when coming back online
_resetFailedOperations();
_performSync();
}
});
// Start periodic sync
_syncTimer = Timer.periodic(_config.syncInterval, (_) {
if (_connectivityService.isOnline) {
_performSync();
}
});
// Initial sync if online
if (_connectivityService.isOnline) {
await _performSync();
}
}