Timer: guard Resume by lifecycle state and use Restart after completion
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Start with the timer state and controls in Sources/StageKit/Views.swift, AppCoordinator.swift, Core.swift, QuickControls.swift, and StageKitController.swift; compare the existing compact-control and menu guards. Add idle and finished transitions to the timer-owner checks, then repeat both native reproductions with sound safely controlled. Done means all entry points agree on transport state, Restart follows the normal visible start path, and the installed build and restoration are recorded.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Outcome and priority
P2 functional defect. Timer controls should describe and perform the next valid action consistently on the page and floating window.
Native reproduction
Preview 2.3.0, build 20260928054038, clean source 00be555139f87d4557f48fcffc132b8621c251a2; macOS 26.5.1 (25F80), built-in display. Verified through Copy build details in the running app and bundle metadata.
Idle/reset: Open Annotate → Break timer with 5 minutes, stopped and hidden. Resume is enabled beside Start break. Click Resume: it becomes Pause and the preview counts down (04:53 observed), while the page still says Off and no timer window opens.
Finished: Set 0.1 minutes and turn the chime off for a synthetic test. Start break correctly opens a timer. At 00:00, its floating control says Restart. Return to the page: it says Resume. Click it: the timer stays at 00:00 and the UI does not change.
Normal Start opening the window is a useful passing comparison. The test restored 5 minutes, chime on and stopped/hidden state.
Source owner
The main page enables the secondary action based only on timerRunning. pauseResumeTimer marks a session started without the normal show/admission path. Countdown.resume refuses zero remaining time. Existing compact control guard and menu guard show the intended distinction.
Chosen behaviour
Use one transport state across entry points: Start for idle/reset, Pause for running, Resume for paused, Restart for finished. Guard Resume in the coordinator as well as views. Start/Restart uses normal admission, activity tracking and visible-window presentation. Hide/reopen preserves a running or paused session; it does not reset it. A duration edit during pause configures the next Start/Reset, preserving remaining time until then.
Acceptance
- Idle/reset cannot Resume a hidden new countdown or start a periodic update timer.
- Finished offers a working Restart; no enabled Resume no-op.
- Paused Resume preserves remaining time. Restart uses configured duration and opens the visible timer through the normal start path.
- Page, quick panel and floating transport controls resolve the same state. The existing Timer shortcut keeps its visibility-toggle meaning; it must not become Pause/Resume.
- Hide/reopen preserves position and time; independent Draw/Persona/Present jobs remain intact.
- Add idle and finished transitions to the timer-owner checks, then repeat both native reproductions with sound safely controlled.
- Record signed installed build and restoration.
Coordination
Second-pass request under #164/#134. #21 owns physical-display placement and receiver checks; this request fixes transport lifecycle without duplicating that work.
- Lingua principale
- Swift
- Stelle
- 0
- Fork
- 1
- Merge medio
- 12h 29m
- PR unite (30g)
- 201
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Ship-Work/workbench
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue help wanted
Difficoltà 2/5 Mezza giornata Idoneità per principianti 74/100
Ship-Work/workbench#29 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 18/100
I maintainer di solito rispondono entro 1 giorno
-
Library: Quit asks before discarding an open resource editor, and Use with transcripts says the skill is chosenForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Ship-Work/workbench
Issue simili
-
builtin-port enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cmlarsen/writemorebetter#235 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
callstack/agent-device#3627 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
maziyarpanahi/openmed#4207 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
meshtastic/Meshtastic-Apple#2603 ·
I maintainer di solito rispondono entro 1 giorno
-
bug Windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100