getStrategy method

DefaultStrategy getStrategy()

Implementation

DefaultStrategy getStrategy() {
  final currentSdkStatus = Flagship.getStatus();
  final currentConsent = visitor.getConsent();
  final currentQAStatus = Flagship.sharedInstance().isQAAssistantConnected;

  // Vérifier si la stratégie doit être invalidée
  if (_cachedStrategy == null ||
      _lastSdkStatus != currentSdkStatus ||
      _lastConsentStatus != currentConsent ||
      _lastQAStatus != currentQAStatus) {
    // Créer une nouvelle stratégie seulement si nécessaire
    _cachedStrategy =
        _createStrategy(currentSdkStatus, currentConsent, currentQAStatus);

    // Sauvegarder l'état actuel
    _lastSdkStatus = currentSdkStatus;
    _lastConsentStatus = currentConsent;
    _lastQAStatus = currentQAStatus;
  }

  // Review later because we fallback on NotReadyStrategy too often
  return _cachedStrategy ?? NotReadyStrategy(visitor);
}