showSettingsDialog method
void
showSettingsDialog()
Implementation
void showSettingsDialog() {
showDialog(
context: context,
builder: (_) => MapSettingsDialog(
currentSettings: mapSettings,
onSettingsChanged: (newSettings) {
final changes = computeSettingsChanges(
oldSettings: mapSettings,
newSettings: newSettings,
);
safeSetState(this, () {
mapSettings = newSettings;
if (changes.mapSourceChanged) {
tileProvider = createTileProvider();
adjustZoomForMapSource(
mapController: mapController,
mapSettings: newSettings,
);
}
});
// Handle encrypted places toggle.
if (changes.encryptedToggled && changes.encryptedEnabled) {
unawaited(
loadEncryptedPlaces(skipKeyVerification: true).catchError((
error,
stackTrace,
) {
debugPrint('Failed to load encrypted places: $error');
}),
);
} else if (changes.encryptedToggled && !changes.encryptedEnabled) {
safeSetState(this, () {
allPlaces = removeEncryptedPlaces(allPlaces: allPlaces);
});
}
},
),
);
}