fix: Remove GPS interval option

This commit is contained in:
Janez T
2026-04-08 18:41:58 +02:00
parent b863cda139
commit e6cd59e96f

View File

@@ -26,6 +26,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
static const Duration _bulkDeleteBatchDelay = Duration(milliseconds: 700); static const Duration _bulkDeleteBatchDelay = Duration(milliseconds: 700);
static const Duration _bulkDeleteFinalSyncDelay = Duration(milliseconds: 900); static const Duration _bulkDeleteFinalSyncDelay = Duration(milliseconds: 900);
static const int _autoAddFilterModeFlag = 1; static const int _autoAddFilterModeFlag = 1;
static const int _fixedHardwareGpsIntervalSeconds = 5;
static const List<_RadioPreset> _radioPresets = [ static const List<_RadioPreset> _radioPresets = [
_RadioPreset( _RadioPreset(
id: 'australia', id: 'australia',
@@ -178,7 +179,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
late TextEditingController _lonController; late TextEditingController _lonController;
late TextEditingController _freqController; late TextEditingController _freqController;
late TextEditingController _txPowerController; late TextEditingController _txPowerController;
int? _gpsIntervalSeconds;
late TextEditingController _autoAddMaxHopsController; late TextEditingController _autoAddMaxHopsController;
late final ConnectionProvider _connectionProvider; late final ConnectionProvider _connectionProvider;
@@ -276,7 +276,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
_txPowerController = TextEditingController( _txPowerController = TextEditingController(
text: deviceInfo.txPower?.toString() ?? '20', text: deviceInfo.txPower?.toString() ?? '20',
); );
// _gpsIntervalSeconds loaded via _loadGpsMode()
_autoAddMaxHopsController = TextEditingController( _autoAddMaxHopsController = TextEditingController(
text: (deviceInfo.autoAddMaxHops ?? 0).toString(), text: (deviceInfo.autoAddMaxHops ?? 0).toString(),
); );
@@ -345,7 +344,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
_lonController.dispose(); _lonController.dispose();
_freqController.dispose(); _freqController.dispose();
_txPowerController.dispose(); _txPowerController.dispose();
// _gpsIntervalSeconds is plain state, no dispose needed
_autoAddMaxHopsController.dispose(); _autoAddMaxHopsController.dispose();
_gpsStatsTicker?.cancel(); _gpsStatsTicker?.cancel();
_gpsRefreshTimer?.cancel(); _gpsRefreshTimer?.cancel();
@@ -603,13 +601,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
await connectionProvider.setAdvertName(_nameController.text); await connectionProvider.setAdvertName(_nameController.text);
} }
if (_gpsIntervalSeconds != null) {
await connectionProvider.setCustomVar(
'gps_interval',
_gpsIntervalSeconds.toString(),
);
}
// Save stored coordinates only when the firmware advert policy uses prefs. // Save stored coordinates only when the firmware advert policy uses prefs.
if (_advertLocationPolicy == 2) { if (_advertLocationPolicy == 2) {
// Parse and validate coordinates // Parse and validate coordinates
@@ -816,7 +807,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
final vars = await _connectionProvider.getCustomVars(); final vars = await _connectionProvider.getCustomVars();
if (!mounted) return; if (!mounted) return;
final gpsValue = vars['gps']; final gpsValue = vars['gps'];
final gpsIntervalValue = vars['gps_interval'];
final gpsFixValue = vars['gps_fix']; final gpsFixValue = vars['gps_fix'];
final gpsSatsValue = vars['gps_sats']; final gpsSatsValue = vars['gps_sats'];
final gpsLatValue = vars['gps_lat_e6']; final gpsLatValue = vars['gps_lat_e6'];
@@ -826,8 +816,6 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
setState(() { setState(() {
_gpsEnabled = gpsValue != null ? gpsValue == '1' : null; _gpsEnabled = gpsValue != null ? gpsValue == '1' : null;
_buzzerEnabled = buzzerValue != null ? buzzerValue == '1' : null; _buzzerEnabled = buzzerValue != null ? buzzerValue == '1' : null;
_gpsIntervalSeconds = int.tryParse(gpsIntervalValue ?? '') ??
_gpsIntervalSeconds;
_gpsHasFix = gpsFixValue != null ? gpsFixValue == '1' : null; _gpsHasFix = gpsFixValue != null ? gpsFixValue == '1' : null;
_gpsSatelliteCount = int.tryParse(gpsSatsValue ?? ''); _gpsSatelliteCount = int.tryParse(gpsSatsValue ?? '');
_gpsLatE6 = int.tryParse(gpsLatValue ?? ''); _gpsLatE6 = int.tryParse(gpsLatValue ?? '');
@@ -1628,40 +1616,31 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
), ),
], ],
const SizedBox(height: 10), const SizedBox(height: 10),
DropdownButtonFormField<int?>( Container(
key: ValueKey('gps-interval-$_gpsIntervalSeconds'), padding: const EdgeInsets.all(10),
initialValue: _gpsIntervalSeconds, decoration: BoxDecoration(
decoration: InputDecoration( color: colorScheme.surfaceContainerLow,
labelText: 'GPS interval', borderRadius: BorderRadius.circular(14),
border: OutlineInputBorder( border: Border.all(color: colorScheme.outlineVariant),
borderRadius: BorderRadius.circular(14), ),
), child: Row(
filled: true, children: [
isDense: true, Icon(
fillColor: colorScheme.surfaceContainerLowest, Icons.timer_outlined,
size: 18,
color: colorScheme.primary,
),
const SizedBox(width: 8),
Expanded(
child: Text(
'GPS polling is fixed at $_fixedHardwareGpsIntervalSeconds seconds on companion radios.',
style: theme.textTheme.bodyMedium?.copyWith(
color: colorScheme.onSurfaceVariant,
),
),
),
],
), ),
isExpanded: true,
items: [
DropdownMenuItem(value: null, child: Text(AppLocalizations.of(context)!.notSet)),
DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.offZeroSeconds)),
DropdownMenuItem(value: 5, child: Text(AppLocalizations.of(context)!.fiveSeconds)),
DropdownMenuItem(value: 10, child: Text(AppLocalizations.of(context)!.tenSeconds)),
DropdownMenuItem(value: 15, child: Text(AppLocalizations.of(context)!.fifteenSeconds)),
DropdownMenuItem(value: 30, child: Text(AppLocalizations.of(context)!.thirtySeconds)),
DropdownMenuItem(value: 60, child: Text(AppLocalizations.of(context)!.oneMinute)),
DropdownMenuItem(value: 120, child: Text(AppLocalizations.of(context)!.twoMinutes)),
DropdownMenuItem(value: 300, child: Text(AppLocalizations.of(context)!.fiveMinutes)),
DropdownMenuItem(value: 600, child: Text(AppLocalizations.of(context)!.tenMinutes)),
DropdownMenuItem(value: 900, child: Text(AppLocalizations.of(context)!.fifteenMinutes)),
DropdownMenuItem(value: 1800, child: Text(AppLocalizations.of(context)!.thirtyMinutes)),
DropdownMenuItem(value: 3600, child: Text(AppLocalizations.of(context)!.oneHour)),
],
onChanged: (value) {
setState(() {
_gpsIntervalSeconds = value;
_markPublicInfoDirty();
});
},
), ),
if (_advertLocationPolicy == 2) ...[ if (_advertLocationPolicy == 2) ...[
const SizedBox(height: 10), const SizedBox(height: 10),