Implement the approved first version of photo editing in Presently's native iOS and Android apps.
After capturing a photo, users can add styled text, emoji and static image stickers; drag, pinch and rotate layers; use center guides, delete and undo; and restore an editable draft after restarting. Store original photo and versioned layer data separately. Flatten once into a JPEG for consistent preview, publish, saved photo and retry behavior. Keep the existing Flashes story contract and 10 MiB limit.
Acceptance: native input and pickers, accessible controls, normalized image coordinates including portrait/landscape and orientation, durable draft migration/restoration, bounded image import/export, deterministic layer/export tests, native builds and tests, rendered simulator/emulator checks. Photo cutouts and animated output are outside this version.
Work uses the existing chore/wisp-marketing-migration branch as instructed; unrelated pre-existing changes are preserved and excluded from editor commits. No deployment or store release is included.
Implementation complete in draft PR #6. Commits: 9d8b124 design, 38481cd implementation, c8a6d13 validation. Review findings on snapping, memory budgets, preview/export consistency, old drafts, and native text input were resolved. iOS build and 39 tests passed. Isolated committed Android source passed 34 unit tests, debug build, and lint; working checkout including unrelated local changes passed 41 tests. Android native instrumentation edit and force-stop/relaunch restoration passed; iOS simulator text, emoji, Photos picker import, drag, delete/undo, and stop/relaunch restoration passed. Web check/build and Go tests/build passed. Physical camera, device-specific image keyboards, photo-library saving, and authenticated PDS publish remain release acceptance checks. No story posted or release deployed. Existing local edits are preserved; PR includes the feedback-link commit previously on the branch. Local commits are unsigned because the configured 1Password signing executable is missing.
Implement the approved first version of photo editing in Presently's native iOS and Android apps.
After capturing a photo, users can add styled text, emoji and static image stickers; drag, pinch and rotate layers; use center guides, delete and undo; and restore an editable draft after restarting. Store original photo and versioned layer data separately. Flatten once into a JPEG for consistent preview, publish, saved photo and retry behavior. Keep the existing Flashes story contract and 10 MiB limit.
Acceptance: native input and pickers, accessible controls, normalized image coordinates including portrait/landscape and orientation, durable draft migration/restoration, bounded image import/export, deterministic layer/export tests, native builds and tests, rendered simulator/emulator checks. Photo cutouts and animated output are outside this version.
Work uses the existing chore/wisp-marketing-migration branch as instructed; unrelated pre-existing changes are preserved and excluded from editor commits. No deployment or store release is included.
Implementation complete in draft PR #6. Commits: 9d8b124 design, 38481cd implementation, c8a6d13 validation. Review findings on snapping, memory budgets, preview/export consistency, old drafts, and native text input were resolved. iOS build and 39 tests passed. Isolated committed Android source passed 34 unit tests, debug build, and lint; working checkout including unrelated local changes passed 41 tests. Android native instrumentation edit and force-stop/relaunch restoration passed; iOS simulator text, emoji, Photos picker import, drag, delete/undo, and stop/relaunch restoration passed. Web check/build and Go tests/build passed. Physical camera, device-specific image keyboards, photo-library saving, and authenticated PDS publish remain release acceptance checks. No story posted or release deployed. Existing local edits are preserved; PR includes the feedback-link commit previously on the branch. Local commits are unsigned because the configured 1Password signing executable is missing.