diff --git a/bin/jni/datatransfer.i b/bin/jni/datatransfer.i
index 9feacb8a8bbdac1a942e0f539f3eb02ddc655a6c..0e23ecdbc7b550fab5b46812a075b970f4043570 100644
--- a/bin/jni/datatransfer.i
+++ b/bin/jni/datatransfer.i
@@ -20,7 +20,8 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-%apply int32_t { DRing::DataTransferEventCode };
+%apply uint32_t { DRing::DataTransferEventCode };
+%apply uint32_t { DRing::DataTransferError };
 %apply uint64_t { DRing::DataTransferId };
 %apply uint64_t { const DRing::DataTransferId };
 
@@ -28,7 +29,6 @@
 #include "dring/dring.h"
 #include "dring/datatransfer_interface.h"
 
-
 class DataTransferCallback {
 public:
     virtual ~DataTransferCallback(){}
@@ -42,22 +42,22 @@ namespace DRing {
 
   struct DataTransferInfo
   {
-      bool isOutgoing;
-      DRing::DataTransferEventCode lastEvent;
-      std::size_t totalSize {0};
-      std::streamsize bytesProgress {0};
-      std::string displayName;
-      std::string path;
-      std::string accountId;
-      std::string peer;
+    std::string accountId;
+    DRing::DataTransferEventCode lastEvent;
+    uint32_t flags;
+    int64_t totalSize;
+    int64_t bytesProgress;
+    std::string peer;
+    std::string displayName;
+    std::string path;
+    std::string mimetype;
   };
 
-  void acceptFileTransfer(const DRing::DataTransferId id, const std::string &file_path, std::size_t offset);
-  void cancelDataTransfer(const DRing::DataTransferId id);
-  std::streamsize dataTransferBytesProgress(const DRing::DataTransferId id);
-  DRing::DataTransferInfo dataTransferInfo(const DRing::DataTransferId id) throw(std::invalid_argument);
-  /* std::vector<uint64_t> dataTransferList(); */
-  DRing::DataTransferId sendFile(const std::string &account_id, const std::string &peer_uri, const std::string &file_path, const std::string &display_name) throw(std::invalid_argument, std::runtime_error);
+  DRing::DataTransferError sendFile(const DRing::DataTransferInfo info, DRing::DataTransferId id);
+  DRing::DataTransferError acceptFileTransfer(const DRing::DataTransferId id, const std::string file_path, int64_t offset);
+  DRing::DataTransferError cancelDataTransfer(const DRing::DataTransferId id);
+  DRing::DataTransferError dataTransferInfo(const DRing::DataTransferId id, DRing::DataTransferInfo &info);
+  DRing::DataTransferError dataTransferBytesProgress(const DRing::DataTransferId id, int64_t &total, int64_t &progress);
 
 }