feat: enhance location update feedback and improve message retry error handling

This commit is contained in:
zjs81 2026-03-14 09:54:50 -07:00
parent 91608ff09e
commit fa4da979af
2 changed files with 13 additions and 3 deletions

View file

@ -1514,15 +1514,16 @@ class _MapScreenState extends State<MapScreen> {
title: Text(context.l10n.map_setAsMyLocation),
onTap: () async {
final messenger = ScaffoldMessenger.of(context);
final message = context.l10n.settings_locationUpdated;
final successMsg = context.l10n.settings_locationUpdated;
Navigator.pop(sheetContext);
if (!connector.isConnected) return;
await connector.setNodeLocation(
lat: position.latitude,
lon: position.longitude,
);
await connector.refreshDeviceInfo();
if (!mounted) return;
messenger.showSnackBar(SnackBar(content: Text(message)));
messenger.showSnackBar(SnackBar(content: Text(successMsg)));
},
),
ListTile(

View file

@ -184,7 +184,16 @@ class MessageRetryService extends ChangeNotifier {
final messageId = queue.removeAt(0);
if (_pendingMessages.containsKey(messageId)) {
_activeMessages.add(messageId);
_attemptSend(messageId);
_attemptSend(messageId).catchError((e) {
debugPrint('_attemptSend threw for $messageId: $e');
final msg = _pendingMessages[messageId];
if (msg != null) {
final failed = msg.copyWith(status: MessageStatus.failed);
_pendingMessages[messageId] = failed;
_updateMessageCallback?.call(failed);
}
_onMessageResolved(messageId, contactKey);
});
return;
}
// Message was cancelled/cleaned up while queued try next