optimizationSuggestion property

PowerOptimizationSuggestion get optimizationSuggestion

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,
  );
}