Skip to content

Add replay button to timer completion popup#8

Open
sirgeb27 wants to merge 3 commits into
coredevices:masterfrom
sirgeb27:add-replay-button
Open

Add replay button to timer completion popup#8
sirgeb27 wants to merge 3 commits into
coredevices:masterfrom
sirgeb27:add-replay-button

Conversation

@sirgeb27
Copy link
Copy Markdown

Summary

Adds a replay button (SELECT/middle) to the "Time's Up!" popup, which
restarts the timer with its original duration. The existing UP=snooze
(1 min) and DOWN=dismiss buttons are unchanged.

Use case

When using timers for repetitive actions — holding stretches, power
hours, interval training — the current flow requires two button presses
to restart: dismiss the popup, then navigate back to the timer and
press play. The replay button reduces this to one press from the
completion screen.

Changes

  • src/popup_window.c — load/destroy replay_icon; assign to
    BUTTON_ID_SELECT on the action bar
  • src/popup_window.h — updated PopupWindowSelectClick typedef to
    pass CountdownTimer* (consistent with PopupWindowUpClick)
  • src/main.cpopup_window_replay_timer_callback() restarts the
    timer using its original duration via countdown_timer_get_duration()
  • package.json — registers IMAGE_REPLAY resource
  • resources/images/action_bar_icon_replay.png — circular arrow icon

Notes

The SELECT button callback slot was already scaffolded in
PopupWindowCallbacks with a null-check but unused. This PR fills it.

Aware of #7 (popup layout overlap on taller screens) — that fix is
complementary and doesn't conflict with this change.

sirgeb27 and others added 3 commits May 13, 2026 23:45
Adds a circular-arrow icon to the SELECT (middle) button on the "Time's
Up!" popup, which restarts the timer with its original duration. The
existing UP=snooze and DOWN=dismiss buttons are unchanged.

Also registers the IMAGE_REPLAY resource and fixes pbi8 -> bitmap type
for CloudPebble compatibility.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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