* Refactor sunnylink panel code for clarity and initialization fixes.
Replaced explicit pointer types with `auto` for cleaner code and added proper initialization for the `offroad` boolean member. Simplified toggle logic by consolidating description updates for enabling/disabling sunnylink. These changes improve code readability and maintainability.
* Add Sunnylink sponsor and GitHub pairing functionality
This update introduces a feature to manage sponsorship-based roles and GitHub account pairing for Sunnylink. It includes new sponsor popups, sponsor-specific widgets, QR code logic, and backend API integrations. Additionally, new models and services support sponsor tier management and user-role synchronization.
* Translation files
* Param keys
* Add setup functions for SunnyLink sponsor and pair buttons
Introduce `setup_settings_sunnylink_sponsor_button` and `setup_settings_sunnylink_pair_button` to handle specific SunnyLink UI interactions. These functions streamline button clicks for sponsor and pairing actions within SunnyLink settings.
* Add new SunnyLink test cases for sponsor and pair buttons
Added `settings_sunnylink_sponsor_button` and `settings_sunnylink_pair_button` to the UI test case dictionary. This extends the SunnyLink test coverage to include sponsor and pairing functionalities.
* No need to import sunnylink from here, and it causes just circular dependency
* Enhance SunnylinkPanel functionality in off-road settings
This commit enhances the functionality of the SunnylinkPanel in the off-road settings of the SunnyPilot user interface. A paramWatcher is added to the SunnylinkPanel to observe "SunnylinkEnabled" parameter changes. Update functionalities are enhanced to handle showing and hiding of components based on various circumstances, such as whether the system is 'on-road' or 'off-road', and whether Sunnylink is enabled or not. The stopSunnylink and startSunnylink functions were also added to start or stop processes accordingly when Sunnylink is enabled or disabled. Additionally, the ui.h file is updated to efficiently handle Sunnylink roles and device users.
* Refactor SunnylinkPanel initialization and handling.
Reorganized SunnylinkPanel to improve structure and clarity by separating sunnylink client initialization and list widget setup. Enabled automatic sunnylink startup when the feature is enabled. Added minor formatting fixes for label display consistency.
* Add missing include for <optional> in ui.h
Including <optional> ensures compatibility with standard C++ features and prevents potential compilation errors. This addition aligns with best practices for maintaining robust and clean code.
* Updated setup_settings_sunnylink_sponsor_button and setup_settings_sunnylink_pair_button function signatures
Added an optional 'scroll' parameter to the setup_settings_sunnylink_sponsor_button and setup_settings_sunnylink_pair_button functions in the test_ui module. The modifications were made to allow for more flexible function usage by potentially enabling scroll operations during the execution of these UI setup steps.
* Enable Sunnylink initialization on panel show event
Begin Sunnylink connection automatically when the panel is displayed, ensuring the feature is active if enabled. Additionally, update the sponsor button text formatting for more concise styling.
* Translations
* Added checks for new UI files in PRs
The git workflow script `ui_preview.yaml` has been modified. The script now checks if the master branch contains a file corresponding to a UI file present in the PR. If a UI file in the PR does not have a match on the master branch, it is marked as new. These enhancements improve the comparison of UI changes between the master and PR branches, particularly with the identification of new UI files.
* cleanup
* duh
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* api: set User-Agent on network requests
The format of the User-Agent header matches the format in `common/api/__init__.py`.
Closes#22954.
* Update selfdrive/ui/qt/util.cc
* fix parentheses
* refactor into function
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 140c7f430cf9372c3706db4af9f58654a3ee2d0f
* getting started
* downloading
* some more
* nice checkmark
* nice triangle
* fixup style
* wait for internet
* more responsive
* waiting for internet
old-commit-hash: ddd1342fc548a7a6cc1bdc007eb9d91d9336deb0
* add type to class hadwareXXX
* replace ifdefs with hardware layer
* continue
* continue
* new function get_driver_view_transform
* full path to hw.h
* fix build error setup.cc
* apply review
* fix typo
* fix deprecated error:replace deprecated fromPath with new
* fix build error
old-commit-hash: 757d2923d2bfcda620b252e21a348ac3f87f3a63
* CommaApi: use auth.py for request authentication when on PC
* whitespace
* only when replay
* nicer way to do this
* tabs
* use bool
* tabs
* tabs
* prefer this to just be state
* initialize with stdString
* tabs
* include order
* fix order + ifdef fix
* whitespace'
old-commit-hash: a337097b5ee515560e9f1a804b997753767d3c9a
* initial commit, works
* remove nui
* working again
* visionipc
* cleanup
* cleanup
* moving VisionIpcServer to Unlogger class
* works
* tab cleanup
* headless mode
* headless mode works
* working headless mode
* gitignore update
* small unlogger refactor
* refactor param in UIState
* works, very slow, hacks
* cleanup
* works
* cleanup
* cleanup
* unused
* works for whole route
* nicer
* a little nicer
* different threshold
* maintains 1 segment window
* works with public api
* comments
* networkTimer works
* cleanup
* unified HttpRequest
* tabs
* tabs
* comments'
* gitignore
* gitignore
* only on PC
* same line else
* no changes in home.cc
* scons
* update scons
* works
* revert mainc.c
* revert home
* else
* just api + problem with api send
* works
* include cleanup
* general json fail
* whitespace
* remove active
* adding request repeater
* removing comments
* tabs
* update comment
* cereal
* fix
* trailing new lines
* grammar
* if whitespace
* indentation
* Update selfdrive/ui/SConscript
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Update selfdrive/ui/qt/request_repeater.cc
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* works
* sort by dir
* no blockSignal
* replay is now QOBject
* cant take const char
* rename inner it
* get width and height from frame readeR
* resolve TODO
* seek in next pr
* spaces
* ui stuff
* fix CI
* remove comments
* no repalce
* trim segment fix
* remove seek from stream
* no cache key
* final changes'
* fix
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 19d962cdf37b80523deba6518057f2e860f65fee
* move variables into UIScene
* rebase master
* rebase master
* rebase master
* rebase master
* rebase master
* rebase master
* fix build error
* cleanup
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: dd603a89f642ea73d2c9b0def94d228adf9d52df
* kind of works now
* QR code is now on screen
* testing is needed
* works, waiting for server update
* reduce diff
* refactoring part1
* refactor part2
* refactor part3
* works on PC
* fix build, annoying bug though...
* git is annoying
* more classes, still crashes after a while
* better style
* clearer qr code
* less code and test new ssh key
* no more AA
* rename and collect garbage
* no pairing widget without the internet connection
* No network connection
* more logs
* refactor the network calls
* no more leaking
* works
* cleanup
* spaces
* works on device
* fix merge
* don't run if screen is off
* always initialized
* stats updating, not running without scrren
* formatting
* nicer QR code
* ensure the registration
* no qr code if no IMEI or no HWSerial
* all works
* refactor
* better networking
* all functionality seems to work
* small cleanup
* get serial once
* Small cleanup
* No internet text
* Don't crash if private key not found
* no network should say so
* new qr code every 30 minutes
* 20FPS sidebar
* more responsive networking and QR
* more logs
* no log spam
* fix merge
* no running onroad
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 10bd761cd6fb59f8113f88cc4dc764fbc4f5abf2