From 0b34eac41eb5f13b60ce1fc291feb1d428222b67 Mon Sep 17 00:00:00 2001 From: Jakub <106778416+MarekZegare4@users.noreply.github.com> Date: Mon, 31 Aug 2026 20:28:32 +0200 Subject: [PATCH] fix(ui): Tools > Repeater shows its settings before the switch is on Network mode, the dedicated profile and the flood filters were only built into the row list once client_repeat was already ON, so setting up a repeater meant enabling it blind first. Every other on/off tool in ui-new (Bot, Live Share, Locator) already keeps its settings visible while off; Repeater now matches. --- docs/solo_features/tools_screen/tools_screen.md | 2 +- examples/companion_radio/ui-new/RepeaterScreen.h | 6 +++++- release-notes.md | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/solo_features/tools_screen/tools_screen.md b/docs/solo_features/tools_screen/tools_screen.md index 6e384b20..49750697 100644 --- a/docs/solo_features/tools_screen/tools_screen.md +++ b/docs/solo_features/tools_screen/tools_screen.md @@ -532,7 +532,7 @@ Navigate with **UP/DOWN**; change a value with **LEFT/RIGHT** (or **Enter** for | Setting | Options | Notes | | -------------- | --------------- | -------------------------------------------------------------------------------------------------------------- | -| Repeater | ON / OFF | Master switch. The options below appear only while it is ON. | +| Repeater | ON / OFF | Master switch. The options below are always visible, so the profile and filters can be set up before switching it on. | | Network | Current / Custom | **Custom** _(default)_: enabling the repeater switches to a dedicated profile (below), disabling restores the companion's settings. A never-configured device seeds Custom from your own network's band (433/868/915 MHz region), not a flat default, so it can't land outside what's legal for your region. **Current**: relay on the companion's own frequency — opt-in, not the community norm. | | Preset | named presets | _(Custom only)_ **Enter** picks a community/saved preset for the repeater profile. | | Freq | chip range | _(Custom only)_ **Enter** opens the digit-by-digit editor (chip-validated bounds). | diff --git a/examples/companion_radio/ui-new/RepeaterScreen.h b/examples/companion_radio/ui-new/RepeaterScreen.h index 84cb9705..407a5e71 100644 --- a/examples/companion_radio/ui-new/RepeaterScreen.h +++ b/examples/companion_radio/ui-new/RepeaterScreen.h @@ -50,10 +50,14 @@ class RepeaterScreen : public UIScreen { return { &p->repeater_freq, &p->repeater_bw, &p->repeater_sf, &p->repeater_cr }; } + // Shown regardless of the Repeater ON/OFF row itself -- these are plain + // NodePrefs settings, no different from Bot's per-target rows or Live + // Share's move/gap/heartbeat, so they stay configurable (and visible) while + // off rather than forcing an enable/configure/maybe-disable-again dance. void buildItems(NodePrefs* p) { _item_count = 0; _items[_item_count++] = IT_REPEATER; - if (p && p->client_repeat) { + if (p) { _items[_item_count++] = IT_NETWORK; if (p->repeater_use_profile) { _items[_item_count++] = IT_RPRESET; diff --git a/release-notes.md b/release-notes.md index 332484ba..512aeb02 100644 --- a/release-notes.md +++ b/release-notes.md @@ -22,6 +22,7 @@ - **Tools › Locator's target picker listed the people pinned to the Favourites Dial as its top tier**, which stopped making sense once pinning and favouriting became separate things — pinning puts something on a home page, and has nothing to say about who you'd geofence. The picker now leads with your **favourites** instead (still offered before they have a known position, so you can arm ahead of time); everyone else with a resolvable position follows, as before. - **Hold Enter no longer doubles as a second Back key.** On Tools, Locator, Live Share, Repeater, Remote Bot, Auto-Advert, GPIO, Compass, the Dashboard config and the Messages navigate view it quietly meant "go back", while on other screens the same gesture opens a context menu — so the same long press did two unrelated things depending on where you were. It now only ever opens a menu (or does nothing where there is none), and Back is the single way back. This also applies inside an open popup, which Hold Enter used to dismiss — and, last of all, inside the on-screen keyboard: Hold Enter on Space, OK/Done or the `{}` placeholder cell used to close the keyboard exactly like Cancel; it's now a no-op there too, alongside its real jobs on Shift (caps-lock) and Backspace (clear field) and its accent popup on a Latin letter. - **Deleting a channel, deleting a saved radio preset, Trail's "Reset trail", and Diagnostics' "Reset counters" all fired immediately on a single Enter, with no way back.** Deleting a contact already asks first and defaults to Cancel; these four didn't, and Reset trail was the worst of them — it wipes the entire recorded GPS trail with no undo short of a prior manual Save, more destructive than the GPS-off prompt already sitting one menu over in the same screen. All four now confirm the same way contact-delete does. +- **Tools › Repeater hid its Network mode, profile and every flood filter until the Repeater switch itself was turned ON**, so setting one up meant enabling it first, configuring blind, and only then seeing what you'd set — every other on/off tool (Bot, Live Share, Locator) already leaves its settings visible and editable while off. Repeater now does too. - **The one alert after a successful advert or message send didn't match the rest of the app's toasts.** `"Advert sent!"` / `"Advert failed.."` and `"Sent!"` were the only alerts anywhere with trailing punctuation; every other confirmation (`"Preset saved"`, `"Contact added"`, `"Target set"`, …) is bare. Also, unpinning something from the Favourites Dial reported which slot it came out of on some screens but not others — pinning always said so, unpinning only did from the Messages screens. Both now match the rest. ---