Presearch google activities.

This commit is contained in:
Dayron
2025-11-13 09:27:37 +01:00
parent d17df621f4
commit 236327f6fa
6 changed files with 156 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import '../../models/activity.dart';
import '../../repositories/activity_repository.dart';
import '../../services/activity_places_service.dart';
import '../../services/activity_cache_service.dart';
import '../../services/error_service.dart';
import 'activity_event.dart';
import 'activity_state.dart';
@@ -34,6 +35,7 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
on<ClearSearchResults>(_onClearSearchResults);
on<UpdateActivity>(_onUpdateActivity);
on<ToggleActivityFavorite>(_onToggleActivityFavorite);
on<RestoreCachedSearchResults>(_onRestoreCachedSearchResults);
}
/// Handles loading activities for a trip
@@ -88,6 +90,9 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
finalResults = searchResults;
}
// Mettre en cache les résultats
ActivityCacheService().setCachedActivities(event.tripId, finalResults);
emit(ActivitySearchResults(
searchResults: finalResults,
query: event.category?.displayName ?? 'Toutes les activités',
@@ -132,6 +137,9 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
finalResults = activities;
}
// Mettre en cache les résultats
ActivityCacheService().setCachedActivities(event.tripId, finalResults);
emit(ActivitySearchResults(
searchResults: finalResults,
query: event.category?.displayName ?? 'Toutes les activités',
@@ -157,6 +165,9 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
tripId: event.tripId,
);
// Mettre en cache les résultats
ActivityCacheService().setCachedActivities(event.tripId, searchResults);
emit(ActivitySearchResults(
searchResults: searchResults,
query: event.query,
@@ -470,4 +481,16 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
return filtered;
}
/// Restores cached search results
Future<void> _onRestoreCachedSearchResults(
RestoreCachedSearchResults event,
Emitter<ActivityState> emit,
) async {
emit(ActivitySearchResults(
searchResults: event.searchResults,
query: 'cached',
isLoading: false,
));
}
}