Hey folks,
i have been bugged by the fact that you could not have Android clients
as a slave client (since i have contacts with more than one
smartphone&phone number), so i started working on it. By now it is in a
large part but not completely presentable, so i thought before i submit
a pull request i should ask for assistance and reviews here. If i am
doing something terribly wrong, i'd like to know asap, and not after
investing even more time, after all.
Unfortunately, the official libsignal-service-java implementation does
not yet support slave devices (as you can not use a device-id that is
not 1), so this implementation depends on implementations that do. It
would be great if OWS could comment or merge the pending pull requests
in the libsignal-service-java repository. This branch was tested with
and built upon AsamK's patches, as you will see.
Building:
- clone https://github.com/AsamK/libsignal-service-java and install it
to the local maven repository (|./gradlew installArchives|)
- clone https://github.com/Trolldemorted/Signal-Android/tree/multidevice
and build
Using:
Click the cancel button during registration, wait for the qrcode to
appear (or use the tsdevice link which is written to the log) and scan
it. If all goes well, your devices should be linked. Due to my notorious
lack of smartphones, i was unable to test the qrcode (will do tomorrow
with my girlfriend's phone), but using the tsdevice link from logcat
works fine.
Known issues:
- group sync is prepared, but not yet operational. Receiving group
updates works fine!
- contact sync is not implemented yet, i'd like to hear Moxie's opinion
first
- "X is on Signal, say hey!" pops up for every contact with signal
- be careful not to run in existing bugs while testing - e.g.
Signal-Android does not send messages sent to yourself to other devices!
- receipts for messages from other linked devices do not make the 2nd
check appear in group messages. Signal tries to canonalize the group
name as a phone number and naturally fails miserably. Will investigate
as soon as i find the time
- linking process is vulnerable to connection issues. Sometimes
getNewDeviceUuid or finishNewDeviceRegistration timeout, should that
happen just try again for now
- i cannot share locations, as the "SELECT"-Button stays disabled. Will
investigate as soon as i find the time
My questions:
- i guess the ui to link slave devices must be disabled? Or can slave
devices add slave devices?
- could somebody test it with an iOS master device? I don't know anyone
who owns one
- may i ask technical questions on the mailinglist (aka "what is the
DirectoryRefreshListener there for"), or is this the wrong place?
I have been using it for several months now, and apart from the issues
noted above i did not encounter anything strange. What do you think? How
are the chances of getting this merged, as soon as it is finished?
- Benni