Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR extends Artemis' existing Android input path with continuous multi-touch
and long-press drag gestures that cannot be represented reliably by a normal
swipe.
perform_gestureis added alongside the existing input primitives anduses the existing Operator, Validator, MCP, controller, and driver path.
contacts between phases.
long_press_dragmode with explicit start and end points,an initial hold, and an optional delay before release at the endpoint.
Edge dwell uses the same drag mode with an endpoint chosen near an edge.
APK metadata.
Existing click, swipe, text input, transcript/history representation, and action
execution semantics remain unchanged. Results use the existing
ActionResult;this change introduces no global execution receipt or gesture agent.
Compatibility and execution
Helpers that do not advertise the required gesture capabilities return
UNSUPPORTED. Continuous phases and long-press drag require Android API 26+.Multi-touch and continuous input are never emulated as sequential swipes.
perform_gestureis not automatically retried after transport timeout becauseAndroid may already have dispatched the input. This rule is scoped to the new
action; existing action retry behavior is unchanged.
Cancellation releases contacts after the current bounded phase and prevents
subsequent phases from starting. Helper-side busy/release protection applies to
helper gesture injection; it does not arbitrate raw ADB input.
Validation
release, and busy-state tests.
failing cases also failed against baseline
351ca84production code in thesame local environment. The local suite is not fully green.
Real-device validation on A065 / Android 16 (1080 x 2412), using an installed APK
whose SHA-256 matches the bundled artifact:
The native test app recorded actual Android MotionEvents. The Bezier test ended
at normalized
[650, 550]with 0.35 px release-position error and a measured505 ms stationary interval before release for a requested 500 ms delay. The
edge test measured 1,006 ms for a requested 1,000 ms delay. Cancellation requested
about 500 ms into a 1,800 ms hold released at 1,804 ms without starting movement.
These checks cover live input integration; they do not cover LLM task planning.