mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 03:03:57 +08:00
* 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>
23 lines
687 B
Python
23 lines
687 B
Python
from openpilot.common.api.comma_connect import CommaConnectApi
|
|
|
|
|
|
class Api:
|
|
def __init__(self, dongle_id):
|
|
self.service = CommaConnectApi(dongle_id)
|
|
|
|
def request(self, method, endpoint, **params):
|
|
return self.service.request(method, endpoint, **params)
|
|
|
|
def get(self, *args, **kwargs):
|
|
return self.service.get(*args, **kwargs)
|
|
|
|
def post(self, *args, **kwargs):
|
|
return self.service.post(*args, **kwargs)
|
|
|
|
def get_token(self, expiry_hours=1):
|
|
return self.service.get_token(expiry_hours)
|
|
|
|
|
|
def api_get(endpoint, method='GET', timeout=None, access_token=None, **params):
|
|
return CommaConnectApi(None).api_get(endpoint, method, timeout, access_token, **params)
|