mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
parent
9c5a427a34
commit
e9384e0c11
@ -1,7 +1,14 @@
|
|||||||
# TODOs
|
# TODOs
|
||||||
|
|
||||||
|
## Before release
|
||||||
|
|
||||||
|
- App Hub
|
||||||
|
- Fix Wi-Fi password(less) decryption crash
|
||||||
|
- Make better esp_lcd driver (and test all devices)
|
||||||
|
|
||||||
## Higher Priority
|
## Higher Priority
|
||||||
|
|
||||||
|
- Calculator bugs (see GitHub issue)
|
||||||
- External app loading: Check the version of Tactility and check ESP target hardware to check for compatibility
|
- 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)
|
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.
|
- Make a URL handler. Use it for handling local files. Match file types with apps.
|
||||||
|
|||||||
@ -203,7 +203,7 @@ bool uninstall(const std::string& appId) {
|
|||||||
|
|
||||||
auto app_path = getAppInstallPath(appId);
|
auto app_path = getAppInstallPath(appId);
|
||||||
if (!file::isDirectory(app_path)) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ bool uninstall(const std::string& appId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!removeApp(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;
|
return true;
|
||||||
|
|||||||
@ -126,12 +126,15 @@ class BootApp : public App {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
settings::BootSettings boot_properties;
|
settings::BootSettings boot_properties;
|
||||||
if (!settings::loadBootSettings(boot_properties) || boot_properties.launcherAppId.empty()) {
|
std::string launcher_app_id;
|
||||||
TT_LOG_E(TAG, "Launcher not configured");
|
if (settings::loadBootSettings(boot_properties) && boot_properties.launcherAppId.empty()) {
|
||||||
return;
|
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() {
|
static int getSmallestDimension() {
|
||||||
|
|||||||
@ -29,6 +29,7 @@ class DevelopmentApp final : public App {
|
|||||||
|
|
||||||
Timer timer = Timer(Timer::Type::Periodic, [this] {
|
Timer timer = Timer(Timer::Type::Periodic, [this] {
|
||||||
auto lock = lvgl::getSyncLock()->asScopedLock();
|
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()) {
|
if (lock.lock(lvgl::defaultLockTime) && lvgl::isStarted()) {
|
||||||
updateViewState();
|
updateViewState();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace tt::settings {
|
namespace tt::settings {
|
||||||
|
|
||||||
constexpr auto* TAG = "BootProperties";
|
constexpr auto* TAG = "BootSettings";
|
||||||
constexpr auto* PROPERTIES_FILE_FORMAT = "{}/settings/boot.properties";
|
constexpr auto* PROPERTIES_FILE_FORMAT = "{}/settings/boot.properties";
|
||||||
constexpr auto* PROPERTIES_KEY_LAUNCHER_APP_ID = "launcherAppId";
|
constexpr auto* PROPERTIES_KEY_LAUNCHER_APP_ID = "launcherAppId";
|
||||||
constexpr auto* PROPERTIES_KEY_AUTO_START_APP_ID = "autoStartAppId";
|
constexpr auto* PROPERTIES_KEY_AUTO_START_APP_ID = "autoStartAppId";
|
||||||
|
|||||||
@ -5,6 +5,8 @@
|
|||||||
#include <Tactility/app/ElfApp.h>
|
#include <Tactility/app/ElfApp.h>
|
||||||
#include <Tactility/file/FileLock.h>
|
#include <Tactility/file/FileLock.h>
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
constexpr auto* TAG = "tt_app";
|
constexpr auto* TAG = "tt_app";
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
#include "tt_hal_uart.h"
|
#include "tt_hal_uart.h"
|
||||||
#include <Tactility/hal/uart/Uart.h>
|
#include <Tactility/hal/uart/Uart.h>
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
using namespace tt::hal;
|
using namespace tt::hal;
|
||||||
|
|
||||||
struct UartWrapper {
|
struct UartWrapper {
|
||||||
|
|||||||
@ -381,8 +381,9 @@ bool readLines(const std::string& filePath, bool stripNewLine, std::function<voi
|
|||||||
callback(line);
|
callback(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool success = feof(file);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
return true;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user