Appearance
The creation camera and gallery
What the person sees. The app's creation camera and its gallery.
The story camera; effects, Boomerang and taking a picture are not offered. Your program opens the gallery: openGallery().
What you do. PostingCameraScreen is the creation camera: the story mode's first screen and the Reel mode's, however it was reached (the gallery picker's mode selector, the feed's create button in a non-post mode, the Reels tab's "+", or the mode switch inside the camera). openGallery() opens the camera's gallery, PostingCameraGalleryScreen, which lists the phone's photos and videos in the camera's mode. pickPhoto(photo, where?) takes the file's bytes and, beside them, what a phone's gallery would say of it: takenAt (the "taken" time, in epoch seconds) and folder (the album). pickVideo(video, where?) does the same for a video. The gallery answers the mode's editor: the story photo or story video editor (story) in the story mode, the Reel editor (reel) in the Reel mode. A photo picked in the Reel mode is PostingPhotoPickedInReelModeError: that mode has no photo editor.
switchMode('story') moves the camera's mode selector to the story mode and opens the story camera over this one. It is the one move of the selector that is offered. The picker's own mode switch is the gallery picker's switchMode.
The program for each pick is on the story and Reel pages; the files a flow picks are held until the flow ends, and a flow continued from a checkpoint asks for them again (Publishing).