From ef23aad7b2e66ff5c6104db9bb47fc233976c4b5 Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Sun, 13 Aug 2017 14:38:53 +0200 Subject: [PATCH] Improve jft api --- .../smackx/jft/JingleFileTransferManager.java | 8 ++++++++ .../jft/component/AbstractJingleFileOffer.java | 3 +++ .../jft/component/AbstractJingleFileRequest.java | 2 ++ .../jft/component/JingleIncomingFileOffer.java | 6 ++++++ .../jft/component/JingleIncomingFileRequest.java | 5 +++++ .../jft/component/JingleOutgoingFileOffer.java | 5 +++++ .../jft/component/JingleOutgoingFileRequest.java | 5 +++++ .../smackx/jft/component/file/LocalFile.java | 13 +++++++++++-- .../jft/controller/IncomingFileOfferController.java | 2 +- .../controller/JingleFileTransferController.java | 2 ++ 10 files changed, 48 insertions(+), 3 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferManager.java index 4988f5683..b8c9d0b7c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/JingleFileTransferManager.java @@ -92,7 +92,12 @@ public final class JingleFileTransferManager extends Manager implements JingleDe public OutgoingFileOfferController sendFile(File file, FullJid to) throws SmackException.NotConnectedException, InterruptedException, XMPPException.XMPPErrorException, SmackException.NoResponseException, SmackException.FeatureNotSupportedException { + return sendFile(file, null, to); + } + public OutgoingFileOfferController sendFile(File file, String alternativeFilename, FullJid to) + throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, + SmackException.NoResponseException, SmackException.FeatureNotSupportedException { if (file == null || !file.exists()) { throw new IllegalArgumentException("File MUST NOT be null and MUST exist."); } @@ -107,6 +112,9 @@ public final class JingleFileTransferManager extends Manager implements JingleDe session.addContent(content); JingleOutgoingFileOffer offer = new JingleOutgoingFileOffer(file); + if (alternativeFilename != null) { + offer.getFile().setName(alternativeFilename); + } content.setDescription(offer); JingleTransportManager transportManager = jingleManager.getBestAvailableTransportManager(to); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/AbstractJingleFileOffer.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/AbstractJingleFileOffer.java index 8420a548a..9711f8ee6 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/AbstractJingleFileOffer.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/AbstractJingleFileOffer.java @@ -26,4 +26,7 @@ public abstract class AbstractJingleFileOffer implements IncomingFileOfferController { @@ -130,4 +131,9 @@ public class JingleIncomingFileOffer extends AbstractJingleFileOffer return null; } + + @Override + public RemoteFile getFile() { + return (RemoteFile) this.file; + } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleIncomingFileRequest.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleIncomingFileRequest.java index c07d633b6..9e2dd6bb7 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleIncomingFileRequest.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleIncomingFileRequest.java @@ -58,4 +58,9 @@ public class JingleIncomingFileRequest extends AbstractJingleFileRequest public boolean isRequest() { return false; } + + @Override + public LocalFile getFile() { + return (LocalFile) file; + } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleOutgoingFileRequest.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleOutgoingFileRequest.java index e930e4a25..e77f0b4a7 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleOutgoingFileRequest.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/component/JingleOutgoingFileRequest.java @@ -31,6 +31,11 @@ public class JingleOutgoingFileRequest extends AbstractJingleFileRequest accept(XMPPConnection connection, File target) throws InterruptedException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, SmackException.NoResponseException; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/controller/JingleFileTransferController.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/controller/JingleFileTransferController.java index b4c408660..9c53049fd 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/controller/JingleFileTransferController.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jft/controller/JingleFileTransferController.java @@ -16,6 +16,7 @@ */ package org.jivesoftware.smackx.jft.controller; +import org.jivesoftware.smackx.jft.component.file.AbstractJingleFileTransferFile; import org.jivesoftware.smackx.jft.listener.ProgressListener; import org.jivesoftware.smackx.jingle.JingleDescriptionController; @@ -28,4 +29,5 @@ public interface JingleFileTransferController extends JingleDescriptionControlle void removeProgressListener(ProgressListener listener); + AbstractJingleFileTransferFile getFile(); }