From 319123ca6ee5c91a2df3869ca7020582445a4d6e Mon Sep 17 00:00:00 2001 From: Strycher Date: Tue, 23 Jun 2026 20:16:26 -0400 Subject: [PATCH] feat(#90): friendly N-byte path-hash labels in the repeater settings dropdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repeater "Path hash mode" dropdown showed raw mode numbers (0/1/2). Match the companion device's selector (settings_screen.dart _PathHashSizeTile) so the options are self-describing: "1-byte · max 64 hops" / "2-byte · max 32 hops" / "3-byte · max 21 hops". Underlying value (mode 0/1/2 = 1/2/3-byte) and the `set path.hash.mode N` wire command are unchanged — labels only. Co-Authored-By: Claude Opus 4.8 --- lib/screens/repeater_settings_screen.dart | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/screens/repeater_settings_screen.dart b/lib/screens/repeater_settings_screen.dart index 9ffd1b3..7072395 100644 --- a/lib/screens/repeater_settings_screen.dart +++ b/lib/screens/repeater_settings_screen.dart @@ -1957,10 +1957,22 @@ class _RepeaterSettingsScreenState extends State { helperMaxLines: 5, border: const OutlineInputBorder(), ), + // Friendly labels matching the companion's _PathHashSizeTile + // (settings_screen.dart): mode N = (N+1)-byte, with the hop + // ceiling from the firmware path-hash spec (#90). items: const [ - DropdownMenuItem(value: 0, child: Text('0')), - DropdownMenuItem(value: 1, child: Text('1')), - DropdownMenuItem(value: 2, child: Text('2')), + DropdownMenuItem( + value: 0, + child: Text('1-byte · max 64 hops'), + ), + DropdownMenuItem( + value: 1, + child: Text('2-byte · max 32 hops'), + ), + DropdownMenuItem( + value: 2, + child: Text('3-byte · max 21 hops'), + ), ], onChanged: (v) { if (v != null) {