Merge develop into main (#381)

Various fixes and improvements
This commit is contained in:
Ken Van Hoeylandt 2025-10-22 23:15:33 +02:00 committed by GitHub
parent 9c5a427a34
commit e9384e0c11
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 24 additions and 8 deletions

View File

@ -1,7 +1,14 @@
# TODOs
## Before release
- App Hub
- Fix Wi-Fi password(less) decryption crash
- Make better esp_lcd driver (and test all devices)
## Higher Priority
- Calculator bugs (see GitHub issue)
- External app loading: Check the version of Tactility and check ESP target hardware to check for compatibility
Check during installation process, but also when starting (SD card might have old app install from before Tactility OS update)
- Make a URL handler. Use it for handling local files. Match file types with apps.

View File

@ -203,7 +203,7 @@ bool uninstall(const std::string& appId) {
auto app_path = getAppInstallPath(appId);
if (!file::isDirectory(app_path)) {
TT_LOG_E(TAG, "App %s not found at ", app_path.c_str());
TT_LOG_E(TAG, "App %s not found at %s", appId.c_str(), app_path.c_str());
return false;
}
@ -212,7 +212,7 @@ bool uninstall(const std::string& appId) {
}
if (!removeApp(appId)) {
TT_LOG_W(TAG, "Failed to remove app %d from registry", appId.c_str());
TT_LOG_W(TAG, "Failed to remove app %s from registry", appId.c_str());
}
return true;

View File

@ -126,12 +126,15 @@ class BootApp : public App {
#endif
settings::BootSettings boot_properties;
if (!settings::loadBootSettings(boot_properties) || boot_properties.launcherAppId.empty()) {
TT_LOG_E(TAG, "Launcher not configured");
return;
std::string launcher_app_id;
if (settings::loadBootSettings(boot_properties) && boot_properties.launcherAppId.empty()) {
TT_LOG_E(TAG, "Failed to load launcher configuration, or launcher not configured");
launcher_app_id = boot_properties.launcherAppId;
} else {
launcher_app_id = "Launcher";
}
start(boot_properties.launcherAppId);
start(launcher_app_id);
}
static int getSmallestDimension() {

View File

@ -29,6 +29,7 @@ class DevelopmentApp final : public App {
Timer timer = Timer(Timer::Type::Periodic, [this] {
auto lock = lvgl::getSyncLock()->asScopedLock();
// TODO: There's a crash when this is called when the app is being destroyed
if (lock.lock(lvgl::defaultLockTime) && lvgl::isStarted()) {
updateViewState();
}

View File

@ -11,7 +11,7 @@
namespace tt::settings {
constexpr auto* TAG = "BootProperties";
constexpr auto* TAG = "BootSettings";
constexpr auto* PROPERTIES_FILE_FORMAT = "{}/settings/boot.properties";
constexpr auto* PROPERTIES_KEY_LAUNCHER_APP_ID = "launcherAppId";
constexpr auto* PROPERTIES_KEY_AUTO_START_APP_ID = "autoStartAppId";

View File

@ -5,6 +5,8 @@
#include <Tactility/app/ElfApp.h>
#include <Tactility/file/FileLock.h>
#include <cstring>
extern "C" {
constexpr auto* TAG = "tt_app";

View File

@ -1,6 +1,8 @@
#include "tt_hal_uart.h"
#include <Tactility/hal/uart/Uart.h>
#include <cstring>
using namespace tt::hal;
struct UartWrapper {

View File

@ -381,8 +381,9 @@ bool readLines(const std::string& filePath, bool stripNewLine, std::function<voi
callback(line);
}
bool success = feof(file);
fclose(file);
return true;
return success;
}
}