Commit Graph

1488 Commits

Author SHA1 Message Date
Shane Smiskol 21b8189a45 ui: support asset flip (#37367)
* support asset flip

* clean up
2026-02-23 20:45:41 -08:00
Shane Smiskol bd3b7a1d87 Scroller: preserve original touch valid callback (#37363)
preserve
2026-02-23 20:20:44 -08:00
Shane Smiskol 8543afc78a Slider: add pressed state (#37365)
* sliders have pressed state

* more

* new and pressed setup sliders
2026-02-23 20:19:41 -08:00
Shane Smiskol 12f923445b Slider: call confirm callback after set state
in case confirm callback resets the state immediately
2026-02-23 20:14:06 -08:00
Shane Smiskol 0e127cf88b WifiManager: guard init wifi state (#37366)
guard init wifi state
2026-02-23 20:13:17 -08:00
Shane Smiskol 91930c2d0d UnifiedLabel: add set_line_height 2026-02-23 19:37:59 -08:00
Trey Moen 19459d2b2e feat(lpa): at client + list profiles (#37337)
* Reapply "feat(lpa): `at` client + list profiles (#37271)" (#37322)

This reverts commit ddf8abc14a.

* lpa: fall back to ModemManager D-Bus when serial port unavailable

On older devices, ModemManager still claims /dev/ttyUSB2, so the
direct serial open fails. Try serial first; if it can't be acquired,
transparently route AT commands through MM's D-Bus Command() interface.

Co-authored-by: Cursor <cursoragent@cursor.com>

* lpa: add serial/dbus transport labels to debug logs

Co-authored-by: Cursor <cursoragent@cursor.com>

* no

* lint

* here

* const

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 18:25:52 -08:00
Adeeb Shihadeh 76d084d877 switch to system compilers (GCC on Linux, Apple Clang on macOS) (#37355) 2026-02-23 16:34:42 -08:00
Shane Smiskol 8d0cb9c8cf Unified label fix scroll fade (#37346)
* disable forget for tethering

* nets

* put in wifiman

* batch

* revert

* clean up
2026-02-23 01:31:06 -08:00
Shane Smiskol 2ecdd2810c mici ui: disable forget on tethering and show full strength (#37344)
* disable forget for tethering

* nets

* put in wifiman

* batch

* Revert "batch"

This reverts commit 9af20c1c7513c22bf9283b2f02514373fa981f50.

* clean up

* more

* more
2026-02-23 01:22:59 -08:00
Adeeb Shihadeh f911493177 rm pyaudio (#37331)
* rm pyaudio

* those too
2026-02-22 19:30:24 -08:00
Adeeb Shihadeh 4bffe422e4 vendor capnproto and ffmpeg via dependencies repo (#37327) 2026-02-22 19:15:11 -08:00
Trey Moen ddf8abc14a Revert "feat(lpa): at client + list profiles (#37271)" (#37322)
This reverts commit 8bca2ca758.
2026-02-22 09:34:37 -08:00
Shane Smiskol 5f722d2c93 four: new wifi ui design (#37152)
* start

* start

* lil more

* add forget

* fix forget button scrolling

* push right a bit

* fix forget press

* add divider

* fix scroll panel

* better forget and overriding

* revert this

* check icon

* cursor merge conflict fix

* fix rounding and forget btn placement

* scroll indicator

* 65%

* calibrate

* try loading animation

* push to device

* top right

* bottom right

* no red

* top left

* bottom left

* down 2px

* WHY DOES NETWORK MANAGER KEEP CRASHING AHHH

* reduce round trip calls in update_networks

* clean up and combine getallaccesspoint and activeaccesspoint

* cmt

* animate big button over smoothly. super hacky, need to clean up

* animate

* remove old widgets and images

* remove status label, tune loading animation opac back

* connecting is a little buggy still

* add back missing network and don't pop

* some fixes

* "clean up"

* fix lag in animation

* fix adding saved connection to start

* remove saved network to start, divider

* animate up, over, and down

* revert for now

* remove fancy complex animation for now, sorry nick

* remove divider + clean up

* more clean up

* more clean up

* fix forget button press

* cmt

* tweak loading animation behavior

* new lock fix wifi

* rm old lock

* great catch by opus

* clean up

* debug

* fix touch events that are down -> up in one frame (why it only bugged on mici)

* clean up

* eager forgetting

* this SHOULD be full eager forget, more than i thought

* fix wifi slash positioning

* move forgotten networks after saved networks

* temp keep

* test on device

* fix

* see 65

* 5 best

* fix double render double brightness

* can click bottom right now

* disable touch while animating

* fix animation

* can scroll while animating, not tap

* not great yet

* clean up

* didn't work

* always update networks after activation

* stash

* move to update_state

* debug

* debug

* temp

* fix ip and metered flickering when updating at high freq (or rare race condition)

* fix

* if you give it less than 8 chars it never clears connecting

* lock no int

* better wrong password handling

* shake when wrong password

* nm set connecting when it connects on its own

* loading bottom right

* sort connecting first

* sort by unquantized to put strongest first

* clean up

* clean up nm

* clean up nm

* shorter

* fix crash

* 0.5s

* debug

* revert and try something else

* stash

* no

* rev

* use signals

* more

* not wrong password if ever connected after wrong

* similar to gnome shell, don't save connection that never successfully activated.

we do this by creating temporary memory connection with persist: volatile that deletes itself if failed, and then only write to disk when activated

* clean up

* cover all states

* clear if connecting too

* remove pritn

* might need this for CoxWifi

* whoops

* save last pass

* Revert "whoops"

This reverts commit 83a133955246ce32dcf119ededd8b01b3162a866.

* Revert "might need this for CoxWifi"

This reverts commit cddb8b35be152ed154462b188283f9d5a844583d.

* this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better

* Revert "this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better"

This reverts commit 740286c846556f32125a96bfe6ecf128300af0d8.

* race condition with volotile not removing conn fast enough/update networks not firing fast enough

* Revert "save last pass"

This reverts commit 7249a58a18b11487fd0370cee36e40a17f7ac521.

* revert some wifiman stuff to master

* not needed

* rm active ap

* remove old dead code

* do after

* always send forgotten callback so we can't be stuck in forgetting state forever

* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true

* fix from merge

* nice, we can remove some eager code now for treating is_saved as not saved after forgot since it's live

* more

* rm

* simplify passed in callbacks

* clean up

* need this one check back for wrong password to hide forget for a split second

* opus says this is simpler 🤔

* Revert "opus says this is simpler 🤔"

This reverts commit 71472e5b383d7f2083d95ba1188070f41ae14775.

* another attempt

* Revert "another attempt"

This reverts commit 31f30babe656f9cad24399bc2196bb6e7ab79bbd.

* fix from merge

* some lcean up

* fix

* fixes to make work with new animation

* clean up

* this works too

* simplify loading animation behavior for now, revert wifi scan time

* clean up

* temporary fix

* stash

* Revert "stash"

This reverts commit 7471dbdc452807b33b4868a98dd8565681b2e44d.

* stash

* Revert "stash"

This reverts commit e0e5e6e861734320ce5dea5626086784577cb334.

* this check was because is_connected could have been stale from Network as the source

* nm can show connected/connecting to network with 0 aps for a while if strength is low, move out of range under those states

* stash

* Revert "stash"

This reverts commit 5ec3b454d54392523947f6477f551657d3863a6d.

* todo

* todo

* order

* don't need temporary fix anymore

* cmt

* order

* unused i
2026-02-22 07:08:48 -08:00
Shane Smiskol 31ac5a216d WifiManager: fix NEED_AUTH for wrong network (#37320)
* stash

* test seemed to work

* simplify

* clean up

* move under

* Revert "move under"

This reverts commit ce940cffb32378cbe5a69edaf6fc9d9cec202e54.

* back

* fix
2026-02-22 05:49:27 -08:00
Shane Smiskol 1b262a5a52 Scroller: fix overlay 2026-02-22 03:55:13 -08:00
Shane Smiskol 517289f3a5 mici scroller: add move animation (#37319)
* already 90% of the way there and not 144 lines

* nice

* lift properly

* lift, wait, move, wait, drop!

* some clean up

* epic, he ran a simulation to turn opacity filter into pixels

* scroll independant move animation without layout!

* move into function

* clean up

* rm

* overlay behind moving item

* Revert "overlay behind moving item"

This reverts commit 598e22363eb66af6496fe5f1eea8e643d4c2adbb.

* simpler overlay under lifted item

* support multiple animations at once

* Revert "support multiple animations at once"

This reverts commit 3ce6c8281053ee4831ceb88cacf66c343fc7d7ff.

* clean up

* cmt

* clean up

* kinda works

* Revert "kinda works"

This reverts commit ff050c6afc058788b3189a0acc202ada17353504.

* clean up

clean up

* clear overlay

* diff report

* don't break more
2026-02-22 03:36:31 -08:00
Shane Smiskol 6fcd2187e1 scroller: items property 2026-02-21 23:33:47 -08:00
Shane Smiskol a3f40dbac3 ui: add Layout class (#37311)
* split nav widget out

* clean up

* clean up

* fix

* work

* small enough to not be function

* nah we want intflag

* clean up

* always runs

* more clean up

* prep for scroller

* opacity for settings

* clean up layout

* set enabled

* rm
2026-02-21 22:50:59 -08:00
Shane Smiskol f99dc2eab2 mici scroller: default no snapping (#37316)
* change default

* fix
2026-02-21 22:35:41 -08:00
Shane Smiskol cdcc2f6766 mici scroller: remove double pad args (#37315)
* remove double pad args

* fix
2026-02-21 22:31:05 -08:00
Shane Smiskol 1304f95978 mici ui: remove line separators (#37314)
remove
2026-02-21 22:26:07 -08:00
Shane Smiskol c4393277fb ui: draw debug rects (#37313)
* debug

* new
2026-02-21 20:56:51 -08:00
Shane Smiskol 7cd9ab27e6 ui: split out NavWidget (#37312)
* spliit

* fix

* fix imports
2026-02-21 20:37:45 -08:00
Adeeb Shihadeh 06298b28f1 ty: fix unused warnings 2026-02-21 10:28:14 -08:00
Shane Smiskol 30350f4207 ui: navigation stack (#37094)
* initial

* start to support nav stack in settings panels + fix some navwidget bugs

* add deprecation warning and move more to new nav stack

* fix overriding NavWidget enabled and do developer panel

* fix interactive timeout and do main

* more device, not done yet

* minor network fixes

* dcam dialog

* start onboarding

* fix onboarding

* do mici setup

* remove now useless CUSTOM_SOFTWARE

* support big ui with old modal overlay

* reset can be old modal overlay, but updater needs new since it uses wifiui

* flip name truthiness to inspire excitement

* all *should* work, but will do pass later

* clean up main

* clean up settiings

* clean up dialog and developer

* cleanup mici setup some

* rm one more

* fix keyboard

* revert

* might as well but clarify

* fix networkinfopage buttons

* lint

* nice clean up from cursor

* animate background fade with position

* fix device overlays

* cursor fix pt1

cursor fix pt2

* rm print

* capital

* temp fix from cursor for onboarding not freeing space after reviewing training guide

* fix home screen scroller snap not resetting

* stash

* nice gradient on top

* 40

* 20

* no gradient

* return unused returns and always show regulatory btn

* nice!

* clean up

* new_modal is always true!

* more clean up

* clean up

* big only renders top 1

* fixup setup and updater

* stash

* Revert "stash"

This reverts commit 3cfb226ccb51869ed1f7d630b5fdd6725ad094d5.

* fix mici keys coming in from top

* clean up

* fix mici dialogs like tici, pop first incase call back pushes

* clever way but not not

* Revert "clever way but not not"

This reverts commit f69d106df61262f049df20cc1a9064ca1e6feeb7.

* more setup

* mici keyboard: fix not disabling below

* cmt

* fix wifi callbacks not running in rare case

* clean up network

* clean up network

* clean up dialog

* pairing

* rm

* todo

* fix replay

* they push themselkves!

* clean up ui_state

* clean up application

* clean up

* stash

* Revert "stash"

This reverts commit 07d3f5f26c99ef891086b6fe03095d53a62b8631.

* typing

* lint
2026-02-20 19:00:27 -08:00
Adeeb Shihadeh 806655b052 CI: replace docker with op setup (#37282) 2026-02-20 15:48:09 -08:00
Adeeb Shihadeh b28ff40d4d insource parameterized (#37280)
* insource parameterized

* lil more

* fix
2026-02-20 14:59:36 -08:00
Trey Moen 8bca2ca758 feat(lpa): at client + list profiles (#37271)
* feat(lpa): implement list_profiles in TiciLPA

Add AT command serial interface, TLV parsing, and ES10x transport
to support listing eSIM profiles (SGP.22 v2.3). TiciLPA is a
singleton that maintains a persistent connection to the modem.

* feat(lpa): close TiciLPA serial connection on exit

Register atexit cleanup so the logical channel and serial port are
released when the process exits, even on crashes or early exits.

* feat(lpa): close stale logical channels on init to prevent timeouts

* trying to brick it

* Revert "trying to brick it"

This reverts commit 46a0467314479c92d2cf331280521a1263f6cc43.

* feat(lpa): remove ensure_capabilities check on init

Target devices are known to support the required AT commands,
so skip the capability probes and stale channel cleanup to
speed up initialization.

* feat(lpa): enable debug logging via DEBUG=1 env variable

* muuuch better

* revert

* cleanup

* constant
2026-02-20 10:26:50 -08:00
Shane Smiskol cefddf4b9b ui: add navigation stack for tici (#37275)
* initial

* start to support nav stack in settings panels + fix some navwidget bugs

* add deprecation warning and move more to new nav stack

* fix overriding NavWidget enabled and do developer panel

* fix interactive timeout and do main

* more device, not done yet

* minor network fixes

* dcam dialog

* start onboarding

* fix onboarding

* do mici setup

* remove now useless CUSTOM_SOFTWARE

* support big ui with old modal overlay

* reset can be old modal overlay, but updater needs new since it uses wifiui

* flip name truthiness to inspire excitement

* all *should* work, but will do pass later

* clean up main

* clean up settiings

* clean up dialog and developer

* cleanup mici setup some

* rm one more

* fix keyboard

* revert

* might as well but clarify

* fix networkinfopage buttons

* lint

* nice clean up from cursor

* animate background fade with position

* fix device overlays

* cursor fix pt1

cursor fix pt2

* rm print

* capital

* temp fix from cursor for onboarding not freeing space after reviewing training guide

* fix home screen scroller snap not resetting

* stash

* nice gradient on top

* 40

* 20

* no gradient

* return unused returns and always show regulatory btn

* nice!

* revert selfdrive/ui

* let's do tici first

* bring back ui

* not sure why __del__, SetupWidget was never deleted?

* device "done"

* network "done!!"

* toggles "done"

* software "done"

* developer "done"

* fix onboarding

* use new modal for debug windows

* and aug

* setup "done"

* clean up

* updater "done"

* reset "done"

* pop first before callbacks in case callbacks push

* fix cmt

* not needed

* remove two commented functions for mici

* clean up application

* typing

* static

* not sure what this means

* fix big

* more static

* actually great catch

* fix cmt
2026-02-20 02:43:11 -08:00
Shane Smiskol 6bd3cab8a8 edge shadows should use widget y 2026-02-19 22:52:21 -08:00
Shane Smiskol 6ecb1060be ui: normalize ssids for 3X (#37269)
* fix for tici

* clean up
2026-02-19 16:36:35 -08:00
Shane Smiskol 93977e2ee2 ui: fix side gradients (#37268)
fix
2026-02-19 16:35:51 -08:00
Trey Moen 69544c57fd refactor(esim): cleanup lpa (#37260)
cleanup lpa
2026-02-19 09:28:04 -08:00
Shane Smiskol a3f2452fa7 WifiManager: single source for known connections (#37262)
* temp

* rev

* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true

* fix

* Revert "reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true"

This reverts commit cf7044ee955777db16434ab81c520bbe798c9164.

* not anymore

* more clear

* safe guards

nl
2026-02-19 00:49:35 -08:00
Shane Smiskol c736d43cce Remove old TODO in WifiManager
hell no
2026-02-19 00:40:20 -08:00
Shane Smiskol a28cc71b8b WifiManager: always emit forgot callback (#37261)
* fixme

* fixme

* fixme
2026-02-19 00:12:49 -08:00
Shane Smiskol 612c518dd6 WifiManager: signal-driven connection status (#37258)
* signal driven wifi state

* copy exactly

* copy signal handler

* remove is_connected

* Revert "remove is_connected"

This reverts commit f2246a70f4a29e9f3405947ca43d9404578c9d2d.

* do 3 network

* missing reason

* do wifiui

* clean up mici updater

* rest

* or not connecting

* clean up is_connected

* clean up wifiui

* match wifiui state more exactly in network panel for wifi button

* update active connection info after activation (used to do in _update_networks)

* clean up prints

* more

* rm

* not needed

* clean up state machine a bit

* more

* more

* indent

* final clean up

* debug

* debug

* wait for ip?

* more

* revert

* just to see

* ensure we emit activated even if we fail to get conn path from dbus

* hmm

* fine

* back

* back

* Revert "back"

This reverts commit 6464abe243c2a3bbf62b8f9a109b72ec3ddb3817.

* debug flickering on forget then connect to another. commit before this is good

* fix rare flicker when forgetting network and immediately connecting to
another

* clean up

* clean up router stuff now

* ugh wtf

* stash -- wtf

* Revert "stash -- wtf"

This reverts commit 756a92a9c0530a16917303424e26447f258f17e4.

* Revert "fix rare flicker when forgetting network and immediately connecting to"

This reverts commit 90c5fc14551726765ab2524e7866ee8b3c5dee7c.

* remove debug

* fix

* add issues

* add flow

* match previous behavior

* it doesn't fix the flikcer

* more atomic

* Revert "more atomic"

This reverts commit ead87c5a7a4030719b64138c12b9154ec82e73d9.

* last test!

last test!

* really the race is here?

* atomic wifi_state replace

* not slow

* clean up
2026-02-18 22:42:05 -08:00
Shane Smiskol 488d84c664 mici updater: clean up unused signal strength (#37259)
clean up
2026-02-18 16:40:09 -08:00
David b6a0c89dc5 ui replay: record lossless to fix big replay diff (#37237)
* add RECORD_LOSSLESS and enable for replays

* use RECORD_QUALITY instead

* comment

* clarify comment

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* clarify comment

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-18 15:21:17 -08:00
Shane Smiskol c6db0cd4b6 WifiManager: fix all networks showing as connected when no active connection (#37252)
* WifiManager: fix all networks showing as connected when no active connection

When there's no active WiFi connection, _get_active_wifi_connection()
returns None. This caused `self._connections.get(ssid) == None` to be
True for all unsaved networks, marking them all as connected.

Co-authored-by: Cursor <cursoragent@cursor.com>

* ltl

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 05:52:59 -08:00
Nick 489afc3842 four ui: edge shadows (#37239)
* ui: add edge shadow effect to horizontal scrollers in settings

Adds a black gradient falloff shadow (20x240, 100%→0% opacity) on the
left and right edges of horizontal Scroller panels. Enabled via an
opt-in `edge_shadows` parameter on Scroller for easy per-screen control.

Enabled on: settings menu, toggles, network, device, developer.
Not enabled on: home screen carousel, vertical scrollers, setup screens.

Co-authored-by: Cursor <cursoragent@cursor.com>

* ui: reduce edge shadow opacity to 80%

Co-authored-by: Cursor <cursoragent@cursor.com>

* what on earth is this

* some lines are ok

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
2026-02-18 01:34:57 -08:00
Shane Smiskol b5f86446d4 WifiManager: check AddConnection was successful (#37250)
check addconnect
2026-02-18 01:19:31 -08:00
Shane Smiskol 62b5fd54e6 WifiUi: sort by real strength (#37249)
sort by real strength
2026-02-18 01:18:06 -08:00
Shane Smiskol edafe139a4 WifiManager: set connecting status if NM auto connects (#37247)
* set connecting if nm auto connects

* good catch
2026-02-18 01:14:40 -08:00
Shane Smiskol 966bb6cc54 WifiUi: update wifi button in loop (#37246)
* move to update_state

* move back
2026-02-17 22:41:51 -08:00
Shane Smiskol 887ea25b6d WifiManager: fix is_connected flicker while roaming on low strength networks (#37243)
* temp

* clean up

* debug

* clean up

* fix

* cmt

* clean up
2026-02-17 21:49:50 -08:00
Shane Smiskol 735c2fb48e WifiManager: active WiFi connection helper (#37244)
* short circuit

* rename

* move some usages over

* clean up

* cmt
2026-02-17 21:24:38 -08:00
Shane Smiskol 028f5ca1f4 WifiUi: fix flickering IP and network metered (#37242)
fix flickering ip and network metered
2026-02-17 19:52:37 -08:00
Shane Smiskol fd34659dc3 NetworkManager: add more device states (#37235)
* safe

* missing states

* add enum for nmdevicestatereason

* rm for now

* fix links
2026-02-17 16:25:44 -08:00