diff --git a/Documentation/ideas.md b/Documentation/ideas.md index dde54019..f70e25e0 100644 --- a/Documentation/ideas.md +++ b/Documentation/ideas.md @@ -2,19 +2,12 @@ ## Before release -- Create function that tests available memory and logs when it's low: - - Add low memory warning when calling DevelopmentService::handleAppInstall() - - Add low memory warning when calling tt::app::install - - Add statusbar icon that shows low/critical memory warnings - Change ButtonControl to work with interrupts and xQueue - TCA9534 keyboards should use interrupts - GT911 drivers should use interrupts if it's stable - Elecrow Basic & Advance 3.5" memory issue: not enough memory for App Hub - App Hub crashes if you close it while an app is being installed - Fix glitches when installing app via App Hub with 4.3" Waveshare -- Wi-Fi should connect to the access point with the strongest signal over similarly named APs -- Wi-Fi connect app should focus on password field when SSID was passed on -- Auto-select the close button of an app by default on non-touch devices? - Calculator bugs (see GitHub issue) - Try out speed optimizations: https://docs.espressif.com/projects/esp-faq/en/latest/software-framework/peripherals/lcd.html (relates to CONFIG_ESP32S3_DATA_CACHE_LINE_64B that is in use for RGB displays via the `device.properties` fix/workaround) diff --git a/Tactility/Include/Tactility/service/wifi/Wifi.h b/Tactility/Include/Tactility/service/wifi/Wifi.h index 99a023f6..f80d3350 100644 --- a/Tactility/Include/Tactility/service/wifi/Wifi.h +++ b/Tactility/Include/Tactility/service/wifi/Wifi.h @@ -8,7 +8,7 @@ #include "WifiApSettings.h" #ifdef ESP_PLATFORM -#include "esp_wifi.h" +#include #else #include // From esp_wifi_types.h in ESP-IDF 5.2 diff --git a/Tactility/Source/app/wificonnect/View.cpp b/Tactility/Source/app/wificonnect/View.cpp index a9fef193..92c2c048 100644 --- a/Tactility/Source/app/wificonnect/View.cpp +++ b/Tactility/Source/app/wificonnect/View.cpp @@ -192,6 +192,10 @@ void View::init(AppContext& app, lv_obj_t* parent) { std::string ssid; if (optSsidParameter(bundle, ssid)) { lv_textarea_set_text(ssid_textarea, ssid.c_str()); + + if (!ssid.empty()) { + lv_group_focus_obj(password_textarea); + } } std::string password; diff --git a/Tactility/Source/lvgl/Toolbar.cpp b/Tactility/Source/lvgl/Toolbar.cpp index 36c83bda..68e0e5d7 100644 --- a/Tactility/Source/lvgl/Toolbar.cpp +++ b/Tactility/Source/lvgl/Toolbar.cpp @@ -1,5 +1,7 @@ #define LV_USE_PRIVATE_API 1 // For actual lv_obj_t declaration +#include +#include #include #include @@ -140,6 +142,13 @@ lv_obj_t* toolbar_create(lv_obj_t* parent, const std::string& title) { toolbar_set_nav_action(obj, LV_SYMBOL_CLOSE, &stop_app, nullptr); + // If we don't have a touch device, we assume there's some other kind of input like a keyboard, an encoder or button control + // In that scenario we want to automatically have the close button selected so the user doesn't have to press the widget selection + // an extra time for every screen. + if (!hal::hasDevice(hal::Device::Type::Touch)) { + lv_group_focus_obj(toolbar->close_button); + } + return obj; } diff --git a/Tactility/Source/service/wifi/WifiEsp.cpp b/Tactility/Source/service/wifi/WifiEsp.cpp index 9fb77076..9194e92a 100644 --- a/Tactility/Source/service/wifi/WifiEsp.cpp +++ b/Tactility/Source/service/wifi/WifiEsp.cpp @@ -195,7 +195,7 @@ void connect(const settings::WifiApSettings& ap, bool remember) { return; } - // Manual connect (e.g. via app) should stop auto-connecting until the connection is established + // Stop auto-connecting until the connection is established wifi->pause_auto_connect = true; wifi->connection_target = ap; wifi->connection_target_remember = remember; @@ -274,11 +274,12 @@ std::vector getScanResults() { if (wifi->scan_list_count > 0) { uint16_t i = 0; for (; i < wifi->scan_list_count; ++i) { + const auto& scanned_item = wifi->scan_list[i]; records.push_back((ApRecord) { - .ssid = (const char*)wifi->scan_list[i].ssid, - .rssi = wifi->scan_list[i].rssi, - .channel = wifi->scan_list[i].primary, - .auth_mode = wifi->scan_list[i].authmode + .ssid = reinterpret_cast(scanned_item.ssid), + .rssi = scanned_item.rssi, + .channel = scanned_item.primary, + .auth_mode = scanned_item.authmode }); } } @@ -404,7 +405,17 @@ static bool copy_scan_list(std::shared_ptr wifi) { TT_LOG_I(TAG, "Scanned %u APs. Showing %u:", record_count, safe_record_count); for (uint16_t i = 0; i < safe_record_count; i++) { wifi_ap_record_t* record = &wifi->scan_list[i]; - TT_LOG_I(TAG, " - SSID %s (RSSI %d, channel %d)", record->ssid, record->rssi, record->primary); + TT_LOG_I(TAG, " - SSID %s, RSSI %d, channel %d, BSSID %02X%02X%02X%02X%02X%02X", + record->ssid, + record->rssi, + record->primary, + record->bssid[0], + record->bssid[1], + record->bssid[2], + record->bssid[3], + record->bssid[4], + record->bssid[5] + ); } return true; } else { diff --git a/device.py b/device.py index a80696c3..1ef893b4 100644 --- a/device.py +++ b/device.py @@ -228,6 +228,11 @@ def main(device_id: str, is_dev: bool): device_properties = read_device_properties(device_id) with open(output_file_path, "w") as output_file: write_properties(output_file, device_properties, device_id, is_dev) + if is_dev: + dev_mode_postfix = " in dev mode" + else: + dev_mode_postfix = "" + print(f"Created sdkconfig for {device_id}{dev_mode_postfix}") if __name__ == "__main__": if "--help" in sys.argv: