Hi, I thought I'd try to contribute something tiny back to the dev community for a change.
I've forked and updated the Dynamic Menu CIQ class by Dave Baldwin:
https://github.com/flowstatedev/Dmenu
Dynamic Menu is a class that extends the CIQ1/2 Menu class with the following functionality (similar to CIQ3 Menu2):
- Menu items support sublabels
- Insert/update/delete items on the fly
- Add items other than text (e.g. icons) by overriding draw() in an item subclass.
What I added (not much):
- Fixed incomplete animations, which made the menu look funny/misaligned after scrolling, especially on older watches
- Fix intermittent crash
- Add proper touchscreen scrolling support
-- Swipe up/down to scroll
(The original DMenu would force you to swipe left/right on certain old touchscreen devices, which is not intuitive for a vertically-oriented menu)
-- Tap above/below center item to scroll, just like native menus in old touchscreen watches like Vivoactive and FR630.
This is especially important for Vivoactive, because VA does not even support up/down swipes.
I really liked this class because it allowed me to provide a similar settings menu UX for CIQ1/2 devices and CIQ3 devices, in the same app. (Although I did use Menu2 for the CIQ3 devices.)
I hope others will find this useful in some way. If something better exists, I'd like to hear about it, too.