diff --git a/lib/services/layer_import_service.dart b/lib/services/layer_import_service.dart index a568847..3b5d8e1 100644 --- a/lib/services/layer_import_service.dart +++ b/lib/services/layer_import_service.dart @@ -72,8 +72,15 @@ class LayerImportService extends GetxService { super.onReady(); await _initLayerDir(); await _loadPersistedLayers(); + + // A service permanent (app-életciklusnyi) — enélkül projektváltáskor + // a térképen a RÉGI projekt rétegei maradnának látszódva egészen + // újraindításig. + ever(ProjectService.to.activeProject, (_) => reload()); } + Future reload() => _loadPersistedLayers(); + Future _initLayerDir() async { final ext = await getExternalStorageDirectory(); final dir = Directory(p.join(ext!.path, 'layers')); diff --git a/lib/services/layer_sync_service.dart b/lib/services/layer_sync_service.dart index a76301b..94a2752 100644 --- a/lib/services/layer_sync_service.dart +++ b/lib/services/layer_sync_service.dart @@ -4,6 +4,7 @@ import 'package:get/get.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:terepi_seged/services/layer_import_service.dart'; import 'package:uuid/uuid.dart'; import 'app_database.dart'; @@ -56,6 +57,11 @@ class LayerSyncService extends GetxService { for (final project in projects.where((pr) => !pr.isLocalOnly)) { await _pullProjectLayers(project.id!, project.uuid); } + // Ha közben egy csapattárs frissített/megosztott egy réteget, ez + // jelenjen meg a térképen azonnal, újraindítás nélkül. + if (Get.isRegistered()) { + await LayerImportService.to.reload(); + } } finally { isSyncing.value = false; }