feat: Implement Discord app UI and settings management

- Added MainUI class for displaying voice state, status icon, and buttons.
- Introduced MainUIHandler to manage UI interactions and bridge communication.
- Created SettingsUI for displaying QR code and configuration instructions.
- Implemented SettingsUIHandler to manage settings and web server interactions.
- Developed WebHandler for handling HTTP requests for settings configuration.
- Updated AppRegistry to initialize with the new Discord app descriptor.
- Enhanced InteractionHandler to support keyboard interactions across app switches.
- Updated UIHandler to manage app switching and rendering of app icons.
- Enabled QR code support in LVGL configuration.
This commit is contained in:
GW_MC
2026-02-02 20:47:27 +08:00
parent 12ad5be48a
commit e467951b8c
28 changed files with 1927 additions and 24 deletions

View File

@@ -28,9 +28,10 @@ public:
*
* Sets up necessary event listeners and state.
*
* @param parent_container Parent container for keyboard (typically the screen)
* @return ESP_OK on success, error code otherwise
*/
esp_err_t init(lv_obj_t* app_container);
esp_err_t init(lv_obj_t* parent_container);
/**
* @brief Deinitialize the Interaction Handler
@@ -58,8 +59,8 @@ private:
esp_err_t show_keyboard_for_textarea_(lv_obj_t* textarea);
esp_err_t hide_keyboard_(void);
// Pointers to key UI objects, owned by UIHandler
lv_obj_t* app_container_ = nullptr;
// Parent container (typically screen), reference only
lv_obj_t* parent_container_ = nullptr;
// owned keyboard object
lv_obj_t* keyboard_ = nullptr;
// Currently focused textarea, reference only