Chatmail accounts can't initiate handshake without an already-established second channel #472
Description
This issue affects all deltachat client UIs, but is rooted in the design of the chatmail servers, so I'll add it in this repo.
Scenario:
- A doesn't use any messengers yet, (or at least none that B uses) and installs deltachat. Following the pattern on the configuration screen, they get an account at nine.testrun.org. Someone else initiates a conversation, which works fine.
- A wants to chat with B on deltachat, who is not near them. (Or both of them use devices without working cameras, likewise, QR-code handshakes aren't possible).
- a. They get B's deltachat/mail address from C (which could be a person, a piece of paper, or a website).
Expected process: A types B's address into deltachat and initiates a handshake.
Reality: There is no possibility to type in an address of a potential chat partner.
b. A gets B's deltachat/mail address from C via a deltachat message.
Expected process: A clicks/taps on the address and initiates a handshake
Reality: A gets a pop-up that tells them they can't chat with B (and need to set up the connection using a second channel, preferably the QR code).
Side note: Today, the author and both A and B struggled half an hour with this until A installed signal just to be able to chat with B, and only afterwards we found out how the second channel handshake works without a QR code. So, while this issue only is a technical barrier if there is no established second channel and no way to scan QR codes, I find it to still be a huge skill barrier if a remote second channel exists, and people might (or, in today's example, did) decide to stick to the second channel altogether.
Proposed solution:
Allow chatmail servers to send the invite message unencrypted and, in deltachat, add a button to the popup described under 3b that initiates the handshake by sending the invite link to the mail address that was typed in/clicked on.
If B already uses deltachat, they should then see a message along the lines of "A wants to chat with you. Accept?" and upon accepting, the handshake should be initiated as if B clicked on the link in a second channel, while a B who doesn't use deltachat (yet) sees the extant invite message in their mailbox.
Also, in the deltachat UI, re-add the possibility to manually add contacts and present the prompt to initiate handshake as if they clicked on an address in a deltachat message.