Skip to content

RumUserActionDetector should detect other gestures by default #686

@orevial

Description

@orevial

Feature description

Flutter GestureDetector and InkWell both support a wide range of gestures to be detected without any additional user implementation :

onTap
onDoubleTap
onLongPress
onTapDown
onTapUp
onTapCancel
onSecondaryTap
onSecondaryTapUp
onSecondaryTapDown
onSecondaryTapCancel

Today RumUserActionDetector only supports onTap events which is really nice, but not enough when going further with an application. The long press, for example, is a common scenario in a mobile environment.

Note that scrolling in lists or other scrollable elements could also be detected and sent to Datadog (RumActionType.scroll exists but AFAIK it is never populated). Although this could probably be another issue entirely depending on how you want it to be separated.

Proposed solution

I guess RumUserActionDetector method _onPointerUp could be tweaked a little bit to handle more touch scenarii, but I'm not sure exactly how.
It would also means that:

  • Detection of the widgets down the tree should probably be adapted to support those events, e.g.:
    if (widget is InkWell) {
      if (widget.onTap != null) {
        elementName = 'InkWell';
        searchForBetter = true;
        searchForText = false;
      }
    }
    wouldn't work well.
  • Datadog available range of actions could be extended : from enum RumActionType { tap, scroll, swipe, custom } to enum RumActionType { tap, longTap, doubleTap, ..., scroll, swipe, custom }

Other relevant information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions