Rename icons, fix T-Lora Pager config and more (#502)

* **New Features**
  * Added NFC chip-select to SD card hardware configuration.

* **Refactor**
  * Consolidated and renamed icon resources; apps and status-bar now reference unified icon headers and new icon constants.
  * Renamed LVGL lock API (timed → lvgl_try_lock) and updated callers.

* **Documentation**
  * Updated module README and license files; added Apache-2.0 license document.
This commit is contained in:
Ken Van Hoeylandt
2026-02-15 13:32:52 +01:00
committed by GitHub
parent 72b55b221e
commit 3a24d058c9
46 changed files with 422 additions and 840 deletions
+2 -2
View File
@@ -10,7 +10,7 @@
#include "tactility/drivers/uart_controller.h"
#include <cstring>
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::addgps {
@@ -194,7 +194,7 @@ public:
extern const AppManifest manifest = {
.appId = "AddGps",
.appName = "Add GPS",
.appIcon = LVGL_SYMBOL_NAVIGATION,
.appIcon = LVGL_ICON_SHARED_NAVIGATION,
.appCategory = Category::System,
.appFlags = AppManifest::Flags::Hidden,
.createApp = create<AddGpsApp>
+2 -2
View File
@@ -12,7 +12,7 @@
#include <Tactility/service/wifi/Wifi.h>
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <algorithm>
#include <format>
@@ -179,7 +179,7 @@ public:
extern const AppManifest manifest = {
.appId = "AppHub",
.appName = "App Hub",
.appIcon = LVGL_SYMBOL_HUB,
.appIcon = LVGL_ICON_SHARED_HUB,
.appCategory = Category::System,
.createApp = create<AppHubApp>,
};
+2 -2
View File
@@ -6,7 +6,7 @@
#include <algorithm>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::applist {
@@ -18,7 +18,7 @@ class AppListApp final : public App {
}
static void createAppWidget(const std::shared_ptr<AppManifest>& manifest, lv_obj_t* list) {
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_SYMBOL_TOOLBAR;
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_ICON_SHARED_TOOLBAR;
lv_obj_t* btn = lv_list_add_button(list, icon, manifest->appName.c_str());
lv_obj_t* image = lv_obj_get_child(btn, 0);
lv_obj_set_style_text_font(image, lvgl_get_shared_icon_font(), LV_PART_MAIN);
@@ -1,5 +1,5 @@
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <Tactility/app/AppRegistration.h>
#include <Tactility/app/appdetails/AppDetails.h>
@@ -19,7 +19,7 @@ class AppSettingsApp final : public App {
}
static void createAppWidget(const std::shared_ptr<AppManifest>& manifest, lv_obj_t* list) {
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_SYMBOL_TOOLBAR;
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_ICON_SHARED_TOOLBAR;
lv_obj_t* btn = lv_list_add_button(list, icon, manifest->appName.c_str());
lv_obj_t* image = lv_obj_get_child(btn, 0);
lv_obj_set_style_text_font(image, lvgl_get_shared_icon_font(), LV_PART_MAIN);
@@ -62,7 +62,7 @@ public:
extern const AppManifest manifest = {
.appId = "AppSettings",
.appName = "Apps",
.appIcon = LVGL_SYMBOL_APPS,
.appIcon = LVGL_ICON_SHARED_APPS,
.appCategory = Category::Settings,
.createApp = create<AppSettingsApp>,
};
+2 -2
View File
@@ -14,7 +14,7 @@
#include <algorithm>
#include <cctype>
#include <cstdlib>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <vector>
namespace tt::app::chat {
@@ -181,7 +181,7 @@ void ChatApp::switchChannel(const std::string& chatChannel) {
extern const AppManifest manifest = {
.appId = "Chat",
.appName = "Chat",
.appIcon = LVGL_SYMBOL_FORUM,
.appIcon = LVGL_ICON_SHARED_FORUM,
.createApp = create<ChatApp>
};
@@ -13,7 +13,7 @@
#include <Tactility/service/loader/Loader.h>
#include <Tactility/service/wifi/Wifi.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <cstring>
#include <lvgl.h>
@@ -165,7 +165,7 @@ public:
extern const AppManifest manifest = {
.appId = "Development",
.appName = "Development",
.appIcon = LVGL_SYMBOL_DEVICES,
.appIcon = LVGL_ICON_SHARED_DEVICES,
.appCategory = Category::Settings,
.createApp = create<DevelopmentApp>
};
+2 -2
View File
@@ -1,6 +1,6 @@
#include <Tactility/Tactility.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#ifdef ESP_PLATFORM
#include <Tactility/service/displayidle/DisplayIdleService.h>
@@ -306,7 +306,7 @@ public:
extern const AppManifest manifest = {
.appId = "Display",
.appName = "Display",
.appIcon = LVGL_SYMBOL_DISPLAY_SETTINGS,
.appIcon = LVGL_ICON_SHARED_DISPLAY_SETTINGS,
.appCategory = Category::Settings,
.createApp = create<DisplayApp>
};
@@ -10,7 +10,7 @@
#include <Tactility/service/gps/GpsState.h>
#include <Tactility/service/loader/Loader.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <cstring>
#include <format>
@@ -455,7 +455,7 @@ public:
extern const AppManifest manifest = {
.appId = "GpsSettings",
.appName = "GPS",
.appIcon = LVGL_SYMBOL_NAVIGATION,
.appIcon = LVGL_ICON_SHARED_NAVIGATION,
.appCategory = Category::Settings,
.createApp = create<GpsSettingsApp>
};
@@ -15,7 +15,7 @@
#include <format>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::i2cscanner {
@@ -411,7 +411,7 @@ void I2cScannerApp::onScanTimerFinished() {
extern const AppManifest manifest = {
.appId = "I2cScanner",
.appName = "I2C Scanner",
.appIcon = LVGL_SYMBOL_SEARCH,
.appIcon = LVGL_ICON_SHARED_SEARCH,
.appCategory = Category::System,
.createApp = create<I2cScannerApp>
};
@@ -5,7 +5,7 @@
#include <Tactility/settings/KeyboardSettings.h>
#include <Tactility/lvgl/Toolbar.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl.h>
@@ -183,7 +183,7 @@ public:
extern const AppManifest manifest = {
.appId = "KeyboardSettings",
.appName = "Keyboard",
.appIcon = LVGL_SYMBOL_KEYBOARD_ALT,
.appIcon = LVGL_ICON_SHARED_KEYBOARD_ALT,
.appCategory = Category::Settings,
.createApp = create<KeyboardSettingsApp>
};
+4 -4
View File
@@ -11,7 +11,7 @@
#include <lvgl.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_symbols_launcher.h>
#include <tactility/lvgl_icon_launcher.h>
namespace tt::app::launcher {
@@ -151,9 +151,9 @@ public:
margin = std::min<int32_t>(available_height / 16, total_button_size / 2);
}
createAppButton(buttons_wrapper, ui_density, LVGL_SYMBOL_APPS, "AppList", margin, is_landscape_display);
createAppButton(buttons_wrapper, ui_density, LVGL_SYMBOL_FOLDER, "Files", margin, is_landscape_display);
createAppButton(buttons_wrapper, ui_density, LVGL_SYMBOL_SETTINGS, "Settings", margin, is_landscape_display);
createAppButton(buttons_wrapper, ui_density, LVGL_ICON_LAUNCHER_APPS, "AppList", margin, is_landscape_display);
createAppButton(buttons_wrapper, ui_density, LVGL_ICON_LAUNCHER_FOLDER, "Files", margin, is_landscape_display);
createAppButton(buttons_wrapper, ui_density, LVGL_ICON_LAUNCHER_SETTINGS, "Settings", margin, is_landscape_display);
if (shouldShowPowerButton()) {
auto* power_button = lv_btn_create(parent);
@@ -8,7 +8,7 @@
#include <Tactility/settings/Language.h>
#include <Tactility/settings/SystemSettings.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl.h>
#include <map>
@@ -160,7 +160,7 @@ public:
extern const AppManifest manifest = {
.appId = "LocaleSettings",
.appName = "Region & Language",
.appIcon = LVGL_SYMBOL_LANGUAGE,
.appIcon = LVGL_ICON_SHARED_LANGUAGE,
.appCategory = Category::Settings,
.createApp = create<LocaleSettingsApp>
};
+2 -2
View File
@@ -8,7 +8,7 @@
#include <Tactility/file/File.h>
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::notes {
@@ -209,7 +209,7 @@ class NotesApp final : public App {
extern const AppManifest manifest = {
.appId = "Notes",
.appName = "Notes",
.appIcon = LVGL_SYMBOL_EDIT_NOTE,
.appIcon = LVGL_ICON_SHARED_EDIT_NOTE,
.createApp = create<NotesApp>
};
+2 -2
View File
@@ -8,7 +8,7 @@
#include <Tactility/Timer.h>
#include <tactility/hal/Device.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <lvgl.h>
@@ -192,7 +192,7 @@ public:
extern const AppManifest manifest = {
.appId = "Power",
.appName = "Power",
.appIcon = LVGL_SYMBOL_ELECTRIC_BOLT,
.appIcon = LVGL_ICON_SHARED_ELECTRIC_BOLT,
.appCategory = Category::Settings,
.createApp = create<PowerApp>
};
@@ -15,7 +15,7 @@
#include <Tactility/service/screenshot/Screenshot.h>
#include <Tactility/Timer.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::screenshot {
@@ -285,7 +285,7 @@ void ScreenshotApp::onShow(AppContext& appContext, lv_obj_t* parent) {
extern const AppManifest manifest = {
.appId = "Screenshot",
.appName = "Screenshot",
.appIcon = LVGL_SYMBOL_IMAGE,
.appIcon = LVGL_ICON_SHARED_IMAGE,
.appCategory = Category::System,
.createApp = create<ScreenshotApp>
};
+3 -3
View File
@@ -3,7 +3,7 @@
#include <Tactility/service/loader/Loader.h>
#include <tactility/check.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <tactility/lvgl_fonts.h>
#include <lvgl.h>
@@ -20,7 +20,7 @@ static void onAppPressed(lv_event_t* e) {
static void createWidget(const std::shared_ptr<AppManifest>& manifest, void* parent) {
check(parent);
auto* list = static_cast<lv_obj_t*>(parent);
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_SYMBOL_TOOLBAR;
const void* icon = !manifest->appIcon.empty() ? manifest->appIcon.c_str() : LVGL_ICON_SHARED_TOOLBAR;
auto* btn = lv_list_add_button(list, icon, manifest->appName.c_str());
lv_obj_t* image = lv_obj_get_child(btn, 0);
lv_obj_set_style_text_font(image, lvgl_get_shared_icon_font(), LV_PART_MAIN);
@@ -52,7 +52,7 @@ class SettingsApp final : public App {
extern const AppManifest manifest = {
.appId = "Settings",
.appName = "Settings",
.appIcon = LVGL_SYMBOL_SETTINGS,
.appIcon = LVGL_ICON_SHARED_SETTINGS,
.appCategory = Category::System,
.appFlags = AppManifest::Flags::Hidden,
.createApp = create<SettingsApp>
@@ -11,7 +11,7 @@
#include <lvgl.h>
#include <tactility/lvgl_fonts.h>
#include <tactility/hal/Device.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <utility>
#include <cstring>
@@ -700,7 +700,7 @@ class SystemInfoApp final : public App {
extern const AppManifest manifest = {
.appId = "SystemInfo",
.appName = "System Info",
.appIcon = LVGL_SYMBOL_AREA_CHART,
.appIcon = LVGL_ICON_SHARED_AREA_CHART,
.appCategory = Category::System,
.createApp = create<SystemInfoApp>
};
@@ -10,7 +10,7 @@
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::timedatesettings {
@@ -155,7 +155,7 @@ public:
extern const AppManifest manifest = {
.appId = "TimeDateSettings",
.appName = "Time & Date",
.appIcon = LVGL_SYMBOL_CALENDAR_MONTH,
.appIcon = LVGL_ICON_SHARED_CALENDAR_MONTH,
.appCategory = Category::Settings,
.createApp = create<TimeDateSettingsApp>
};
+2 -2
View File
@@ -1,5 +1,5 @@
#include <tactility/lvgl_fonts.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <Tactility/app/AppContext.h>
#include <Tactility/app/AppManifest.h>
@@ -205,7 +205,7 @@ public:
lv_obj_set_style_image_recolor_opa(icon, 255, 0);
lv_obj_set_style_image_recolor(icon, lv_theme_get_color_primary(parent), 0);
lv_obj_set_style_text_font(icon, lvgl_get_shared_icon_font(), LV_STATE_DEFAULT);
lv_image_set_src(icon, LVGL_SYMBOL_SEARCH);
lv_image_set_src(icon, LVGL_ICON_SHARED_SEARCH);
auto* textarea = lv_textarea_create(search_wrapper);
lv_textarea_set_placeholder_text(textarea, "e.g. Europe/Amsterdam");
@@ -7,7 +7,7 @@
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
// Forward declare driver functions
namespace trackball {
@@ -210,7 +210,7 @@ public:
extern const AppManifest manifest = {
.appId = "TrackballSettings",
.appName = "Trackball",
.appIcon = LVGL_SYMBOL_CIRCLE,
.appIcon = LVGL_ICON_SHARED_CIRCLE,
.appCategory = Category::Settings,
.createApp = create<TrackballSettingsApp>
};
@@ -5,7 +5,7 @@
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#define TAG "usb_settings"
@@ -62,7 +62,7 @@ class UsbSettingsApp : public App {
extern const AppManifest manifest = {
.appId = "UsbSettings",
.appName = "USB",
.appIcon = LVGL_SYMBOL_USB,
.appIcon = LVGL_ICON_SHARED_USB,
.appCategory = Category::Settings,
.createApp = create<UsbSettingsApp>
};
@@ -12,7 +12,7 @@
#include <Tactility/Logger.h>
#include <lvgl.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
#include <esp_netif.h>
#include <esp_wifi.h>
@@ -418,7 +418,7 @@ public:
extern const AppManifest manifest = {
.appId = "WebServerSettings",
.appName = "Web Server",
.appIcon = LVGL_SYMBOL_CLOUD,
.appIcon = LVGL_ICON_SHARED_CLOUD,
.appCategory = Category::System,
.createApp = create<WebServerSettingsApp>
};
@@ -9,7 +9,7 @@
#include <Tactility/lvgl/LvglSync.h>
#include <Tactility/service/loader/Loader.h>
#include <tactility/lvgl_symbols_shared.h>
#include <tactility/lvgl_icon_shared.h>
namespace tt::app::wifimanage {
@@ -144,7 +144,7 @@ void WifiManage::onHide(AppContext& app) {
extern const AppManifest manifest = {
.appId = "WifiManage",
.appName = "Wi-Fi",
.appIcon = LVGL_SYMBOL_WIFI,
.appIcon = LVGL_ICON_SHARED_WIFI,
.appCategory = Category::Settings,
.createApp = create<WifiManage>
};