Kml parser utf-8 támogatás, induláskor minimum app verzió ellenőrzése

This commit is contained in:
2026-07-09 03:43:06 +02:00
parent 1e5601a10b
commit fc31acb80f
8 changed files with 301 additions and 29 deletions
@@ -7,6 +7,7 @@ import 'package:flutter_map/flutter_map.dart';
import 'package:get/get.dart';
import 'package:latlong2/latlong.dart';
import 'package:terepi_seged/enums/layer_import_source_type.dart';
import 'package:terepi_seged/services/project_service.dart';
import '../../models/imported_layer.dart';
import '../../services/layer_import_service.dart';
@@ -203,6 +204,15 @@ class _LayerTile extends StatelessWidget {
constraints: const BoxConstraints(minWidth: 28, minHeight: 28),
color: Colors.grey.shade500,
),
if (!(ProjectService.to.activeProject.value?.isLocalOnly ?? true))
IconButton(
icon: const Icon(Icons.cloud_upload_outlined, size: 16),
onPressed: () => _publish(context, layer),
tooltip: 'Megosztás a csapattal',
padding: EdgeInsets.zero,
constraints: const BoxConstraints(minWidth: 28, minHeight: 28),
color: Colors.blue.shade400,
),
IconButton(
icon: const Icon(Icons.palette_outlined, size: 16),
onPressed: () => _openStyleSheet(context, layer),
@@ -250,6 +260,17 @@ class _LayerTile extends StatelessWidget {
);
}
Future<void> _publish(BuildContext context, ImportedLayer layer) async {
try {
await LayerImportService.to.publishLayer(layer.id);
Get.snackbar('Megosztva', '${layer.name} elérhető a csapattársaknak.',
snackPosition: SnackPosition.BOTTOM);
} catch (e) {
Get.snackbar('Megosztási hiba', e.toString(),
snackPosition: SnackPosition.BOTTOM);
}
}
String _stats() {
final parts = <String>[];
if (layer.markers.isNotEmpty) parts.add('${layer.markers.length} pont');