mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-08-15 23:50:49 +02:00
Add other providers, max zoom per tile type
This commit is contained in:
@@ -153,6 +153,9 @@ class SettingsState extends ChangeNotifier {
|
||||
_tileProviders = providersList
|
||||
.map((json) => TileProvider.fromJson(json))
|
||||
.toList();
|
||||
|
||||
// Migration: Add any missing built-in providers
|
||||
await _addMissingBuiltinProviders(prefs);
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint('Error loading tile providers: $e');
|
||||
@@ -166,6 +169,25 @@ class SettingsState extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
/// Add any built-in providers that are missing from user's configuration
|
||||
Future<void> _addMissingBuiltinProviders(SharedPreferences prefs) async {
|
||||
final defaultProviders = DefaultTileProviders.createDefaults();
|
||||
final existingProviderIds = _tileProviders.map((p) => p.id).toSet();
|
||||
bool hasUpdates = false;
|
||||
|
||||
for (final defaultProvider in defaultProviders) {
|
||||
if (!existingProviderIds.contains(defaultProvider.id)) {
|
||||
_tileProviders.add(defaultProvider);
|
||||
hasUpdates = true;
|
||||
debugPrint('SettingsState: Added missing built-in provider: ${defaultProvider.name}');
|
||||
}
|
||||
}
|
||||
|
||||
if (hasUpdates) {
|
||||
await _saveTileProviders(prefs);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _saveTileProviders(SharedPreferences prefs) async {
|
||||
try {
|
||||
final providersJson = jsonEncode(
|
||||
|
||||
Reference in New Issue
Block a user