Android tap Row
android_tap_rowTap a relative position inside a list row to activate controls lacking identifiers, with counter-based verification to confirm the action.
Instructions
Tap at a RELATIVE position inside one visible list row reported by android_ui_rows: a 0-based row index plus x/y as fractions of that row's frame (0 = left/top edge, 1 = right/bottom, default 0.5 = row center). This is the list-app way to reach per-item controls that are NOT identifiable elements — an icon-only like or bookmark button inside the row subtree, commonly an ImageView with no resource-id and no content-desc. The row frame comes from a FRESH dump, so no absolute screen coordinate is ever guessed or remembered. Safety gate: the row is re-located in the current hierarchy and an out-of-range index FAILS (it never clamps to the last row); a tap on a real phone has real consequences (likes, posts, purchases), so with expect_count={key,delta} the tool verifies the action by re-reading the row label after ~800 ms and checking the counter moved exactly delta (+1 or -1) — and if the key is not among the row's parsed counters the tap is REFUSED before it happens (never probe a control to discover what it does). Without expect_count the tap still happens (an explicit row-relative position IS the identification) but nothing is verified — prefer expect_count whenever the row label carries counters. The verified count change is the confirmation: do not screenshot-and-compare pixels.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Horizontal position inside the row frame as a fraction 0..1 (0 = left edge, 1 = right edge). Default 0.5 (center). A right-side action button is often near 0.9. | |
| y | No | Vertical position inside the row frame as a fraction 0..1 (0 = top, 1 = bottom). Default 0.5 (center). | |
| row | Yes | 0-based row index exactly as reported by android_ui_rows. Out-of-range FAILS — re-run android_ui_rows, never tap a remembered position. | |
| serial | No | Target device serial from android_devices. Defaults to the currently streamed device, else the only connected one. | |
| expect_count | No | Verify the action by the target counter moving exactly delta: {key: "<counter key from android_ui_rows.counts>", delta: +1 | -1}. After the tap the row label is re-read and the check is reported as countCheck.verified — the only reliable confirmation a list app offers. The tap is REFUSED before it happens when key is not among the row's parsed counters (an unidentifiable control is never probed). |