diff --git a/lib/connector/meshcore_connector.dart b/lib/connector/meshcore_connector.dart index 52f2a77..ad2a074 100644 --- a/lib/connector/meshcore_connector.dart +++ b/lib/connector/meshcore_connector.dart @@ -2060,7 +2060,7 @@ class MeshCoreConnector extends ChangeNotifier { _selfLatitude = readInt32LE(frame, 36) / 1000000.0; _selfLongitude = readInt32LE(frame, 40) / 1000000.0; - if (frame.length >= 47 && frame[47] == 0x00) { + if (frame.length >= 48 && frame[47] == 0x00) { sendFrame(buildSetOtherParamsFrame(0, 0, 0)); } @@ -3947,17 +3947,6 @@ class MeshCoreConnector extends ChangeNotifier { final existingIndex = _discoveredContacts.indexWhere( (c) => c.publicKeyHex == contact.publicKeyHex, ); - final existingContactsIndex = _contacts.indexWhere( - (c) => c.publicKeyHex == contact.publicKeyHex, - ); - - if (existingContactsIndex >= 0) { - if (existingIndex >= 0) { - removeDiscoveredContact(_discoveredContacts[existingIndex]); - unawaited(_persistDiscoveredContacts()); - } - return; - } // Update existing contact if (existingIndex >= 0) { @@ -3972,6 +3961,7 @@ class MeshCoreConnector extends ChangeNotifier { longitude: contact.longitude, lastSeen: contact.lastSeen, ); + notifyListeners(); return; } diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index 0d429f3..0423517 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -938,16 +938,15 @@ class _SettingsScreenState extends State { child: Text(l10n.common_cancel), ), TextButton( - onPressed: () async { - final frame = buildSetAutoAddConfigFrame( - autoAddChat: autoAddChat, - autoAddRepeater: autoAddRepeater, - autoAddRoomServer: autoAddRoomServer, - autoAddSensor: autoAddSensor, - overwriteOldest: overwriteOldest, + onPressed: () { + _sendSettings( + connector, + autoAddChat, + autoAddRepeater, + autoAddRoomServer, + autoAddSensor, + overwriteOldest, ); - await connector.sendFrame(frame); - await connector.sendFrame(buildGetAutoAddFlagsFrame()); Navigator.pop(context); }, child: Text(l10n.common_save), @@ -957,6 +956,25 @@ class _SettingsScreenState extends State { ), ); } + + void _sendSettings( + MeshCoreConnector connector, + autoAddChat, + autoAddRepeater, + autoAddRoomServer, + autoAddSensor, + overwriteOldest, + ) async { + final frame = buildSetAutoAddConfigFrame( + autoAddChat: autoAddChat, + autoAddRepeater: autoAddRepeater, + autoAddRoomServer: autoAddRoomServer, + autoAddSensor: autoAddSensor, + overwriteOldest: overwriteOldest, + ); + await connector.sendFrame(frame); + await connector.sendFrame(buildGetAutoAddFlagsFrame()); + } } class _RadioSettingsDialog extends StatefulWidget { diff --git a/lib/services/ble_debug_log_service.dart b/lib/services/ble_debug_log_service.dart index d923d6b..df2822b 100644 --- a/lib/services/ble_debug_log_service.dart +++ b/lib/services/ble_debug_log_service.dart @@ -172,8 +172,6 @@ class BleDebugLogService extends ChangeNotifier { return 'CMD_GET_CHANNEL'; case cmdSetChannel: return 'CMD_SET_CHANNEL'; - case cmdGetRadioSettings: - return 'CMD_GET_RADIO_SETTINGS'; case cmdSetCustomVar: return 'CMD_SET_CUSTOM_VAR'; case cmdSendTracePath: diff --git a/lib/widgets/app_bar.dart b/lib/widgets/app_bar.dart index 7324481..9f2494e 100644 --- a/lib/widgets/app_bar.dart +++ b/lib/widgets/app_bar.dart @@ -30,7 +30,7 @@ class AppBarTitle extends StatelessWidget { final availableWidth = constraints.hasBoundedWidth ? constraints.maxWidth : MediaQuery.sizeOf(context).width; - final compact = availableWidth < 240; + final compact = availableWidth < 170; final showSubtitle = !compact && connector.isConnected && selfName != null && subtitle; final showBattery = availableWidth >= 60;