feat: Insert inline attachment - #3014
Open
Elouan1411 wants to merge 13 commits into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
Adds inline image attachments to the message composer, including photo selection, CID-based editor insertion, caching, and upload metadata.
Changes:
- Adds a localized attachment-type popup for photos and files.
- Inserts selected photos into the HTML editor as responsive CID images.
- Uploads inline disposition and content-ID metadata with attachments.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
OldKotlin/realm-models/src/main/kotlin/com/infomaniak/mail/data/models/Attachment.kt |
Adds inline attachment marking. |
app/src/main/res/values/strings.xml |
Adds English menu labels. |
app/src/main/res/values-sv/strings.xml |
Adds Swedish translations. |
app/src/main/res/values-pt/strings.xml |
Adds Portuguese translations. |
app/src/main/res/values-pl/strings.xml |
Adds Polish translations. |
app/src/main/res/values-nl/strings.xml |
Adds Dutch translations. |
app/src/main/res/values-nb/strings.xml |
Adds Norwegian translations. |
app/src/main/res/values-it/strings.xml |
Adds Italian translations. |
app/src/main/res/values-fr/strings.xml |
Adds French translations. |
app/src/main/res/values-fi/strings.xml |
Adds Finnish translations. |
app/src/main/res/values-es/strings.xml |
Adds Spanish translations. |
app/src/main/res/values-el/strings.xml |
Adds Greek translations. |
app/src/main/res/values-de/strings.xml |
Adds German translations. |
app/src/main/res/values-da/strings.xml |
Adds Danish translations. |
app/src/main/res/raw/insert_inline_image.js |
Inserts CID images at the editor selection. |
app/src/main/res/raw/editor_style.css |
Makes editor images responsive. |
app/src/main/res/menu/attachment_menu.xml |
Defines photo/file attachment choices. |
app/src/main/java/com/infomaniak/mail/utils/HtmlFormatter.kt |
Loads the inline-image script. |
app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt |
Prepares imported attachments as inline images. |
app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt |
Handles photo import, caching, and editor insertion. |
app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageEditorManager.kt |
Displays and handles the attachment-type popup. |
app/src/main/java/com/infomaniak/mail/data/api/ApiRepository.kt |
Sends disposition and content-ID upload headers. |
Elouan1411
force-pushed
the
insert-image-in-draft
branch
from
August 5, 2026 06:55
99e1e05 to
62905d8
Compare
Elouan1411
force-pushed
the
insert-image-in-draft
branch
from
August 6, 2026 13:35
b554483 to
f143266
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 26 out of 26 changed files in this pull request and generated no new comments.
Suppressed comments (2)
app/src/main/java/com/infomaniak/mail/data/models/extensions/AttachableExtensions.kt:75
- This cache location is not stable across the attachment upload. A newly imported inline image is copied while
resourceis null, so it is stored at the cache root; after upload,backupLocalDatakeeps the samelocalUuidbut the remote attachment gains aresource, causing this method to look in a different subdirectory. Reopening the draft offline therefore cannot find the local inline image and renders a blank CID resource. SincelocalUuidalready makes the filename unique, use a resource-independent cache directory.
val cacheFolder = LocalStorageUtils.getAttachmentsCacheDir(context, extractPathFromResource(), userId, mailboxId)
app/src/main/res/raw/insert_inline_image.js:34
- Setting an empty
altmarks every user-inserted photo as decorative, so screen readers omit potentially meaningful message content. Pass an accessible label into this function (at minimum the attachment filename, until editable alt text is supported) and assign it here instead of always using an empty string.
img.alt = "";
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



No description provided.