evaluateSyncPolicy method

  1. @override
Future<SyncDecision> evaluateSyncPolicy({
  1. required SyncPolicy policy,
})
override

Implementation

@override
Future<SyncDecision> evaluateSyncPolicy({
  required SyncPolicy policy,
}) async {
  final power = _powerState;
  final behavior = policy.getBehavior(
    networkType: NetworkType.wifi,
    batteryPercent: power.batteryLevel,
    isCharging: power.isCharging,
    isMetered: false,
    isForeground: _isForeground,
  );

  switch (behavior) {
    case SyncBehavior.immediate:
      return SyncDecision.proceed;
    case SyncBehavior.batch:
      return SyncDecision.batch(
        policy.batchSize,
        delay: policy.batchInterval,
      );
    case SyncBehavior.queue:
      return SyncDecision.defer('Queued for later');
    case SyncBehavior.manual:
      return SyncDecision.defer('Manual sync required');
  }
}