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