Skip to content

Conversation

78
Copy link
Owner

@78 78 commented Sep 10, 2025

This pull request refactors the display asset and theme management system to use a new LVGL-based theme architecture, improving modularity and flexibility for handling fonts, emoji collections, and display skins. It replaces previous raw pointer usage with smart pointers and centralizes theme management, making it easier to apply and update display styles and assets. The changes also update board-specific display code to use the new theme API.

Theme and Asset Management Refactor:

  • Migrated display asset handling to use LVGL-based theme management, including new files for theme, font, image, and emoji collection handling in the build system (main/CMakeLists.txt). [1] [2]
  • Refactored Assets class to use smart pointers for fonts and emoji collections, and applied assets directly to LVGL themes instead of raw pointers. Added parsing and application of skin colors and images from asset data. [1] [2] [3] [4]

Theme Application and Display Update:

  • Updated display classes and board-specific display setup code to use the new LvglThemeManager and apply themes via theme objects, replacing previous string-based theme selection. [1] [2] [3] [4]

Device Status Reporting:

  • Changed device status JSON reporting to use the theme name from the theme object, ensuring accurate theme identification. [1] [2]

Codebase Improvements:

  • Added helper for parsing color strings to LVGL color types and removed obsolete manual cleanup logic for fonts and emoji collections in Assets. [1] [2]

Include and Dependency Updates:

  • Updated includes in board and asset source files to reference new LVGL theme components. [1] [2] [3] [4]

Let me know if you want to dive deeper into how the new theme management works or how to use the new APIs for future display features!

@78 78 merged commit 4048647 into main Sep 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant