connectToAuthService method

  1. @override
Future<void> connectToAuthService({
  1. AuthServiceInt? authService,
  2. Future<void> onAuthenticated(
    1. String? uid
    )?,
  3. Future<void> onAboutToLogOut()?,
})
override

Legacy auth wiring. FCM-068/BEH-21: this path registers only handleAuthenticated/handleAboutToLogOut and wires NO onLoggedOut callback, so legacy consumers should ALSO register handleLoggedOut as an onLoggedOut callback on their AuthService to get the cached-marker reset on logout (BEH-21 is otherwise scoped to the DreamicServices wiring, which registers it automatically).

Implementation

@override
Future<void> connectToAuthService({
  AuthServiceInt? authService,
  Future<void> Function(String? uid)? onAuthenticated,
  Future<void> Function()? onAboutToLogOut,
}) async {
  logv('DeviceService: connectToAuthService called');

  // Resolve auth service if not provided
  AuthServiceInt? resolvedAuthService = authService;
  if (resolvedAuthService == null) {
    try {
      resolvedAuthService = g<AuthServiceInt>();
    } catch (e) {
      logw('DeviceService: AuthServiceInt not registered in GetIt, cannot connect: $e');
      return;
    }
  }

  // Remove old callbacks if already connected (idempotency)
  if (_isConnectedToAuthService && _authService != null) {
    logv('DeviceService: Removing existing callbacks before reconnecting');
    _disconnectFromAuthService();
  }

  _authService = resolvedAuthService;

  // Create callback wrappers with default behavior
  _registeredOnAuthenticatedCallback = onAuthenticated ?? _defaultOnAuthenticated;
  _registeredOnAboutToLogOutCallback = onAboutToLogOut ?? _defaultOnAboutToLogOut;

  // Register callbacks
  _authService!.addOnAuthenticatedCallback(_registeredOnAuthenticatedCallback!);
  _authService!.addOnAboutToLogOutCallback(_registeredOnAboutToLogOutCallback!);

  _isConnectedToAuthService = true;

  // Also connect to lifecycle service for automatic resume updates
  _connectToLifecycleService();

  logd('DeviceService: Connected to AuthService and lifecycle');
}