No InputDelegate in simulator on "Edge 820 / Explore" with SDK 3.0.4

Hi,

with SDK 3.0.4 an inputdelegate is no longer recognized for "Edge 820 / Explore" in simulator. So a tap (with the mouse on the simulator device screen) has no effect.
Using SDK 2.4.9 tapping in the simulator works fine for "Edge 820 / Explore".
For other touchable devices (i.e. Edge 1000 or Edge 1030) the are no problems with inputdelegate in the simulator using SDK 3.0.4.
Is this a known bug in the simulator?

Regards Werner
  • Hi,

    I'm trying to reproduce this issue. I have installed both 2.4.9, and 3.0.4, and I have run the "Input" sample project that can be found in your SDK's "samples" folder. Using this project I have not been able to find any difference with a mouse click on the screen of the Edge 820/Explore simulator.

    If you run the "Input" sample project and tap the screen with the mouse, you should see this:
    CLICK_TYPE_TAP
    ON_SELECT
    NO_EVENT

    *(The third line might be different depending on if you clicked on menu or back before clicking on the screen)
    If you are getting something other than that, let me know.

    If it was in your own project, it may be helpful if you post a code snippet of the code that is failing to be executed.

    Stephen
  • Hi Stephen,

    using the "Input" sample project everything works fine. But the "Input" sample has App Type "Watch App". Changing App Type to "DataField" there is the same behavior as in my app.
    I also changed "View" to "DataField" in InputView.mc to get it running.

    class InputView extends WatchUi.DataField {
    function initialize() {
    DataField.initialize();
    View.initialize();

    When clicking onto the 820 screen i get
    NO_ACTION
    NO_BEHAVIOR
    NO_EVENT

    When clicking onto the 1030 screen i get
    CLICK_TYPE_TAP
    NO_BEHAVIOR
    NO_EVENT


    Werner
  • What happens on the actual device (the 820)? onTap isn't allowed on all touch devices in Data Fields (none of the watches for sure), so it's possible that this was a bug fix in the sim.
  • Hi,

    on my Edge 1030 it works fine and the Garmin Programmer's Guide says it is possible for datafields.
    See section "User Interface ->Built In Handlers ->Data Field"

    Data Field

    On Devices with touch screen support, an input delegate can be used to accept input. Only the onTap() behavior is supported and will be triggered when the user touches a point inside the data field when it is active on the screen. The behavior delegate should be the second element of the array that is returned from getInitialView as with other app types.



  • But that's known to be incorrect, as it's not all touch devices. For example, the vivoactive line doesn't allow it. They were going to update the doc, but maybe that's still in the works. It's known to work on the e1000 and e1030, but not sure about the 820. Maybe someone with an 820 can try it
  • I just installed 3.0.5.

    In the SIMULATOR: The onTap() function still works in the SIMULATOR for the Edge 1000, Explore and 1030 devices. And still DOES NOT WORK on the Edge 820

    However, the datafield does respond to onTap() screen taps on the actual EDGE 820 device itself.

    So this is still a bug in the simulator.
  • This is fallout from the fix for this issue. I have pushed a fix, but it won't make it in for the next release.

    While I don't normally recommend hacking your SDK install, the fix is trivial. If you open ${SDKROOT}/bin/devices.xml in a text editor, look for these lines:

    <image filename="edge_820.png">
    <display id="TOUCH" shape="rectangle">


    Update the second line as follows:

    <image filename="edge_820.png">
    <display id="TOUCH" shape="rectangle" data_field_input="TRUE">


    The next time you start the simulator, it should handle onTap() for data fields with the edge820.

    Travis
  • Hi Travis,

    thanks for the workaround.

    Werner