@Simon
As of 1) in edit messages: I also agree this is hard to implement (You need something Git or WinMerge does which compares differences) so you could always go for the latter method instead (just replying to the original message).
I came up with that idea only because if you reply to original message with minor changes (like only change a single letter) then it’s hard for the recipient to tell the difference.
As of 1) in retract messages:
Display the fancy stuff in text, then add something in the header to indicate this is an deletion request that should be handled by Delta Chat.
But again there is nothing wrong if you go for 2) since it’s easier to implement I guess.
@Sandra This is a good idea but I think retracting any message by deletion request should still be implemented as well since Telegram allows you to retract anything.
@hpk I don’t use WhatsApp. Although I’m familiar with Telegram behavior.
In Telegram:
- if the recipient is offline and you deleted the sent message, Telegram server will simply delete it from the server, and the next time recipient client goes online it won’t receive the deleted message at all (Telegram server will hide the fact there was a deleted message at all)
- If the recipient is online, Telegram will send the delete request to the recipient client. Official Telegram client will then remove the message and its corresponding notification if possible. But this is entirely up to the client recipient is using (eg… using a modified client that ignores the deletion request)
- There is no time limit regarding retracting the message. You can retract any message you want, even the recipient message and the whole conversation.
- As of editing the message, there’s no difference between online / offline. Recipient will always see the ‘edited’ status in the bottom-right of each message.
- There is no per-chat preferences regarding this feature, Telegram server assumes every Telegram client has the required capability.
It’s kinda impossible to implement the same mechanism in Delta Chat without changes to the E-Mail standard. When a message is sent in E-Mail, it is sent forever, deleting the sent message does not affect the recipient’s end (recipient will receive the message anyway). Best you can do is to tell the recipient Delta Chat to delete the message since E-Mail providers won’t do that for you, because there was no such thing as retracting E-Mail in the world of E-Mail standard, some platforms might implement their own solutions regarding this but then they’re not standardized and they’re best not to be used in Delta Chat.
As of per-chat behavior, this is only intended to prevent “Enable retraction and delete the sent message, then disable it so the recipient couldn’t delete their sent messages” to gain an unfaired adventage. Toggling the option requires recipient approval, and implement a cooldown so you can’t spam toggling the preference.
Yes, I know it’s impossible to completely prevent these such things as the recipient could just use a traditional E-Mail client, but the design is to make sure at least Delta Chat client doesn’t have design flaws to be abused.
Or instead don’t give user any option to disable the retraction/deletion functionality, just like Telegram does. But then some could abuse this behavior to put Delta Chat users into bad situation, and there’re always users who want to use Delta Chat purely as an E-Mail client and not some modern messager based on E-Mail protocol. Per-chat behavior is used to make sure user only enable the behavior with trusted recipient.