[Feature] Move a photo into its album's folder on-device when added #30678
junkerderprovinz
started this conversation in
Feature Request
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
The feature
When a photo is added to an album (on creation or later), let the album optionally move that photo's local file into a folder named after the album, so the on-device gallery mirrors the Immich album structure. Right now nothing on the mobile client touches a photo's physical location when it joins an album, so keeping the phone's own folders organized the same way means sorting everything by hand before it ever reaches Immich.
The binding would be per-album and persistent, not a one-off action: once enabled, every future add to that album (not just the initial batch) moves the newly added asset the same way, on Android via a
MediaStore.createWriteRequest()consent prompt. The app already integrates with this consent-dialog family forMediaTrashDelegate.kt's move-to-trash flow, so this would extend the same pattern rather than introduce a new one.Sharing doesn't complicate this the way it might look at first: when a device's own user adds their own on-device asset to an album, only that asset's local copy on that same device is ever touched. Other participants' own contributions live on their own devices and are entirely outside this device's reach, so the feature never crosses into shared-ownership territory (relevant given "Sharing/Asset ownership" is currently frozen per CONTRIBUTING.md, this stays a purely per-device, per-asset local operation).
The one real edge case: the same physical asset gets added to two different move-enabled albums. A file can only live in one folder, so the first move-enabled album an asset is added to would keep it; a later add to a second move-enabled album would just log the conflict rather than move it again.
This looks like it lands close to work already planned: the TODO in
RemoteAlbumService.addAssetsToAlbum(mobile/lib/domain/services/remote_album.service.dart) already flags "allow adding local assets from album from the timeline as well" as a near-term follow-up, so this could plausibly build on that refactor rather than needing a new hook point.Related but distinct: the server-side Storage Template feature reorganizes Immich's own storage by metadata, not files on the device, and already causes its own path-change friction (#29627); this proposal is unrelated to it. Also distinct from #26511 / #542 (creating an album from a folder, the reverse direction) and #2117 ("Albums on Device" backup selection, a different part of the app). Closest in spirit is #23521 (uploading directly into an album from the phone), which is about getting assets into Immich, not about organizing them on the device afterward.
Platform
All reactions