Review Request 123094: Add Bluetooth support for sending and receiving payloads. (KDE)
Saikrishna Arcot
saiarcot895 at gmail.com
Mon Sep 7 18:14:09 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123094/
-----------------------------------------------------------
(Updated Sept. 7, 2015, 6:14 p.m.)
Review request for kdeconnect.
Repository: kdeconnect-kde
Description
-------
When sending a payload, a randomly-generated UUID is sent with the payload. The payload is sent on a separate Bluetooth connection through that UUID, with the sending device acting as the server and the receiving device acting as the receiver.
In addition, `core/filetransferjob.cpp` was edited to listen to the `aboutToClose()` signal instead of the `disconnected()` signal, which is guaranteed to exist on all implementations of `QIODevice`. I'm not sure of the side effects for the LAN device link.
Diffs
-----
core/backends/bluetooth/CMakeLists.txt 125fa87a825b056395a8ce5ef0298665fd2e6293
core/backends/bluetooth/bluetoothdevicelink.h 199d9ee4c6b89065154e82b6fcd2cea204c0ef31
core/backends/bluetooth/bluetoothdevicelink.cpp e3c1e3335a312a2b9289a7806e6a4d9c9174c73c
core/backends/bluetooth/bluetoothdownloadjob.h PRE-CREATION
core/backends/bluetooth/bluetoothdownloadjob.cpp PRE-CREATION
core/backends/bluetooth/bluetoothuploadjob.h PRE-CREATION
core/backends/bluetooth/bluetoothuploadjob.cpp PRE-CREATION
core/backends/devicelinereader.h a5255c77d95c13e5f806576bac2697fb4bc94708
core/filetransferjob.cpp 66866906a6509ebb0ba00c1b48647c5807262120
Diff: https://git.reviewboard.kde.org/r/123094/diff/
Testing (updated)
-------
KDE to Android: Works. Tested by sending a ~1 MB file.
Android to KDE: Mostly works. The file is transferred, but the Bluetooth connection isn't closed on the Android side. This is because (at least on Android 4.1.2) the `write()` call on the output stream seems to be non-blocking, and calling `close()` on the socket immediately closes the connection, so if there happens to be data that isn't sent yet, it won't get sent and the receiving side will hang, waiting for the data.
Currently, the connection isn't closed, so all of the data goes through, but because `FileTransferJob` hasn't received a `closed()` signal, the transfer hangs, even though the file has been fully received and can be opened. Manually stopping the transfer on the KDE side works.
Thanks,
Saikrishna Arcot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdeconnect/attachments/20150907/4f2ee578/attachment-0001.html>
More information about the KDEConnect
mailing list