getBehavior method
- required NetworkType networkType,
- required int batteryPercent,
- required bool isCharging,
- required bool isMetered,
- required bool isForeground,
Determines the sync behavior based on current state.
Implementation
SyncBehavior getBehavior({
required NetworkType networkType,
required int batteryPercent,
required bool isCharging,
required bool isMetered,
required bool isForeground,
}) {
// Foreground-only mode
if (foregroundOnly && !isForeground) {
return SyncBehavior.queue;
}
// Low battery override
if (batteryPercent < lowBatteryThreshold && !isCharging) {
return lowBatteryBehavior;
}
// Charging overrides network-based behavior
if (isCharging) {
// Still respect offline state
if (networkType == NetworkType.none) {
return onOffline;
}
return onCharging;
}
// Network type based behavior
switch (networkType) {
case NetworkType.wifi:
return onWifi;
case NetworkType.cellular:
return isMetered ? onMetered : onCellular;
case NetworkType.ethernet:
return onWifi; // Treat ethernet like WiFi
case NetworkType.none:
return onOffline;
}
}