Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Setup: improvements#37264

Merged
sshane merged 187 commits into
masterfrom
new-setup
Mar 3, 2026
Merged

Setup: improvements#37264
sshane merged 187 commits into
masterfrom
new-setup

Conversation

@sshane

@sshane sshane commented Feb 19, 2026

Copy link
Copy Markdown
Collaborator
  • can get stuck sometimes where wifiui scroller is halfway offscreen when showing
  • wifiui scroller sometimes re-sorts on show after exiting while animating (resort networks, don't update buttons)
  • do onboarding
  • 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

@github-actions github-actions Bot added the ui label Feb 19, 2026
@github-actions

github-actions Bot commented Feb 19, 2026

Copy link
Copy Markdown
Contributor

UI Preview

mici: Videos are identical! View Diff Report
big: Videos are identical! View Diff Report

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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._render always renders self._terms, even when terms are already accepted (or after _on_terms_accepted pushes 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 in show_event() when _accepted_terms is true and _training_done is false.
  def _render(self, _):
    rl.draw_rectangle_rec(self._rect, rl.BLACK)
    self._terms.render(self._rect)

system/ui/mici_setup.py:354

  • NetworkSetupPageBase activates WifiManager in __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 a hide_event() (or similar lifecycle hook) to call self._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.

Comment thread system/ui/mici_setup.py
Comment thread selfdrive/ui/mici/layouts/onboarding.py
@sshane sshane merged commit 91b7752 into master Mar 3, 2026
10 of 11 checks passed
@sshane sshane deleted the new-setup branch March 3, 2026 09:06
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants