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)

  • +1 for this. I use swipes to increment/decrement values. Swiping right from too far on the left side of the screen results in closing the app. I only want the physical button to close the app - it's currently not possible to prevent this behavior despite returning true in onSwipe(). The key event type and key are identical regardless of whether this faulty swipe is performed or the physical button is pressed. Because they are indistinguishable, the only workaround seems to be to not even use the physical back button (KEY_ESC) to exit the app. This might be acceptable if it weren't incredibly confusing to end users! What is the alternative here?

  • 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