BatteryStats.fromMap constructor
- JsonMap map
Creates from a map.
Implementation
factory BatteryStats.fromMap(JsonMap map) {
final timeByStateRaw = map['timeByState'];
final timeByState = <String, Duration>{};
if (timeByStateRaw is Map) {
for (final entry in timeByStateRaw.entries) {
final seconds = entry.value as num?;
if (seconds != null) {
timeByState[entry.key.toString()] =
Duration(seconds: seconds.toInt());
}
}
}
return BatteryStats(
gpsOnTimePercent: (map['gpsOnTimePercent'] as num?)?.toDouble() ?? 0,
locationUpdatesCount: (map['locationUpdatesCount'] as num?)?.toInt() ?? 0,
syncRequestsCount: (map['syncRequestsCount'] as num?)?.toInt() ?? 0,
averageAccuracyMeters:
(map['averageAccuracyMeters'] as num?)?.toDouble() ?? 0,
trackingDurationMinutes:
(map['trackingDurationMinutes'] as num?)?.toInt() ?? 0,
estimatedDrainPercent: (map['estimatedDrainPercent'] as num?)?.toDouble(),
optimizationLevel: OptimizationLevel.values.firstWhere(
(e) => e.name == map['optimizationLevel'],
orElse: () => OptimizationLevel.none,
),
timeByState: timeByState,
currentBatteryLevel: (map['currentBatteryLevel'] as num?)?.toInt(),
isCharging: map['isCharging'] as bool?,
accuracyDowngradeCount:
(map['accuracyDowngradeCount'] as num?)?.toInt() ?? 0,
gpsDisabledCount: (map['gpsDisabledCount'] as num?)?.toInt() ?? 0,
);
}