Various improvements (#547)

- Fixed crash when returning to Setup app (from any of the steps)
- Fixed crash when returning to TimeDateSettings app (after locale selection)
- Fixed GuiService inconsistent behaviour: now always perform operations async (e.g. to show/hide apps). This fixes crashes in some onHide() calls where onHide() might be called before onShow() was called.
- Fix for incorrect WebServService path
- Remove CYD-4848S040C SD card functionality, but added a GPIO fix for releasing 3-wire SPI pin sharing.
- Fix for saving/loading settings for various apps
This commit is contained in:
Ken Van Hoeylandt
2026-07-04 21:26:43 +02:00
committed by GitHub
parent a323f8e148
commit ecad2248d9
33 changed files with 278 additions and 146 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
namespace tt {
esp_err_t initPartitionsEsp();
bool initPartitionsEsp();
wl_handle_t getDataPartitionWlHandle();
} // namespace
@@ -24,7 +24,6 @@ struct ChatSettingsData {
ChatSettingsData loadSettings();
bool saveSettings(const ChatSettingsData& settings);
ChatSettingsData getDefaultSettings();
bool settingsFileExists();
} // namespace tt::app::chat
@@ -7,16 +7,13 @@
#include <Tactility/service/Service.h>
#include <Tactility/service/loader/Loader.h>
#include <tactility/concurrent/dispatcher.h>
#include <cstdio>
#include <lvgl.h>
namespace tt::service::gui {
constexpr auto GUI_THREAD_FLAG_DRAW = (1 << 0);
constexpr auto GUI_THREAD_FLAG_INPUT = (1 << 1);
constexpr auto GUI_THREAD_FLAG_EXIT = (1 << 2);
constexpr auto GUI_THREAD_FLAG_ALL = (GUI_THREAD_FLAG_DRAW | GUI_THREAD_FLAG_INPUT | GUI_THREAD_FLAG_EXIT);
/**
* Output a log warning if the current task is the GUI task.
* This is meant for code that should either create their own task or use a different task to execute on.
@@ -28,7 +25,8 @@ class GuiService final : public Service {
// Thread and lock
Thread* thread = nullptr;
EventGroup threadFlags;
DispatcherHandle_t dispatcher = nullptr;
bool exitRequested = false;
RecursiveMutex mutex;
PubSub<loader::LoaderService::Event>::SubscriptionHandle loader_pubsub_subscription = nullptr;
@@ -46,6 +44,8 @@ class GuiService final : public Service {
static int32_t guiMain();
static void onGuiDispatch(void* context);
void onLoaderEvent(loader::LoaderService::Event event);
lv_obj_t* createAppViews(lv_obj_t* parent);
@@ -70,8 +70,6 @@ public:
void onStop(ServiceContext& service) override;
void requestDraw();
/**
* Show the on-screen keyboard.
* @param[in] textarea the textarea to focus the input for