* TwoButtonExtened mirrors TwoButton but added joystick functionality
* basic ui navigation with a joystick
settings->joystick.enabled setting added and SETTINGS_VERSION
incremented by one in InkHUD/Persistence.h
in seeed_wio_tracker_L1_eink/nicheGraphics.h enable joystick and
disable "Next Tile" menu item in
implement prevTile and prevApplet functions in
InkHUD/WindowManager.h,cpp and InkHUD/InkHUD.h,cpp
onStickCenterShort, onStickCenterLong, onStickUp, onStickDown,
onStickLeft, and onStickRight functions added to:
- InkHUD/InkHUD.h,cpp
- InkHUD/Events.h,cpp
- InkHUD/Applet.h
change navigation actions in InkHUD/Events.cpp events based on
whether the joystick is enabled or not
in seeed_wio_tracker_L1_eink/nicheGraphics.h connect joystick events to
the new joystick handler functions
* handle joystick input in NotificationApplet and TipsApplet
Both the joystick center short press and the user button short press can
be used to advance through the Tips applet.
dismiss notifications with any joystick input
* MenuApplet controls
allows menu navigation including a back button
* add AlignStickApplet for aligning the joystick with the screen
add joystick.aligned and joystick.alignment to InkHUD/Persistence.h for
storing alignment status and relative angle
create AlignStick applet that prompts the user for a joystick input and
rotates the controls to align with the screen
AlignStick applet is run after the tips applet if the joystick is
enabled and not aligned
add menu item for opening the AlignStick applet
* update tips applet with joystick controls
* format InkHUD additions
* fix stroke consistency when resizing joystick graphic
* tweak button tips for order consistency
* increase joystick debounce
* fix comments
* remove unnecessary '+'
* remap joystick controls to match standard inkHUD behavior
Input with a joystick now behaves as follows
User Button (joystick center):
- short press in applet -> opens menu
- long press in applet -> opens menu
- short press in menu -> selects
- long press in menu -> selects
Exit Button:
- short press in applet -> switches tile
- long press in applet -> nothing for now
- short press in menu -> closes menu
- long press in menu -> nothing for now
---------
Co-authored-by: scobert <scobert57@gmail.com>
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
* Allow observers to respond to AdminMessage requests
Ground work for CannedMessage getters and setters
* Enable CannedMessage config in apps for InkHUD devices
* Migrate the InkHUD::Events AdminModule observer
Use the new AdminModule_ObserverData struct
* Bare-bones NicheGraphics util to access canned messages
Handles loading and parsing. Handle admin messages for setting and getting.
* Send canned messages via on-screen menu
* Change ThreadedMessageApplet from Observer to Module API
Allows us to intercept locally generated packets ('loopbackOK = true'), to handle outgoing canned messages.
* Fix: crash getting empty canned message string via Client API
* Move file into Utils subdir
* Move an include statement from .cpp to .h
* Limit strncpy size of dest, not source
Wasn't critical in ths specific case, but definitely a mistake.
* Erase InkHUD settings on factory reset
* Documentation
* Captialn't
Lower case m. Also move the include statement to .cpp, because it doesn't really need to be in the .h
* chore: todo.txt
* chore: comments
* fix: no fast refresh on VME290
Reverts a line of code which was accidentally committed
* refactor: god class
Divide the behavior from the old WindowManager class into several subclasses which each have a clear role.
* refactor: cppcheck medium warnings
Enough to pass github CI for now
* refactor: updateType selection
* refactor: don't use a setter for the shared AppletFonts
* fix: update prioritization
forceUpdate calls weren't being prioritized
* refactor: remove unhelpful logging
getTimeString is used for parsing our own time, but also the timestamps of messages. The "one time only" log printing will likely fire in unhelpful situations.
* fix: " "
* refactor: get rid of types.h file for enums
* Keep that sneaky todo file out of commits