use crate::navigation::menu_item; use crate::navigation::state::ScreenItem; use crate::{display::primary_lcd::PrimaryLcdDisplay, navigation::inputs::Inputs}; use embedded_graphics::pixelcolor::Rgb565; use embedded_graphics::prelude::RgbColor; use embedded_graphics_core::draw_target::DrawTarget; pub const MAX_SELECTED: i8 = 2; #[derive(Debug, Clone)] pub struct SettingsMenu { pub selected: i32, } impl super::navigation::Navigable for SettingsMenu { fn display( &self, display: &mut PrimaryLcdDisplay<'static>, ) -> impl core::future::Future + Send { display.clear(Rgb565::BLACK).unwrap(); menu_item::show(display, "System Inforation", 0, self.selected); menu_item::show(display, "Wifi Information", 1, self.selected); core::future::ready(()) } fn handle_input( &self, input: super::navigation::Action, ) -> impl core::future::Future + Send { async move { ScreenItem::Settings(SettingsMenu { selected: 0 }) } } }