venu X1 Application menu controls?

Hi, 

I recently downloaded the venu X1, and I cannot figure out how  I can access an in app menu for one of my applications.

Normally it is accessed through the menu button, or holding a button for 2 seconds,  on other watches, but the X1 seems to have missing behaviours ?

back button goes back, swipe right goes back, swipe left does nothing ?

From the X1 user guide,  point 2 should work, but what does swipe mean without a direction, i assume it meant left?

  • During an activity, swipe left to view the music player.
  • When available, select  or swipe to view menu options.
  • Perform each menu selection as a separate action.
  • Normally it is accessed through the menu button, or holding a button for 2 seconds,  on other watches, but the X1 seems to have missing behaviours ?

    The newest touch-first [*] watches - Vivoactive 6, Venu X1, and Venu 4 - don't have a dedicated menu shortcut anymore.

    (i.e. watches with less than 5 buttons where crucial functionality requires the touchscreen )

    DCR obliquely touched on this in his VA6 review, where he said that you no longer hold a button to open the watch settings, but instead it's a submenu of the activity menu.

    When available, select  or swipe to view menu options.
    From the X1 user guide,  point 2 should work, but what does swipe mean without a direction, i assume it meant left?

    Yeah. For the benefit of anyone else reading this, this is the part of the manual you are quoting:

    www8.garmin.com/.../GUID-76DE4728-5749-4F73-A611-B77A796EFE5E.html


     is the action menu indicator, and yes, you are meant to swipe left on it.

    I think this is the culmination of Garmin's years-long efforts to diminish the importance of the menu shortcut. Speaking anecdotally, I'm a runner who uses a 5-button Garmin and most people I run with use 5-button Garmins. But I've talked to so many runners who have no idea that you hold the UP button to open the menu. That's why Garmin has made a couple of changes in the past few years so you don't have to hold UP to open the activity settings menu. They obviously realized that a good chunk of Garmin users had no idea how to change activity settings when the only way to do so was by holding UP.

    Getting rid of the menu shortcut (on touch-first watches) is the logical conclusion. It does make a lot of sense from a discoverability POV to replace it with the action menu indicator (given that so many Garmin users have no idea that there's a menu shortcut in the first place).

    What this means for your app is that if you want to have a context-sensitive menu, Garmin's recommendation is that you display the action menu indicator. When the user swipes left on the indicator, you're *supposed* to then push an action menu (i.e. popover menu which covers half the screen and slides in from the right). But in some cases, app devs (and Garmin itself) will instead push a full-screen menu.

    Ofc the other way to do this is to add your menu as an item in some existing menu in your UI, depending on the context.

    It's too bad Garmin hasn't really explained this, except for a sort of throwaway reference in a CIQ announcement involving Vivoactive 6. Yes, it talks about how the action menu indicator has changed in VA6 and how you should respond to a left swipe of the indicator by pushing an action menu. But it doesn't explicitly say that onMenu is no longer supported, which is a huge change from every other watch that came before it. Every previous watch either had a short/long button press to trigger onMenu, or onMenu was triggered by long-pressing the touchscreen (VA3).

    https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/vivoactive-6-now-available-in-the-connect-iq-sdk-manager 

    https://developer.garmin.com/connect-iq/api-docs/Toybox/WatchUi/View.html#setActionMenuIndicator-instance_function 

    https://developer.garmin.com/connect-iq/api-docs/Toybox/WatchUi/BehaviorDelegate.html#onActionMenu-instance_function 

    https://developer.garmin.com/connect-iq/personality-library/action-views/ 

  • TL;DR

    For CIQ apps on watches that lack a dedicated menu shortcut (Venu 4, Venu X1, Vivoactive 6) but need to offer a context-sensitive / universally-accessible menu:

    1) Call View.setActionMenuIndicator() to display the action menu indicator

    2) In your behavior delegate, override BehaviorDelegate.onActionView() to either:

    2a) push an action menu

    2b) push a full-screen menu


    If you need to know which devices support onMenu, you can:

    1) Look in the device reference, which shows the available buttons for each device:

    https://developer.garmin.com/connect-iq/device-reference/

    Every device which has a menu button supports onMenu. Additionally, Vivoactive 3 lacks a menu button but supports onMenu (by long-pressing the touchscreen), but unfortunately that isn't mentioned here.

    2) More comprehensively than 1) - look in the device library, installed alongside the SDK.

    - Open the ConnectIQ folder on your computer:

    Windows: %APPDATA%\ConnnectIQ

    Mac: $HOME/Library/Application Support/Garmin/ConnectIQ

    Linux: $HOME/.Garmin/ConnectIQ

    - Navigate to ConnectIQ/Devices

    - Each CIQ device has its own folder (e.g. venux1, vivoactive3, vivoactive6), which contains several device-specific files, including simulator.json

    - For any given device, open simulator.json and look at display.behaviors[].id and keys[].behavior. Every device that supports onMenu will either have a display behavior id equal to onMenu or a key with behavior equal to onMenu.

    You can also search all simulator.json files for "onMenu" - this will give you all devices that support onMenu (via button press or touchscreen gesture).

    If you search all simulator.json files for "actionMenuHint", this will give you all devices that *don't* support onMenu, but do support View.setActionMenuIndicator()