Skip to content

Draft: Link as secondary device

ntninja requested to merge ntninja/whisperfish:mr-device-linking into master

Adds an option on the phone number setup page to instead “Link with existing device”, tapping this opens a new QML page that requests the pairing info from Rust and gets a proxy object (previous iterations had used a bunch of methods and signals on the global Prompt object) that than is signaled when the provisioning URI (and its rendered QR code) are available. Scanning and authorizing this using the Signal app then causes OWS to generate an event that is then forwarded to QML and opens the main page as authenticated device.

(After this it fails at submitting prekeys.)

Full log of this patch in action: https://pastebin.com/Cx25FXhe

While this is obviously unmergable as-is, I think the general approach with using a proxy object that synchronizes signup state between QML and Rust is worthwhile perusing for the classical login flow as well. Also I made sure that both server and user cancellation is properly propagated between the worlds, that the device linking process is aborted when user swipes backwards from the linking page, etc.

Includes !76 (merged) to avoid merge conflicts. Merged.

Fixes #172 (closed)

Edited by ntninja

Merge request reports