From ee8e5234562c2b9ee1bb261785135abd4f718f83 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 4 Oct 2023 15:38:18 +1100 Subject: Add a basic database reindex screen --- src/ui/include/modal_progress.hpp | 7 ++++++- src/ui/include/ui_events.hpp | 1 + src/ui/include/ui_fsm.hpp | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) (limited to 'src/ui/include') diff --git a/src/ui/include/modal_progress.hpp b/src/ui/include/modal_progress.hpp index f312d509..2ccb671a 100644 --- a/src/ui/include/modal_progress.hpp +++ b/src/ui/include/modal_progress.hpp @@ -19,10 +19,15 @@ namespace modals { class Progress : public Modal { public: - Progress(Screen*, std::pmr::string title); + Progress(Screen*, std::pmr::string title, std::pmr::string subtitle = ""); + + void title(const std::pmr::string&); + void subtitle(const std::pmr::string&); private: lv_obj_t* container_; + lv_obj_t* title_; + lv_obj_t* subtitle_; }; } // namespace modals diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp index e08f8888..4549a51d 100644 --- a/src/ui/include/ui_events.hpp +++ b/src/ui/include/ui_events.hpp @@ -37,6 +37,7 @@ struct IndexSelected : tinyfsm::Event { }; struct ControlSchemeChanged : tinyfsm::Event {}; +struct ReindexDatabase : tinyfsm::Event {}; struct BackPressed : tinyfsm::Event {}; struct ShowNowPlaying : tinyfsm::Event {}; diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index eef96b50..da63b77f 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -14,6 +14,7 @@ #include "audio_events.hpp" #include "battery.hpp" #include "bindey/property.h" +#include "db_events.hpp" #include "gpios.hpp" #include "lvgl_task.hpp" #include "model_playback.hpp" @@ -75,6 +76,11 @@ class UiState : public tinyfsm::Fsm { } virtual void react(const internal::OnboardingNavigate&) {} void react(const internal::ControlSchemeChanged&); + virtual void react(const internal::ReindexDatabase&){}; + + virtual void react(const database::event::UpdateStarted&){}; + virtual void react(const database::event::UpdateProgress&){}; + virtual void react(const database::event::UpdateFinished&){}; virtual void react(const system_fsm::DisplayReady&) {} virtual void react(const system_fsm::BootComplete&) {} @@ -130,6 +136,7 @@ class Browse : public UiState { void react(const internal::ShowNowPlaying&) override; void react(const internal::ShowSettingsPage&) override; + void react(const internal::ReindexDatabase&) override; void react(const system_fsm::StorageMounted&) override; void react(const system_fsm::BluetoothDevicesChanged&) override; @@ -150,6 +157,18 @@ class Playing : public UiState { using UiState::react; }; +class Indexing : public UiState { + public: + void entry() override; + void exit() override; + + void react(const database::event::UpdateStarted&) override; + void react(const database::event::UpdateProgress&) override; + void react(const database::event::UpdateFinished&) override; + + using UiState::react; +}; + class FatalError : public UiState {}; } // namespace states -- cgit v1.2.3