diff --git a/lib/screens/path_trace_map.dart b/lib/screens/path_trace_map.dart index 5f6d559..0126299 100644 --- a/lib/screens/path_trace_map.dart +++ b/lib/screens/path_trace_map.dart @@ -166,6 +166,15 @@ class _PathTraceMapScreenState extends State { }); } + if (code == respCodeErr) { + _timeoutTimer?.cancel(); + if (!mounted) return; + setState(() { + _isLoading = false; + _failed2Loaded = true; + }); + } + // Check if it's a binary response if (frame.length > 8 && code == pushCodeTraceData && @@ -178,6 +187,12 @@ class _PathTraceMapScreenState extends State { } } } catch (e) { + _timeoutTimer?.cancel(); + if (!mounted) return; + setState(() { + _isLoading = false; + _failed2Loaded = true; + }); // Handle any parsing errors gracefully appLogger.error('Error parsing frame: $e', tag: 'PathTraceMapScreen'); } diff --git a/lib/widgets/snr_indicator.dart b/lib/widgets/snr_indicator.dart index ce467a0..1e28212 100644 --- a/lib/widgets/snr_indicator.dart +++ b/lib/widgets/snr_indicator.dart @@ -150,7 +150,7 @@ class _SNRIndicatorState extends State { context: context, builder: (context) => AlertDialog( title: Text(l10n.snrIndicator_nearByRepeaters), - content: Expanded( + content: SizedBox( child: Scrollbar( child: ListView.separated( padding: const EdgeInsets.symmetric(vertical: 4),