Using onPress to go to watch face settings menu

Long shot. Browsing the store I noticed a watch face that claims to go to watch face settings with press and hold. I can't remember the watch face, but tried to implement it like this:

public function onPress(clickEvent) {
    if(ttrtouchandhold>-1) { // enabled
      var coor = clickEvent.getCoordinates();
      var cx = width/2 - width/10;
      var cy = height/2 - height/10;
      var cwidth = width/5;
      var cheight = height/5;
      warning("Click on "+coor[0]+","+coor[1]+" Center is "+cx+","+cy+" width="+cwidth+", height="+cheight);
      if(coor[0]>cx&&coor[0]<cx+cwidth&&coor[1]>cy&&coor[1]<cy+cheight) {
        warning("center press");
        $.timetorecoverApp.getSettingsView();
        //WatchUi.pushView(new $.ttrSettingsMenu(),new $.ttrSettingsMenuDelegate(),WatchUi.SLIDE_IMMEDIATE);
        return true;
      }
   [...]
}
$.timetorecoverApp.getSettingsView(); does nothing
WatchUi.pushView(new $.ttrSettingsMenu(),new $.ttrSettingsMenuDelegate(),WatchUi.SLIDE_IMMEDIATE); returns error as aspected:
Error: Unhandled Exception Exception: Page control not allowed in current app type (or mode) - Watch Face
I wonder is there any way to achieve this?
 
  • long press the menu button (maiden name: up)

  • $.timetorecoverApp.getSettingsView(); does nothing

    Of course it doesn't, as that function simply returns your settings view (and delegate) - it doesn't do anything with them. The framework calls it when the user accesses watchface settings through the standard UI, and it's the framework that actually makes use of the settings view.

    There isn't any way to programmatically launch watchface settings afaik.

    Browsing the store I noticed a watch face that claims to go to watch face settings with press and hold

    Is it possible those instructions were for Vivoactive 3?

    Vivoactive 3 does not have a menu button, and the way to access a context-sensitive menu on that watch is to long-press the screen.

    Otherwise, the only thing I can think of is *maybe* the watchface has a companion device app which:

    - is launched via long press

    - has its own UI and storage for the watchface settings

    - communicates the watchface settings to the watchface via complication(s)

    I'm not aware of any watchface in the store like this, but it isn't impossible. It would actually kind of be an interesting idea, although idk how many people would be willing to install a whole other app just to make opening settings slightly faster. I also don't know if there's some kind of limit to the length of a string returned by a complication, which would limit the length of an encoded settings string. (I know there's at least one watchface / device app combo which encodes slightly complex information in a complication string that's meant to be decoded by the watchface, as opposed to being directly displayed on the screen.)

    Ofc the other problem with that approach is that the watchface and device app would have to be kept in sync, as the settings definition changes for the watchface.

    Seems pretty impractical, so I have a feeling that's not what's happening here.

  • long press the menu button (maiden name: up)

    Not everyone has a 5-button watch and I bet OP already knows how to access watch face settings, they are specifically asking how to do it by pressing and holding the touchscreen.

  • Exactly, but I guess it's not possible and best is to divide the display in sections to be able to change settings pressing and holding the sections. I'll start testing what seems logical from a user point of view. 

  • onPress is only on touch devices with complications, and is typically used to open the glance for what you are pressing.  Press HR on the screen, , and see that glance.

    On devices settings are done from menu>watch face and customize (sometime a pencil icon)..  While you are doing a pushView for settings while the WF is running, you can't interact with it.  Here's a simple sample with on device settings (works on about any device) and onPress for HR (on devices with touch and complications)

    The only on device setting if to show a leading 0 for hours <10.

    https://forums.garmin.com/developer/connect-iq/f/discussion/349473/simple-example-wf-that-shows-a-bunch-of-things

  • Again that's not my question. I already have ondevice settings build, my question is to access them using the only possible user interaction directly from the watch face for touch screen devices. For example on Venu 3 it's a pain for users to get to the settings that matter.

  • Understand that on device settings were done to mimic how they work for native watch faces (those that come with the device).  When running a watchface , the only input the watch face can see is onPress, and then only devices with  touch and complications   Your other option is to use app-settings on the mobile app or with Garmin express. The sample I mentioned shows that for colors.

  • I already implemented all those options and now I want to add ease of use to those devices with touch and complications.

  • The problem is the limits on view and input while a watch face is running.  You could do something like toggle a setting with onPress is at a specific screen location, but that's about it.

  • For example on Venu 3 it's a pain for users to get to the settings that matter.

    Honestly it's a pain on every watch afaik.

    e.g. 5-button watch like Forerunner/Fenix:

    - Hold UP for menu

    - Press START to select Watch Face

    - Press START to open menu

    - Press DOWN to scroll to Customize

    - Press START to select Customize

    That's 5 button presses just to open the watch face settings menu (and that applies to both native faces and CIQ faces). If you use touch you can reduce that to 4 touches and button presses in total.

    It's no wonder that users always complain that Garmin's UI is unintuitive and clunky, and it's unsurprising that Garmin has been making changes to the UI for the past few years. Said this many times, but I know so many runners who have no idea that you hold UP to open a menu - they never change settings on the watch, they just use their running watch as a basic strava syncing machine. Also, ever since Garmin added "real-time settings" in the Connect app, technically you never have to open settings on the watch itself, unless you wanna change something while you're out running without a phone, or you need to change a setting which is unavailable in Connect (such as...watch face settings).

    Btw do you have a link to the watchface which claims to open settings via long press? I'm just kinda curious what it says and does.