c3x toggle it

This commit is contained in:
Jason Wen
2026-02-13 21:07:18 -05:00
parent 6f91271ca7
commit 10bf1c4d2c
@@ -5,11 +5,52 @@ This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
from openpilot.selfdrive.ui.sunnypilot.layouts.settings.vehicle.brands.base import BrandSettings
from openpilot.selfdrive.ui.ui_state import ui_state
from openpilot.system.ui.lib.application import gui_app
from openpilot.system.ui.lib.multilang import tr, tr_noop
from openpilot.system.ui.widgets import DialogResult
from openpilot.system.ui.widgets.confirm_dialog import ConfirmDialog
from openpilot.system.ui.sunnypilot.widgets.list_view import toggle_item_sp
DESCRIPTIONS = {
'enforce_stock_longitudinal': tr_noop(
'sunnypilot will not take over control of gas and brakes. Factory Honda Nidec longitudinal control will be used.'
),
}
class HondaSettings(BrandSettings):
def __init__(self):
super().__init__()
self.enforce_stock_longitudinal = toggle_item_sp(
lambda: tr("Nidec: Enforce Factory Longitudinal Control"),
description=lambda: tr(DESCRIPTIONS["enforce_stock_longitudinal"]),
initial_state=ui_state.params.get_bool("HondaEnforceStockLongitudinal"),
callback=self._on_enable_enforce_stock_longitudinal,
enabled=lambda: not ui_state.engaged,
)
self.items = [self.enforce_stock_longitudinal, ]
def _on_enable_enforce_stock_longitudinal(self, state: bool):
if state:
def confirm_callback(result: int):
if result == DialogResult.CONFIRM:
ui_state.params.put_bool("HondaEnforceStockLongitudinal", True)
ui_state.params.put_bool("OnroadCycleRequested", True)
else:
self.enforce_stock_longitudinal.action_item.set_state(False)
content = (f"<h1>{self.enforce_stock_longitudinal.title}</h1><br>" +
f"<p>{self.enforce_stock_longitudinal.description}</p>")
dlg = ConfirmDialog(content, tr("Enable"), rich=True)
gui_app.set_modal_overlay(dlg, callback=confirm_callback)
else:
ui_state.params.put_bool("HondaEnforceStockLongitudinal", False)
ui_state.params.put_bool("OnroadCycleRequested", True)
def update_settings(self):
pass