Skip to content

Add hold-to-delete with a red semicircle and animated exit - #8

Merged
danspark merged 4 commits into
mainfrom
codex/tennis-watch-hold-delete
Sep 13, 2026
Merged

danspark merged 4 commits into
mainfrom
codex/tennis-watch-hold-delete

Conversation

@danspark

@danspark danspark commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Swiping up raises a red semicircle with a dark trash icon over the score, stopping at the screen midpoint. A continuous one-second hold confirms deletion with an 80ms vibration.

The deleted match then sinks and fades into the trash over 180ms. The remaining match fades in while the semicircle recedes over 220ms. This downward exit makes the old match's removal visible before its replacement appears.

Releasing early, pulling back, adding another finger, or backgrounding the app before confirmation cancels the hold. Continued contact cannot delete another match. Interrupting the exit restores the selected remaining match at full opacity. Left/right navigation stays the same. Disabled system animations show the result immediately after the full one-second hold.

Validation: the signed Release APK builds and all 104 tests pass. The complexity gate improves from 12 to 10 against main. Wear OS 5 emulator checks cover hold cancellation, confirmation before release, continued contact, interruption during both exit and reveal, scoring controls, navigation, persistence, and disabled animations. Interrupted and completed transitions were compared with the resting match capture to check opacity and position. Android's vibrator service recorded the confirmation request; physical Galaxy Watch 5 Pro testing remains outstanding.

Red deletion semicircle at the screen midpoint

The recording shows early release canceling, a confirmed downward exit, and navigation afterward. Video is uploaded with GitHub CLI's --attach and stays outside Git.

delete-motion.mp4

Raise a red semicircle with a dark trash icon to the screen midpoint while
keeping the score in place. A continuous one-second hold deletes the match
and requests an 80ms vibration; early release, pulling back, or interruption
cancels the pending deletion. One touch can confirm at most once.

Use monotonic time so the confirmation delay remains independent of system
animation settings. The Release build and 104 tests pass. Wear OS emulator
checks cover cancellation, repeated contact, persistence, disabled animations,
and the native vibration request. The CRAP gate improves from 12 to 10.
Record the red semicircle geometry, continuous confirmation hold, and
vibration in the product and design references. Refresh the native delete
preview and verification results so they describe the current interaction.

Link the recording uploaded with gh --attach to PR #8. Keep video files
outside Git while preserving the screenshot and reproducible behavior notes.
Keep the old match visible through confirmation, then move it downward and
fade it into the raised red semicircle. Reveal the remaining match only after
the deleted score disappears, while the semicircle returns below the screen.

Restore the selected match, position, and opacity if the app interrupts either
animation phase. Share Android's animation duration setting between fades
and movement; the one-second hold and vibration still confirm the action.

The Release APK builds and 104 tests pass. Wear OS emulator checks cover the
normal transition, early cancellation, interruptions in each phase, scoring
controls, navigation, persistence, and disabled animations. Resting captures
match after completed and interrupted transitions.
@danspark danspark changed the title Confirm watch match deletion with a one-second hold Add hold-to-delete with a red semicircle and animated exit Sep 13, 2026
Link the native Wear OS recording uploaded through gh --attach and document
the transition checks. Completed and interrupted animations restore the same
resting match pixels, including with large text and disabled animations.

Keep the video outside Git and preserve the existing static score captures.
@danspark
danspark merged commit e9dfef1 into main Sep 13, 2026
2 checks passed
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