Merge develop into main (#313)
- Add app path get() functions to `TactilityC` - Improved `Dispatcher` and `DispatcherThread` - Improved `PubSub` (type safety) - Created test for `DispatcherThread` and `PubSub` - Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit) - Fixed bug with `SystemSettings` being read from the wrong file path. - `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually - Increased timer task stack size (required due to issues when reading a properties file for the very first time) - General cleanup - Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left. - Cleanup of T-Deck board (updated to new style)
This commit is contained in:
committed by
GitHub
parent
5cc5b50694
commit
0f8380e8fe
@@ -12,22 +12,16 @@ namespace tt::service::gui {
|
||||
|
||||
extern const ServiceManifest manifest;
|
||||
|
||||
constexpr const char* TAG = "gui";
|
||||
constexpr auto* TAG = "GuiService";
|
||||
|
||||
// region AppManifest
|
||||
|
||||
void GuiService::onLoaderMessage(const void* message, TT_UNUSED void* context) {
|
||||
auto service = findService();
|
||||
if (service == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* event = static_cast<const loader::LoaderEvent*>(message);
|
||||
if (event->type == loader::LoaderEventTypeApplicationShowing) {
|
||||
void GuiService::onLoaderEvent(loader::LoaderEvent event) {
|
||||
if (event == loader::LoaderEvent::ApplicationShowing) {
|
||||
auto app_instance = app::getCurrentAppContext();
|
||||
service->showApp(app_instance);
|
||||
} else if (event->type == loader::LoaderEventTypeApplicationHiding) {
|
||||
service->hideApp();
|
||||
showApp(app_instance);
|
||||
} else if (event == loader::LoaderEvent::ApplicationHiding) {
|
||||
hideApp();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +118,12 @@ void GuiService::onStart(TT_UNUSED ServiceContext& service) {
|
||||
4096, // Last known minimum was 2800 for launching desktop
|
||||
[]() { return guiMain(); }
|
||||
);
|
||||
loader_pubsub_subscription = loader::getPubsub()->subscribe(&onLoaderMessage, nullptr);
|
||||
|
||||
loader_pubsub_subscription = loader::getPubsub()->subscribe([this](auto event) {
|
||||
onLoaderEvent(event);
|
||||
});
|
||||
|
||||
|
||||
tt_check(lvgl::lock(1000 / portTICK_PERIOD_MS));
|
||||
keyboardGroup = lv_group_create();
|
||||
auto* screen_root = lv_screen_active();
|
||||
|
||||
Reference in New Issue
Block a user