initialize method

  1. @override
Future<bool> initialize({
  1. StepLoggerConfig? config,
})
override

Initializes the step tracking service.

This method sets up the necessary observers, initializes notification utilities, and prepares the step tracking session. It loads any persisted data and handles recovery of interrupted sessions if needed. The initial total steps are calculated from the session history.

config - Optional configuration for the step logger. If not provided, a default configuration is used.

Returns a Future that completes with true when initialization is successful.

Implementation

@override
Future<bool> initialize({StepLoggerConfig? config}) async {
  WidgetsBinding.instance.addObserver(this);
  _config = config ?? const StepLoggerConfig();

  _notificationUtilsIOS.initializeNotifications();
  await _initStepTracking();
  await _loadPersistedData();

  if (_isTracking && _sessionStartTime == null) {
    await _resetTrackingState();
  } else if (_isTracking) {
    await _recoverInterruptedSession();
  }
  // Calculate initial total steps from history
  _totalSteps = _calculateTotalFromSessions();
  return true;
}