package de.thedevstack.conversationsplus.services.filetransfer.jingle;
import de.thedevstack.conversationsplus.services.FileTransferService;
import de.thedevstack.conversationsplus.services.filetransfer.AbstractFileTransferService;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.xmpp.jingle.JingleConnection;
import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager;
/**
*
*/
public class JingleFileTransferService extends AbstractFileTransferService implements FileTransferService {
private final JingleConnectionManager jingleConnectionManager;
public JingleFileTransferService() {
this.jingleConnectionManager = new JingleConnectionManager();
}
/**
* Transfers a file for the corresponding message.
*
* @param message the message containing the file to transfer
* @return true
if the file transfer was successful, false
otherwise
*/
@Override
public boolean transferFile(Message message) {
return this.transferFile(message, false);
}
/**
* Transfers a file for the corresponding message.
*
* @param message the message containing the file to transfer
* @param delay whether the message is delayed or not
* @return true
if the file transfer was successful, false
otherwise
*/
@Override
public boolean transferFile(Message message, boolean delay) {
JingleConnection jingleConnection = this.jingleConnectionManager.createNewConnection(message);
return null != jingleConnection;
}
/**
* Checks whether a message can be sent using this service or not.
*
* @param message the message to be checked
* @return true
if the message can be processed, false
otherwise
*/
@Override
public boolean accept(Message message) {
return message.fixCounterpart(); // No clue why - but this seems to be the check for jingle file transfer
}
}