Skip to content

ui: Add a generic Related Events plugin#4767

Open
ivan-chong wants to merge 12 commits intomainfrom
dev/ivankc/generic-related-events-plugin
Open

ui: Add a generic Related Events plugin#4767
ivan-chong wants to merge 12 commits intomainfrom
dev/ivankc/generic-related-events-plugin

Conversation

@ivan-chong
Copy link
Contributor

@ivan-chong ivan-chong commented Feb 11, 2026

This abstracts the logic from AndroidInputLifecycle into a new plugin which can be more generically consumed by other plugin creators who wish to represent related events with common utilities to create a tab for organisation and navigation of details, as well as drawing arrows.

The RelatedEvents plugin exposes

  • A generic arrow_visualiser which draws arrows between two points on the track
  • An overlay which handles drawing of these arrows between connections built from tracks, ts and depths
  • Interfaces for RelatedEvents and Relations which are used by the above visualisation, as well as for creating tabs to list the related evens and provides navigation and pinning utils

This plugin allows the user to select an input-related slice and
understand the lifecycle of that event from the initial touch event to
the frame.

There are two main features which this plugin provides:

1) Visualisation of the input lifecycle as "flows" on the UI. This
   allows the user the ability to trace the lifecycle visually and
easily correlate the events which contributed to a Frame, and vice
versa.

2) It also presents the latency information as a table which allows the
   user to inspect the total latency of the event lifecycle, as well as
its constituent stages. This allows the user to quickly diagnose which
stage is causing issues.

This is accompanied by a tab which allows toggling of the flows per
channel (the visualisation defaults to showing a single lifecycle
channel at a time for performance and visual clutter reasons). It also
allows easy pinning of tracks for a given lifecycle and input channel.
The latency table is also shown, with links which allow the user to
select particular input events of interest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant