Cannot capture top right button events in WatchUi.BehaviorDelegate for Venu Sq and Venu Sq 2

I cannot capture top right button events in WatchUi.BehaviorDelegate for Venu Sq and Venu Sq 2 in the simulator.

No events seem to be firing.  

The events for the bottom right button ( onBack() ) fires OK.

Is this a simulator bug?  What about behavior on an actual watch?

  • If I try the SDK's Input sample with a simulated venusq device, pressing the top right button triggers onKey(KEY_ENTER), as I would expect.

    If you are expecting it to also trigger onSelect, it doesn't.

    This is because "touch-first" watches (Venu/Vivoactive) - which require the touchscreen for basic functionality - don't "select" things with the top right button (or any button), they select things with a tap of the screen. If you click on the touchscreen to simulate a tap in the Input sample, you will see that onSelect is triggered.

    This is in contrast to the "touch-optional" 5-button + touchscreen watches (e.g. Forerunner / Fenix), where:

    - 99% of the watch's functionality works without touch

    - things can be selected either by tapping the screen or pressing the top right button

    You can kinda see this in the overview page of the respective manuals:

    Venu Sq:

    https://www8.garmin.com/manuals/webhelp/GUID-1C3C7630-B695-44C3-AF56-949C1D4889FB/EN-US/GUID-E8D90973-F651-4F66-9A08-A8858C2CB98E.html

    Forerunner 955:

    www8.garmin.com/.../GUID-F04730B5-B214-4E08-AA64-61D1C197F35F.html

    Ofc this doesn't mean that you can't use KEY_ENTER to "select" certain things in your own app (depending on what kind of view(s) you are talking about). But if you do, it probably won't match how the native UI works.

  • Thanks .  Problem was that I was using BehaviorDelegate and not InputDelegate.  It was not obvious that BehaviourDelegate also has the onKey() method inherited from the base class InputDelegate.  I switched to InputDelegate to solve the problem.