mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-16 04:22:09 +08:00
better toggle
This commit is contained in:
@@ -32,7 +32,8 @@ class MiciMainLayout(Scroller):
|
||||
self._home_layout = MiciHomeLayout()
|
||||
self._alerts_layout = MiciOffroadAlerts()
|
||||
self._settings_layout = SettingsLayout()
|
||||
self._car_onroad_layout = AugmentedRoadView(bookmark_callback=self._on_bookmark_clicked)
|
||||
self._car_onroad_layout = AugmentedRoadView(bookmark_callback=self._on_bookmark_clicked,
|
||||
radar_tracks_settings_callback=self._settings_layout.open_toggles)
|
||||
self._body_onroad_layout = BodyLayout()
|
||||
|
||||
# Initialize widget rects
|
||||
|
||||
@@ -19,9 +19,9 @@ class SettingsLayout(NavScroller):
|
||||
super().__init__()
|
||||
self._params = Params()
|
||||
|
||||
toggles_panel = TogglesLayoutMici()
|
||||
self._toggles_panel = TogglesLayoutMici()
|
||||
toggles_btn = SettingsBigButton("toggles", "", gui_app.texture("icons_mici/settings.png", 64, 64))
|
||||
toggles_btn.set_click_callback(lambda: gui_app.push_widget(toggles_panel))
|
||||
toggles_btn.set_click_callback(lambda: gui_app.push_widget(self._toggles_panel))
|
||||
|
||||
network_panel = NetworkLayoutMici()
|
||||
network_btn = SettingsBigButton("network", "", gui_app.texture("icons_mici/settings/network/wifi_strength_full.png", 76, 56))
|
||||
@@ -50,3 +50,8 @@ class SettingsLayout(NavScroller):
|
||||
])
|
||||
|
||||
self._font_medium = gui_app.font(FontWeight.MEDIUM)
|
||||
|
||||
def open_toggles(self) -> None:
|
||||
if not gui_app.widget_in_stack(self):
|
||||
gui_app.push_widget(self)
|
||||
gui_app.push_widget(self._toggles_panel)
|
||||
|
||||
@@ -134,9 +134,13 @@ class BookmarkIcon(Widget):
|
||||
|
||||
|
||||
class AugmentedRoadView(CameraView):
|
||||
def __init__(self, bookmark_callback=None, stream_type: VisionStreamType = VisionStreamType.VISION_STREAM_ROAD):
|
||||
def __init__(self, bookmark_callback=None, stream_type: VisionStreamType = VisionStreamType.VISION_STREAM_ROAD,
|
||||
radar_tracks_settings_callback=None):
|
||||
super().__init__("camerad", stream_type)
|
||||
self._bookmark_callback = bookmark_callback
|
||||
self._radar_tracks_settings_callback = radar_tracks_settings_callback
|
||||
self._radar_tracks_settings_prompt = False
|
||||
self._radar_status_rect = rl.Rectangle()
|
||||
self._set_placeholder_color(rl.BLACK)
|
||||
|
||||
self.device_camera: DeviceCameraConfig | None = None
|
||||
@@ -181,10 +185,16 @@ class AugmentedRoadView(CameraView):
|
||||
super()._update_state()
|
||||
|
||||
if ui_state.sm.updated["liveTracks"]:
|
||||
status = format_radar_tracks_onroad_columns(ui_state.sm["liveTracks"]) if ui_state.sm.valid["liveTracks"] else ("", "none")
|
||||
live_tracks = ui_state.sm["liveTracks"]
|
||||
self._radar_tracks_settings_prompt = bool(live_tracks.radarTracksAvailable and ui_state.hyundai_radar_mode != 2)
|
||||
if self._radar_tracks_settings_prompt:
|
||||
status = ("", "radar tracks detected")
|
||||
else:
|
||||
status = format_radar_tracks_onroad_columns(live_tracks) if ui_state.sm.valid["liveTracks"] else ("", "none")
|
||||
self._radar_ranges_label.set_text(status[0])
|
||||
self._radar_counts_label.set_text(status[1])
|
||||
elif not ui_state.sm.alive["liveTracks"]:
|
||||
self._radar_tracks_settings_prompt = False
|
||||
self._radar_ranges_label.set_text("")
|
||||
self._radar_counts_label.set_text("none")
|
||||
|
||||
@@ -197,6 +207,11 @@ class AugmentedRoadView(CameraView):
|
||||
self._offroad_label.set_text("start the car to\nuse sunnypilot")
|
||||
|
||||
def _handle_mouse_release(self, mouse_pos: MousePos):
|
||||
if (self._radar_tracks_settings_prompt and self._radar_tracks_settings_callback is not None and
|
||||
rl.check_collision_point_rec(mouse_pos, self._radar_status_rect)):
|
||||
self._radar_tracks_settings_callback()
|
||||
return
|
||||
|
||||
# Don't trigger click callback if bookmark was triggered
|
||||
if not self._bookmark_icon.interacting():
|
||||
super()._handle_mouse_release(mouse_pos)
|
||||
@@ -254,12 +269,13 @@ class AugmentedRoadView(CameraView):
|
||||
self._radar_ranges_label.get_content_height(max(radar_range_width, 1)) + 10,
|
||||
self._radar_counts_label.get_content_height(radar_count_width) + 10,
|
||||
)
|
||||
radar_status_rect = rl.Rectangle(
|
||||
self._radar_status_rect = rl.Rectangle(
|
||||
self._content_rect.x + self._content_rect.width - radar_status_width - 12,
|
||||
self._content_rect.y + 8,
|
||||
radar_status_width,
|
||||
radar_status_height,
|
||||
)
|
||||
radar_status_rect = self._radar_status_rect
|
||||
rl.draw_rectangle_rounded(radar_status_rect, 0.5, 8, rl.Color(0, 0, 0, 170))
|
||||
self._radar_ranges_label.render(rl.Rectangle(
|
||||
radar_status_rect.x + radar_horizontal_padding,
|
||||
|
||||
@@ -43,6 +43,7 @@ class UIStateSP:
|
||||
self.custom_interactive_timeout: int = 0
|
||||
self.developer_ui = None
|
||||
self.hide_v_ego_ui: bool = False
|
||||
self.hyundai_radar_mode: int = self.params.get("HyundaiRadar", return_default=True)
|
||||
self.onroad_brightness: int = 0
|
||||
self.onroad_brightness_timer: int = 0
|
||||
self.onroad_brightness_timer_param: int = 0
|
||||
@@ -151,6 +152,7 @@ class UIStateSP:
|
||||
self.custom_interactive_timeout = self.params.get("InteractivityTimeout", return_default=True)
|
||||
self.developer_ui = self.params.get("DevUIInfo")
|
||||
self.hide_v_ego_ui = self.params.get_bool("HideVEgoUI")
|
||||
self.hyundai_radar_mode = self.params.get("HyundaiRadar", return_default=True)
|
||||
self.onroad_brightness = int(float(self.params.get("OnroadScreenOffBrightness", return_default=True)))
|
||||
self.onroad_brightness_timer_param = self.params.get("OnroadScreenOffTimer", return_default=True)
|
||||
self.rainbow_path = self.params.get_bool("RainbowMode")
|
||||
|
||||
Reference in New Issue
Block a user