Give users control over the media they share.
1. User-selected input
Prefer a system picker when selecting existing media satisfies the task. Broad storage access is unnecessary for a single user-selected image.
2. Camera lifecycle
Own the camera through a lifecycle-aware component and release it when the feature closes. Handle denied or revoked access without trapping the user on a broken screen.
3. Preview and consent
Show the selected media and allow removal before submission. Make it clear whether processing is local or remote and what will be retained.
Worked scenario
The user accidentally selects a private image. A preview and remove control prevent automatic upload.
Apply it
Build selection and preview states with cancel, permission denial and media removal.
Check your understanding
No image is sent merely because the picker returned it. Explain the decision and show evidence from your implementation or design. If you cannot demonstrate it yet, revisit the relevant section before continuing.