refactor(companion): hoist screen entry into virtual UIScreen::onShow()

Replace the ad-hoc enter()/markClean() entry methods (which lived outside
the UIScreen interface and were invoked via casts from each gotoX) with a
virtual onShow() lifecycle hook called centrally by setCurrScreen().

This removes the "forgot to call enter() in a new navigator" footgun and
the unchecked cast smell: 12 navigators collapse to one-line
setCurrScreen(x) calls, and override enforces signature match. Two entries
that carry a parameter/variant keep an explicit typed call after
setCurrScreen(): RingtoneEditor::selectSlot(slot) and TrailScreen::showMapView().

Behaviour-preserving: only screens that previously had enter() get an
onShow() override; Splash/Home/QuickMsg/Diag keep no reset as before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MarekZegare4
2026-06-29 18:37:04 +02:00
co-authored by Claude Opus 4.8
parent bcca97a848
commit eedd47d1e1
15 changed files with 55 additions and 85 deletions
@@ -651,7 +651,7 @@ public:
}
void markClean() {
void onShow() override {
_dirty = false;
resetList();
_editor.freq.active = false;