optimizationSuggestion property
Suggested optimization level based on power state.
Implementation
PowerOptimizationSuggestion get optimizationSuggestion {
if (isCharging) {
return const PowerOptimizationSuggestion(
level: OptimizationSuggestionLevel.none,
reason: 'Device is charging',
canUseHighAccuracy: true,
canUseCellular: true,
suggestedHeartbeatMultiplier: 1.0,
);
}
if (isCriticalBattery) {
return const PowerOptimizationSuggestion(
level: OptimizationSuggestionLevel.maximum,
reason: 'Critical battery level',
canUseHighAccuracy: false,
canUseCellular: false,
suggestedHeartbeatMultiplier: 5.0,
);
}
if (isPowerSaveMode || isDozeMode) {
return const PowerOptimizationSuggestion(
level: OptimizationSuggestionLevel.high,
reason: 'Power save mode active',
canUseHighAccuracy: false,
canUseCellular: true,
suggestedHeartbeatMultiplier: 3.0,
);
}
if (isLowBattery) {
return const PowerOptimizationSuggestion(
level: OptimizationSuggestionLevel.moderate,
reason: 'Low battery level',
canUseHighAccuracy: true,
canUseCellular: true,
suggestedHeartbeatMultiplier: 2.0,
);
}
return const PowerOptimizationSuggestion(
level: OptimizationSuggestionLevel.none,
reason: 'Normal battery level',
canUseHighAccuracy: true,
canUseCellular: true,
suggestedHeartbeatMultiplier: 1.0,
);
}