From 16551fc6c3ca9ecf9c5eb48ef64586abe1dbe680 Mon Sep 17 00:00:00 2001
From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Date: Tue, 23 Jan 2018 13:34:35 -0500
Subject: [PATCH] datatransfer: add account+peer information
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add AccountId and PeerUri to DataTransfertInfo structure.

Change-Id: I6cf3661d7d7f451da713a036c66c4aa5a1c671d8
Reviewed-by: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>
---
 bin/dbus/cx.ring.Ring.ConfigurationManager.xml | 2 +-
 bin/dbus/dbusconfigurationmanager.cpp          | 6 ++++--
 bin/dbus/dbusconfigurationmanager.h            | 2 +-
 src/dring/datatransfer_interface.h             | 2 ++
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
index b07c3ce775..d7122b934f 100644
--- a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
+++ b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
@@ -1420,7 +1420,7 @@
        <method name="dataTransferInfo" tp:name-for-bindings="dataTransferInfo">
            <tp:added version="4.2.0"/>
            <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DataTransferInfo"/>
-           <arg type="(buttss)" name="DataTransferInfo" direction="out">
+           <arg type="(buttssss)" name="DataTransferInfo" direction="out">
            </arg>
            <arg type="t" name="DataTransferId" direction="in">
            </arg>
diff --git a/bin/dbus/dbusconfigurationmanager.cpp b/bin/dbus/dbusconfigurationmanager.cpp
index 13acf8fbf4..09e621ba59 100644
--- a/bin/dbus/dbusconfigurationmanager.cpp
+++ b/bin/dbus/dbusconfigurationmanager.cpp
@@ -621,10 +621,10 @@ DBusConfigurationManager::sendFile(const std::string& account_id, const std::str
     return DRing::sendFile(account_id, peer_uri, file_path, display_name);
 }
 
-DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string>
+DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string, std::string, std::string>
 DBusConfigurationManager::dataTransferInfo(const DRing::DataTransferId& id)
 {
-    DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string> out;
+    DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string, std::string, std::string> out;
     auto info = DRing::dataTransferInfo(id);
     out._1 = info.isOutgoing;
     out._2 = uint32_t(info.lastEvent);
@@ -632,6 +632,8 @@ DBusConfigurationManager::dataTransferInfo(const DRing::DataTransferId& id)
     out._4 = info.bytesProgress;
     out._5 = info.displayName;
     out._6 = info.path;
+    out._7 = info.accountId;
+    out._8 = info.peer;
     return out;
 }
 
diff --git a/bin/dbus/dbusconfigurationmanager.h b/bin/dbus/dbusconfigurationmanager.h
index 4ef1f7be8f..6f060139a6 100644
--- a/bin/dbus/dbusconfigurationmanager.h
+++ b/bin/dbus/dbusconfigurationmanager.h
@@ -155,7 +155,7 @@ class DBusConfigurationManager :
         void connectivityChanged();
         DRing::DataTransferId sendFile(const std::string& account_id, const std::string& peer_uri,
                                        const std::string& file_path, const std::string& display_name);
-        DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string> dataTransferInfo(const DRing::DataTransferId& id);
+        DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string, std::string, std::string> dataTransferInfo(const DRing::DataTransferId& id);
         uint64_t dataTransferBytesProgress(const uint64_t& id);
         std::vector<uint64_t> dataTransferList();
         void acceptFileTransfer(const uint64_t& id, const std::string& file_path, const uint64_t& offset);
diff --git a/src/dring/datatransfer_interface.h b/src/dring/datatransfer_interface.h
index b47ec6f3b5..80bf1d74b9 100644
--- a/src/dring/datatransfer_interface.h
+++ b/src/dring/datatransfer_interface.h
@@ -56,6 +56,8 @@ struct DataTransferInfo
     std::streamsize bytesProgress {0}; ///< Number of bytes sent/received
     std::string displayName; ///< Human oriented transfer name
     std::string path; ///< associated local file path if supported (empty, if not)
+    std::string accountId; ///< Identifier of the emiter/receiver account
+    std::string peer; ///< Identifier of the remote peer (in the semantic of the associated account)
 };
 
 std::vector<DataTransferId> dataTransferList();
-- 
GitLab