* Initial plan
* Fix LVGL object deletion issue in SetChatMessage
- Refresh child_count after deleting first_child to avoid using stale count
- Add lv_obj_is_valid() checks before accessing deleted objects
- Prevent duplicate deletion by refreshing child_count before system message deletion
- Ensures last_child validation before scrolling to it
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Address code review feedback on LVGL object deletion fix
- Move last_child retrieval after deletion to avoid stale pointer
- Add child_count > 0 check before scrolling to prevent edge case issues
- Add lv_obj_is_valid() check for last_bubble for consistency
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Final review: LVGL object deletion fix complete
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Remove std::thread wrappers in display callbacks to fix thread safety
Remove detached threads that were calling SetChatMessage from download/upgrade
progress callbacks. The DisplayLockGuard mutex already provides thread safety,
so we can call display methods directly from the callback thread without
spawning additional threads, which were causing race conditions.
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Use Application::Schedule() for display updates in callbacks
Instead of calling SetChatMessage directly from download/upgrade progress
callbacks, queue the updates using Application::Schedule(). This prevents
blocking the network receive task and avoids potential UART FIFO overflow
issues with 4G modems. The scheduled callbacks execute in the main task
thread, maintaining proper thread safety.
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: 78 <4488133+78@users.noreply.github.com>
* Upgrade component version
* update fonts component version
* change lcd display layout from grids to layers
* Update English README as default
* Handle OTA error code
* feat: add support for ESP32-P4-Function-EV-Board with configuration and display handling
* detect wake word model from index.json
* update wait time before entering wifi configure mode
* feat: Enhance ESP32-P4 Function EV Board support with LCD and touch initialization
* feat: Update ESP32-P4 Function EV Board configuration for improved touch and SD card support
* feat: add touch I2C configuration and improve initialization structure
* Remove ESP hosted configuration from defaults
Removed ESP hosted configuration options.
* chore: update documentation for improved clarity
* refactor: remove obsolete files for ESP32-P4-Function-EV-Board and add updated configurations
* refactor: reintroduce ESP32-P4-Function-EV-Board implementation with updated configurations
* refactor: restore esp32_p4_function_ev_board dependency with updated version
---------
Co-authored-by: n2flowjs-bot <n2flowjs@gmail.com>
Co-authored-by: Terrence <terrence@tenclass.com>
* Modify the MIPILCDDISPLAY class
* Added Waveshare ESP32-P4-WIFI6-Touch-LCD-7B third party board
* Add config,json for Waveshare ESP32-P4 series boards
* Fix some errors
* update v2 partition table readme
* feat: Add user only tool
* Add image cache
* smaller cache and buffer, more heap
* use MAIN_EVENT_CLOCK_TICK to avoid audio glitches
* fix: esp_psram_get_size not found in c3
* Bump to 1.9.0
* Adjust dependency components for ESP32-P4
* Add backlight control and touch control to Waveshare ESP32-P4-NANO
* Increase the amount of saved information for Waveshare ESP32-P4-NANO
- Add support for device activation with audio feedback
- Refactor OTA update flow to include activation code handling
- Update asset management for localized sound resources
- Improve error handling and device state management
- Reorganize binary asset includes and CMake configuration