Repository navigation
UX improvements - #686
UX improvements#686
Conversation
📝 Walkthrough
Priority: ➖ Normal Merge Risk: 🔵 Low · up to If saving the system-bar settings fails, the Appearance screen can show a selection that was not applied. This is a minor issue that is easy to fix and does not block merge. Pre-merge checks |
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
Tactility/Source/lvgl/SystemBars.cpp (1)
145-154: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low valueAvoid reading the settings file on every resolution change.
systemBarsRefresh()callsloadOrGetDefault()on eachLV_EVENT_RESOLUTION_CHANGED. That call reads the file system while the code holds the LVGL lock. On SD-card devices, a slow read blocks rendering. Cache the settings instate. Reload them only afterAppearanceSettingssaves new settings, for example by passing the new settings to the refresh call.Tactility/Source/app/appearancesettings/AppearanceSettings.cpp (1)
597-612: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueNull the system-bar chip pointers in
destroyWidgets().
destroyWidgets()(Lines 770-795) does not reset the new system-bar pointers. If both orientations are fixed,createSystemBarsCardreturns early. In that casesystemBarsAutoChipandsystemBarsCustomChipkeep their old values. The current code paths do not dereference these pointers after the window is rebuilt. Still, reset them with the other pointers so the "Valid while the window is shown" rule holds.
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
b42e6197-d496-4fb0-b9f3-57613573bc3c
⛔ Files ignored due to path filters (1)
Data/system/fonts/MaterialSymbolsRounded.ttfis excluded by!**/*.ttf
📒 Files selected for processing (57)
.claude/rules/lvgl.md.gitignore.gitmodulesBuildscripts/release-sdk-modules.txtData/system/fonts/MaterialSymbolsRounded.codepointsDevices/lilygo-tlora-pager/device.propertiesDevices/m5stack-cardputer-adv/device.propertiesDevices/m5stack-cardputer/device.propertiesDevices/m5stack-stickc-plus2/device.propertiesDevices/m5stack-sticks3/device.propertiesDevices/simulator/Source/module.cppDevices/waveshare-esp32-s3-geek/device.propertiesDevices/waveshare-s3-lcd-13/device.propertiesDevices/waveshare-s3-touch-lcd-128/device.propertiesDevices/waveshare-s3-touch-lcd-147/device.propertiesDocumentation/ideas.mdDrivers/m5stack-module/source/cardputer_keyboard.cppModules/lvgl-module/generate-icons.pyModules/lvgl-module/include/lvgl/devices/keyboard.hModules/lvgl-module/include/lvgl/icons/names.hModules/lvgl-module/include/lvgl/icons/shared.hModules/lvgl-module/include/lvgl/widgets/focus_container.hModules/lvgl-module/lssModules/lvgl-module/source/devices/keyboard.cppModules/lvgl-module/source/grid_navigation.cppModules/lvgl-module/source/icon_names.cModules/lvgl-module/source/symbols.cModules/lvgl-module/source/themes/lv_theme_material.cModules/lvgl-module/source/themes/lv_theme_material_mono.cModules/lvgl-module/source/widgets/focus_container.cppModules/lvgl-module/themes/material.lssModules/lvgl-module/themes/material_mono.lssModules/lvgl-window-manager-module/include/lvgl_window_manager/window_manager.hModules/lvgl-window-manager-module/source/module.cppModules/lvgl-window-manager-module/source/window_manager.cppTactility/Include/Tactility/lvgl/Statusbar.hTactility/Include/Tactility/settings/LauncherSettings.hTactility/KconfigTactility/Private/Tactility/app/TileGrid.hTactility/Private/Tactility/lvgl/SystemBars.hTactility/Private/Tactility/lvgl/SystemMenu.hTactility/Source/app/TileGrid.cppTactility/Source/app/appearancesettings/AppearanceSettings.cppTactility/Source/app/apppackagelist/AppPackageList.cppTactility/Source/app/launcher/Launcher.cppTactility/Source/app/power/Power.cppTactility/Source/app/terminal/main.cppTactility/Source/lvgl/Lvgl.cppTactility/Source/lvgl/Statusbar.cppTactility/Source/lvgl/SystemBars.cppTactility/Source/lvgl/SystemMenu.cppTactility/Source/service/memorychecker/MemoryCheckerService.cppTactility/Source/service/statusbar/Statusbar.cppTactility/Source/service/webserver/WebServerService.cppTactility/Source/settings/LauncherSettings.cppTactility/Tests/Source/SystemBarsLayoutTest.cppdevice.py
💤 Files with no reviewable changes (3)
- Tactility/Source/service/memorychecker/MemoryCheckerService.cpp
- Tactility/Source/service/webserver/WebServerService.cpp
- Devices/lilygo-tlora-pager/device.properties
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.
🟡 Minor · Restore the stored selection after a failed save. · AppearanceSettings.cpp:593-597
Tactility/Source/app/appearancesettings/AppearanceSettings.cpp:593-597
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRestore the stored selection after a failed save.
savecan returnfalsebefore writing the settings file. The handler still marks the attempted chips as selected, whilesystemBarsRefresh()reloads the stored settings. The controls and system bars can therefore show different selections.🐛 Suggested fix
if (!settings::launcher::save(settings)) { LOG_E(TAG, "Failed to save system bars settings"); + settings = settings::launcher::loadOrGetDefault(); } updateSystemBarsWidgets(ctx, settings); lvgl::systemBarsRefresh();
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
3a73fbcc-d5af-497b-96c4-3c28892b6c52
📒 Files selected for processing (16)
.claude/rules/lvgl.mdDevices/cl32-v02-v03/cl32-v02-v03.dtsDevices/cl32-v02-v03/device.propertiesDevices/cl32-v04/cl32-v04.dtsDevices/cl32-v04/device.propertiesDevices/guition-jc1060p470ciwy/guition,jc1060p470ciwy.dtsDevices/m5stack-tab5/m5stack,tab5.dtsModules/lvgl-module/source/grid_navigation.cppModules/lvgl-module/source/themes/lv_theme_material.cModules/lvgl-module/source/themes/lv_theme_material_mono.cModules/lvgl-module/source/widgets/sliderbox.cppModules/lvgl-module/themes/material.lssModules/lvgl-module/themes/material_mono.lssTactility/Source/app/TileGrid.cppTactility/Source/app/appearancesettings/AppearanceSettings.cppTactility/Source/app/i2cscanner/I2cScanner.cpp
💤 Files with no reviewable changes (2)
- Devices/m5stack-tab5/m5stack,tab5.dts
- Devices/guition-jc1060p470ciwy/guition,jc1060p470ciwy.dts
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.
Because many displays don't display subtle colour changes
Uh oh!
There was an error while loading. Please reload this page.