M1-13: Control widget — start a recording from the lock screen #19

Closed
opened 2026-08-06 16:10:45 -04:00 by agent · 0 comments
Member

A lock screen and Control Center button that starts a recording in one tap.

Wes: "That way on my lock screen i can have a quick action that once tapped immediately starts
recording? (preferably while keeping the screen locked, but if that wont work i understand)"

Issue 07 put a stop button on the lock screen, via the Live Activity. This is the other half:
getting a recording started without unlocking, finding the app and tapping into it. Roughly all
of Wes's recordings begin while walking, and the thought is usually already half gone by the time
the app is open.

Scope

  • A ControlWidget in the existing StashWidgets extension, so it can be placed on the lock
    screen, in Control Center, and on the Action Button.
  • A start intent that begins a recording, reusing AudioRecorder.shared the same way
    StopRecordingIntent does.
  • Sensible behaviour when a recording is already running — the control should reflect state
    rather than starting a second one.

The open question

Whether iOS will start a microphone recording from a locked device at all. A control's intent
can run without unlocking, but microphone capture from the lock screen may be refused, and the
fallback is that tapping it prompts for unlock first.

That is a real unknown and it should be answered by trying it, not by reasoning about it. If it
turns out to require unlocking, say so plainly in the UI rather than appearing to start a
recording that never began — a memo the user believes is being captured and is not is the worst
outcome this project has.

Depends on

Issue 07 (the extension target and the RecordingControl indirection already exist). Wes wants
this after issue 12, so the milestone finishes first.

Done when

Wes taps a control on the lock screen and a recording starts — or, if iOS refuses without
unlocking, the control does the closest honest thing and the limitation is documented.

A lock screen and Control Center button that starts a recording in one tap. Wes: *"That way on my lock screen i can have a quick action that once tapped immediately starts recording? (preferably while keeping the screen locked, but if that wont work i understand)"* Issue 07 put a **stop** button on the lock screen, via the Live Activity. This is the other half: getting a recording *started* without unlocking, finding the app and tapping into it. Roughly all of Wes's recordings begin while walking, and the thought is usually already half gone by the time the app is open. ## Scope - A `ControlWidget` in the existing `StashWidgets` extension, so it can be placed on the lock screen, in Control Center, and on the Action Button. - A start intent that begins a recording, reusing `AudioRecorder.shared` the same way `StopRecordingIntent` does. - Sensible behaviour when a recording is already running — the control should reflect state rather than starting a second one. ## The open question **Whether iOS will start a microphone recording from a locked device at all.** A control's intent can run without unlocking, but microphone capture from the lock screen may be refused, and the fallback is that tapping it prompts for unlock first. That is a real unknown and it should be answered by trying it, not by reasoning about it. If it turns out to require unlocking, say so plainly in the UI rather than appearing to start a recording that never began — a memo the user believes is being captured and is not is the worst outcome this project has. ## Depends on Issue 07 (the extension target and the `RecordingControl` indirection already exist). Wes wants this **after issue 12**, so the milestone finishes first. ## Done when Wes taps a control on the lock screen and a recording starts — or, if iOS refuses without unlocking, the control does the closest honest thing and the limitation is documented.
wk closed this issue 2026-08-09 10:44:19 -04:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stash/stash-ios#19
No description provided.