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.
This commit is contained in:
Jakub
2026-08-31 20:28:32 +02:00
parent d012ad7ee9
commit 0b34eac41e
3 changed files with 7 additions and 2 deletions
@@ -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). |
@@ -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;
+1
View File
@@ -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.
---