From 620d56e19a441449f867b060492d0d319b42bb62 Mon Sep 17 00:00:00 2001 From: Adolfo Reyna Date: Sat, 12 Sep 2026 19:45:13 -0400 Subject: [PATCH] feat(ui): simplify family UI - hide advanced settings/apps, sane defaults Hide from Settings: Bluetooth, Development, MCP Screen, Power, Region & Language, Time & Date (APP_MANIFEST_FLAG_HIDDEN). Hide from Apps list: App Hub, Chat, I2C Scanner, Notes, Screenshot, System Info, Web Server. Defaults: MCP on, WebServer on, America/New_York timezone, 12-hour time format. --- Data/data/tactility/service/webserver/settings.properties | 2 +- Tactility/Include/Tactility/settings/SystemSettings.h | 2 +- Tactility/Source/app/apphub/AppHubApp.cpp | 3 ++- Tactility/Source/app/btmanage/BtManage.cpp | 3 ++- Tactility/Source/app/chat/ChatApp.cpp | 3 ++- Tactility/Source/app/development/Development.cpp | 3 ++- Tactility/Source/app/i2cscanner/I2cScanner.cpp | 3 ++- Tactility/Source/app/localesettings/LocaleSettings.cpp | 3 ++- Tactility/Source/app/mcpsettings/McpSettingsApp.cpp | 2 +- Tactility/Source/app/notes/Notes.cpp | 3 ++- Tactility/Source/app/power/Power.cpp | 3 ++- Tactility/Source/app/screenshot/Screenshot.cpp | 3 ++- Tactility/Source/app/systeminfo/SystemInfo.cpp | 3 ++- Tactility/Source/app/timedatesettings/TimeDateSettings.cpp | 3 ++- .../Source/app/webserversettings/WebServerSettings.cpp | 3 ++- Tactility/Source/settings/McpSettings.cpp | 4 ++-- Tactility/Source/settings/SystemSettings.cpp | 2 +- Tactility/Source/settings/WebServerSettings.cpp | 4 ++-- Tactility/Source/settings/time.cpp | 6 +++--- 19 files changed, 35 insertions(+), 23 deletions(-) diff --git a/Data/data/tactility/service/webserver/settings.properties b/Data/data/tactility/service/webserver/settings.properties index fceba429..22bb9153 100644 --- a/Data/data/tactility/service/webserver/settings.properties +++ b/Data/data/tactility/service/webserver/settings.properties @@ -17,7 +17,7 @@ apOpenNetwork=0 apChannel=1 # Web Server Settings -webServerEnabled=0 +webServerEnabled=1 webServerPort=80 # HTTP Basic Authentication (optional) diff --git a/Tactility/Include/Tactility/settings/SystemSettings.h b/Tactility/Include/Tactility/settings/SystemSettings.h index 366107be..6f4200b6 100644 --- a/Tactility/Include/Tactility/settings/SystemSettings.h +++ b/Tactility/Include/Tactility/settings/SystemSettings.h @@ -6,7 +6,7 @@ namespace tt::settings { struct SystemSettings { Language language = Language::en_US; - bool timeFormat24h = true; + bool timeFormat24h = false; std::string dateFormat = std::string("DD/MM/YYYY"); // MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD, YYYY/MM/DD }; diff --git a/Tactility/Source/app/apphub/AppHubApp.cpp b/Tactility/Source/app/apphub/AppHubApp.cpp index 65da9569..c84ba766 100644 --- a/Tactility/Source/app/apphub/AppHubApp.cpp +++ b/Tactility/Source/app/apphub/AppHubApp.cpp @@ -339,7 +339,8 @@ extern const ::AppManifest manifest = { .id = "tactility.apphub", .name = "App Hub", .category = APP_CATEGORY_SYSTEM, - .location = {APP_LOCATION_MEMORY, reinterpret_cast(appMain)} + .location = {APP_LOCATION_MEMORY, reinterpret_cast(appMain)}, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::apphub diff --git a/Tactility/Source/app/btmanage/BtManage.cpp b/Tactility/Source/app/btmanage/BtManage.cpp index eed479f2..082fad42 100644 --- a/Tactility/Source/app/btmanage/BtManage.cpp +++ b/Tactility/Source/app/btmanage/BtManage.cpp @@ -245,7 +245,8 @@ extern const ::AppManifest manifest = { .id = "tactility.btmanage", .name = "Bluetooth", .category = APP_CATEGORY_SETTINGS, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::btmanage diff --git a/Tactility/Source/app/chat/ChatApp.cpp b/Tactility/Source/app/chat/ChatApp.cpp index 3556abc4..b969076f 100644 --- a/Tactility/Source/app/chat/ChatApp.cpp +++ b/Tactility/Source/app/chat/ChatApp.cpp @@ -228,7 +228,8 @@ extern const ::AppManifest manifest = { .id = "tactility.chat", .name = "Chat", .category = APP_CATEGORY_USER, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::chat diff --git a/Tactility/Source/app/development/Development.cpp b/Tactility/Source/app/development/Development.cpp index cb76f70b..c3da239d 100644 --- a/Tactility/Source/app/development/Development.cpp +++ b/Tactility/Source/app/development/Development.cpp @@ -230,7 +230,8 @@ extern const ::AppManifest manifest = { .id = "tactility.development", .name = "Development", .category = APP_CATEGORY_SETTINGS, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace diff --git a/Tactility/Source/app/i2cscanner/I2cScanner.cpp b/Tactility/Source/app/i2cscanner/I2cScanner.cpp index 80229b2c..6bdeb170 100644 --- a/Tactility/Source/app/i2cscanner/I2cScanner.cpp +++ b/Tactility/Source/app/i2cscanner/I2cScanner.cpp @@ -426,7 +426,8 @@ extern const ::AppManifest manifest = { .id = "tactility.i2cscanner", .name = "I2C Scanner", .category = APP_CATEGORY_SYSTEM, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; uint32_t start() { diff --git a/Tactility/Source/app/localesettings/LocaleSettings.cpp b/Tactility/Source/app/localesettings/LocaleSettings.cpp index 46767fff..527ead40 100644 --- a/Tactility/Source/app/localesettings/LocaleSettings.cpp +++ b/Tactility/Source/app/localesettings/LocaleSettings.cpp @@ -182,7 +182,8 @@ extern const ::AppManifest manifest = { .id = "tactility.localesettings", .name = "Region & Language", .category = APP_CATEGORY_SETTINGS, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::localesettings diff --git a/Tactility/Source/app/mcpsettings/McpSettingsApp.cpp b/Tactility/Source/app/mcpsettings/McpSettingsApp.cpp index b7e0e0a8..b591e672 100644 --- a/Tactility/Source/app/mcpsettings/McpSettingsApp.cpp +++ b/Tactility/Source/app/mcpsettings/McpSettingsApp.cpp @@ -92,6 +92,6 @@ int32_t appMain(int, char**) { window_manager_remove(window); check(app_event_unsubscribe(&sub) == ERROR_NONE); task_event_group_destruct(&group); return 0; } } -extern const ::AppManifest manifest = { .id = "McpSettings", .name = "MCP Screen", .category = APP_CATEGORY_SETTINGS, .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, .flags = 0, .stack = { .depth = 8192, .desired_memory_capability = 0 } }; +extern const ::AppManifest manifest = { .id = "McpSettings", .name = "MCP Screen", .category = APP_CATEGORY_SETTINGS, .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, .flags = APP_MANIFEST_FLAG_HIDDEN, .stack = { .depth = 8192, .desired_memory_capability = 0 } }; } #endif diff --git a/Tactility/Source/app/notes/Notes.cpp b/Tactility/Source/app/notes/Notes.cpp index 4608624d..48ed9635 100644 --- a/Tactility/Source/app/notes/Notes.cpp +++ b/Tactility/Source/app/notes/Notes.cpp @@ -276,7 +276,8 @@ extern const ::AppManifest manifest = { .id = "tactility.notes", .name = "Notes", .category = APP_CATEGORY_USER, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::notes diff --git a/Tactility/Source/app/power/Power.cpp b/Tactility/Source/app/power/Power.cpp index f193817e..665b77fe 100644 --- a/Tactility/Source/app/power/Power.cpp +++ b/Tactility/Source/app/power/Power.cpp @@ -278,7 +278,8 @@ extern const ::AppManifest manifest = { .id = "tactility.power", .name = "Power", .category = APP_CATEGORY_SETTINGS, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace diff --git a/Tactility/Source/app/screenshot/Screenshot.cpp b/Tactility/Source/app/screenshot/Screenshot.cpp index 6e2a7916..b08bba11 100644 --- a/Tactility/Source/app/screenshot/Screenshot.cpp +++ b/Tactility/Source/app/screenshot/Screenshot.cpp @@ -290,7 +290,8 @@ extern const ::AppManifest manifest = { .id = "tactility.screenshot", .name = "Screenshot", .category = APP_CATEGORY_SYSTEM, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace diff --git a/Tactility/Source/app/systeminfo/SystemInfo.cpp b/Tactility/Source/app/systeminfo/SystemInfo.cpp index 635291d1..430c0591 100644 --- a/Tactility/Source/app/systeminfo/SystemInfo.cpp +++ b/Tactility/Source/app/systeminfo/SystemInfo.cpp @@ -457,7 +457,8 @@ extern const ::AppManifest manifest = { .id = "tactility.systeminfo", .name = "System Info", .category = APP_CATEGORY_SYSTEM, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace diff --git a/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp b/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp index 8e51db22..7893c165 100644 --- a/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp +++ b/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp @@ -215,7 +215,8 @@ extern const ::AppManifest manifest = { .id = "tactility.timedatesettings", .name = "Time & Date", .category = APP_CATEGORY_SETTINGS, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } // namespace tt::app::timedatesettings diff --git a/Tactility/Source/app/webserversettings/WebServerSettings.cpp b/Tactility/Source/app/webserversettings/WebServerSettings.cpp index ccefd035..e5a82627 100644 --- a/Tactility/Source/app/webserversettings/WebServerSettings.cpp +++ b/Tactility/Source/app/webserversettings/WebServerSettings.cpp @@ -424,7 +424,8 @@ extern const ::AppManifest manifest = { .id = "tactility.webserversettings", .name = "Web Server", .category = APP_CATEGORY_SYSTEM, - .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) } + .location = { APP_LOCATION_MEMORY, reinterpret_cast(appMain) }, + .flags = APP_MANIFEST_FLAG_HIDDEN }; } diff --git a/Tactility/Source/settings/McpSettings.cpp b/Tactility/Source/settings/McpSettings.cpp index 4697a4d0..c9658349 100644 --- a/Tactility/Source/settings/McpSettings.cpp +++ b/Tactility/Source/settings/McpSettings.cpp @@ -34,14 +34,14 @@ bool load(McpSettings& settings) { auto mcp_enabled = map.find(KEY_MCP_ENABLED); settings.mcpEnabled = (mcp_enabled != map.end()) ? (mcp_enabled->second == "1" || mcp_enabled->second == "true") - : false; + : true; return true; } McpSettings getDefault() { return McpSettings{ - .mcpEnabled = false + .mcpEnabled = true }; } diff --git a/Tactility/Source/settings/SystemSettings.cpp b/Tactility/Source/settings/SystemSettings.cpp index 8957738e..e6f7c194 100644 --- a/Tactility/Source/settings/SystemSettings.cpp +++ b/Tactility/Source/settings/SystemSettings.cpp @@ -44,7 +44,7 @@ static bool loadSystemSettingsFromFile(SystemSettings& properties) { } auto time_format_entry = map.find("timeFormat24h"); - bool time_format_24h = time_format_entry == map.end() ? true : (time_format_entry->second == "true"); + bool time_format_24h = time_format_entry == map.end() ? false : (time_format_entry->second == "true"); properties.timeFormat24h = time_format_24h; // Load date format diff --git a/Tactility/Source/settings/WebServerSettings.cpp b/Tactility/Source/settings/WebServerSettings.cpp index 91560b16..685261ff 100644 --- a/Tactility/Source/settings/WebServerSettings.cpp +++ b/Tactility/Source/settings/WebServerSettings.cpp @@ -164,7 +164,7 @@ bool load(WebServerSettings& settings) { // Web server settings settings.webServerEnabled = (webserver_enabled != map.end()) ? (webserver_enabled->second == "1" || webserver_enabled->second == "true") - : false; + : true; settings.webServerPort = (webserver_port != map.end()) ? static_cast(parseInt(webserver_port->second, 1, 65535, 80)) @@ -206,7 +206,7 @@ WebServerSettings getDefault() { .apPassword = "", // Empty - will be auto-generated on first use (unless apOpenNetwork) .apOpenNetwork = false, // Default to secured network .apChannel = 1, - .webServerEnabled = false, // Default WebServer OFF for security + .webServerEnabled = true, // Default WebServer ON (simplified family UI: no toggle exposed) .webServerPort = 80, .webServerAuthEnabled = false, // Auth disabled by default .webServerUsername = "", // Empty - will be generated if auth is enabled diff --git a/Tactility/Source/settings/time.cpp b/Tactility/Source/settings/time.cpp index bccb3d18..76982911 100644 --- a/Tactility/Source/settings/time.cpp +++ b/Tactility/Source/settings/time.cpp @@ -75,7 +75,7 @@ std::string getTimeZoneName() { } } } - return "Europe/Amsterdam"; + return "America/New_York"; } bool hasTimeZone() { @@ -105,13 +105,13 @@ std::string getTimeZoneCode() { } } } - return "CET-1CEST,M3.5.0,M10.5.0/3"; // Default: Europe/Amsterdam + return "EST5EDT,M3.2.0,M11.1.0"; // Default: America/New_York } bool isTimeFormat24Hour() { SystemSettings properties; if (!loadSystemSettings(properties)) { - return true; + return false; } else { return properties.timeFormat24h; }