pachli-android/app
Nik Clayton 7abd74ad88
fix: Don't lose images / captions when editing with failed uploads
Previous code would remove image attachments from the compose editor
if there was a problem uploading or updating them.

This caused a particular problem with image captions. You could attach
a valid image, then write a caption that was too long for the server.
The server would reject the status, and the status was saved to drafts.

Then you open the draft, which tries to upload the image again with a
too-long caption. The upload is rejected, and the image, along with the
caption, is removed.

Fix this.

- Change `QueuedMedia` to track the upload state as a `Result<_,_>`,
so any error messages are preserved and available to the UI.

- The different `Ok` types for the upload state contain the upload
progress percentage (if appropriate) or the server's ID for the
uploaded media.

- Change `ProgressImageView` to accept the upload state `Result`.
If the result is an error the image is drawn with a red overlay and
white "error" icon.

- If an upload is in an error state allow the user to click on it.
That shows a dialog explaining the error, and provides options to
edit the image, change the caption, etc.

- When changing the caption make the API call to change it on the
server (if the attachment has been uploaded). This makes the user
aware of any errors sooner in the process, so they can correct them.
2024-10-26 22:19:14 +02:00
..
src fix: Don't lose images / captions when editing with failed uploads 2024-10-26 22:19:14 +02:00
build.gradle.kts refactor: Move AccountManager to core.data.repository (#976) 2024-10-03 21:28:01 +02:00
gitTools.gradle ci: Upload orangeRelease to Google Play (internal track) (#134) 2023-09-28 13:50:02 +02:00
lint-baseline.xml refactor: Rename "Filters" to "Content filters" (#927) 2024-10-02 22:57:00 +02:00
lint.xml change: Disable SyntheticAccessor lint rule (#424) 2024-02-06 19:51:37 +01:00
proguard-rules.pro refactor: Remove `TabData` type (#576) 2024-03-30 23:27:25 +01:00