fAdd phone number support to user authentication events and methods
This commit is contained in:
@@ -126,7 +126,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
if (state is ActivityLoaded) {
|
||||
print('✅ Activités chargées: ${state.activities.length}');
|
||||
// Stocker les activités localement
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
setState(() {
|
||||
@@ -137,28 +136,18 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
_isLoadingTripActivities = false;
|
||||
});
|
||||
|
||||
print(
|
||||
'🔄 [ActivityLoaded] Activités du voyage mises à jour: ${_tripActivities.length}',
|
||||
);
|
||||
// Vérifier si on a besoin de charger plus d'activités dans les suggestions
|
||||
Future.delayed(const Duration(milliseconds: 500), () {
|
||||
print(
|
||||
'🚀 [ActivityLoaded] Déclenchement de la vérification auto-reload',
|
||||
);
|
||||
_checkAndLoadMoreActivitiesIfNeeded();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (state is ActivitySearchResults) {
|
||||
print('🔍 Résultats Google: ${state.searchResults.length}');
|
||||
// Déclencher l'auto-reload uniquement pour la recherche initiale (6 résultats)
|
||||
// et pas pour les rechargements automatiques
|
||||
if (state.searchResults.length <= 6 && !_autoReloadInProgress) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
print(
|
||||
'🎯 [ActivitySearchResults] Première recherche avec peu de résultats, vérification auto-reload',
|
||||
);
|
||||
Future.delayed(const Duration(milliseconds: 500), () {
|
||||
_checkAndLoadMoreActivitiesIfNeeded();
|
||||
});
|
||||
@@ -167,13 +156,11 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
if (state is ActivityVoteRecorded) {
|
||||
print('<EFBFBD>️ Vote enregistré pour activité: ${state.activityId}');
|
||||
// Recharger les activités du voyage pour mettre à jour les votes
|
||||
_loadActivities();
|
||||
}
|
||||
|
||||
if (state is ActivityAdded) {
|
||||
print('✅ Activité ajoutée avec succès: ${state.activity.name}');
|
||||
// Recharger automatiquement les activités du voyage
|
||||
_loadActivities();
|
||||
}
|
||||
@@ -654,10 +641,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
);
|
||||
}).toList();
|
||||
|
||||
print(
|
||||
'🔍 [Google Search] ${googleActivities.length} résultats trouvés, ${filteredActivities.length} après filtrage',
|
||||
);
|
||||
|
||||
if (filteredActivities.isEmpty && googleActivities.isNotEmpty) {
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
@@ -764,18 +747,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: () {
|
||||
print(
|
||||
'🧪 [DEBUG] Force auto-reload check - État actuel:',
|
||||
);
|
||||
print(
|
||||
'🧪 [DEBUG] _tripActivities: ${_tripActivities.length}',
|
||||
);
|
||||
print(
|
||||
'🧪 [DEBUG] _autoReloadInProgress: $_autoReloadInProgress',
|
||||
);
|
||||
print(
|
||||
'🧪 [DEBUG] _lastAutoReloadTriggerCount: $_lastAutoReloadTriggerCount',
|
||||
);
|
||||
_checkAndLoadMoreActivitiesIfNeeded();
|
||||
},
|
||||
icon: const Icon(Icons.bug_report, size: 16),
|
||||
@@ -1251,8 +1222,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
void _voteForActivity(String activityId, int vote) {
|
||||
print('🗳️ Vote pour activité $activityId: $vote');
|
||||
|
||||
// TODO: Récupérer l'ID utilisateur actuel
|
||||
// Pour l'instant, on utilise un ID temporaire
|
||||
final userId = 'current_user_id';
|
||||
@@ -1275,8 +1244,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
void _addGoogleActivityToTrip(Activity activity) {
|
||||
print('➕ [Add Activity] Adding ${activity.name} to trip');
|
||||
|
||||
// Créer une nouvelle activité avec l'ID du voyage
|
||||
final newActivity = activity.copyWith(
|
||||
tripId: widget.trip.id,
|
||||
@@ -1307,7 +1274,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
void _checkAndLoadMoreActivitiesIfNeeded() {
|
||||
// Protection contre les rechargements en boucle
|
||||
if (_autoReloadInProgress) {
|
||||
print('⏸️ [Auto-reload] Auto-reload déjà en cours, skip');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1315,13 +1281,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
if (currentState is ActivitySearchResults) {
|
||||
final googleActivities = currentState.searchResults;
|
||||
|
||||
print(
|
||||
'🔍 [Auto-reload] Activités du voyage en mémoire: ${_tripActivities.length}',
|
||||
);
|
||||
print(
|
||||
'🔍 [Auto-reload] Activités Google total: ${googleActivities.length}',
|
||||
);
|
||||
|
||||
// Filtrer les activités déjà présentes dans le voyage
|
||||
final filteredActivities = googleActivities.where((googleActivity) {
|
||||
final isDuplicate = _tripActivities.any(
|
||||
@@ -1329,21 +1288,12 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
tripActivity.name.toLowerCase().trim() ==
|
||||
googleActivity.name.toLowerCase().trim(),
|
||||
);
|
||||
if (isDuplicate) {
|
||||
print('🔍 [Auto-reload] Activité filtrée: ${googleActivity.name}');
|
||||
}
|
||||
if (isDuplicate) {}
|
||||
return !isDuplicate;
|
||||
}).toList();
|
||||
|
||||
print(
|
||||
'🔍 [Auto-reload] ${filteredActivities.length} activités visibles après filtrage sur ${googleActivities.length} total',
|
||||
);
|
||||
|
||||
// Protection: ne pas redéclencher pour le même nombre d'activités Google
|
||||
if (googleActivities.length == _lastAutoReloadTriggerCount) {
|
||||
print(
|
||||
'🔒 [Auto-reload] Même nombre qu\'avant (${googleActivities.length}), skip pour éviter la boucle',
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1360,13 +1310,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
activitiesNeeded +
|
||||
6; // Activités actuelles + ce qui manque + buffer de 6
|
||||
|
||||
print(
|
||||
'🔄 [Auto-reload] DÉCLENCHEMENT: Besoin de $activitiesNeeded activités supplémentaires',
|
||||
);
|
||||
print(
|
||||
'📊 [Auto-reload] Demande totale: $newTotalToRequest activités (actuellement: ${googleActivities.length})',
|
||||
);
|
||||
|
||||
// Mettre à jour le compteur et recharger avec le nouveau total
|
||||
_totalGoogleActivitiesRequested = newTotalToRequest;
|
||||
_loadMoreGoogleActivitiesWithTotal(newTotalToRequest);
|
||||
@@ -1374,35 +1317,19 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
// Libérer le verrou après un délai
|
||||
Future.delayed(const Duration(seconds: 3), () {
|
||||
_autoReloadInProgress = false;
|
||||
print('🔓 [Auto-reload] Verrou libéré');
|
||||
});
|
||||
} else if (filteredActivities.length >= 4) {
|
||||
print(
|
||||
'✅ [Auto-reload] Suffisamment d\'activités visibles (${filteredActivities.length} >= 4)',
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'🚫 [Auto-reload] Trop d\'activités Google déjà chargées (${googleActivities.length} >= 20), arrêt auto-reload',
|
||||
);
|
||||
}
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Auto-reload] État pas prêt pour auto-chargement: ${currentState.runtimeType}',
|
||||
);
|
||||
}
|
||||
} else {}
|
||||
} else {}
|
||||
}
|
||||
|
||||
void _searchGoogleActivities() {
|
||||
print('🔍 [Google Search] Initializing first search with 6 results');
|
||||
_totalGoogleActivitiesRequested = 6; // Reset du compteur
|
||||
_autoReloadInProgress = false; // Reset des protections
|
||||
_lastAutoReloadTriggerCount = 0;
|
||||
|
||||
// Utiliser les coordonnées pré-géolocalisées du voyage si disponibles
|
||||
if (widget.trip.hasCoordinates) {
|
||||
print(
|
||||
'🌍 [Google Search] Using pre-geocoded coordinates: ${widget.trip.latitude}, ${widget.trip.longitude}',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivitiesWithCoordinates(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1414,9 +1341,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Google Search] No coordinates available, falling back to destination geocoding',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivities(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1431,16 +1355,12 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
void _resetAndSearchGoogleActivities() {
|
||||
print('🔄 [Google Search] Resetting and starting fresh search');
|
||||
_totalGoogleActivitiesRequested = 6; // Reset du compteur
|
||||
_autoReloadInProgress = false; // Reset des protections
|
||||
_lastAutoReloadTriggerCount = 0;
|
||||
|
||||
// Utiliser les coordonnées pré-géolocalisées du voyage si disponibles
|
||||
if (widget.trip.hasCoordinates) {
|
||||
print(
|
||||
'🌍 [Google Search] Using pre-geocoded coordinates: ${widget.trip.latitude}, ${widget.trip.longitude}',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivitiesWithCoordinates(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1452,9 +1372,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Google Search] No coordinates available, falling back to destination geocoding',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivities(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1469,23 +1386,16 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
void _loadMoreGoogleActivities() {
|
||||
print('📄 [Google Search] Loading more activities (next 6 results)');
|
||||
final currentState = context.read<ActivityBloc>().state;
|
||||
|
||||
if (currentState is ActivitySearchResults) {
|
||||
final currentCount = currentState.searchResults.length;
|
||||
final newTotal = currentCount + 6;
|
||||
print(
|
||||
'📊 [Google Search] Current results count: $currentCount, requesting total: $newTotal',
|
||||
);
|
||||
|
||||
_totalGoogleActivitiesRequested = newTotal;
|
||||
|
||||
// Utiliser les coordonnées pré-géolocalisées du voyage si disponibles
|
||||
if (widget.trip.hasCoordinates) {
|
||||
print(
|
||||
'🌍 [Google Search] Using pre-geocoded coordinates for more results',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivitiesWithCoordinates(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1497,9 +1407,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Google Search] No coordinates available, falling back to destination geocoding',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivities(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1514,26 +1421,15 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
}
|
||||
|
||||
void _loadMoreGoogleActivitiesWithTotal(int totalToRequest) {
|
||||
print(
|
||||
'📈 [Google Search] Loading activities with specific total: $totalToRequest',
|
||||
);
|
||||
|
||||
// Au lieu de reset, on utilise l'offset et append pour forcer plus de résultats
|
||||
final currentState = context.read<ActivityBloc>().state;
|
||||
if (currentState is ActivitySearchResults) {
|
||||
final currentCount = currentState.searchResults.length;
|
||||
final additionalNeeded = totalToRequest - currentCount;
|
||||
|
||||
print(
|
||||
'📊 [Google Search] Current: $currentCount, Total demandé: $totalToRequest, Additional: $additionalNeeded',
|
||||
);
|
||||
|
||||
if (additionalNeeded > 0) {
|
||||
// Utiliser les coordonnées pré-géolocalisées du voyage si disponibles
|
||||
if (widget.trip.hasCoordinates) {
|
||||
print(
|
||||
'🌍 [Google Search] Using pre-geocoded coordinates for additional results',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivitiesWithCoordinates(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1546,9 +1442,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Google Search] No coordinates available, falling back to destination geocoding',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivities(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1560,15 +1453,10 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
print('⚠️ [Google Search] Pas besoin de charger plus (déjà suffisant)');
|
||||
}
|
||||
} else {}
|
||||
} else {
|
||||
// Si pas de résultats existants, faire une recherche complète
|
||||
if (widget.trip.hasCoordinates) {
|
||||
print(
|
||||
'🌍 [Google Search] Using pre-geocoded coordinates for fresh search',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivitiesWithCoordinates(
|
||||
tripId: widget.trip.id!,
|
||||
@@ -1580,9 +1468,6 @@ class _ActivitiesPageState extends State<ActivitiesPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(
|
||||
'⚠️ [Google Search] No coordinates available, falling back to destination geocoding',
|
||||
);
|
||||
context.read<ActivityBloc>().add(
|
||||
SearchActivities(
|
||||
tripId: widget.trip.id!,
|
||||
|
||||
Reference in New Issue
Block a user