SyncPolicy.fromMap constructor

SyncPolicy.fromMap(
  1. JsonMap map
)

Creates from a map.

Implementation

factory SyncPolicy.fromMap(JsonMap map) {
  return SyncPolicy(
    onWifi: SyncBehavior.values.firstWhere(
      (e) => e.name == map['onWifi'],
      orElse: () => SyncBehavior.immediate,
    ),
    onCellular: SyncBehavior.values.firstWhere(
      (e) => e.name == map['onCellular'],
      orElse: () => SyncBehavior.batch,
    ),
    onMetered: SyncBehavior.values.firstWhere(
      (e) => e.name == map['onMetered'],
      orElse: () => SyncBehavior.batch,
    ),
    onOffline: SyncBehavior.values.firstWhere(
      (e) => e.name == map['onOffline'],
      orElse: () => SyncBehavior.queue,
    ),
    onCharging: SyncBehavior.values.firstWhere(
      (e) => e.name == map['onCharging'],
      orElse: () => SyncBehavior.immediate,
    ),
    batchSize: (map['batchSize'] as num?)?.toInt() ?? 50,
    batchInterval: Duration(
      milliseconds: (map['batchIntervalMs'] as num?)?.toInt() ?? 300000,
    ),
    lowBatteryThreshold: (map['lowBatteryThreshold'] as num?)?.toInt() ?? 20,
    lowBatteryBehavior: SyncBehavior.values.firstWhere(
      (e) => e.name == map['lowBatteryBehavior'],
      orElse: () => SyncBehavior.manual,
    ),
    minSyncInterval: Duration(
      milliseconds: (map['minSyncIntervalMs'] as num?)?.toInt() ?? 30000,
    ),
    maxLocationAge: map['maxLocationAgeMs'] != null
        ? Duration(milliseconds: (map['maxLocationAgeMs'] as num).toInt())
        : null,
    preferWifi: map['preferWifi'] as bool? ?? true,
    foregroundOnly: map['foregroundOnly'] as bool? ?? false,
  );
}