From ee867f2dbcad624948d73253577ef4bf887cbfad Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 1 Feb 2024 11:43:01 +1100 Subject: [PATCH] add an indicator for database updates --- lua/img/db.png | Bin 0 -> 4557 bytes lua/widgets.lua | 11 +++++++++++ src/ui/include/ui_fsm.hpp | 6 ++++-- src/ui/ui_fsm.cpp | 15 +++++++++++++++ tools/cmake/common.cmake | 2 +- 5 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 lua/img/db.png diff --git a/lua/img/db.png b/lua/img/db.png new file mode 100644 index 0000000000000000000000000000000000000000..3952ded29a8857e43767f4697cf59cc5c1dccddd GIT binary patch literal 4557 zcmeHKYj6|S6<#OU#s)hC43tdWF6)wj$x6Gcl~!6LyS60T3dk0=>)7B@@8hntv7{B! z+LB!;!I%`9)-I(^NX7|tFc2C_Qb^harWl7u+71J5CQu*{`p5uNrz9R293B&TSCWlA z$xO#H;h&|EcK6(KzH`razI$iyMo)QZR_0@w2!dp}${dyOI#v5kPJ{n7P4!pcw?G7sdumB*xLSx6lAyjWpnGg@AN*rrDu2b z?vBqX^Ubq8*9We@QgEQGOI*JDT;%Z$@4ic$yLNtRH=OIQTEX4gxND#oS+M71|Gdv< zm{)b2-JbEr-Pb+l3;zfVIUCo0R)2L&v)8d_e|l=z}dZ) zxtj)!hjV#c7;N7)DU}%VeRy@*|gEV^y~(ol0d?K~gNc=N8m4?$Aa$#%QPWw#Gk z4(sh+y~$Q~#FMkWqG|^=Gkwtpv-nzSpDzDjwXb{HGk;U#JKgumjy3%~b6qP}=G0Hg z{_@G1-1_dOrqIkueczqtO@G2Ud%@tLo__3jdgsu}k8MA_bM4`FsY|Y@c&K0f=tR%2 zcwKM)b1UYeNW-_um+Fppe{aV>4<5R9aoL4qEibIOxV7>7c$AMSTju?5!L2DrQdfhQ2Hq;&^d9yCTGZag=D+q{Nq6}xIaB5wsJQ(_X??Fl zx4wQR5q@%8TGqaS^n2?r?SK1cRhw5-nlo-3GM{|^Thq>`F3WoVRzY+3nT%e#s z`$o#2KiKmDbGUErw1rD=9yoRI&Veg8759&SQus`6czfu&w9!qtLw4Yk%UZ*rsP~pmrq;P+CXp2;3Qyn<=ay z6Sam#iLG>$Bq89F4fCmLh}G+((WowJ&?#ZBp0rpjdVOd${(vGxT!1S%)GtY14B#Y?zjx6%|1i z*~G16q)ar!;Ecs0;j~epaZV6K9GFR(5>1SWA;?isu3$vvf&$Q>Ah=G3I3gwT49PRN z(Eu2nHUJX0n1B(dD9*&2%>=ZHqaZ56GE^n!A3ZA#N`z2^B+@3cz~E+v7I2z3a5!h6 z0WJZOrlFmdjK(;WD6l0;IKaVn$^p&`^r4_PKA;iK7I|DYjM5SJEgnCoN-)5NEs=vw zvHJtnasX7RoW>@}5GIB;lLm%166R#0I9?41N1zflOp?$UO!087Ei5bs63b~ig#d9o ztcA6Q0jDbAYDMweFbx9LB1eYZa5;&b$~ia{Kv06BS%P8-vYI4Wnqo<2A-o|*`75F< zwfsMCZSkPiM9a(M2+ZFSHzih76gN<8}I_)hF!VE^%XigHQfAA$*EM_2BEHo~e3_MPA76#`j z&IlFDTP&0b@Qj#{=r>s6XiX$bwCc5Oak!~g{a4zaa2U0ZLTVB=xIe?~UO%$mCpm-j zeUP7|+#X~K6rD&iE`BHInxJc342;WpLR}Mdjf;VCIZvqT8>1`p{)rI;;fr1ro(CtL zZVte+WE#J?)Pda7zT5t^YcsTDgv#n72%^i=ekrjXh0V~IuDaaL^s5i0Ao-6DiUYrd zra7v!R<$bu?cjmL--m&SMrGB9YVX5Oug#tfot!R5QT6;&Lc_M%4N^nH7oF`KV*h!@ zQ~QhLlKCZP+Ogy9;`F7@uAgkYx5?l3(X)> { void react(const internal::DismissAlerts&); void react(const internal::ControlSchemeChanged&); - void react(const database::event::UpdateStarted&){}; + void react(const database::event::UpdateStarted&); void react(const database::event::UpdateProgress&){}; - void react(const database::event::UpdateFinished&){}; + void react(const database::event::UpdateFinished&); void react(const system_fsm::BluetoothEvent&); @@ -129,6 +129,8 @@ class UiState : public tinyfsm::Fsm { static lua::Property sControlsScheme; static lua::Property sControlSensitivity; + + static lua::Property sDatabaseUpdating; }; namespace states { diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index fe790816..228e61b6 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -11,6 +11,7 @@ #include #include "bluetooth_types.hpp" +#include "db_events.hpp" #include "freertos/portmacro.h" #include "freertos/projdefs.h" #include "lua.h" @@ -213,6 +214,8 @@ lua::Property UiState::sControlsScheme{ return true; }}; +lua::Property UiState::sDatabaseUpdating{false}; + auto UiState::InitBootSplash(drivers::IGpios& gpios) -> bool { // Init LVGL first, since the display driver registers itself with LVGL. lv_init(); @@ -258,6 +261,14 @@ void UiState::react(const internal::ControlSchemeChanged&) { sInput->mode(sServices->nvs().PrimaryInput()); } +void UiState::react(const database::event::UpdateStarted&) { + sDatabaseUpdating.Update(true); +} + +void UiState::react(const database::event::UpdateFinished&) { + sDatabaseUpdating.Update(false); +} + void UiState::react(const internal::DismissAlerts&) { lv_obj_clean(sAlertContainer); } @@ -435,6 +446,10 @@ void Lua::entry() { {"show", [&](lua_State* s) { return ShowAlert(s); }}, {"hide", [&](lua_State* s) { return HideAlert(s); }}, }); + sLua->bridge().AddPropertyModule("database", + { + {"updating", &sDatabaseUpdating}, + }); auto bt = sServices->bluetooth(); sBluetoothEnabled.Update(bt.IsEnabled()); diff --git a/tools/cmake/common.cmake b/tools/cmake/common.cmake index 12730b9b..25eee96e 100644 --- a/tools/cmake/common.cmake +++ b/tools/cmake/common.cmake @@ -5,7 +5,7 @@ # For more information about build system see # https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html -set(PROJECT_VER "0.2.1") +set(PROJECT_VER "0.3.0") # esp-idf sets the C++ standard weird. Set cmake vars to match. set(CMAKE_CXX_STANDARD 23)