- Implement multiple stations support
- Split screen mode
- Implement rotation of the screen (from settings page)
- Need to remove hardcoded height/width values or derived constants
- Use HW rotation for 0+180 and sw for 90deg/270deg
- Version number (commit) in settings page
- User starts setup and configures wifi but not station -> on next boot you have to select wifi again -> probably fixed already
- Station limit reached title is cut
- Smart update of departures like in suntransit storing dictionary as reference
- Search station list moves when clicking due to border appearing
- On boot, turn on backlight only after screen is configured
- Narrower product badges, scrolling in worst case
- In landscape mode we should switch to numbers for tabswitch later, there is more space, calculate that
- Improve split mode 4 stations landscape
- Improve manage station layout for landscape (two columns?)
- Horizontal split view: headers should have same height
- Do not show wrong rotation on boot
- Debug dashboard with task list in settings page
- Brightness setting
- Add boot screen
- Add
update_everytoStateConfigwhich you can set so that the app manager will call update every so often on that screen - Adapt mock data for multiple stations -> it already works but only for select stops.
- Add "hide departures sooner than X min" setting
- Add hide cancelled departures setting
- Animations using lottie
- Choose product types (subway / tram / train / ...) to show for each station you configured
- Clear departure cache smarter: only clear cache of removed stations
- Click on trip to visualize details
- Condensed bold font for product badge?
- Custom button map for keyboard, remove ok button or let it do something
- For initial setup flow just show a variant of the settings page with hints
- LV_USE_PPA
- Network connection indicator for departures page and no spinner but error message if we are not connected
- Scroll reset for departures list after x time of inactivity
- Special split mode for one single station: split mode by product type
- Sync time should happen on first dep screen enter i guess, currently happens on every wifi connect I think?
- Translations (lv_i18n?)
- UI style overhaul
- When exiting manage stations page (back button), we should ask if user wants to save unsaved changes, if any
- Use C++ bindings? https://github.com/aptumfr/lv -> Won't do
- Test framework using python
- Remove cppcheck from prek, it's too messy to run locally due to different builds etc
- Prek
- Move s_last_departures to appmanager or somewhere else, not the screen
- Is there a point in names for timers? I dont think so
- Improve component inclusion - each board should include only its own BSP component -> ESP-IDF limitations
- Get rid of uinetworkblabla type?
- Do not paint the screen in the screen constructor, create a
.createfunction specifically for that in the abstract base class which we can call automatically in transitionTo -> WONTDO - Check dependencies.lock is up to date in CI
- Add boot test: store a "fixture" config and run the simulator until boot, check logs, so that we know config parsing works
- Review FreeRTOS debug configs (
GENERATE_RUN_TIME_STATS,VTASKLIST_INCLUDE_COREID) — are they needed? Can the debug screen expose more data (e.g. per-task CPU%) when they're enabled? - Merge app state with app platform? Not sure
- Migrate to esp_lv_adapter? What about SW/HW rotation?
- Recursive mutex
- Review structure. e.g. dedupe app_state. At which level should we mock?
- Should
.simulator-config.jsonhave 3 variants, one for board? - Use observer pattern? https://docs.lvgl.io/9.4/details/auxiliary-modules/observer/observer.html#overview
- Write storage compatibility check workflow. For PRs load new build with storage sample from old one (need to store fixture)
- Wifi network credentials are stored when wifi is changed with wrong passworg, should store them only if connection succeeds? Or better said: reset if connection fails?
- Support open wifi networks
- Station search in portrait mode looks weird, list does not fill height
- Core dump when changing wifi network and setting the same one - should we disallow it?
- Connect to checkmark for current wifi network is shown
- Allow to go back from station selection UI if one is already configured
- Allow changing password for current network (= we should not disable current selected network)
- Allow 8 characters wifi password
- Settings gear button is unresponsive at times (before first deps are shown)
- Keyboard is too narrow in portrait mode e.g. wifi password input
- Fix station search typing unresponsiveness
- Boot with saved wifi credentials that fail to connect -> we should show an error for that
- Add some padding to the right of station search list - currently the product icons touch the right border & scrollbar
- Do not show cached data after station change when going back to departures
- Station search list, have keyboard separate from list currently keyboard overlaps it which means probably we render more result stations than are visible
- Show overlay behind wifi password popup so that clicks dont get through?
- Scroll when opening settings page in landscape mode -> only for simulator? still broken after changing rotation?
- Two networks with same name, one of which you're connected to -> double selected network
- Show message in place of departures list when fetching fails for a while e.g. 1 min