#328 update the default map center when picking a location

This commit is contained in:
Thibault Deckers 2022-09-15 23:36:19 +02:00
parent 7c84f1a4a4
commit 2902239a70
2 changed files with 9 additions and 5 deletions

View file

@ -13,6 +13,7 @@ import 'package:aves/widgets/dialogs/entry_editors/edit_location_dialog.dart';
import 'package:aves/widgets/dialogs/entry_editors/edit_rating_dialog.dart';
import 'package:aves/widgets/dialogs/entry_editors/edit_tags_dialog.dart';
import 'package:aves/widgets/dialogs/entry_editors/remove_metadata_dialog.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:latlong2/latlong.dart';
@ -32,10 +33,12 @@ mixin EntryEditorMixin {
Future<LatLng?> selectLocation(BuildContext context, Set<AvesEntry> entries, CollectionLens? collection) async {
if (entries.isEmpty) return null;
final initialLocation = entries.firstWhereOrNull((entry) => entry.hasGps)?.latLng;
return showDialog<LatLng>(
context: context,
builder: (context) => EditEntryLocationDialog(
entry: entries.first,
initialLocation: initialLocation,
collection: collection,
),
);

View file

@ -1,4 +1,4 @@
import 'package:aves/model/entry.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_lens.dart';
import 'package:aves/theme/icons.dart';
import 'package:aves/utils/constants.dart';
@ -11,12 +11,12 @@ import 'package:intl/intl.dart';
import 'package:latlong2/latlong.dart';
class EditEntryLocationDialog extends StatefulWidget {
final AvesEntry entry;
final LatLng? initialLocation;
final CollectionLens? collection;
const EditEntryLocationDialog({
super.key,
required this.entry,
required this.initialLocation,
this.collection,
});
@ -37,7 +37,7 @@ class _EditEntryLocationDialogState extends State<EditEntryLocationDialog> {
super.initState();
_latitudeFocusNode.addListener(_onLatLngFocusChange);
_longitudeFocusNode.addListener(_onLatLngFocusChange);
WidgetsBinding.instance.addPostFrameCallback((_) => _setLocation(context, widget.entry.latLng));
WidgetsBinding.instance.addPostFrameCallback((_) => _setLocation(context, widget.initialLocation));
}
@override
@ -183,6 +183,7 @@ class _EditEntryLocationDialogState extends State<EditEntryLocationDialog> {
),
);
if (latLng != null) {
settings.mapDefaultCenter = latLng;
_setLocation(context, latLng);
}
}