Conversation
Contributor
UI Previewmici: Videos are identical! View Diff Report |
This was referenced Feb 24, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refines the Mici setup/onboarding UX, primarily around WiFi setup behavior and onboarding flow, and introduces some supporting UI utilities/animations.
Changes:
- Refactors setup WiFi/connectivity screens to use the newer
Scroller/button components and adds “grow” animations for call-to-action buttons. - Reworks Mici onboarding (terms + training) into a nav-stack-driven flow, including a QR-code-based terms view.
- Adds small UI utilities and behavior tweaks (e.g.,
widget_in_stack, click-delay consistency, callback ordering on dismiss).
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| system/ui/widgets/nav_widget.py | Ensures only one of dismiss/back callbacks fires on swipe-dismiss. |
| system/ui/widgets/button.py | Adds click-delay to SmallButton for consistent pressed feedback. |
| system/ui/mici_updater.py | Switches updater WiFi flow to NetworkSetupPageBase / FailedPageBase. |
| system/ui/mici_setup.py | Major setup UI refactor: new button styles, new WiFi setup scroller, base vs nav variants. |
| system/ui/lib/application.py | Adds widget_in_stack() helper for safer stack checks. |
| selfdrive/ui/mici/widgets/button.py | Adds “grow” animation support and blocks touches during the animation. |
| selfdrive/ui/mici/tests/test_widget_leaks.py | Updates constructors for onboarding/training widgets to match new signatures. |
| selfdrive/ui/mici/layouts/settings/device.py | Adds “review terms/training” flows using new onboarding components. |
| selfdrive/ui/mici/layouts/onboarding.py | Rebuilds onboarding: scroller-based terms (QR code) + nav-stack training steps. |
| selfdrive/ui/mici/layouts/main.py | Uses widget_in_stack() to avoid popping while onboarding is anywhere in stack. |
| selfdrive/ui/installer/installer.cc | Changes “finishing install” drawing behavior (now only draws on tici). |
| selfdrive/assets/icons_mici/setup/* | Adds/updates setup button textures (continue/cancel/restore assets). |
Comments suppressed due to low confidence (2)
selfdrive/ui/mici/layouts/onboarding.py:405
OnboardingWindow._renderalways rendersself._terms, even when terms are already accepted (or after_on_terms_acceptedpushes the training guide). This means users who previously accepted terms but haven't completed training will still be shown the terms screen instead of starting at training. Restore a state-based render (terms vs training), or auto-push the training guide inshow_event()when_accepted_termsis true and_training_doneis false.
def _render(self, _):
rl.draw_rectangle_rec(self._rect, rl.BLACK)
self._terms.render(self._rect)
system/ui/mici_setup.py:354
NetworkSetupPageBaseactivatesWifiManagerin__init__(set_active(True)), but there’s no corresponding deactivation when the page is no longer used. Once the nav-stack tick leak is fixed, it’s still worth adding ahide_event()(or similar lifecycle hook) to callself._wifi_manager.set_active(False)so WiFi scanning/callbacks stop after leaving setup/update flows.
self._wifi_manager = WifiManager()
self._wifi_manager.set_active(True)
self._network_monitor = network_monitor
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Mar 5, 2026
FrogAi
pushed a commit
to FrogAi/FrogPilot
that referenced
this pull request
Apr 3, 2026
* pressed state for larger sliders * wifibutton * fix * clean up * some work * don't nee this now * stash * more * new pressed bigcircle * black * interp * just check position * clean up and fix slider reset * fix custom * no speed * stash * even chatter couldn't figure this one out * makes sense to combine together, less split mentality * clean that up * fix lag * match ui.py prio to eliminate lag on wifiui show event. separately, why is this slow? * night mode * delay scroll over * fix auto scrolling * stash * waiting looks disabled * clean up and don't reset sliders until user goes back * rm * fix * add termsheader back * fix callbacks * ctrl alt l * fix text spacing * clean up * stash * fix style * i want to go back * guard on exit * kinda useless stuff * Revert "kinda useless stuff" This reverts commit a4acbac. * Revert "guard on exit" This reverts commit 63ccfbf. * wide * setup pressed! * grow animation * 10s after initial * slow fast * start onboarding (terms) * rm duplicate page * add qr code * final grey * fix visual lag on first start * clean up dead code * dont exit from cancel * revert grey * clean up, REVIEW ME * Revert "clean up, REVIEW ME" This reverts commit c66fa60. * reboot slider * kb fix * Revert "kb fix" This reverts commit 8830394. * ./ goes to letters * Revert "./ goes to letters" This reverts commit 0d97442. * clean up * some more clean up * more * clean up * rename block * reset pending scroll so it can't use stale data in rare sequence * remove unused assets * clean up imports * fix updater * clean up * fix double reboot * demo time - reset to setup on reboot * let manager restart * Revert "demo time - reset to setup on reboot" This reverts commit 9468657. * url... and no grow animation on start button * one next button * grow instead of shake wifi button * 36 pt font size in setup * touch up onboarding a lil * Revert "rm cpp bz2 (commaai#37332)" This reverts commit f4a36f7. * more onboarding and clean up * clean up * wow what an amazing future clean up * back to software select * fix * copy * fix dm confirmation dialog not disabling widget underneath, all fixed with real nav stack in here * uploading * lint * add review terms to device w/ close button * todo * remove old Terms vertical scrolling classes * use new Scroller! * installer * tweak to match figma exactly * revert * fixup updater * demo day * demo day v2 * ... for percent while finishing setup * demo day v3 * demo day v4 * remove ... * demo day v6 -- "why does it do that!!" * demo day v7 -- no flash * hmm * demo day v7 * prebuilt * revert demo day * scroll after pop animation * back -> retry * stash fixes * damn, need back_callback * scroll over immediately if already in network setup * tweaks * going down is confusing * more * Revert "more" This reverts commit 29ce75b. * Revert "going down is confusing" This reverts commit 0cd2ae3. * dupl * nl * sort functions * more clean up from merge * move * more * dismiss to download (hack) * Revert "dismiss to download (hack)" This reverts commit 53c45ed. * onboarding work * set brightness and timeout in root onboarding only * clean up * type * keep 5m for settings preview * switch back to letters on . or / * reset first step scroller * custom software warning goes down network comes up and back cb fix * clean up * smaller qr * ReviewTermsPage just for device as NavWidget * clean up * installer: stay on 100% * reset has internet while in wifiui * try this * try this * see what error we get exactly see what error we get exactly * not final solution but see how good * rm * copy changes * reset on disconnect * for separate pr * Revert "reset on disconnect" This reverts commit 552372f. * revert this, too buggy * fix for updater * sort * fix test * minor cleanup * more leaks than this rn * onboarding clean up * clean up application * click delay to small button * clean up * reset more state * fix training guide not cleaning up driverview * Revert "fix training guide not cleaning up driverview" This reverts commit cac7c5f. * simpler fix :( * nice catch, if you go back to terms it will reset 300s timeout and brightness * duplicate show * unused
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
can show obtaining ip sometimes when it's really connected (ip call not fired immediately?)can be separate fix, not really a bug, just an improvement to call it more strategically