Acknowledged
CIQQA-3113

bug: swipe right on the left side of the screen triggers onKey(KEY_ESC)

I noticed this with my app in simulator (fr955, SDK 8.1.1), and then I checked it with the Input sample and it also reproduces it, so it's clearly a bug both in the simulator and even on real devices (tested on real fr965). A similar bug was already reported 4 years ago: https://forums.garmin.com/developer/connect-iq/i/bug-reports/vivoactive-4s-swipe-identified-as-a-key-pressed

To reproduce:

- run the Input sample from the SDK on fr955 in the simulator.

- swipe right in a way that you touch in the middle or the right side of the screen => correctly, only swipe event is triggered

- swipe right touching in the left side of the screen => onKey(KEY_ESC) is triggered (It's not clear when this happens, in the Input sample it looks like sometimes this only happens every 2nd time you swipe on the left side of the screen)

  • Thanks for the update. 

    Still very frustrating. I have users complaining that water is still causing the app to stop, which is due to this function that I cannot disable. 

    PLEASE HELP GARMIN!

  • B] Swipe right [starting from anywhere but the left side] triggers onBack [bad]

    I just tested with the latest beta fr955 firnware (24.07) [*], and this issue has been resolved. In other words, swiping right from anywhere other than the left edge does *not* trigger onBack() or onKey(KEY_ESC), but only onSwipe(SWIPE_RIGHT), which is good behaviour that matches the native UI. It means a CIQ app can use a right swipe (not from left edge) to do an action like panning a chart, while using right swipe from left edge to pop the current view / close the app (as usual).

    [*] I haven't tested this behaviour in a while, so it could've been fixed much earlier.

    A] Swipe right [starting from the left side] triggers both onBack[] [good] and KEY_ESC [bad!]

    This issue still exists, which is unsurprising as Garmin mentioned it's by design.

  • > this is by design

    Then based on all the arguments made previously, it's not a good design. Specifically I see 2 problems with InputDelegate/BehaviorDelegate:

    A] Swipe right [starting from the left side] triggers both onBack[] [good] and KEY_ESC [bad!]

    [speaking of sim differences: in the sim KEY_ESC is only triggered sometimes, but on a real device, KEY_ESC is always triggered]

    B] Swipe right [starting from anywhere but the left side] triggers onBack [bad]

    Why this is a problem:

    1] it doesn't match the behaviour on a real device. See 3] and 4] below, for example

    2] it makes it hard [or impossible] for devs to ignore touches

    3] it makes it hard [or impossible] for devs to implement device apps which use the BACK key to take a lap [just like a real device], but who also wish to *not* use a right swipe to take a lap. Note that no real device uses a right swipe to take a lap

    4] It doesn't match the behaviour of Menu2 [within a CIQ app]. In Menu2, swipe right from the left side triggers onBack [good], and swipe right from anywhere else does not trigger onBack [also good]. Menu2 works just like the native menus [which is a good thing]

    5] It makes it hard [or impossible] for devs to implement a view where a chart can be panned with left and right swipes [just like the charts in native glances]

    It just results in a user experience which is limited and inconsistent with the native device [and within CIQ itself - e.g. Menu2].

  • Hi Richard,

    I’m more concerned about not being able to disable the right swipe on a real device, as you can with other gestures by just returning true. Water running across the watch face triggers this gesture which negatively affects app operation. 

    Jay

  • This created a long and winding discussion from development, but the conclusion was that this is by design and can not be changed as it is fundamental to the design of the virtual machine. If you notice the simulator not behaving the same as a real device then that is a bug that can be addressed.