Move "about osm" to about page, add option to clear tile caches, option to add reason when deleting, min zoom 16 for edits/submissions, 300km nav distance warning

This commit is contained in:
stopflock
2026-03-12 18:59:48 -05:00
parent 256dd1a43c
commit 08b395214b
25 changed files with 364 additions and 160 deletions
+12
View File
@@ -4,6 +4,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:collection/collection.dart';
import '../models/tile_provider.dart';
import '../services/provider_tile_cache_manager.dart';
import '../dev_config.dart';
import '../keys.dart';
@@ -332,6 +333,17 @@ class SettingsState extends ChangeNotifier {
notifyListeners();
}
/// Clear all tile caches for a specific provider
Future<void> clearTileProviderCaches(String providerId) async {
final provider = _tileProviders.firstWhereOrNull((p) => p.id == providerId);
if (provider == null) return;
// Clear cache for each tile type in this provider
for (final tileType in provider.tileTypes) {
await ProviderTileCacheManager.deleteCache(providerId, tileType.id);
}
}
/// Set follow-me mode
Future<void> setFollowMeMode(FollowMeMode mode) async {
if (_followMeMode != mode) {
+2 -2
View File
@@ -253,12 +253,12 @@ class UploadQueueState extends ChangeNotifier {
}
// Add a node deletion to the upload queue
void addFromNodeDeletion(OsmNode node, {required UploadMode uploadMode}) {
void addFromNodeDeletion(OsmNode node, {required UploadMode uploadMode, String? changesetComment}) {
final upload = PendingUpload(
coord: node.coord,
direction: node.directionDeg.isNotEmpty ? node.directionDeg.first : 0, // Direction not used for deletions but required for API
profile: null, // No profile needed for deletions - just delete by node ID
changesetComment: 'Delete a surveillance node', // Default comment for deletions
changesetComment: changesetComment ?? 'Delete a surveillance node', // Use provided comment or default
uploadMode: uploadMode,
operation: UploadOperation.delete,
originalNodeId: node.id,