Note: I had previously opened this issue as https://github.com/deltachat/deltachat-android/issues/3901. I hereby open it as a feature request in the forum.
Recently, I had the following unexpected interaction with Delta Chat on Android:
- I start writing a message to PEER in Delta Chat but I do not send the message yet, so there is a DRAFT
- As part of what I am currently writing, there is some online documentation I want to share with PEER, so I switch to firefox to search for the URL
- Once I found the correct page, I use the “share” functionality to share that URL with PEER
- The DRAFT is replaced by URL
This was rather annoying as I had already put considerable effort into composing DRAFT, which was now completely lost. I also had a feeling from the start that this might happen, so I willingly took my chances here. Still, it would have been nice if I had not lost my draft; and other people might even lack that gut feeling that the interaction described above is risky. So my suggestion would be this:
If I share some URL (or anything else) with some PEER where there is already a DRAFT for that PEER: Instead of replacing that draft, simply append “URL”, so that instead of a message composition window displaying “URL” I get a message composition field displaying “DRAFT URL”. This way, I should be able to notice that there is a DRAFT and I can still decide whether or not I want to delete it.
One thing to keep in mind would be that I might have forgotten about the existence of DRAFT. So it would be nice if Delta Chat would ensure that DRAFT is actually visible in the message composition field, even if URL is very long. Maybe by doing something like placing the cursor at the beginning of URL rather than at the end? Still, for default behaviour, I would suggest that outright replacing an existing DRAFT is certainly bad UX.
Regarding bjoern’s and link2xt’s comments on the github issue: I agree with bjoern that Delta Chat is probably not well suited for writing novels. But then, losing the draft for a very short message can be annoying as well. I simply feel that appending the shared URL to the existing DRAFT would be less risky when it comes to user expectations. Both replacing the draft and appending to it could potentially surprise a user. However, if the URL is appended to DRAFT while the user expected DRAFT to be replaced, there is a very straightforward fix: The user can simply press and hold backspace. If the DRAFT is replaced by URL while the user expected it to be preserved, there is no straightforward way to get it back.