implement error view which displays all error on the display

This commit was merged in pull request #48.
This commit is contained in:
2026-08-29 20:19:14 +00:00
parent a31c818b37
commit ef10eec216
17 changed files with 316 additions and 92 deletions
+9 -4
View File
@@ -2,14 +2,17 @@ use crate::navigation::outputs::Outputs;
use crate::peripherals::Peripherals;
use crate::views::card_view::CardView;
use crate::views::{
flash_info_view::FlashInfoView, journal_view::JournalView, main_menu::MainMenu,
scan_menu::ScanMenu, settings_menu::SettingsMenu,
error_view::ErrorView, flash_info_view::FlashInfoView, journal_view::JournalView,
main_menu::MainMenu, scan_menu::ScanMenu, settings_menu::SettingsMenu,
};
use alloc::boxed::Box;
use core::error;
use crate::navigation::navigation::{Navigable, NewState};
#[derive(Debug, Clone)]
pub enum View {
Error(ErrorView),
Main(MainMenu),
Scan(ScanMenu),
Settings(SettingsMenu),
@@ -22,10 +25,11 @@ impl Navigable for View {
fn display(
&self,
outputs: &mut Outputs,
peripherals: &Peripherals
) -> impl core::future::Future<Output = ()> + Send {
peripherals: &Peripherals,
) -> impl core::future::Future<Output = Result<(), Box<dyn error::Error>>> + Send {
async move {
match self {
View::Error(error_view) => error_view.display(outputs, peripherals).await,
View::Main(main_menu) => main_menu.display(outputs, peripherals).await,
View::Scan(scan_menu) => scan_menu.display(outputs, peripherals).await,
View::Settings(settings_menu) => settings_menu.display(outputs, peripherals).await,
@@ -44,6 +48,7 @@ impl Navigable for View {
) -> impl core::future::Future<Output = NewState> + Send {
async move {
match self {
View::Error(error_view) => error_view.handle_input(input).await,
View::Main(main_menu) => main_menu.handle_input(input).await,
View::Scan(scan_menu) => scan_menu.handle_input(input).await,
View::Settings(settings_menu) => settings_menu.handle_input(input).await,