MenuInputDelegate vs InputDelegate (TouchScreen)

Hi -

I just realised that one of the possible reasons that my app is not recognising the "ENTER" key on the VA when in a Menu is that it was using a MenuInputDelegate instead of the InputDelegate.

on the Simulator, it works correctly (but I think this is a bug)
Steps to reproduce
1) Start activity (press enter key)
2) Pause Activity (press enter key)
3) wait x seconds for the Save/Discard menu to come up
4) User presented with option so Resume / Save / Discard the activity

What happens in the SIM
I press the ENTER Key ( the menu is on the resume menu option), activity resumes. (note that when this happen, I do not see the ENTER key being pressed. no sys.println on the console showing physical key is pressed)

I tap on the resume menu option. Activity resumes

What happens on the watch.
When users press the ENTER key, nothing happens

When user taps on the screen (on the resume menu option), the activity resumes.

Question:
What's the correct method to enable the ENTER key to be utilised during a menu selection (MenuInputDelegate).
The same code works on NON-Touchscreen devices whereby the ENTER key is used to select the menu option.

Thanks
  • I have an app for both the vivoactive and 230, and I don't quite understand your question.

    I use KEY_ENTER to pause the recording, and then display my own menu with "Resume/Save/Discard".

    On the va, it's like other va menus - swipe to what you want and do a screen tap (The "enter" key does nothing). On the 230, use the up/down keys to pick something, and press enter, as screen taps make no sense without a touch screen and just leave finger prints on the screen! :) ). And on both, I handle "onBack()" as that will also make a menu go away.
  • as a 3rd party app, I think what u and me are doing is the same. Presenting a menu option.
    As I understand it, the menu option on a VA Is present as 1 item per screen. Swipe to get to the option u want then tap to select.

    What I am hearing is that (I'm asking the user for a video - hope he will oblige) is that he can press the KEY_ENTER to resume an activity within a native garmin app. Hence, my question was how is this behaviour done.

    Like brian said - unless I use a custom view fornthe VA and do the same/Resume/discard as a view where I can still intercept the LEY_START.

    Eg: for native run app
    1)Start activity (key_Start)
    2) pause activity (KEY_START)
    3) what is shown here on the watch screen? Menu options? A 3 layout view with Save/discard/Resume all shown on the screen?
    4) press key_start. What happens here? Activity resumes?(that's one of the reports) or nothing happens?
  • 1)Start activity (key_Start)
    2) pause activity (KEY_START)
    3) what is shown here on the watch screen? Menu options? A 3 layout view with Save/discard/Resume all shown on the screen?

    A brief summary of the activity, a trash can icon and a text label that says 'Save' appear. If you wait a few more seconds, a 'Press to Resume' message appears and an arrow points to the start button on the right edge of the device.

    4) press key_start. What happens here? Activity resumes?(that's one of the reports) or nothing happens?

    The activity resumes (just as the text indicates should happen).

    The view that appears is a custom view. It is not a menu as you see on other devices (like the fr920xt).
  • Thanks Travis...
    Your description matches perfectly with the screenshot that the user kindly provided to me. It's a custom view, hence it can still utilise the Activity/START Key.



    I don't think I'm going to replicate that and add (possibly add) code bloat.

    It will be what it will be as part of a Menu system and default option is to Resume. This should render the feedback that users want the touchscreen to be LOCKED during an activity as water/sweat will cause the touchscreen to register input and accidentally discard / save the acvitity.

    https://forums.garmin.com/showthread.php?333180-Too-easy-to-accidentally-SAVE-or-DISCARD-an-activity-(workaround)

    Since my app doesn't present that as a view (but as menu option) and you physically have to swipe to the discard, then swipe again to confirm the discard, it's fairly hard to accidentally discard the session I think.

    But I will still want to lock the screen in some sense, so that it will disregard the MENU Key.