#328 update the default map center when picking a location
This commit is contained in:
parent
7c84f1a4a4
commit
2902239a70
2 changed files with 9 additions and 5 deletions
|
@ -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,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue