Skip to content

Add support for converting photos into daily video entries - #150

Open
TerenceAbigail wants to merge 4 commits into
KyleKun:mainfrom
TerenceAbigail:picture-as-video-feature
Open

Add support for converting photos into daily video entries#150
TerenceAbigail wants to merge 4 commits into
KyleKun:mainfrom
TerenceAbigail:picture-as-video-feature

Conversation

@TerenceAbigail

@TerenceAbigail TerenceAbigail commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes #124

Implement feature allowing users to select a photo from their gallery and convert it into a daily video entry

Went with the approach where on the calendar user selects if they want to add a photo or video. With this approach it allows for editing photos in the future to enable potentially different effects like allowing user to crop photo or add some sort of motion like slightly zooming into the photo for the duration selected by user giving a visual effect that is more appealing in the movie created.

Since lib/pages/save_photo/widgets/save_photo_button.dart is largely copy and paste from lib/pages/save_video/save_video_page.dart. Any issues flagged in the former was also addressed in the latter as well

Checklist

Before you create this PR, please confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I have added a description of the change in CHANGELOG.md.
  • I have added my name in the CONTRIBUTORS.md file, if it wasn't already present.

Testing

  • Successfully added mixture of videos and photos and then did "Create movie" to confirm mixture of photos and video will successfully result in a properly created movie.
Screenshot From 2026-07-21 16-46-41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “save photo” flow that lets users pick a gallery photo for a calendar day, configure overlays (date, location, subtitles) and duration, and then convert the photo into a video entry suitable for movie creation.

Changes:

  • Add a new SAVE_PHOTO route and page registration.
  • Add UI in the calendar editor to pick an image from gallery and route into the new save-photo flow.
  • Implement a new Save Photo page + FFmpeg-based conversion pipeline and add i18n strings for the new UI actions.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
lib/routes/app_routes.dart Adds the SAVE_PHOTO route constant.
lib/routes/app_pages.dart Registers SavePhotoPage with GetX routing.
lib/pages/save_photo/save_photo_page.dart New screen for configuring and saving a photo-as-video daily entry (date/location/subtitles/duration).
lib/pages/save_photo/widgets/save_photo_button.dart Converts the selected photo into an MP4 with FFmpeg, applying overlays/metadata and showing progress UI.
lib/pages/save_photo/widgets/tab_item.dart Tab UI widget used by the Save Photo page.
lib/pages/home/calendar_editor/calendar_editor_page.dart Adds “Add photo as video” action and gallery picker flow for images.
lib/lang/en.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/zh.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/ru.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/pt.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/id.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/fr.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/es.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/de.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/cs.dart Adds addPhotoAsVideo / savePhoto translations.
lib/lang/ca.dart Adds addPhotoAsVideo / savePhoto translations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/pages/save_photo/save_photo_page.dart
Comment on lines +835 to +837
onPressed: () {
Navigator.pop(context);
},

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not actually needed. Confirmed that text is captured in the onTapOutside. Added comment here instead

Comment thread lib/pages/save_photo/save_photo_page.dart Outdated
Comment thread lib/pages/save_photo/save_photo_page.dart
@TerenceAbigail
TerenceAbigail force-pushed the picture-as-video-feature branch from 84f5a27 to 956f66e Compare July 23, 2026 13:21
This issues was appearing only on debug builds when dialog appeared to
type in a subtitles. This was happening because unscrollable container
contains children whose total height exceeds the available vertical
screen space. When the keyboard popped up the available screen height
decreases by ~300+ pixels.

Drawback with changing `resizeToAvoidBottomInset: false` is that the
save button no longer pops up. Which is completely acceptable when
dialog is onscreen.
@TerenceAbigail

Copy link
Copy Markdown
Contributor Author

@KyleKun Any updates on when you'd be able to review this PR?

@KyleKun

KyleKun commented Aug 5, 2026

Copy link
Copy Markdown
Owner

@KyleKun Any updates on when you'd be able to review this PR?

Hey, I'll be reviewing this week, my windows PC isn't working for some reason so I'll setup the android build on my Mac. Will keep you posted, thanks again for the contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add photos support

3 participants