Skip to content

Commit ce4e538

Browse files
committed
Bug fixes:
- [#98](MeshMapper/MeshMapper_Project#98) - The heard repeaters panel now scrolls and dynamically expands to accommodate larger lists of heard repeaters - [#95](MeshMapper/MeshMapper_Project#95) - Fixed the IATA popup panel being hidden behind the Android navigation bar - Fixed a bug where a stale BLE device name was used instead of the current one
1 parent bbd723b commit ce4e538

File tree

4 files changed

+428
-391
lines changed

4 files changed

+428
-391
lines changed

lib/providers/app_state_provider.dart

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -708,8 +708,19 @@ class AppStateProvider extends ChangeNotifier with WidgetsBindingObserver {
708708
).listen(
709709
(device) {
710710
if (!_discoveredDevices.any((d) => d.id == device.id)) {
711-
_discoveredDevices.add(device);
712-
selectedDevice = device;
711+
// Prefer remembered device name (from SelfInfo) over BLE cache
712+
var enrichedDevice = device;
713+
if (_rememberedDevice != null && device.id == _rememberedDevice!.id &&
714+
device.name != _rememberedDevice!.name) {
715+
enrichedDevice = DiscoveredDevice(
716+
id: device.id,
717+
name: _rememberedDevice!.name,
718+
rssi: device.rssi,
719+
);
720+
debugLog('[SCAN] Using remembered name "${_rememberedDevice!.name}" instead of BLE name "${device.name}"');
721+
}
722+
_discoveredDevices.add(enrichedDevice);
723+
selectedDevice = enrichedDevice;
713724
notifyListeners();
714725
}
715726
},
@@ -1311,6 +1322,16 @@ class AppStateProvider extends ChangeNotifier with WidgetsBindingObserver {
13111322
if (selfInfoName != null && selfInfoName.isNotEmpty) {
13121323
_displayDeviceName = selfInfoName;
13131324
debugLog('[APP] Display name set from SelfInfo: "$selfInfoName"');
1325+
1326+
// Update remembered device with SelfInfo name
1327+
// BLE advertisement name may be stale after device rename
1328+
if (_rememberedDevice != null && _rememberedDevice!.id == device.id) {
1329+
final updatedName = 'MeshCore-$selfInfoName';
1330+
if (_rememberedDevice!.name != updatedName) {
1331+
await _saveRememberedDevice(DiscoveredDevice(id: device.id, name: updatedName));
1332+
debugLog('[APP] Updated remembered device name from SelfInfo: $updatedName');
1333+
}
1334+
}
13141335
}
13151336

13161337
// Restore per-device antenna preference if previously saved

lib/screens/home_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class _HomeScreenState extends State<HomeScreen> {
230230
borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
231231
),
232232
builder: (context) => Padding(
233-
padding: const EdgeInsets.all(20),
233+
padding: EdgeInsets.fromLTRB(20, 20, 20, 20 + MediaQuery.of(context).viewPadding.bottom),
234234
child: Column(
235235
mainAxisSize: MainAxisSize.min,
236236
children: [

0 commit comments

Comments
 (0)