display views: return error instead of unwrapping

This commit was merged in pull request #49.
This commit is contained in:
2026-08-29 21:09:09 +00:00
parent ef10eec216
commit 153acffb86
9 changed files with 114 additions and 40 deletions
+7 -4
View File
@@ -1,3 +1,4 @@
use crate::drivers::primary_lcd::PrimaryDisplayError;
use crate::navigation::inputs::ButtonAction;
use crate::navigation::navigation::CARD_DATA;
use crate::navigation::navigation::NewState;
@@ -44,13 +45,15 @@ impl Navigable for ScanMenu {
async move {
let display = &mut outputs.primary_display;
let style = MonoTextStyle::new(&FONT_10X20, Rgb565::WHITE);
display.clear(Rgb565::BLACK).unwrap();
display
.clear(Rgb565::BLACK)
.map_err(PrimaryDisplayError::from)?;
let display_area = display.bounding_box();
Text::new("Scanning...", Point::new(20, 30), style)
.draw(display)
.unwrap();
.map_err(PrimaryDisplayError::from)?;
// Create styles used by the drawing operations.
let arc_stroke = PrimitiveStyleBuilder::new()
@@ -80,13 +83,13 @@ impl Navigable for ScanMenu {
)
.into_styled(arc_stroke)
.draw(display)
.unwrap();
.map_err(PrimaryDisplayError::from)?;
// Draw centered text.
let text = format!("{:.2}%", 100. * (self.progress as f32) / 255.);
Text::with_text_style(&text, display_area.center(), character_style, text_style)
.draw(display)
.unwrap();
.map_err(PrimaryDisplayError::from)?;
Ok(())
}
}