getOptimizationReason method

String getOptimizationReason(
  1. bool shouldIncludeFullData,
  2. bool isCrashEvent,
  3. String currentSessionId,
  4. App currentApp,
  5. Device currentDevice,
)

Get human-readable reason for optimization decision

Implementation

String getOptimizationReason(
  bool shouldIncludeFullData,
  bool isCrashEvent,
  String currentSessionId,
  App currentApp,
  Device currentDevice,
) {
  if (isCrashEvent) return 'crash_event';
  if (_eventCount == 0) return 'first_event';
  if (_lastSessionId != null && _lastSessionId != currentSessionId) {
    return 'new_session';
  }
  if (_sessionEventCount % fullDataInterval == 0) {
    return 'interval_${fullDataInterval}th_event';
  }
  if (_appDataChanged(currentApp)) return 'app_data_changed';
  if (_deviceDataChanged(currentDevice)) return 'device_data_changed';
  return 'optimized';
}